pipecd
pipecd copied to clipboard
Implement Kubernetes Plugin
What would you like to be added:
Support the Kubernetes platform in the plugin architecture.
TODO
- [x] deployment
- [x] stages
- [x] K8S_SYNC
- [x] #5792
- [x] add tests for using K8S_SYNC in the pipeline strategy
- [x] K8S_ROLLBACK
- [x] prune outdated, CANARY, and BASELINE resources
- [x] K8S_PRIMARY_ROLLOUT
- [x] #5791
- [x] implement generatePrimaryManifests
- [x] add tests
- [x] K8S_BASELINE_ROLLOUT @Warashi
- [x] K8S_BASELINE_CLEAN @Warashi
- [x] K8S_CANARY_ROLLOUT @ffjlabo
- [x] K8S_CANARY_CLEAN @ffjlabo
- [x] K8S_TRAFFIC_ROUTING @Warashi
- [x] K8S_SYNC
- [x] traffic routing
- [x] with pod selector
- [x] with istio
- [x] others
- [x] implement checkVariantSelectorInWorkload
- [x] support routing by Istio on K8S_PRIMARY_ROLLOUT (ref: pipedv0 logic https://github.com/pipe-cd/pipecd/blob/e1d78ff2e2c322c8f2b58c37a91fc9b614efdab1/pkg/app/piped/executor/kubernetes/primary.go#L57-L86)
- [x] stages
- [ ] live states/drift detection
- [x] basic live states
- [ ] health status calculation (reference implementations: https://github.com/pipe-cd/pipecd/blob/fd2df12ede6375cc4932857ab1de7923b1d71d7d/pkg/app/piped/platformprovider/kubernetes/state.go#L66)
- [x] Deployment
- [ ] StatefulSet
- [ ] DaemonSet
- [ ] ReplicaSet
- [ ] Pod
- [ ] Job
- [ ] CronJob
- [ ] Service
- [ ] Ingress
- [ ] ConfigMap
- [ ] PersistentVolume
- [ ] PersistentVolumeClaim
- [ ] Secret
- [ ] ServiceAccount
- [ ] Role
- [ ] RoleBinding
- [ ] ClusterRole
- [ ] ClusterRoleBinding
- [ ] NameSpace
- [ ] PodDisruptionBudget
- [x] basic drift detection / showing diffs
- [x] ignore some fields when calculating drifts
- [x] others
- [x] plan-preview
- [x] loading manifests
- [x] plain manifests
- [x] remote helm chart
- [x] local helm chart
- [x] kustomize @Warashi
Hello @Warashi
I’d love to be a part of this project and contribute. Looking forward to working together!
updated the todos