Quick Start With Local Deployment | Datasance PoT Documentation
Skip to main content
Version: v3.8.0

Quick Start With Local Deployment

Greenfield release: v3.8.0

Datasance PoT v3.8.0 is a greenfield release. There is no in-place upgrade from v3.7 field deployments.

You need a new Controller database, Edgelet v1.0.0+ on every node, and potctl v3.8.0. Legacy Java iofog-agent and v3.7 field agents are not supported on Controller v3.8.

See Migrating to v3.8.0 for the step-by-step guide.

This guide deploys a minimal local ECN on one machine:

  1. LocalControlPlane with embedded OIDC
  2. A system Edgelet node on the same host (via spec.systemAgent)
  3. A pointer to deploy sample workloads (Acme Smart Plant Tutorial)

You do not deploy a separate LocalAgent. The system Edgelet is part of the Control Plane YAML. See Control Plane YAML Specification.

Version pins

ComponentVersion
potctlv3.8.0
Controllerv3.8.0
Edgeletv1.0.0
EdgeOps Consolev1.0.9

Pair Edgelet v1.0.0 with Controller v3.8.0. Do not run v3.7 agents against a v3.8 Controller.

Choose your platform

PlatformContainer enginecontainerEngineUrlTypical deploymentType
macOS / Windowsdockerunix:///var/run/docker.sockcontainer
Linuxedgeletunix:///run/edgelet/containerd.socknative

Use the manifest and prerequisites for your OS below. Both paths produce the same local ECN: Controller, Router, and system Edgelet on one host.

Authentication

PoT v3.8.0 uses embedded OIDC by default. You do not need Keycloak or an external IdP for this quick start.

Want to know more about potctl?

We keep this guide short. For CLI design and workflows, see potctl introduction.

macOS and Windows

Prerequisites

On Windows, use Docker Desktop with Linux containers (WSL2 or Hyper-V backend). Run potctl from an environment that can reach the Docker socket (WSL2 is recommended).

Manifest

Save as quick-start.yaml:

quick-start.yaml (macOS / Windows)
---
apiVersion: datasance.com/v3
kind: LocalControlPlane
metadata:
name: ecn
spec:
iofogUser:
name: Quick
surname: Start
password: QuickStartUser12!
controller:
publicUrl: http://<your-host-ip>:51121
consoleUrl: http://<your-host-ip>
package:
image: ghcr.io/datasance/controller:v3.8.0
auth:
mode: embedded
insecureAllowHttp: true
bootstrap:
username: admin
password: QuickStart12!
nats:
enabled: true
systemAgent:
package:
container:
image: ghcr.io/datasance/edgelet:1.0.0
config:
arch: amd64
deploymentType: container
containerEngine: docker
containerEngineUrl: unix:///var/run/docker.sock

Deploy

potctl deploy -f quick-start.yaml

Continue with Verify the deployment.

Linux

Prerequisites

Docker is not required on this path. The system Edgelet uses the embedded edgelet engine and containerd socket.

Manifest

Save as quick-start.yaml:

quick-start.yaml (Linux)
---
apiVersion: datasance.com/v3
kind: LocalControlPlane
metadata:
name: ecn
spec:
iofogUser:
name: Quick
surname: Start
password: QuickStartUser12!
controller:
publicUrl: http://<your-host-ip>:51121
consoleUrl: http://<your-host-ip>
package:
image: ghcr.io/datasance/controller:v3.8.0
auth:
mode: embedded
insecureAllowHttp: true
bootstrap:
username: admin
password: QuickStart12!
nats:
enabled: true
systemAgent:
package:
version: 1.0.0
config:
arch: amd64
deploymentType: native
containerEngine: edgelet
containerEngineUrl: unix:///run/edgelet/containerd.sock

Set systemAgent.config.arch to match your CPU (arm64, riscv64, or arm on 32-bit ARM hosts).

Deploy

potctl deploy -f quick-start.yaml

Continue with Verify the deployment.

Verify the deployment

Check potctl resources:

potctl get all

Expected output (fields may vary):

NAMESPACE
default

CONTROLLER STATUS AGE UPTIME ADDR PORT
ecn online 22m29s 22m35s 0.0.0.0 51121

AGENT STATUS AGE UPTIME ADDR VERSION
ecn RUNNING 22m7s 22m7s 192.168.1.10 1.0.0

APPLICATION STATUS MICROSERVICES

MICROSERVICE STATUS AGENT ROUTES VOLUMES PORTS

VOLUME SOURCE DESTINATION PERMISSIONS AGENTS

ROUTE SOURCE MSVC DEST MSVC

The Controller row is the control plane API. The Agent row named ecn is the system Edgelet node from spec.systemAgent (same name as metadata.name).

Note: Edgelet node status may show UNKNOWN for up to 30 seconds while the node reports liveness to the Controller.

macOS / Windows: Docker containers

On the Docker path, Controller, Router, and Edgelet workloads run as containers:

docker ps

Example output:

CONTAINER ID IMAGE COMMAND STATUS PORTS NAMES
71927882293f ghcr.io/datasance/router:3.8.0 "/qpid-dispatch/laun…" Up 15 minutes 0.0.0.0:5671->5671/tcp ...
8454ca70755b ghcr.io/datasance/edgelet:1.0.0 "edgelet daemon" Up 15 minutes ...
dc7568ad1708 ghcr.io/datasance/controller:3.8.0 "node /usr/local/lib…" Up 16 minutes 0.0.0.0:51121->51121/tcp, 0.0.0.0:8008->8008/tcp ...

Linux: Edgelet service

On the native Linux path, confirm Edgelet is running:

edgelet system status

Or:

systemctl status edgelet

List system microservices (Controller, Router) deployed through Edgelet:

edgelet ms ls

See Edgelet introduction and Control Plane YAML for field details.

Sign in to EdgeOps Console

Open http://<your-host-ip> in a browser, or run potctl view. Sign in with bootstrap user admin and password QuickStart12!, or reigstered ìofogUser: [email protected] and password QuickStartUser12! . See Embedded OIDC for MFA and CLI login.

Deploy sample workloads

This quick start stops after the Control Plane and system Edgelet node are running. To deploy applications and microservices on your local ECN:

Teardown

Remove the local ECN and any deployed microservices:

potctl delete all

Next steps

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