Zarf is an air-gap native package manager for Kubernetes. It provides a CLI tool to build, sign, publish, and deploy immutable software bundles (packages) into disconnected Kubernetes clusters. The architecture consists of a Go CLI that orchestrates package lifecycle (create, deploy, remove, publish, inspect), a mutating admission webhook agent that rewrites container image references and Git URLs to point to internal Zarf services, and a set of embedded tools (Helm, K9s, Syft, Cosign, etc.). Key capabilities include OCI-based package distribution, Helm chart and manifest deployment, Git repository mirroring, SBOM generation, and Cosign-based signing/verification with both key and keyless modes. The codebase is well-structured with extensive unit and e2e tests, a clean separation between API versions (v1alpha1/v1beta1) with bidirectional conversion, and several reusable subsystems for value merging, archive extraction, template processing, and Kubernetes resource waiting. It is actively maintained with frequent releases and a large community (2000+ stars).
Flux2 is a CLI tool (the `flux` command) for implementing GitOps workflows on Kubernetes. It manages the lifecycle of Flux-specific Kubernetes resources (GitRepository, HelmRepository, OCIRepository, Kustomization, HelmRelease, ImageRepository, etc.) by generating manifests, applying them via server-side apply, and monitoring reconciliation status. The CLI is built with Cobra and provides subcommands for bootstrap, install, create, get, reconcile, suspend, resume, export, delete, diff, build, push, pull, tag, trace, tree, events, logs, check, migrate, uninstall, and plugin management. It supports multiple Git providers (GitHub, GitLab, Gitea, Bitbucket Server), OCI registries, Helm repositories, and cloud authentication (AWS, Azure, GCP). The architecture follows an adapter pattern where each resource type implements a common interface, enabling generic command implementations. Key data flows include: (1) bootstrap: clone a Git repository, generate manifests, push sync config, wait for readiness; (2) install: deploy Flux controllers and CRDs onto a cluster; (3) reconcile: fetch desired state from a source (Git, OCI, Helm), compute diff, apply via Kubernetes API, wait for convergence; (4) artifact management: build tarballs from manifests and push to OCI registries with metadata. External dependencies include Kubernetes controller-runtime, go-containerregistry, go-git, and various cloud SDKs. The repository also serves as the distribution hub for Flux controller manifests and includes a GitHub Action for installing the CLI in CI pipelines.
This repository is a collection of Kubernetes exercises designed for the Certified Kubernetes Application Developer (CKAD) certification preparation. It contains 32 exercises covering core Kubernetes concepts such as pods, deployments, services, volumes, configmaps, secrets, Helm, Kustomize, and more. Each exercise includes instructions and solution files (YAML manifests) that users can apply to a Kubernetes cluster to practice the concepts. The repository also includes a GitHub Actions workflow for validating Kubernetes manifests using kubeconform. While the exercises are well-structured and educational, the codebase primarily consists of static files and exercise-specific configurations with limited reusable components beyond the CI validation workflow.
This repository is a companion to the Korean book '컨ν μ΄λ μΈνλΌ νκ²½ ꡬμΆμ μν μΏ λ²λ€ν°μ€/λ컀' (Kubernetes/Docker for Container Infrastructure). It provides a collection of Vagrant-based lab environments, shell provisioning scripts, Kubernetes YAML manifests, Helm charts, and CI/CD examples (Jenkins) to help readers build and manage Kubernetes clusters on VirtualBox. The codebase includes single-master and multi-master (via Kubespray) cluster setups, along with demonstrations of core Kubernetes concepts (Pods, Services, Ingress, Storage, Monitoring). While the repository is actively maintained with yearly architecture documents, the actual scripts and configurations rely on outdated software versions (e.g., Kubernetes 1.18, Docker 18.06, CentOS 7) and external URLs that may become stale. The code is functional for educational purposes but is boilerplate-heavy and repetitive across chapters, limiting its reusability in production environments.