iofogctl
allows users to deploy Edge Compute Networks ('ECNs'). The various resources which constitute an ECN are specified within YAML files for iofogctl to consume.
The Kubernetes Control Plane specifies all the resources required to deploy the ioFog Control Plane on a Kubernetes cluster.
apiVersion: iofog.org/v2
kind: KubernetesControlPlane
metadata:
name: buffalo
namespace: default
spec:
iofogUser:
name: Foo
surname: Bar
email: user@domain.com
password: g9hr823rhuoi
config: ~/.kube/config
Field | Description |
---|---|
iofogUser | Credentials registered against ioFog Controller REST API. |
config | Path to Kubernetes configuration file that iofogctl uses to install Controller service to Kubernetes cluster. (Note: The namespace used with iofogctl will be the kubernetes namespace to which your components will be deployed) |
The Remote Control Plane component specifies all the resources required to deploy the ioFog Control Plane on a set of remote hosts.
apiVersion: iofog.org/v2
kind: ControlPlane
metadata:
name: buffalo
namespace: default
spec:
iofogUser:
name: Foo
surname: Bar
email: user@domain.com
password: g9hr823rhuoi
controllers:
- name: vanilla
host: 30.40.50.3
ssh:
user: foo
keyFile: ~/.ssh/id_rsa
port: 22
Field | Description |
---|---|
iofogUser | Credentials registered against ioFog Controller REST API. |
controllers | List of Controller instances. |
controller.name | User-defined unique identifier of Controller instance within an iofogctl namespace. Must start and end with lowercase alphanumeric character. Can include '-' character. |
controller.host | Hostname of remote host that iofogctl must SSH into to install Controller service. |
controller.ssh.user | Username of remote host that iofogctl must SSH into to install Controller service. |
controller.ssh.keyFile | Path to private SSH key that iofogctl must use to SSH into remote host to install Controller service. |
controller.ssh.port | Port to use with SSH. Optional (default: 22). |
The Local Control Plane component specifies all the resources required to deploy the ioFog Control Plane as a local docker container.
apiVersion: iofog.org/v2
kind: LocalControlPlane
metadata:
name: buffalo
namespace: default
spec:
iofogUser:
name: Foo
surname: Bar
email: user@domain.com
password: g9hr823rhuoi
controller:
container:
image: iofog/controller:2.0.0
Field | Description |
---|---|
iofogUser | Credentials registered against ioFog Controller REST API. |
controller | Controller specification. |
controller.image | Docker image to use as the Controller. |
We can expand a Remote Control Plane by deploying a new Controller.
apiVersion: iofog.org/v2
kind: Controller
metadata:
name: alpaca
namespace: default
spec:
host: 30.40.50.5
ssh:
user: foo
keyFile: ~/.ssh/id_rsa
port: 22
Field | Description |
---|---|
name | User-defined unique identifier of Controller instance within an iofogctl namespace. Must start and end with lowercase alphanumeric character. Can include '-' character. |
host | Hostname of remote host that iofogctl must SSH into to install Controller service. |
ssh.user | Username of remote host that iofogctl must SSH into to install Controller service. |
ssh.keyFile | Path to private SSH key that iofogctl must use to SSH into remote host to install Controller service. |
ssh.port | Port to use with SSH. Optional (default: 22) |
Agents are components of an ECN which run on edge nodes. They communicate with Controllers to allow your edge nodes to host Microservices.
apiVersion: iofog.org/v2
kind: Agent
metadata:
name: meerkat
namespace: default
spec:
host: 30.40.50.6
ssh:
user: foo
keyFile: ~/.ssh/id_rsa
port: 22
Field | Description |
---|---|
name | User-defined unique identifier of Agent instance within an iofogctl namespace. Must start and end with lowercase alphanumeric character. Can include '-' character. |
host | Hostname of remote host that iofogctl must SSH into to install Agent service. |
ssh.user | Username of remote host that iofogctl must SSH into to install Agent service. |
ssh.keyFile | Path to private SSH key that iofogctl must use to SSH into remote host to install Agent service. |
ssh.port | Port to use with SSH. Optional (default: 22). |
An entire ECN can be specified within a single YAML file.
Multiple resources can be incorporated into a single YAML file using ---
as a separator.
---
apiVersion: iofog.org/v2
kind: ControlPlane
metadata:
name: buffalo
namespace: default
spec:
iofogUser:
name: John
surname: Doe
email: user@example.com
password: mysecretpw
controllers:
- name: alpaca-1
host: 30.40.50.3
ssh:
user: john
keyFile: ~/.ssh/id_rsa
- name: alpaca-2
host: 30.40.50.4
ssh:
user: john
keyFile: ~/.ssh/id_rsa
---
apiVersion: iofog.org/v2
kind: Agent
metadata:
name: hippo-1
namespace: default
spec:
host: 30.40.50.6
ssh:
user: john
keyFile: ~/.ssh/id_rsa
---
apiVersion: iofog.org/v2
kind: Agent
metadata:
name: hippo-2
namespace: default
spec:
host: 30.40.50.7
ssh:
user: john
keyFile: ~/.ssh/id_rsa