CLM (CRD Lifecycle Management) is a tool to manage CRDs lifecycle in Kubernetes. CLM can contribute to:
- Install CRD (yaml file and controller);
- Probe status of CRD components;
- Recover abnormal CRD components;
- Upgrade and downgrade CRD;
- Dependency processing of CRD;
And it can be a special workload of Kubernetes.
CLM contains three components:
-
Source: Source of CRD release, contains the actually actions to handle CRD release.
- helm source: Using helm-sdk to handle lifecycle actions
- native source: Using cli-runtime
- k8s service source: Using http/https
CLM combine thehelm
andkubectl
to manage the CRD lifecycle.
-
CRDRelease: A release of CRD.
-
Module: The components of a CRDRelease. The smallest entity CLM handle.
See docs for more information.
crdrelease usage
helm source usage
native source usage
service source usage
-
make install
Install CRD of CLM. -
kubectl apply -f clm-server.yaml
Install CLM deployment to K8s cluster. -
cd config/sample/; kubectl apply -f source
Install sources of CLM. -
kubectl apply -f crdrelease/native-example.yaml
Install the example crd release of native source.- native.module contains two parts in native source, a remote urls CRD file resource, and a local deployment yaml.
-
kubectl apply -f crdrelease/helm-example.yaml
Install the example crd release of helm source.- nginx.module download a nginx helm package and install it.
Please read Makefile
- Fork it
- Create your feature branch (git checkout -b feature/fooBar)
- Commit your changes (git commit -am 'Add some fooBar')
- Push to the branch (git push origin feature/fooBar)
- Create a new Pull Request
Jungle - [email protected] Distributed under the Apache 2.0 license. See LICENSE for more information.