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.
spec:
images:
operator: ghcr.io/datasance/operator:3.9.0
Guides
| Guide | What it covers |
|---|---|
| How the operator works | Process, status, and the Controller reconcile path |
| ControlPlane CRD reference | spec, status, objects the operator creates, and environment mapping |
| Router and NATS | Router 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.
| Goal | Typical setup | See |
|---|---|---|
| Public Controller API over HTTPS on a cloud LoadBalancer | services.controller.type: LoadBalancer, controller.https: true, TLS Secret on the pod | Pattern A |
| HTTPS via an ingress controller | services.controller.type: ClusterIP, ingresses.controller.host, TLS Secret on the Ingress | Pattern B |
| Router and NATS TLS | Operator-generated or pre-created Secrets | Router 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.
helm repo add iofog-operator https://datasance.github.io/iofog-operator
helm repo update
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).