Skip to main content

Install Data-Plane to Kubernetes Namespace

This document will guide you through the process of installing and connecting a new Data-Plane to the IOMETE Control-Plane.

Namespace names

In this document, we use data-plane-ns and iomete-system as the namespace names for the Data-Plane and Control-Plane instances. You can replace it with your desired namespace name.
Note that the Control-Plane namespace should be the same as the one you used during the Control-Plane installation.

Create new namespace for Data-Plane instance

# Change `new-data-plane` to your desired namespace name
kubectl create namespace data-plane-ns

# Label the namespace for IOMETE
kubectl label namespace data-plane-ns iomete.com/managed=true

Create Service Account and Role

Required file: service-account.yaml

wget https://raw.githubusercontent.com/iomete/iomete-deployment/main/service-account.yaml

kubectl apply -n data-plane-ns -f service-account.yaml

wget https://raw.githubusercontent.com/iomete/iomete-deployment/main/role-binding-to-control-plane.yaml

export CP_NAMESPACE=iomete-system

sed -i "s/{{control-plane-namespace}}/$CP_NAMESPACE/g" role-binding-to-control-plane.yaml
#For macOS use the following command
# sed -i '' "s/{{control-plane-namespace}}/$CP_NAMESPACE/g" role-binding-to-control-plane.yaml

kubectl apply -n data-plane-ns -f role-binding-to-control-plane.yaml

Generating webhook certificates

Required file: gencerts.sh

wget https://raw.githubusercontent.com/iomete/iomete-deployment/main/gencerts.sh
chmod +x gencerts.sh

./gencerts.sh -n data-plane-ns -s spark-operator-webhook -r spark-operator-webhook-certs

# `spark-operator-webhook.yaml` file will be generated by the script above
kubectl apply -n data-plane-ns -f spark-operator-webhook.yaml
Require Kubernetes Admin Access

The generated file spark-operator-webhook.yaml contains cluster-level objects. Admin permission required to apply the last command above.

Update IOMETE Control Plane

In values.yaml file of the IOMETE Control Plane, add the following configuration to the namespaces section:

# Multi-Namespace Support: Spark resources can now be deployed to separate namespaces,
# allowing teams to manage their own CPU and memory resources independently.
# The data plane's namespace is automatically managed and doesn't need to be specified.
namespaces:
- data-plane-ns
# helm repo update iomete
helm upgrade --install -n iomete-system data-plane iomete/iomete-data-plane-enterprise -f values.yaml