This repo will hold design documents and implementation of the Work API.
Learn how to engage with the Kubernetes community on the community page.
You can reach the maintainers of this project at:
This guide will cover:
- Create a
kindcluster that acts as thehubwork delivery control plane. - Create a
kindcluster that acts as thespokecluster for the work to be delivery to. - Install the
workCRD to thehubcluster. - Install the
workagent components to thespokecluster. - Deploy a
workexample on thehubcluster. - Verify all the contents inside the
workhas been delivered in thespokecluster.
Open a new terminal window and run the following commands:
cd /tmp git clone git@github.com:kubernetes-sigs/work-api.git kind delete cluster --name hub kind create cluster --name hub kind get kubeconfig --name hub > /tmp/hub-io-kubeconfig export KUBECONFIG=/tmp/hub-io-kubeconfig cd /tmp/work-api kubectl apply -f config/crd cp /tmp/hub-io-kubeconfig hub-kubeconfig kubectl config set clusters.kind-hub.server https://hub-control-plane:6443 --kubeconfig hub-kubeconfig Open another new terminal window and run the following commands:
kind delete cluster --name cluster1 kind create cluster --name cluster1 kind get kubeconfig --name cluster1 > /tmp/cluster1-io-kubeconfig export KUBECONFIG=/tmp/cluster1-io-kubeconfig cd /tmp/work-api make docker-build kind load docker-image --name=cluster1 work-api-controller:latest kubectl apply -f deploy/component_namespace.yaml kubectl delete secret hub-kubeconfig-secret -n work --ignore-not-found kubectl create secret generic hub-kubeconfig-secret --from-file=kubeconfig=hub-kubeconfig -n work rm hub-kubeconfig kubectl apply -k deploy On the Hub cluster terminal, run the following command:
kubectl apply -f examples/example-work.yaml On the Spoke cluster terminal, run the following commands:
$ kubectl -n default get deploy test-nginx NAME READY UP-TO-DATE AVAILABLE AGE test-nginx 2/2 2 2 32s $ kubectl -n default get service test-nginx NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE test-nginx ClusterIP 10.96.96.136 <none> 80/TCP 46s Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.