Quickstart¶
If you have not installed Ankaios or build from source already, please follow the instructions here.
Ankaios needs a startup configuration that contains all the workloads and their configuration which should be started when Ankaios starts up.
Let's create a simple config and store that in state.yaml
workloads:
nginx:
runtime: podman
agent: agent_A
restart: true
updateStrategy: AT_MOST_ONCE
accessRights: # (1)
allow: []
deny: []
tags:
- key: owner
value: Ankaios team
runtimeConfig: |
image: docker.io/nginx:latest
ports:
- containerPort: 80
hostPort: 8081
- Note that access rights are currently not implemented.
Before we start Ankaios we need to make sure that Podman is listening on a socket that can be used by Ankaios.
Then we can start the Ankaios server:
The Ankaios server will read the config but detect that no agent with the name
agent_A
is available that could start the workload.
In a new terminal let's start an agent:
This Ankaios agent will run the workload that has been assigned to it. We can use the Ankaios CLI to check the current state (again in an other terminal):
Ankaios also provides adding and removing workloads dynamically. To add another workload call:
ank run workload \
--runtime podman \
--agent agent_A \
--config 'image: docker.io/busybox:1.36
env:
MESSAGE: Hello World!
command:
- sh
- -c
- echo "$MESSAGE"
' helloworld
We can check the state again with ank get state
and see, that the workload
helloworld
has been added to currentState.workloads
and the execution
state is available in workloadStates
.
As the workload had a one time job its state is ExecSucceeded
and we can
delete it from the state again with: