deployment-splitter

command
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 5, 2022 License: Apache-2.0 Imports: 4 Imported by: 0

README

Deployment Splitter

The Deployment Splitter is responsible for watching kcp for Deployment resources and creating corresponding child Deployments, one for each Cluster kcp knows about.

The underlying real clusters will react to the creation of these child Deployments by syncing them, creating Pods, and updating status, at which point the Deployment Splitter will react by aggregating that status back up to the root Deployment.

Running

Run kcp

make
bin/kcp start
export KUBECONFIG=.kcp/admin.kubeconfig
kubectl config use-context admin

Run Cluster Controller

kubectl apply -f config/workload.kcp.dev_workloadclusters.yaml
bin/cluster-controller --kubeconfig=.kcp/admin.kubeconfig

Run Deployment Splitter

kubectl apply -f contrib/crds/apps/apps_deployments.yaml
bin/deployment-splitter --kubeconfig=.kcp/admin.kubeconfig

TODO

Deployment Splitter is definitely not a scheduler. It's not smart. We could make it smart?

  • react to clusters being added/deleted and becoming unavailable by rebalancing replicas across children
  • balance replicas across children based on advertised capabilities (which can change over time), observed load, etc.
  • recreate deleted child deployments
  • react to root deployments being scaled up/down

These features and more are already supported by other projects, such as Karmada and kubefed.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL