Skip to content

Commit e68c45d

Browse files
committed
add argocd to essentials
1 parent 0aa8d87 commit e68c45d

File tree

4 files changed

+18
-8
lines changed

4 files changed

+18
-8
lines changed

docs/explanations/introduction.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,14 @@ There are these types of CI:
202202
or other OCI registry
203203
```
204204

205+
### Continuous Deployment
206+
207+
ArgoCD is a Kubernetes controller that continuously monitors running applications and compares the current state with the desired state described in a git repository. If the current state does not match the desired state, ArgoCD will attempt to reconcile the two.
208+
209+
For this purpose each services repository will have a companion deployment repository which tracks which versions of each IOC in the services repository should currently be deployed to the cluster. This list of IOC versions is in a single YAML file and updating this file and pushing it to the deployment repository will trigger ArgoCD to update the cluster.
210+
211+
In this fashion changes to IOC versions are tracked in git and it is easy to roll back to the same state as a given date because there is a complete record.
212+
205213
## Scope
206214

207215
This project initially targets x86_64 Linux Soft IOCs and RTEMS IOC running

docs/overview.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ There are 5 themes to this strategy:
1818
Source, container and helm repositories manage all of the above assets.
1919
No shared file systems required.
2020
21-
:Continuous Integration / Deployment:
21+
:Continuous Integration / Continuous Deployment:
2222
Source repositories automatically build containers and helm charts,
2323
delivering them to OCI registries. Services repositories automatically deploy
24-
IOCs to Kubernetes clusters.
24+
IOCs to Kubernetes clusters using ArgoCD.
2525
```

docs/reference/glossary.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ A repository that contains the definitions for a group of IOCs instances and oth
88

99
epics-containers supports two kinds of services repositories:
1010

11-
- **Kubernetes** services repositories. These are for deployment into a Kubernetes cluster. Each repositoriy contains a set of **Helm Charts** all of which will deploy into a single namespace in a single Kubernetes Cluster.
12-
- **Local Machine** services repositories. These are for deployment to a local machine using docker-compose. Each repository contains a set *compose.yaml* files that describe how to deploy a set of services to the local machine. These could potentially be used for production at a facility which does not use Kuberentes, but are primarily for development, testing and the earlier tutorials in this documenttation.
11+
- **Kubernetes** services repositories. These are for deployment into a Kubernetes cluster. Each repository contains a set of **Helm Charts** all of which will deploy into a single namespace in a single Kubernetes Cluster.
12+
- **Local Machine** services repositories. These are for deployment to a local machine using docker-compose. Each repository contains a set *compose.yaml* files that describe how to deploy a set of services to the local machine. These could potentially be used for production at a facility which does not use Kubernetes, but are primarily for development, testing and the earlier tutorials in this documentation.
1313

1414
(edge-containers-cli)=
1515
## edge-containers-cli

docs/tutorials/setup_workstation.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,12 +116,15 @@ Note that each time you open a new shell you will need to activate the virtual e
116116

117117
(ec)=
118118

119-
### edge-containers-cli
119+
### edge-containers-cli and copier
120120

121121
Above we set up a python virtual environment. Now we will install the {any}`edge-containers-cli` python tool into that environment. This tool is used to manage the IOC instances in Kubernetes and is only required for the later tutorials.
122122

123+
We also take this opportunity to install `copier` which is used to copy the templates for the services repositories and generic IOCs.
124+
123125
```bash
124126
pip install edge-containers-cli
127+
pip install copier
125128
```
126129

127130
See {any}`CLI` for more details.
@@ -147,10 +150,9 @@ version of git will work.
147150

148151
You don't need Kubernetes yet.
149152

150-
The following tutorials will take you through creating, deploying and
151-
debugging IOC instances, generic IOCs and support modules.
153+
The following tutorials will take you through creating, deploying and debugging IOC instances, generic IOCs and support modules.
152154

153-
For simplicity we don't encourage using Kubernetes at this stage. Instead we will deploy containers to the local workstation's docker or podman instance.
155+
For simplicity we don't encourage using Kubernetes at this stage. Instead we will deploy containers to the local workstation's docker or podman instance using docker compose.
154156

155157
If you are planning not to use Kubernetes at all then now might be a good time to install an alternative container management platform such as [Portainer](https://www.portainer.io/). Such tools will help you visualise and manage your containers across a number of servers. These are not required and you could just manage everything from the docker compose command line if you prefer.
156158

0 commit comments

Comments
 (0)