Skip to content

This repository contains a collection of examples that demonstrate various Kubernetes tools and practices, including Crossplane, Cluster API, Helm, and other cloud-native technologies.

Notifications You must be signed in to change notification settings

suinplayground/kubernetes-playground

Repository files navigation

Kubernetes Playground

This repository contains a collection of examples that demonstrate various Kubernetes tools and practices, including Crossplane, Cluster API, Helm, and other cloud-native technologies.

Requirements

  • Nix
  • Docker

Getting started

Launch a development shell with the following command:

nix develop

Create a new cluster with crossplane installed:

just setup

Crossplane

The crossplane directory contains a collection of examples that demonstrate how to use Crossplane to provision and manage cloud services.

  1. Create a namespace map from a managed resource
  2. Create a namespace map from a managed resource with a custom provider
  3. Create a config map from a claim
  4. Create a GitHub repository from a managed resource
  5. Create a GitHub repository from a managed resource, but using a GitHub App credentials
  6. Create a config map from a composite resource
  7. Create a config and a secret map with pipeline mode
  8. Create a config map with KCL
  9. Create two config maps with KCL (one depends on the other)
  10. function-extra-resources basic example
  11. function-extra-resources with FromCompositeFieldPath
  12. function-extra-resources to fetch custom resources that are not XRs

Cluster API

  1. Docker Provider (CAPD)
  2. Testing Helm Chart Distribution

SealedSecret

SealedSecret is a Kubernetes Custom Resource Definition that allows you to store encrypted secrets in Git.

  1. Encrypt a secret and decrypt sealed secret
  2. What happens when sealing key rotation occurs?

FluxCD

  1. Scanning for New Tags in GitHub Container Registry

Helm

  1. Host Chart on Private GitHub Repository - Learn how to host and manage private Helm charts using a GitHub repository.
  2. Host Chart on GitHub Container Registry - Learn how to host and manage Helm charts using GitHub Container Registry (GHCR).

KCL

KCL is a constraint-based record & functional language that enhances the writing of complex configurations, including Kubernetes.

  1. Using KCL Operator to Mutate Kubernetes Resources - Learn how to use KCL operator to automatically add annotations to Kubernetes Pods.

external-dns

external-dns is a tool that automates DNS record management for Kubernetes resources.

  1. Basic AWS Route53 Setup - Learn how to use external-dns with AWS Route53 for automated DNS management.
  2. Securing TXT Registry Records - Explore how to encrypt TXT registry records for enhanced security.
  3. Implementing Route53 Failover - Set up DNS failover using external-dns with AWS Route53.

external-secrets

external-secrets is a Kubernetes operator that integrates external secret management systems.

  1. Sync Kubernetes Secrets to AWS Secrets Manager - Learn how to use PushSecret to synchronize Kubernetes Secrets to AWS Secrets Manager.
  2. Push Secrets to Another Kubernetes Cluster - Learn how to push secrets to another Kubernetes cluster.

Tear down

Delete the cluster:

just teardown

About

This repository contains a collection of examples that demonstrate various Kubernetes tools and practices, including Crossplane, Cluster API, Helm, and other cloud-native technologies.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published