Skip to main content

A dead simple Kubernetes Resources installer

Project description

Kubeler

Simple Kubernetes Resources installer

Dependencies

  • Python >= 3.12

Installation

pip install kubeler

Usage

kubeler install --installer=./examples/installer.yaml

Configuration

You can use your existing K8s manifest files. For a simple setup, just add cmd: [kubectl/helm command] to your manifest file. For example, you can take a look at some examples in the examples directory.

#cmd: kubectl apply -f namespace.yaml
---
kind: Namespace
apiVersion: v1
metadata:
  name: staging
  labels:
    name: staging
---

Then, create an installer YAML file to define your K8s resources. For example:

init:
  cmd: 
    - apt update -y
    - apt upgrade

group:
  name: k8s
  steps:
    - name: cluster
      dir: ./cluster
    - name: cert-manager
      dir: ./cert

Please note that when you create installer.yml, Kubeler will execute commands in order. So, make sure to place dependent resources before any resources that rely on them.

If you have multiple files inside a directory and want to define the execution order, you can list your files in the desired sequence.

...
- name: argocd
    dir: ./tools/argocd
    files:
        - manifest.yaml
        - ingress.yaml

You can also use variables to dynamically insert values into your manifest file.

...
spec:
  ingressClassName: {{ ingress_class }}
  rules:
    - host: {{ host_url }}
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service: 
                name: argocd-server
                port: 
                  name: https

Then, define the variables in installer.yaml.

- name: argocd
    dir: ./tools/argocd
    files:
        - manifest.yaml
        - ingress.yaml
    vars:
        - name: ingress_class
          value: nginx
        - name: host_url
          value: argocd.example.com

You can also reference variables from a previous step using ref..

- name: redis
    dir: ./tools/redis
    vars:
        - name: password
          value: Password01

- name: harbor
    dir: ./tools/harbor
    vars:
        - name: redis_password  
          value: ref.redis.vars.password

You can also reference variables from environment variables using env..

- name: harbor
    dir: ./tools/harbor
    vars:
        - name: redis_password  
          value: env.REDIS_PASSWORD

Attributes

  • name: Name of the step.
  • dir: Directory where the manifest files reside.
  • files: List of files in the directory that will be executed in order.
  • vars: Variables for dynamic values inside the manifest file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kubeler-0.1.2.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kubeler-0.1.2-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file kubeler-0.1.2.tar.gz.

File metadata

  • Download URL: kubeler-0.1.2.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for kubeler-0.1.2.tar.gz
Algorithm Hash digest
SHA256 d727962bcf9fa509fc896ba15066a0d04c9afc669e1551d5ed46a08fc47faef4
MD5 a272547cd26cd8931c72844e24e423a3
BLAKE2b-256 ccbfe83f7f0ee1fbcbe8f83fc94f3f1a9050647e73e8fc7266acafcca1a4a78b

See more details on using hashes here.

File details

Details for the file kubeler-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: kubeler-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for kubeler-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1ec3202a4d9249df62b3c216cf30b6147fd01a984bdb3b3fe9c936ecef292d5a
MD5 f17a5e45acb9db1663fbae5a63ede33c
BLAKE2b-256 63384355bffdea961943dacfb7b5a62d881b7ed7301362c65d29a22d9e4062f5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page