Why Polycrate?

Why Polycrate: simple actions instead of tool chaos, the toolchain inside a container, a single workspace.poly, team-friendly operations, reuse of existing code, Ansible integration, OCI registries for blocks and Git.

Why Polycrate?

Simple actions instead of tool chaos

Complex playbooks and deployments live inside blocks. Users only run actions — without having to know Ansible/Helm details:

# block.poly
name: nginx
actions:
  - name: install
    playbook: install.yml
  - name: uninstall
    playbook: uninstall.yml
  - name: status
    playbook: status.yml
polycrate run nginx install
polycrate run nginx status

Toolchain in the container

Ansible, kubectl, Helm, Python and more ship inside the Polycrate image. No patchwork of versions on your laptop is needed to get started with blocks.

One workspace.poly

The workspace describes blocks and config centrally in YAML. No custom 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 and inventory typically exist once per workspace (artifacts/secrets/kubeconfig.yml, inventory.yml) — not via block-to-block from: chains. → Best practices

Team-friendly

The same actions for ops and less technical colleagues (install, restart, log actions). The implementation stays in the playbook.

Existing code remains usable

Polycrate executes — existing Ansible/Python/script logic becomes a block, without a rewrite.

Ansible integration

Inventory, SSH keys and kubeconfig are mounted consistently for runs. Details: Ansible, SSH.

OCI registry for blocks

Blocks are OCI images. Push/pull against Harbor, Docker Hub or any compatible registry — always with the full path:

polycrate blocks pull registry.acme.corp/blocks/k8s/cluster:0.0.1
polycrate blocks push registry.acme.corp/infra/my-block

→ Registry

Git

A workspace contains config, blocks and secrets artifacts and can be versioned like any repo. → Git