Dear users and contributors of Kusible,
We want to inform you that Kusible is being deprecated and will no longer be actively maintained. After careful consideration, the project maintainers have decided to discontinue further development and support for Kusible.
What does this mean for you?
-
No Further Updates: There will be no further updates, enhancements, or bug fixes to Kusible. The repository will remain as is, but we will not actively maintain or contribute to it.
-
Security and Compatibility: As Kusible will no longer be actively maintained, it may become vulnerable to security issues or compatibility problems with newer dependencies or Kubernetes versions.
-
Consider Alternatives: We encourage you to consider alternatives for your Kubernetes deployment needs, as Kusible will no longer be a recommended solution. Popular alternatives in the Kubernetes deployment space include Helm, Kustomize, and other similar tools.
-
Archival: The Kusible Git repository will be archived, but it will remain accessible for historical purposes.
We understand that this decision may impact users who have found value in Kusible, and we sincerely thank you for your support and contributions. We recommend transitioning to alternative solutions that are actively maintained and aligned with your requirements.
kusible is a multi-kubernetes-helm-chart-deployment tool. It uses YAML files which describe chart repositories, chart versions, chart settings, kubernetes clusters and so on. It uses this information to deploy charts to multiple clusters, each with its own version and settings.
File structure and certain keywords are intentionally similar to Ansible. Differences result from the different needs of the tasks to be performed and the tools used.
Kusible makes heavy use of Spruce to manipulate YAML and JSON files so understanding of Spruce Operators and YAML anchors is useful. Usage of ejson to store encrypted data is also supported.
.
├── group_vars
│ ├── all.yml
│ ├── dev.yml
│ ├── prod.yml
│ └── test.yml
├── inventory
│ └── clusters.yml
├── playbook.yml
└── kubeconfig_dev
playbook.yml:
---
plays:
- name: install-prometheus-operator
groups: [all]
charts:
- name: prometheus-operator
repo: stable
chart: prometheus-operator
version: (( grab vars.VERSIONS.prometheus-operator ))
namespace: kube-system
values: (( grab vars.VALUES ))
repos: (( grab vars.REPOS ))
inventory/clusters.yml:
---
inventory:
- name: k8s-dev
groups: [dc1,dev]
kubeconfig:
backend: file
params:
path: kubeconfig_dev
- name: k8s-test
groups: [dc2,test]
kubeconfig:
backend: s3
params:
accesskey: "test_accesskey"
secretkey: "test_secretkey"
server: s3.somewhere.com
decrypt_key: verysecretkey
bucket: kubernetes
path: k8s-test/kubeconfig.enc.7z
- name: k8s-prod
groups: [dc3,prod]
kubeconfig:
backend: s3
params:
accesskey: "prod_accesskey"
secretkey: (( vault "secret/my/credentials/admin:password" ))
server: s3.somewhere.com
decrypt_key: (( vault "secret/my/credentials/admin:decryptkey" ))
bucket: kubernetes
path: k8s-prod/kubeconfig.enc.7z
group_vars/all.yml
---
vars:
REPOS:
- name: stable
url: https://charts.helm.sh/stable
VALUES:
defaultRules:
create: false
alertmanager:
enabled: false
grafana:
enabled: false
kubeApiServer:
enabled: false
kubelet:
enabled: false
kubeControllerManager:
enabled: false
coreDns:
enabled: false
kubeDns:
enabled: false
kubeEtcd:
enabled: false
kubeScheduler:
enabled: false
kubeStateMetrics:
enabled: false
nodeExporter:
enabled: false
prometheus:
enabled: false
prometheusOperator:
kubeletService:
enabled: true
image:
repository: coreos/prometheus-operator
configmapReloadImage:
repository: coreos/configmap-reload
prometheusConfigReloaderImage:
repository: coreos/prometheus-config-reloader
hyperkubeImage:
repository: google-containers/hyperkube
group_vars/dev.yml
---
vars:
VERSIONS:
prometheus-operator: ">0.0.0-0"
group_vars/test.yml
---
vars:
VERSIONS:
prometheus-operator: ">0.0.0"
group_vars/prod.yml
---
vars:
VERSIONS:
prometheus-operator: "5.12.3"
This is a CLI tool to render and deploy kubernetes resources to multiple clusters
Usage:
kusible [command]
Available Commands:
deploy Deploy an application
groups List available groups based on given regex
help Help about any command
inventory Get inventory information
render Render an application as kubernetes manifests
uninstall Uninstall an application
values Compile values for a list of groups
version Print the version number of kusible
Flags:
-h, --help help for kusible
--json-log log as json
--log-functions log function names (performance impact!)
--log-level string log level (trace,debug,info,warn/warning,error,fatal,panic) (default "warning")
-q, --quiet Suppress all normal output
Use "kusible [command] --help" for more information about a command.
See documentation
Licensed under the Apache 2.0 license