Warum Polycrate?¶
Einfache Actions statt Tool-Chaos¶
Komplexe Playbooks und Deployments stecken in Blocks. Nutzer führen nur Actions aus — ohne Ansible/Helm-Details kennen zu müssen:
# block.poly
name: nginx
actions:
- name: install
playbook: install.yml
- name: uninstall
playbook: uninstall.yml
- name: status
playbook: status.yml
Toolchain im Container¶
Ansible, kubectl, Helm, Python u. a. liegen im Polycrate-Image. Kein Versions-Patchwork auf dem Laptop nötig, um mit Blocks zu starten.
Eine workspace.poly¶
Der Workspace beschreibt Blöcke und Config zentral in YAML. Keine eigene DSL.
# workspace.poly
name: my-workspace
organization: acme
blocks:
- name: cluster
from: registry.acme.corp/infra/k8s:1.0.0
- name: myapp
from: registry.acme.corp/apps/myapp:1.0.0
config:
replicas: 2
Kubeconfig und Inventory liegen typischerweise einmal pro Workspace (artifacts/secrets/kubeconfig.yml, inventory.yml) — nicht über Block-zu-Block-from:-Ketten. → Empfehlungen
Teamfähig¶
Gleiche Actions für Ops und weniger technische Kollegen (install, restart, Log-Actions). Implementierung bleibt im Playbook.
Bestehender Code bleibt nutzbar¶
Polycrate führt aus — bestehende Ansible-/Python-/Script-Logik wird zum Block, ohne Rewrite.
Ansible-Integration¶
Inventory, SSH-Keys und Kubeconfig werden für Runs konsistent eingehängt. Details: Ansible, SSH.
OCI-Registry für Blocks¶
Blocks sind OCI-Images. Push/Pull gegen Harbor, Docker Hub oder jede kompatible Registry — immer mit vollem Pfad:
polycrate blocks pull registry.acme.corp/blocks/k8s/cluster:0.0.1
polycrate blocks push registry.acme.corp/infra/my-block
→ Registry
Git¶
Ein Workspace enthält Config, Blocks und Secrets-Artefakte und lässt sich wie jedes Repo versionieren. → Git