The kubeslice-worker operator manages the life-cycle of KubeSlice worker cluster related custom resource definitions (CRDs). kubeslice-worker operator uses Kubebuilder, a framework for building Kubernetes APIs using CRDS.
It is strongly recommended to use a released version.
For information on installing KubeSlice on kind clusters, see getting started with kind clusters or try out the example script in kind-based example.
For information on installing KubeSlice on cloud clusters, see getting started with cloud clusters.
- Docker installed and running in your local machine
- A running
kind
kubectl
installed and configured- Follow the getting started from above, to install
kubeslice-controller
andworker-operator
docker pull aveshasystems/worker-operator:latest
If you have not added avesha helm repo yet, add it.
helm repo add avesha https://kubeslice.github.io/charts/
Upgrade the avesha helm repo.
helm repo update
The following command will fetch the relevant secrets from controller cluster
and copy them to secrets
folder. It will also output them so that we
can use it to populate helm chart values.
deploy/controller_secret.sh [controller_cluster_context] [project_namespace] [worker_cluster_name]
Example
deploy/controller_secret.sh gke_avesha-dev_us-east1-c_xxxx kubeslice-cisco my-awesome-cluster
- Clone the latest version of worker-operator from the
master
branch.
git clone https://github.com/kubeslice/worker-operator.git
cd worker-operator
- Adjust
VERSION
variable in the Makefile to change the docker tag to be built. Image is set asdocker.io/aveshasystems/worker-operator:$(VERSION)
in the Makefile. Change this if required.
make docker-build
- You can load the operator on your Kind cluster with the below command.
kind load docker-image <my-custom-image>:<unique-tag> --name <cluster-name>
example:
kind load docker-image aveshasystems/worker-operator:1.2.1 --name kind
- Check the loaded image in the cluster. Modify node name if required.
docker exec -it <node-name> crictl images
example:
docker exec -it kind-control-plane crictl images
Create chart values file yourvaluesfile.yaml
.
Refer to values.yaml to create yourvaluesfile.yaml
and update the operator image subsection to use the local image.
From the sample:
operator:
image: docker.io/aveshasystems/worker-operator
tag: 0.2.3
Change it to:
operator:
image: <my-custom-image>
tag: <unique-tag>
Deploy the Updated Chart
make chart-deploy VALUESFILE=yourvaluesfile.yaml
kubectl get pods -n kubeslice-system
Example output
NAME READY STATUS RESTARTS AGE
jaeger-65c6b7f5dd-frxtx 1/1 Running 0 49s
kubeslice-netop-g4hqd 1/1 Running 0 49s
kubeslice-operator-6844b47cf8-c8lv2 2/2 Running 0 48s
mesh-dns-65fd8585ff-nlp5h 1/1 Running 0 48s
nsm-admission-webhook-7b848ffc4b-dhn96 1/1 Running 0 48s
nsm-kernel-forwarder-fd74h 1/1 Running 0 49s
nsm-kernel-forwarder-vvrp6 1/1 Running 0 49s
nsmgr-62kdk 3/3 Running 0 48s
nsmgr-7dh2w 3/3 Running 0 48s
prefix-service-76bd89c44f-2p6dw 1/1 Running 0 48s
For more information, see deregistering the worker cluster.
helm uninstall kubeslice-worker -n kubeslice-system
Apache License 2.0