Skip to main content
Version: v3.9.0

Operator

The operator image is ghcr.io/datasance/operator:3.9.0. On Kubernetes it reconciles ControlPlane custom resources. It needs Kubernetes 1.22+. The only custom resource is ControlPlane.

Application workloads are not operator objects. After the control plane is up, create them with potctl, the REST API, EdgeOps Console, or the Go SDK.

Operator image
spec:
images:
operator: ghcr.io/datasance/operator:3.9.0

Guides​

GuideWhat it covers
How the operator worksProcess, status, and the Controller reconcile path
ControlPlane CRD referencespec, status, objects the operator creates, and environment mapping
Router and NATSRouter Deployment, NATS StatefulSet, certificates, skrouterd.json, server.conf, and Controller registration

Controller HTTPS, Ingress TLS, Router and NATS certificates, cert-manager, and CA import are on Securing Kubernetes cluster (operator). Securing the cluster says which deploy path owns each TLS layer.

GoalTypical setupSee
Public Controller API over HTTPS on a cloud LoadBalancerservices.controller.type: LoadBalancer, controller.https: true, TLS Secret on the podPattern A
HTTPS via an ingress controllerservices.controller.type: ClusterIP, ingresses.controller.host, TLS Secret on the IngressPattern B
Router and NATS TLSOperator-generated or pre-created SecretsRouter and NATS and Router TLS

Removed in v3.8​

v3.8 removed the Application CRD, Keycloak fields, and ECN Viewer fields. The operator watches ControlPlane only.

Platform train v3.9.0 supports an in-place upgrade from v3.8.0. Follow Upgrading to v3.9.0.

There is no direct upgrade from v3.7. Move to v3.8.0 first. See Migrating to v3.8.0.

Helm​

Charts publish to each mirror's gh-pages index. The legacy standalone repo Datasance/helm is deprecated.

Add the Helm repository
helm repo add iofog-operator https://datasance.github.io/iofog-operator
helm repo update
Install the operator
helm install iofog-operator iofog-operator/iofog-operator \
--namespace iofog-system --create-namespace \
--version 3.9.0

For a full control plane install, see Kubernetes Helm deployment.

Manifest tarball​

GitHub Releases attach manifests-iofog-<version>.tar.gz and manifests-datasance-<version>.tar.gz. Apply them in namespace iofog-system.

VERSION=3.9.0
FLAVOR=datasance

curl -fsSL -o manifests.tar.gz \
"https://github.com/eclipse-iofog/iofog-operator/releases/download/v${VERSION}/manifests-${FLAVOR}-${VERSION}.tar.gz"
tar xzf manifests.tar.gz
kubectl apply -f "manifests-${FLAVOR}-${VERSION}/crds/"
kubectl apply -f "manifests-${FLAVOR}-${VERSION}/operator/install.yaml"

Adapt and apply the sample ControlPlane from the tarball for your cluster.

OLM​

Package iofog-operator, channel stable, namespace iofog-system.

VERSION=3.9.0

operator-sdk run bundle "ghcr.io/datasance/operator-bundle:${VERSION}" \
--namespace iofog-system --timeout 5m

Reconcile, status, and TLS​

How the operator reconciles, how status is set, and which Router and NATS objects it creates are on How the operator runs and the ControlPlane CRD.

TLS for the Controller, Router, and NATS on the cluster is on Kubernetes (operator).

Group 3See anything wrong with the document? Help us improve it!