Skip to content

Commit

Permalink
Merge pull request #27 from eclipse-iofog/k8sYaml
Browse files Browse the repository at this point in the history
K8s yaml
  • Loading branch information
Pixcell committed Oct 29, 2019
2 parents a4aa9a3 + 3ef6b9e commit c74ebf2
Show file tree
Hide file tree
Showing 25 changed files with 242 additions and 659 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG-1.3.md
@@ -0,0 +1,5 @@
## v1.3.0
* Use iofogctl and yaml file for deploying ioFog resources
* Remove Dockerfiles and docker-compose files
* Update test script to set up agent ssh access
* Improve logging
58 changes: 21 additions & 37 deletions README.md
Expand Up @@ -15,12 +15,11 @@ Supported operating systems:

* Linux (kernel v3.10+)
* macOS 10.12+
* Windows 7+

Requires tools:

* Docker 1.10+ ([installation instructions](https://docs.docker.com/install/))
* Docker-compose 1.22+ ([installation instructions](https://docs.docker.com/compose/install/))
* iofogctl 1.3.0+ ([installation instructions](https://github.com/eclipse-iofog/iofogctl/tree/v1.3.0#install))


# Try ioFog - Simple Edge Compute Network
Expand Down Expand Up @@ -52,38 +51,17 @@ When you are finished, tear down the ioFog stack and all services deployed on it
./stop.sh
```

## Build from local packages
## Build from local images

If you have a local version of the Agent, Controller and Connector, you can chose to build the containers using those local packages.
To do so, you will need a debian package (`.deb`) for the Agent and the Connector and a tarball (`.tgz`) for the Controller.
If you have a local image version of the Agent, Controller and Connector, you can chose to build the containers using those local images.
To do so, you will need a docker image for the Agent, the Connector and the Controller.
You can provide `start.sh` with an option for each local package you want to use.

### Example
Folder structure:
```text
* services
* init
* test
* local-packages # Example folder where you would store your local packages
- iofog-agent_2.0.deb
- iofog-connector_2.0.deb
- iofog-controller_2.0.tgz
* start.sh
* stop.sh
* ...
```

Command:
```sh
./start.sh -a ./local-packages/iofog-agent_2.0.deb -cn ./local-packages/iofog-connector_2.0.deb -ct ./local-packages/iofog-controller_2.0.tgz
```

## Force rebuild
If you have previously built the containers using local packages, or remote packages and you want to ensure that running `start.sh` will rebuild the images, you can also provide the `--no-cache` option


```sh
./start.sh --no-cache
./start.sh -a gcr.io/focal-freedom-236620/agent:latest -cn gcr.io/focal-freedom-236620/connector:latest -ct gcr.io/focal-freedom-236620/controller:latest
```

## ECN Status
Expand All @@ -94,22 +72,21 @@ If you have previously built the containers using local packages, or remote pack

## Interacting With The ioFog Stack - CLI

The simplest way to interact with Agent, Controller, and Connector deployed on a machine you have access to is to use the command line interface. The main interaction point for users is the Controller.
The simplest way to interact with Agent, Controller, and Connector deployed on a machine you have access to is to use the command line interface `iofogctl`.

```sh
docker exec -it iofog-controller iofog-controller help
iofogctl help
```
For the purpose of this demo, all ioFog components are spun up in separate Docker containers. The Controller's container is called `iofog-controller` (the first occurrence in the above command) and the executable inside the container is also called `iofog-controller` (the second occurrence).)_

For the purpose of this demo, all ioFog components are spun up in separate Docker containers. The Controller's container is called `iofog-controller`.

Names for all the containers created in the demo are `iofog-agent`, `iofog-controller` and `iofog-connector`.

The initialization scripts used to setup the ioFog stack / ECN are using the CLI interface. Feel free to refer to these for more inspiration.

Full reference of the CLI for all ioFog stack components is available at the ioFog website:
Full reference of the CLI is available at the iofogctl github repository:

* https://iofog.org/docs/1.0.0/controllers/cli-usage.html
* https://iofog.org/docs/1.0.0/agents/cli-usage.html
* https://iofog.org/docs/1.0.0/connectors/cli-usage.html
* https://github.com/eclipse-iofog/iofogctl/tree/v1.3.0#usage

## Interacting With The ioFog Stack - REST API

Expand All @@ -136,11 +113,18 @@ First, create all services for a tutorial ioFog application. You don't have to s
./start.sh tutorial
```

When you are done with the tutorial, you can tear down the sample application together with the ioFog stack. Note there is currently no wya in the demo to tear down just the tutorial application.
When you are done with the tutorial, you can tear down the sample application together with the ioFog stack.

```sh
./stop.sh
```

if you only wish to delete the tutorial application:

```sh
iofogctl delete application tutorial
```

# Structure Of This Repository
```text
* services # Service Dockerfiles and customization files
Expand All @@ -149,8 +133,8 @@ When you are done with the tutorial, you can tear down the sample application to
+ iofog-connector # Connector service files - part of the iofog stack
+ iofog-controller # Controller service files - part of the iofog stack
* init
- iofog # plain ioFog stack initialization service
- tutorial # tutorial initialization service
- iofog # plain ioFog stack initialization yaml file
- tutorial # tutorial initialization yaml file
* test
+ conf # generated test configuration files
* azure-pipelines.yml
Expand Down
21 changes: 18 additions & 3 deletions azure-pipelines.yml
Expand Up @@ -21,16 +21,31 @@ steps:
- task: DockerInstaller@0
displayName: Docker Installer
inputs:
dockerVersion: 18.09.2
dockerVersion: 19.03.2
releaseType: stable

- script: |
# curl -s https://packagecloud.io/install/repositories/iofog/iofogctl/script.deb.sh | sudo bash
# Using dev version of iofogctl until 1.3.0 release
curl -s https://8c90601638aff0b3fb520971175089bbaba2cf7f29be9528:@packagecloud.io/install/repositories/iofog/iofogctl-snapshots/script.deb.sh | sudo bash
sudo apt install iofogctl=1.3.0-dev
displayName: 'Install iofogctl'

- script: |
echo $(gcp.svcacc) | docker login -u _json_key --password-stdin https://gcr.io
displayName: 'Docker connect to Registry'

# - script: |
# docker pull gcr.io/focal-freedom-236620/controller:develop
# docker pull gcr.io/focal-freedom-236620/connector:develop
# docker pull gcr.io/focal-freedom-236620/agent:develop
# displayName: 'Pull latest images'

- script: |
./start.sh
displayName: 'Start Connector, Controller, and Agent'
./start.sh tutorial || iofogctl version
# Use dev version of agent and controller until 1.3.0 release
# ./start.sh -ct gcr.io/focal-freedom-236620/controller:develop -a gcr.io/focal-freedom-236620/agent:develop -cn gcr.io/focal-freedom-236620/connector:develop
displayName: 'Start Connector, Controller, Agent, and tutorial microservices'

- script: |
./test.sh
Expand Down
60 changes: 0 additions & 60 deletions docker-compose-iofog.yml

This file was deleted.

12 changes: 0 additions & 12 deletions docker-compose-tutorial.yml

This file was deleted.

7 changes: 0 additions & 7 deletions init/iofog/Dockerfile

This file was deleted.

33 changes: 33 additions & 0 deletions init/iofog/local-stack.yaml
@@ -0,0 +1,33 @@
---
apiVersion: iofog.org/v1
kind: ControlPlane
metadata:
name: local-ecn
spec:
images:
controller: docker.io/iofog/controller:1.3.0-beta
iofogUser:
name: test
surname: local
email: user@domain.com
password: '#Bugs4Fun'
controllers:
- name: local-controller
host: localhost
---
apiVersion: iofog.org/v1
kind: Connector
metadata:
name: local-connector
spec:
host: localhost
image: docker.io/iofog/connector:1.3.0-beta
---
apiVersion: iofog.org/v1
kind: Agent
metadata:
name: local-agent
spec:
host: localhost
image: docker.io/iofog/agent:1.3.0-beta

0 comments on commit c74ebf2

Please sign in to comment.