Setup Your Control Plane

Every Edge Compute Network ('ECN') starts with a Control Plane that allows you to manage your ECN's resources.

In this guide, our Control Plane will deploy a single Controller instance. Our enterprise solution can be used to deploy multiple, highly available Controller instances within a single Control Plane but that process is not covered here.

There are two flavours of Controller deployments - Vanilla and Kubernetes. If you have a Kubernetes cluster, you can deploy a Controller directly onto it. Otherwise, a Linux remote host will do just fine.

Deploy Controllers on Kubernetes

Create a template of controlplane.yaml like so:

echo "---
apiVersion: iofog.org/v1
kind: ControlPlane
metadata:
  name: albatros-1
spec:
  iofogUser:
    name: Foo
    surname: Bar
    email: user@domain.com
    password: iht234g9afhe
  controllers:
  - name: alpaca-1
    kube:
      config: ~/.kube/config" > /tmp/controlplane.yaml

Make sure to specify the correct value for the kube.config field.

Once you have edited the fields to your liking, go ahead and run:

iofogctl deploy -f /tmp/controlplane.yaml

Naturally, we can also use kubectl to see what is happening on the Kubernetes cluster.

kubectl get pods
kubectl get services

The next section covers how to do the same thing we just did, but on a remote host instead of a Kubernetes cluster. We can skip ahead.

Deploy Controllers on Remote Hosts

Create a template of controlplane.yaml like so:

echo "---
apiVersion: iofog.org/v1
kind: ControlPlane
metadata:
  name: albatros
spec:
  iofogUser:
    name: Foo
    surname: Bar
    email: user@domain.com
    password: iht234g9afhe
  controllers:
  - name: alpaca-1
    host: 38.101.23.2
    ssh:
      user: bar
      keyFile: ~/.ssh/id_rsa" > /tmp/controlplane.yaml

Make sure to edit the host, ssh.user, and ssh.keyFile fields to correspond with the remote host you are deploying to.

Once you have edited the fields to your liking, go ahead and run:

iofogctl deploy -f /tmp/controlplane.yaml

Verify the Deployment

We can use the following commands to verify the Control Plane is up and running:

iofogctl get controllers
iofogctl describe controller alpaca-1
iofogctl describe controlplane

Continue To Next Step: Setup your Connectors.