The Kubeslice Worker Operator, also known as Slice Operator manages the lifecycle of KubeSlice worker cluster-related custom resource definitions (CRDs).
The kubeslice-worker
operator uses Kubebuilder, a framework for building Kubernetes APIs using CRDS.
It is strongly recommended that you use a released version.
Please refer to our documentation on:
Before you begin, make sure the following prerequisites are met:
- Docker is installed and running on your local machine.
- A running
kind
cluster. kubectl
is installed and configured.- You have prepared the environment to install
kubeslice-controller
on the controller cluster andworker-operator
on the worker cluster. For more information, see Prerequisites.
To download the latest Worker Operator docker image, click here.
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 get the relevant secrets from the controller cluster
and copy them to the secrets
folder. Additionally, it will return the secrets so that we
can use them to populate the 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
-
Edit the
VERSION
variable in the Makefile to change the docker tag to be built. The image is set asdocker.io/aveshasystems/worker-operator:$(VERSION)
in the Makefile. Modify this if required.make docker-build
-
You can load the Worker Operator on your kind cluster using the following 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 the node name if required.
docker exec -it <node-name> crictl images
Example:
docker exec -it kind-control-plane crictl images
Create a chart values file called 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
Verify the installation by checking the status of pods belonging to the kubeslice-system
namespace.
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 deregister the worker cluster.
helm uninstall kubeslice-worker -n kubeslice-system
Apache License 2.0