CNCF: Openkruise
Integrate Openkruise workload with ArgoCD and Helm
Mahesh Kasbe (@maheshkasabe)
ArgoCD and Helm are popular tools to delivery k8s workload, yet currently only the k8s built-in workload are supported out-of-box for ArgoCD and Helm. OpenKruise provide advanced worklood that resemble with the built-in workload, users can use OpenKruise workload with ArgoCD and Helm, yet they cannot tell ArgoCD and Helm whether Openkruise workload is ready or not.
- Expected Outcome:
- Improve ArgoCD integration by writing custom lua script to tell whether OpenKruise workload is healthy. The lua script can be submited to the Argo-CD repository.
- Improve Helm intergration by building a job container that can check whether OpenKruise workload is healthy during helm install/upgrade process.
Project Proposal - (Integrate Openkruise workload with ArgoCD and Helm)
- Intiated Argocd Workload Integration: Argocd, Kruise-Argo
- Added CloneSet Integration.
- Added StatefulSet Integration.
- Added Daemonset Integration.
- Added Advanced CronJob workload Integration.
- Added BroadcastJob workload Integration.
- Added Rollout Integration.
- Added CI Workflow to check and validate argocd integration before merge.
- Opened a PR & Proposal Issue on Argocd Repository.
- Added Integration docs and code to Kruise-Argo Repository.
- Intiated Helm Workload Integration:
- Planned to add a cmd tool in order to perform checks
- modifed previous lua argo scripts to use inside cmd tool
- Improved previous lua argo scripts with partition and pause checks
- created a basic post-install helm hook with cmd tool docker image
- modified rbac rules for helm hooks
- added timeout function and workload-name argument to better perform checks
- pushed the work inside kruise-helm repo
- Buffer time for improving the previous fetaures and Pull Requests
- Completed the cmd-tool with all the important and fundamental features
- Fixed the Daemonset, Statefulset , CloneSet and Rollout Health check scripts
- Added example, automation script to generate a argocd configmap
Tasks | Planned | Completed |
---|---|---|
CloneSet Integration | Yes | ✔️ |
Advanced StatefulSet Integration | Yes | ✔️ |
Advanced DaemonSet Integration | Yes | ✔️ |
BrodCastJob Integration | Yes | ✔️ |
Advanced CronJob Integration | Yes | ✔️ |
KruiseRollout Integration | Yes | ✔️ |
Helm Workload Integration | Yes | ✔️ |
Presented the daily work to the mentors on a pull request made on forked resporitory.
Project Pull Request:
- Kruise-Argo Repository PR#1
- Kruise-Argo Repository PR#2
- Kruise-Helm Repository PR#1
- Argocd Repository PR
1. Zhang Zhen - Github
I would like to extend my sincere gratitude to my mentors for giving me this incredible opportunity. My mentors, along with the organization members, have been very approachable and have provided me with constant support and guidance throughout the project. I look forward to contributing and learning more from the organization.