kure

module
v0.2.0-beta.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 3, 2026 License: Apache-2.0

README

Kure

CI codecov Go Report Card Go Reference License Release

Kure is a Go library for programmatically building Kubernetes resources used by GitOps tools like Flux, cert-manager, MetalLB, and External Secrets. The library emphasizes strongly-typed object construction over templating engines, providing a clean, type-safe approach to Kubernetes manifest generation.

Features

  • Type-safe Kubernetes resource builders (Deployments, Services, RBAC, etc.)
  • GitOps workflow support (Flux CD and ArgoCD)
  • Hierarchical domain model (Cluster → Node → Bundle → Application)
  • Declarative JSONPath-based patching
  • Certificate management (cert-manager, ACME)
  • Secret management (External Secrets, multiple cloud providers)
  • Network configuration (MetalLB)
  • Manifest layout engine with auto-generated kustomization.yaml
  • Built-in configuration validation

Installation

go get github.com/go-kure/kure

Documentation

  • Website — guides, architecture, and tutorials
  • API Reference — full Go package documentation
  • examples/ — cluster configurations and patching samples

Development

Quick commands:

make test    # Run tests
make lint    # Run linter

License

This project is licensed under the Apache License 2.0.

Directories

Path Synopsis
examples
getting-started command
Package main demonstrates the complete Kure pipeline from Cluster definition to on-disk manifest directory.
Package main demonstrates the complete Kure pipeline from Cluster definition to on-disk manifest directory.
internal
kubernetes
Package k8s offers helper functions for core Kubernetes resources such as Deployments, Services and ConfigMaps.
Package k8s offers helper functions for core Kubernetes resources such as Deployments, Services and ConfigMaps.
pkg
errors
Package errors provides structured error types and handling utilities for the Kure library and kurel tool.
Package errors provides structured error types and handling utilities for the Kure library and kurel tool.
gvk
Package gvk provides shared infrastructure for Group, Version, Kind (GVK) based type systems within Kure.
Package gvk provides shared infrastructure for Group, Version, Kind (GVK) based type systems within Kure.
io
Package io provides utilities for reading, writing and parsing YAML representations of Kubernetes resources.
Package io provides utilities for reading, writing and parsing YAML representations of Kubernetes resources.
kubernetes
Package kubernetes exposes ConfigMap builders that delegate to internal/kubernetes, keeping the implementation in one place while providing the public API.
Package kubernetes exposes ConfigMap builders that delegate to internal/kubernetes, keeping the implementation in one place while providing the public API.
kubernetes/certmanager
Package certmanager exposes helper functions for constructing resources used by the cert-manager project.
Package certmanager exposes helper functions for constructing resources used by the cert-manager project.
kubernetes/cilium
Package cilium exposes helper functions for constructing Cilium network policy resources.
Package cilium exposes helper functions for constructing Cilium network policy resources.
kubernetes/cnpg
Package cnpg exposes helper functions for constructing resources used by CloudNativePG (CNPG) and the Barman Cloud plugin.
Package cnpg exposes helper functions for constructing resources used by CloudNativePG (CNPG) and the Barman Cloud plugin.
kubernetes/externalsecrets
Package externalsecrets exposes helper functions for constructing external-secrets resources.
Package externalsecrets exposes helper functions for constructing external-secrets resources.
kubernetes/fluxcd
Package fluxcd exposes helper functions for constructing resources used by the Flux family of controllers.
Package fluxcd exposes helper functions for constructing resources used by the Flux family of controllers.
kubernetes/metallb
Package metallb exposes helper functions for constructing MetalLB resources.
Package metallb exposes helper functions for constructing MetalLB resources.
kubernetes/prometheus
Package prometheus exposes helper functions for constructing Prometheus operator resources.
Package prometheus exposes helper functions for constructing Prometheus operator resources.
kubernetes/volsync
Package volsync provides builders for VolSync (volsync.backube/v1alpha1) resources: ReplicationSource and ReplicationDestination.
Package volsync provides builders for VolSync (volsync.backube/v1alpha1) resources: ReplicationSource and ReplicationDestination.
logger
Package logger provides a structured logging interface for the Kure library.
Package logger provides a structured logging interface for the Kure library.
manifest
Package manifest provides shared classification of Kubernetes manifests: recognizing CustomResourceDefinitions and determining the namespacing (scope) of an arbitrary object.
Package manifest provides shared classification of Kubernetes manifests: recognizing CustomResourceDefinitions and determining the namespacing (scope) of an arbitrary object.
stack
Package stack provides the core domain model for defining and generating Kubernetes cluster configurations with GitOps tooling (Flux CD or ArgoCD).
Package stack provides the core domain model for defining and generating Kubernetes cluster configurations with GitOps tooling (Flux CD or ArgoCD).
stack/helm
Package helm provides client-side Helm chart rendering from OCI registries and HTTP Helm repositories.
Package helm provides client-side Helm chart rendering from OCI registries and HTTP Helm repositories.
stack/layout
Package layout provides utilities for generating cluster directory layouts and for writing Kubernetes and Flux manifests to disk.
Package layout provides utilities for generating cluster directory layouts and for writing Kubernetes and Flux manifests to disk.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL