work-api
                                
                                 work-api copied to clipboard
                                
                                    work-api copied to clipboard
                            
                            
                            
                        Kubernetes Work API
Work API
This repo will hold design documents and implementation of the Work API.
Community, discussion, contribution, and support
Learn how to engage with the Kubernetes community on the community page.
You can reach the maintainers of this project at:
Quick Start
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.
Prerequisites
Create and setup the Hub cluster
Open a new terminal window and run the following commands:
cd /tmp
git clone [email protected]: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
Create and setup the Spoke cluster
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
Deploy a Work on the Hub cluster
On the Hub cluster terminal, run the following command:
kubectl apply -f examples/example-work.yaml
Verify delivery on the Spoke cluster
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
Code of conduct
Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.