🌀 Polycrate¶
Was ist Polycrate?¶
Polycrate ist ein Framework mit dem Sie komplexe Anwendungen und IT- oder Cloud-Infrastruktur paketieren, integrieren und automatisieren können. Mit Polycrate können Sie Tools, Abhängigkeiten und Installations-Logik für beliebige IT-Systeme, sog. Blocks, in einem gemeinsamen Workspace zusammenführen und benutzerfreundliche Actions bereitstellen, die für jedes System einen individuellen Installations- und Wartungs-Workflow ermöglichen.
Links¶
- GitHub: polycrate/polycrate
- PolyHub: hub.polycrate.io
Überblick¶
Polycrate ist ein Kommandozeilen-Tool und benötigt Docker auf dem System, auf dem es eingesetzt wird. Polycrate führt alle Actions in einem Docker Container aus, der eine Vielzahl an cloud-nativen Tools enthält, die für die Zusammenarbeit mit beliebten Zielsystemen wie Docker oder Kubernetes vorkonfiguriert sind.
Polycrate unterstützt eine Vielzahl an Implementierungen für Actions, bietet aktuell aber den besten Support für Actions die auf Ansible basieren.
Architektur¶
graph TB
User[Benutzer] -->|polycrate CLI| CLI[Polycrate CLI]
CLI -->|lädt| WS[Workspace]
CLI -->|erstellt| Container[Docker Container]
WS -->|enthält| Blocks[Blocks]
WS -->|definiert| Workflows[Workflows]
WS -->|konfiguriert| Config[workspace.poly]
Container -->|führt aus| Ansible[Ansible Playbooks]
Container -->|führt aus| Kubectl[kubectl/Helm]
Container -->|führt aus| Scripts[Bash Scripts]
Container -->|führt aus| Terraform[Terraform]
Ansible -->|provisioniert| Hosts[Linux Hosts]
Kubectl -->|deployed| K8s[Kubernetes Cluster]
Terraform -->|provisioniert| Cloud[Cloud-Infrastruktur]
Scripts -->|automatisiert| Tasks[Diverse Tasks]
CLI -->|push/pull| Hub[Polycrate Hub]
CLI -->|push/pull| Registry[OCI Registry]
CLI -->|erstellt| TX[Transactions]
TX -->|logged in| Logs[.logs/]
TX -->|erzeugt| Events[Events]
Events -->|sendet an| Webhook[Webhook Endpoint]
Blocks -->|speichern| Artifacts[artifacts/]
Artifacts -->|enthält| Inventory[Ansible Inventory]
Artifacts -->|enthält| Kubeconfig[Kubeconfig]
style WS fill:#e1f5ff
style Container fill:#fff4e1
style Hub fill:#f0e1ff
style TX fill:#ffe1e1 Polycrate orchestriert Infrastructure-as-Code über einen containerisierten Ansatz. Die CLI lädt einen Workspace, erstellt einen Docker-Container mit allen notwendigen Tools (Ansible, kubectl, Helm, Terraform), und führt Actions aus Blocks aus. Alle Operationen werden als Transactions geloggt und können Events generieren, die an externe Systeme gesendet werden.
Kernkonzepte¶
Blocks¶
Blocks sind modulare Einheiten in Polycrate, die Tools, Abhängigkeiten und Installations-Logik für beliebige IT-Systeme kapseln.
Workspace¶
Ein Workspace ist die gemeinsame Umgebung, in der verschiedene Blocks zusammengeführt werden.
Actions¶
Actions sind benutzerfreundliche Befehle, die für jedes System einen individuellen Installations- und Wartungs-Workflow ermöglichen.
Nächste Schritte¶
- Erste Schritte - Installation und Setup von Polycrate
- Konfiguration - Konfiguration von Workspaces und Blocks
- API Referenz - Detaillierte API-Dokumentation