Install Kadalu Operator and CSI Pods using local Yaml and Container images.

Note: Private registry support is available only with Kadalu >=0.8.14

Start the Private Container registry

docker run -d -p 5000:5000 --name registry registry:2.7

Download the container images to local registry

Download the following container images and push to the custom registry.

sudo docker pull
sudo docker pull
sudo docker pull
sudo docker pull
sudo docker pull
sudo docker pull
sudo docker pull
sudo docker pull

Note: Change the version of Kadalu Container images as required.

Tag to private registry URL(Example: my_company_images:5000)

sudo docker tag my_company_images:5000/kadalu/kadalu-csi:devel
sudo docker tag my_company_images:5000/kadalu/kadalu-operator:devel
sudo docker tag my_company_images:5000/kadalu/kadalu-server:devel
sudo docker tag my_company_images:5000/raspbernetes/csi-node-driver-registrar:2.0.1
sudo docker tag my_company_images:5000/library/busybox
sudo docker tag my_company_images:5000/raspbernetes/csi-external-provisioner:2.0.2
sudo docker tag my_company_images:5000/raspbernetes/csi-external-attacher:3.0.0
sudo docker tag my_company_images:5000/raspbernetes/csi-external-resizer:1.0.0

Upload the images to private repository.

sudo docker push my_company_images:5000/kadalu/kadalu-csi:devel
sudo docker push my_company_images:5000/kadalu/kadalu-operator:devel
sudo docker push my_company_images:5000/kadalu/kadalu-server:devel
sudo docker push my_company_images:5000/raspbernetes/csi-node-driver-registrar:2.0.1
sudo docker push my_company_images:5000/library/busybox
sudo docker push my_company_images:5000/raspbernetes/csi-external-provisioner:2.0.2
sudo docker push my_company_images:5000/raspbernetes/csi-external-attacher:3.0.0
sudo docker push my_company_images:5000/raspbernetes/csi-external-resizer:1.0.0

Generate Manifest files

Now generate the manifest files by running the following command.

IMAGES_HUB=my_company_images:5000 make gen-manifest

Change the IMAGES_HUB to custom domain as required.

Restricting node plugins to run in a few selected nodes

If running CSI node plugin in all the hundreds of nodes is not desirable then edit the csi-nodeplugin yaml file and add the nodeSelector as shown in the example below.

kind: DaemonSet
apiVersion: apps/v1
  name: kadalu-csi-nodeplugin
  namespace: kadalu
  labels: kadalu csi-driver kadalu-csi-nodeplugin
    kadalu_node_plugin: "true"

And set the label to all the required nodes

kubectl label nodes <your-node-name> kadalu_node_plugin=true

Install Kubectl extension

curl -fsSL | sudo bash -x

Install Kadalu Operator and CSI

kubectl kadalu install --local-yaml=./manifests/kadalu-operator.yaml --local-csi-yaml=./manifests/csi-nodeplugin.yaml