Skip to main content

Cluster wide resources

caution

Admin permissions are required to deploy cluster-wide resources. You may ask your cluster administrator to execute the following tasks if you don't have such permission.

The following resources need to be deployed:

  • a Namespace
  • ClusterRoles, ClusterRoleBindings, Webhook, CustomResourceDefinitions of required third-party operators and controllers.
  • PriorityClass, StorageClass and IngressClass required for the Thingpark Enterprise deployment

Namespace​

Create the namespace communicated to license manager at registration time

kubectl create ns $NAMESPACE
kubectl create ns istio-system

Priority Class​

Helm Charts use default PriorityClass names described in prerequisites. The following manifest should be used to create the corresponding PriorityClasses:

kubectl apply -f $CONFIG_REPO_BASEURL/examples/priority-class/default.yaml
tip

The PriorityClass values may be customized to define the priority of ThingPark Wireless with other workloads of the Kubernetes cluster.

ThingPark Wireless may be deployed using already existing PriorityClasses. In this case, this step should be skipped.

Storage Class​

Recommended StorageClasses for Amazon Web Services or Azure are created using the following manifest:

kubectl apply -f $CONFIG_REPO_BASEURL/examples/storage/storage-class-$HOSTING.yaml

For other hosting options, review the storage prerequisites to create appropriate StorageClasses.

Container registry authentication​

Prepare the container registry access by creating Secrets used as imagePullSecret. Basic deployment use Actility container registry authenticated by using InstallationID

kubectl -n $NAMESPACE create secret docker-registry thingpark-image-pull-secret \
--docker-server=repository.thingpark.com \
--docker-username=<InstallationID> \
--docker-password=<InstallationID>

kubectl -n istio-system create secret docker-registry thingpark-image-pull-secret \
--docker-server=repository.thingpark.com \
--docker-username=<InstallationID> \
--docker-password=<InstallationID>

Install third-parties operators and controllers​

The usage of Ingress controller is deprecated with the 8.1.2. The thingpark enterprise deployment require now the deployment of Istio control plan and Gateway API Custom Resource Definition

helm repo add istio https://istio-release.storage.googleapis.com/charts
helm upgrade -i istio-base istio/base -n istio-system --version 1.30.2 --set defaultRevision=default
helm upgrade -i istiod istio/istiod -n istio-system --version 1.30.2 --wait -f values-istiod.yaml
kubectl apply --server-side -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.5.0/experimental-install.yaml

Deploy the thingpark-data-controllers chart using your customization:

helm upgrade -i tpe-data-controllers -n $NAMESPACE \
actility/thingpark-data-controllers --version $THINGPARK_DATA_CONTROLLERS_VERSION \
-f values-data-stack-all.yaml

Deploy the thingpark-application-controllers chart:

helm upgrade -i tpe-controllers -n $NAMESPACE \
actility/thingpark-application-controllers --version $THINGPARK_APPLICATION_CONTROLLERS_VERSION \
-f values-thingpark-stack-all.yaml
Ask AI