Skip to main content
Version: v3.8.0

Operator

The Operator (v3.8.0) runs on Kubernetes and reconciles ControlPlane custom resources. When you apply or update a ControlPlane CR, the Operator creates and maintains Controller, Router, NATS, Services, Ingresses, Secrets, and related cluster objects.

The Operator does not deploy application workloads. After the Control Plane is up, deploy applications with potctl, the REST API, EdgeOps Console, or the ioFog Go SDK.

Version and image

ItemValue
Operator releasev3.8.0
Default imageghcr.io/datasance/operator:3.8.0
Kubernetes1.22+
CRD scopeControlPlane only (Application CRD removed in v3.8)

Override the image in spec.images.operator on your ControlPlane CR. See Control Plane YAML.

Greenfield release

No in-place upgrade from v3.7

Platform train v3.8.0 is a greenfield release. Uninstall the legacy operator and delete v3.7 CRDs before installing v3.8. Rewrite ControlPlane manifests for embedded or external OIDC. Redeploy application workloads with potctl or the Go SDK.

See Migrating to v3.8.0 for the full checklist.

Removed in v3.8:

  • Application CRD and reconciler
  • Keycloak auth fields on ControlPlane
  • ECN Viewer-related Controller fields

Helm install (optional)

Charts publish from this repository 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.8.0

For a full Control Plane install with embedded OIDC, replicas, and database settings, see Kubernetes Helm deployment.

Manifest tarballs

GitHub Releases attach flavor-specific tarballs: manifests-iofog-<version>.tar.gz and manifests-datasance-<version>.tar.gz.

VERSION=3.8.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

OLM bundles publish as container images (operator-bundle:<version>). Package iofog-operator, channel stable.

VERSION=3.8.0

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

What the Operator manages

When you create a ControlPlane CR, the Operator:

  • Deploys Controller pods with auth, database, and console settings from spec
  • Deploys Router and NATS when enabled in the spec
  • Creates Services and optional Ingresses for external access
  • Rotates Secrets when auth or database credentials change
  • Restarts Controller pods when auth configuration changes

Example fragment (full schema in Control Plane YAML):

ControlPlane image overrides
spec:
images:
operator: ghcr.io/datasance/operator:3.8.0
controller: ghcr.io/datasance/controller:v3.8.0
router: ghcr.io/datasance/router:3.8.0
nats: ghcr.io/datasance/nats:2.14.3

Application workloads

v3.8 removed the Application CRD from the Operator. Deploy and update applications outside the Operator:

  • potctl deploy with Application and Microservice YAML
  • Controller REST API or EdgeOps Console
  • ioFog Go SDK pkg/apps

The Operator watches ControlPlane resources only.

DocumentDescription
Kubernetes Helm deploymentEnd-to-end Control Plane install
Control Plane YAMLCR fields, replicas, images, NATS, ingress
Embedded OIDCDefault auth mode for greenfield installs
ArchitectureHow Operator fits in the ECN

Source: Datasance/iofog-operator (mirror of eclipse-iofog/iofog-operator).

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