Version
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 docker.io/kadalu/kadalu-csi:devel sudo docker pull docker.io/kadalu/kadalu-operator:devel sudo docker pull docker.io/kadalu/kadalu-server:devel sudo docker pull docker.io/raspbernetes/csi-node-driver-registrar:2.0.1 sudo docker pull docker.io/library/busybox sudo docker pull docker.io/raspbernetes/csi-external-provisioner:2.0.2 sudo docker pull docker.io/raspbernetes/csi-external-attacher:3.0.0 sudo docker pull docker.io/raspbernetes/csi-external-resizer:1.0.0
Note: Change the version of Kadalu Container images as required.
Tag to private registry URL(Example: my_company_images:5000
)
sudo docker tag docker.io/kadalu/kadalu-csi:devel my_company_images:5000/kadalu/kadalu-csi:devel sudo docker tag docker.io/kadalu/kadalu-operator:devel my_company_images:5000/kadalu/kadalu-operator:devel sudo docker tag docker.io/kadalu/kadalu-server:devel my_company_images:5000/kadalu/kadalu-server:devel sudo docker tag docker.io/raspbernetes/csi-node-driver-registrar:2.0.1 my_company_images:5000/raspbernetes/csi-node-driver-registrar:2.0.1 sudo docker tag docker.io/library/busybox my_company_images:5000/library/busybox sudo docker tag docker.io/raspbernetes/csi-external-provisioner:2.0.2 my_company_images:5000/raspbernetes/csi-external-provisioner:2.0.2 sudo docker tag docker.io/raspbernetes/csi-external-attacher:3.0.0 my_company_images:5000/raspbernetes/csi-external-attacher:3.0.0 sudo docker tag docker.io/raspbernetes/csi-external-resizer:1.0.0 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
metadata:
name: kadalu-csi-nodeplugin
namespace: kadalu
labels:
app.kubernetes.io/part-of: kadalu
app.kubernetes.io/component: csi-driver
app.kubernetes.io/name: kadalu-csi-nodeplugin
spec:
nodeSelector:
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 https://github.com/kadalu/kadalu/releases/latest/download/install.sh | sudo bash -x
Install Kadalu Operator and CSI
kubectl kadalu install --local-yaml=./manifests/kadalu-operator.yaml --local-csi-yaml=./manifests/csi-nodeplugin.yaml