A controller manage helm charts and kustomize in kubernetes operator way.
- basic helm installation management,install upgrade and uninstall.
- kustomize management,render kustomize files and apply to kubernetes.
- remote file support, download bundle from remote server.
- helm repository.
- Git release tarball or other remote tarball file.
- Git clone.
- dependency check among bundles.
- helm charts version update check.
Install bundle controller
kubectl create namespace bundle-controller
kubectl apply -f https://github.com/kubegems/bundle-controller/raw/main/install.yaml
Install a helm chart
cat <<EOF | kubectl apply -f -
apiVersion: bundle.kubegems.io/v1beta1
kind: Bundle
metadata:
name: my-nginx # helm release name
spec:
kind: helm
chart: nginx # helm chart name
url: https://charts.bitnami.com/bitnami
version: 10.2.1
values: # helm chart values
ingress:
enabled: true
EOF
Check the status of the helm bundle
$ kubectl get bundle
NAME STATUS NAMESPACE VERSION UPGRADETIMESTAMP AGE
my-nginx Installed default 10.2.1 2s 2s
Check the status of the helm release
$ helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
my-nginx default 1 2022-05-30 15:12:09.218912438 +0800 CST deployed nginx-10.2.1 1.21.6
For more helm usage, visit docs/helm.md
Install a remote kustomize bundle from a Git release tarball
cat <<EOF | kubectl apply -f -
apiVersion: bundle.kubegems.io/v1beta1
kind: Bundle
metadata:
name: external-snapshotter
spec:
kind: kustomize
url: https://github.com/kubernetes-csi/external-snapshotter/archive/refs/tags/v5.0.1.tar.gz
path: external-snapshotter-5.0.1/client/config/crd
EOF
Check the status of the kustomize bundle
$ kubectl get bundles.bundle.kubegems.io
NAME STATUS NAMESPACE VERSION UPGRADETIMESTAMP AGE
external-snapshotter Installed default 3s 3s
$ kubectl get crd | grep snapshot.storage.k8s.io
volumesnapshotclasses.snapshot.storage.k8s.io 2022-05-30T07:55:25Z
volumesnapshotcontents.snapshot.storage.k8s.io 2022-05-30T07:55:25Z
volumesnapshots.snapshot.storage.k8s.io 2022-05-30T07:55:25Z
For more kustomize usage, visit docs/kustomize.md
For more examples, please visit examples.