Skip to content

Commit e1de26c

Browse files
committed
Add container orchestration plugins
1 parent 6c4b234 commit e1de26c

13 files changed

Lines changed: 2759 additions & 908 deletions

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,8 @@ flow: if/then/else, switch/case/default, retry/do, for/in/do, block, se
283283
filesystem: fs.*
284284
data: data.archive.*, data.compression.*, data.download.*, data.transfer.*, data.backup.*, data.restore.*
285285
database: database.<engine>.check, database.<engine>.query
286+
containers: container.image.*, container.container.*, container.compose.*
287+
orchestration: kubernetes.*, helm.*
286288
identity: identity.user.*, identity.group.*
287289
network: network.connectivity.*, network.dns.*, network.firewall.*, network.http.*, network.link.*, network.route.*
288290
os/packages: os.*, os.package.*
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
<!--
2+
Copyright (C) 2026 Marco Fortina
3+
SPDX-License-Identifier: AGPL-3.0-or-later
4+
-->
5+
6+
# Container and orchestration plugins
7+
8+
Automax provides explicit plugins for container hosts and controller-side cluster operations.
9+
10+
## Docker and Podman
11+
12+
Container plugins run on the selected remote target through the step SSH session. Use `backend: docker` or `backend: podman`.
13+
14+
```yaml
15+
- id: pull_image
16+
use: container.image.pull
17+
with:
18+
backend: podman
19+
image: registry.example/app:1.2.3
20+
```
21+
22+
Container and Compose operations include deterministic manual command rendering for handovers and recovery:
23+
24+
```yaml
25+
- id: compose_check
26+
use: container.compose.config.check
27+
with:
28+
backend: docker
29+
project_dir: /srv/app
30+
file: compose.yaml
31+
32+
- id: compose_up
33+
use: container.compose.up
34+
with:
35+
backend: docker
36+
project_dir: /srv/app
37+
file: compose.yaml
38+
detach: true
39+
compose_services:
40+
- web
41+
```
42+
43+
Destructive operations such as image removal, container removal, container stop and Compose down require `confirm: true`.
44+
45+
## Kubernetes
46+
47+
Kubernetes plugins are controller-side in this release. They call `kubectl` from the Automax controller and use the controller's configured authentication.
48+
49+
```yaml
50+
- id: apply_manifest
51+
use: kubernetes.apply
52+
with:
53+
context: prod
54+
namespace: apps
55+
manifest: deploy.yaml
56+
server_side: true
57+
```
58+
59+
Supported Kubernetes operations include context checks, namespace checks, apply, delete, rollout status, resource get and logs. `kubernetes.delete` requires `confirm: true`.
60+
61+
## Helm
62+
63+
Helm plugins are controller-side and call `helm` from the Automax controller.
64+
65+
```yaml
66+
- id: deploy_chart
67+
use: helm.upgrade
68+
with:
69+
release: web
70+
chart: ./chart
71+
namespace: apps
72+
install: true
73+
atomic: true
74+
wait: true
75+
helm_timeout: 5m
76+
values_files:
77+
- values-prod.yaml
78+
set:
79+
- image.tag=1.2.3
80+
```
81+
82+
Use `helm.template` and `helm.lint` for preflight rendering and validation. `helm.rollback` and `helm.uninstall` require `confirm: true`.

0 commit comments

Comments
 (0)