This repository contains a collection of examples that demonstrate various Kubernetes tools and practices, including Crossplane, Cluster API, Helm, and other cloud-native technologies.
- Nix
- Docker
Launch a development shell with the following command:
nix develop
Create a new cluster with crossplane installed:
just setup
The crossplane directory contains a collection of examples that demonstrate how to use Crossplane to provision and manage cloud services.
- Create a namespace map from a managed resource
- Create a namespace map from a managed resource with a custom provider
- Create a config map from a claim
- Create a GitHub repository from a managed resource
- Create a GitHub repository from a managed resource, but using a GitHub App credentials
- Create a config map from a composite resource
- Create a config and a secret map with pipeline mode
- Create a config map with KCL
- Create two config maps with KCL (one depends on the other)
function-extra-resources
basic examplefunction-extra-resources
withFromCompositeFieldPath
function-extra-resources
to fetch custom resources that are not XRs
SealedSecret is a Kubernetes Custom Resource Definition that allows you to store encrypted secrets in Git.
- Host Chart on Private GitHub Repository - Learn how to host and manage private Helm charts using a GitHub repository.
- Host Chart on GitHub Container Registry - Learn how to host and manage Helm charts using GitHub Container Registry (GHCR).
KCL is a constraint-based record & functional language that enhances the writing of complex configurations, including Kubernetes.
- Using KCL Operator to Mutate Kubernetes Resources - Learn how to use KCL operator to automatically add annotations to Kubernetes Pods.
external-dns is a tool that automates DNS record management for Kubernetes resources.
- Basic AWS Route53 Setup - Learn how to use external-dns with AWS Route53 for automated DNS management.
- Securing TXT Registry Records - Explore how to encrypt TXT registry records for enhanced security.
- Implementing Route53 Failover - Set up DNS failover using external-dns with AWS Route53.
external-secrets is a Kubernetes operator that integrates external secret management systems.
- Sync Kubernetes Secrets to AWS Secrets Manager - Learn how to use PushSecret to synchronize Kubernetes Secrets to AWS Secrets Manager.
- Push Secrets to Another Kubernetes Cluster - Learn how to push secrets to another Kubernetes cluster.
Delete the cluster:
just teardown