mrkeyoor.com_
Wed 09 Sept 16:52 UTC
Automationevaluationupdated 09 Sept 2026

krops review

Krops is an English-language reference implementation for managing cloud infrastructure through Kubernetes resources and GitOps. It combines Flux, Cluster API, and existing cloud controllers instead of adding its own controller or resource type. Platform teams can study or fork it to manage clusters and AWS resources from the same YAML, policy, and audit system used for workloads.

trackingstars / 7d
Verdict

Our krops build took 75 seconds and all 100 Rust tests passed in 44 seconds, making the bootstrap code the strongest measured result in this group. Fork it when your platform team already trusts Flux and Cluster API, and when AWS plus local Docker cover the environments you can verify yourself. Wait for live AWS pivot evidence and a disaster-recovery procedure before making it the sole control plane for important infrastructure.

We ran it

Lab card: what happened when we ran kropsScreenshot of krops (github.com/polarsquad/krops)
Install✓ · 28s151 packages
Build✓ · 75s
Tests✓ · 44s100 passed · 0 failed of 100 (cargo test)
Repo203 files~9,360 lines of source · 3.7 MB · 5 CI workflows · Dockerfile · tests dir

Answers from our run

Does krops build from source?

Dependencies installed in 28 seconds (151 packages), and the build succeeded in 75 seconds. We cloned commit 3927df5 into a clean Debian container with 3 CPUs and no project-specific setup.

Do krops's tests pass?

Yes: 100 of 100 passed when we ran the project's own test command (cargo test). Some failures need services or credentials a bare container does not have.

Who should not use krops?

Teams seeking a supported product or self-service portal: the README calls krops a reference implementation that users should fork and adapt.

What are the alternatives to krops?

Crossplane, OpenTofu, Pulumi. Our krops build took 75 seconds and all 100 Rust tests passed in 44 seconds, making the bootstrap code the strongest measured result in this group.

Setup2/5Tests pass, but real setup spans engines, clusters, keys, and cloud IAM
Docs5/5Detailed bootstrap, secrets, teardown, air-gap, and recovery guides
Community3/5132 stars, with same-day issue and pull-request activity
Maturity3/5100 tests pass, but no semver release or live AWS pivot proof

Who it’s for

Platform engineers who already operate Kubernetes, Flux, and Cluster API.
AWS teams willing to replace Terraform-style plan and state workflows with continuous controller reconciliation.
Operators who need a tested local Docker path before spending money on cloud infrastructure.
Air-gapped Kubernetes teams prepared to build, sign, transfer, and verify a Zarf bundle.
Rust contributors working on bootstrap, pivot, and teardown automation for management clusters.

Who it’s NOT for

Teams seeking a supported product or self-service portal: the README calls krops a reference implementation that users should fork and adapt.
Azure or GCP operators needing a first-class path today: issues 71 and 72 remain open, while the checked-in cloud environment targets AWS.
Buyers who require published versioned artifacts: no semver release exists yet, so the README tells users to build the toolbox image from the checkout.
AWS teams that require recorded live pivot proof before adoption: issue 143 says the AWS path has never been executed against real AWS.
Operators who need a verified disaster-recovery procedure for the self-managed control plane: high-priority issue 186 is still in design.
Developers unwilling to mount a Docker or Podman socket into the toolbox container or operate nested management and workload clusters.

Setup reality

Our sandbox installed 151 Rust packages in 28 seconds at commit 3927df5. The build succeeded in 75 seconds, and cargo test finished in 44 seconds with 100 passed and 0 failed. The Rust project lives under bootstrap-rs/, rather than at the repository root.

The local-host path needs Docker or Podman 5.5+, a locally built toolbox image, a writable kubeconfig, and access to the engine socket. Native development also needs Mise 2026.8.10+ and Rust. No published semver image is available yet.

AWS adds a GitHub PAT, an age key, AWS credentials, IAM permissions, EKS and VPC quotas, and billed resources. Local Talos adds a reachable Tinkerbell stack, bare-metal site values, and PXE preparation. Teardown and recovery deserve the same rehearsal as bootstrap.

Krops 0.2.0 uses existing Kubernetes APIs instead of a new controller

Krops 0.2.0 puts infrastructure desired state into Git as Kubernetes YAML, then lets Flux and controllers reconcile it continuously. Cluster API handles clusters, AWS Controllers for Kubernetes handles cloud resources, and Kubernetes supplies RBAC and audit records. Krops does not add its own custom resource or long-running controller. The only project-specific program is the krops-bootstrap CLI for initial bootstrap, control-plane pivot, and teardown. This is appealing when those upstream APIs already describe what a platform needs and another abstraction would only hide them.

The scope is still larger than the 203-file checkout suggests. Our scan counted roughly 9,360 lines of source in 3.7 MB, split across Rust, shell, Python checks, Flux manifests, Kustomize overlays, and documentation. The repository includes an AWS EKS environment, a local Docker environment, and a Talos-on-Tinkerbell environment. A Zarf path packages the local setup for disconnected operation. Krops calls itself a working reference implementation, so the expected adoption path is to fork it, remove irrelevant environments, and own the remaining manifests.

What happened when we ran it

Our sandbox installed 151 Rust packages in 28 seconds at commit 3927df5. The project lives under bootstrap-rs/, a detail that matters when running Cargo commands manually. Compilation succeeded in 75 seconds. The repository had 5 CI workflow files, a Dockerfile, and a tests directory. Compared with the other projects in this batch, the codebase gave the clearest fresh-container result: its documented Rust subproject resolved and built without a missing tool or hidden credential.

Cargo test completed in 44 seconds with 100 passed and 0 failed out of 100. The measurement covers the Rust project in our unprivileged 3-CPU, 12 GB sandbox. It does not prove that EKS, Flux reconciliation, Tinkerbell PXE, or air-gapped deployment works on your infrastructure. Those paths require container engines, clusters, networks, and external controllers that the Cargo suite cannot reproduce. Still, a fully passing local test result gives a much better starting point for changing lifecycle code than an untested collection of shell scripts.

Local evaluation needs an engine socket and creates two clusters

The local-host quick start requires Docker or Podman 5.5+, then builds bootstrap-rs/Dockerfile because no semver toolbox release exists. The container mounts the repository, a writable .kube directory, and the host engine socket. Krops creates a kind management cluster, a local registry, and a one-control-plane, one-worker workload cluster through Cluster API's Docker provider. A separate Flux instance runs on the workload cluster and deploys Podinfo, giving operators an end-to-end path that spends no AWS money.

Native setup adds Mise 2026.8.10 or newer and the Rust toolchain, while the toolbox carries kubectl, kind, Helm, Flux, clusterctl, SOPS, age, and AWS utilities. The 75-second Rust build is a small part of that toolchain. AWS needs a repository PAT, age keys, broad cluster-creation permissions, and capacity for at least 3 free Elastic IPs plus 4 vCPUs of the named GPU instance class. The operations guide documents credential forwarding and teardown switches carefully, but each permission and quota still belongs to the adopting operator.

AWS pivot and control-plane recovery remain unverified

Krops 0.2.0 had no GitHub release listed on September 9, 2026. The repository has a workflow configured to publish signed amd64 and arm64 toolbox images with an SPDX SBOM after a matching version tag, but the README describes that event in the future. Issue 143 says the AWS pivot has never run against real AWS, even though its repository work is merged. Local-host pivot evidence cannot establish that existing EKS workload clusters survive a management-control-plane move without disruption.

The hardware path also needs precise reading. A Talos acceptance run completed, but issue 225 says it used a hand-booted ISO instead of the documented PXE and Tinkerbell Workflow. The project still needs a real PXE run. High-priority issue 186 is designing disaster recovery for loss of the self-managed management cluster, including which runtime state and secrets Git cannot reconstruct. Those are adoption gates for a control plane that may manage surviving production clusters after its own failure.

The arm64 air-gap path has real evidence and known limits

The 3.7 MB checkout includes an arm64-only Zarf path that was deployed with Wi-Fi disabled on August 18, 2026. Its flow verifies package signatures and checksums before changing a cluster, includes Syft SBOMs, and checks that reconciled images come from the internal registry. The current package keeps kind as the management substrate, and the connected toolbox is not included in its inventory. This is unusually specific documentation for disconnected testing, while those stated limits keep the result tied to one architecture and one reference environment.

GitHub showed 132 stars, 33 open issues, 4 open pull requests, and a last push on September 9, 2026. Same-day issue and pull-request updates, plus a run of merged Renovate changes on September 8, show active maintenance. The open work is substantive: scheduled deployment testing, AWS proof, disaster recovery, and coherent air-gap dependency updates. Crossplane is the safer comparison for an established Kubernetes infrastructure platform. OpenTofu or Pulumi fits teams that prefer an external infrastructure engine. Krops fits teams prepared to own this exact GitOps pattern and its operational evidence.

Alternatives

ProjectWhat it isPick it when
Crossplane gh↗A Kubernetes control plane for composing and reconciling infrastructure APIs.pick this instead when you want a widely adopted control plane with providers and custom platform APIs rather than a forkable reference stack.
OpenTofu gh↗An open-source infrastructure-as-code engine using declarative plans and state files.pick this instead when plan and apply reviews suit your team and you do not want Kubernetes to own infrastructure reconciliation.
Pulumi gh↗An infrastructure-as-code platform that defines resources in general-purpose languages.pick this instead when application-language abstractions matter more than a YAML-only Kubernetes control plane.

What people are saying

  1. [github-trending] polarsquad/krops

Sources

  1. Krops repository and README
  2. Krops operations guide
  3. Krops bootstrap CLI guide
  4. Krops air-gap guide
  5. Rendered Flux pull-request review guide
  6. Live AWS pivot verification issue
  7. Management-cluster disaster recovery issue
  8. Talos PXE validation issue

More automation reviews

escrcpy · jenkins · n8n-workflows · winutil · kudu · AutoHedge · the whole board →