-
Notifications
You must be signed in to change notification settings - Fork 42.8k
Proposal to rework Kubernetes deployment CLI #5472
Copy link
Copy link
Closed
Labels
priority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next release.Must be staffed and worked on either currently, or very soon, ideally in time for the next release.sig/cluster-lifecycleCategorizes an issue or PR as relevant to SIG Cluster Lifecycle.Categorizes an issue or PR as relevant to SIG Cluster Lifecycle.
Milestone
Metadata
Metadata
Assignees
Labels
priority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next release.Must be staffed and worked on either currently, or very soon, ideally in time for the next release.sig/cluster-lifecycleCategorizes an issue or PR as relevant to SIG Cluster Lifecycle.Categorizes an issue or PR as relevant to SIG Cluster Lifecycle.
The following is a proposal for reworking the existing
kube-up.sh,kube-down.sh, andkube-push.shto eventually be in Go for advanced cloud deployments, while allowing the existing shell investment to continue for a period of time.deploy/deploycmd/apiversionedClusterobject. This object holds all general configuration variables of the cluster and the add-on pods, plus IAAS relevant variables specific to each IAAS provider. (Issue to be filed soon to haggle over what's in these structures.)kubedeploycommand withup,down, andpushverbs, each of which take a cluster YAML. Theupandpushverbs take a path (possibly optional in the case ofpush) to the Kubernetes binaries to deploy.kubedeployonly has to act as a YAML -> env variable translator. Re-write the existing shell scripts to use common env variables (they're actually all close, e.g.config-default.sh, etc.). Thenkubedeploycan take the given API object, spew a chunk of environment variables, and carefully execute the existing bash scripts (vigorous handwaving, but this part is not that technically challenging, just a hairy yak).As an added benefit, the last bullet gives us a place to start upstreaming GKE cluster deployment code, which has been a desire for the GKE team for a while. Oh, and @satnam6502 will probably love it for scalability, because I think he gouges his eyes out every time he deals with the bash in
util.sh.This will also give us a place for
kubedeploy upgradein the fullness of time, which is a distinct use case frompush.Thoughts?
cc @jlowdermilk, @brendandburns, @alex-mohr, and anyone else that cares.