Skip to content
palmsoftwarePublic

About

Github Action that will automatically create a Kubernetes cluster that lives and runs on Github Actions

Resources

Stars

0 stars

Watchers

0 watching

Forks

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Latest commit

 

History

467 Commits

Folders and files

Repository files navigation

quick-k8s

Test Changes Version Updates Nightly Update OLM Version Nightly Update Major Version Tag

A GitHub Action that deploys Kubernetes clusters on GitHub Actions runners for testing and development. Supports KinD (default) and Minikube as cluster providers.

Requirements

Runner Architecture Status
ubuntu-22.04 x86_64 Fully supported
ubuntu-22.04-arm ARM64 Fully supported
ubuntu-24.04 x86_64 Fully supported
ubuntu-24.04-arm ARM64 Fully supported
ubuntu-26.04 x86_64 Fully supported
ubuntu-26.04-arm ARM64 Fully supported

Quick Start

steps:
  - name: Set up Quick-K8s
    uses: palmsoftware/quick-k8s@v0

This creates a 1 control-plane + 1 worker cluster with Calico CNI. To use Minikube instead:

steps:
  - name: Set up Quick-K8s with Minikube
    uses: palmsoftware/quick-k8s@v0
    with:
      clusterProvider: minikube
      minikubeVersion: v1.39.0
      minikubeDriver: docker

All inputs have sensible defaults. See the Configuration Reference for the complete list.

Features

Feature Enable Details
Istio service mesh installIstio: true Guide
cert-manager TLS installCertManager: true Guide
ingress-nginx controller installIngressNginx: true Guide
metrics-server (HPA) installMetricsServer: true Guide
operator-sdk CLI installOperatorSdk: true Guide
TLS Compliance Operator installTLSComplianceOperator: true (default: false) Guide
Image Cert Info Operator installImageCertInfoOperator: true (default: false) Guide
MetalLB load balancer installMetalLB: true Guide
Monitoring (Prometheus/Thanos/Grafana) enableClusterMonitoring: true Guide
CNI selection (Calico/Cilium/none) cniPlugin: cilium Guide
Custom KinD config kindConfigPath: path Guide
Local Docker registry installLocalRegistry: true Guide

Using the Cluster

The action configures kubectl (and oc on Linux) automatically. No extra setup needed:

- name: Verify cluster
  run: |
    kubectl get nodes
    kubectl cluster-info

See the Downstream Usage Guide for kubeconfig details, context names, and storage classes.

Guides

Guide Description
Configuration Reference All inputs with defaults for KinD and Minikube
Optional Features Istio, cert-manager, ingress-nginx, monitoring, and more
Cluster Providers KinD vs Minikube comparison and recommendations
Networking IP family configuration (dual-stack, IPv4, IPv6)
Resource Management Adaptive disk and memory optimization
Downstream Usage Using kubectl/oc, kubeconfig, storage classes
Resource Requirements RAM, disk, and timing for each component
Troubleshooting Common issues and solutions
Version Compatibility Component version matrix and known issues

Examples

The examples/ directory contains copy-paste-ready workflow recipes:

Example Description
basic-cluster.yml Minimal cluster for CI testing
istio-service-mesh.yml Cluster with Istio and sidecar injection
monitoring-stack.yml Full Prometheus/Thanos/Grafana stack
multi-node-cluster.yml Multi-node with labels and topology spread
custom-cni.yml Cilium CNI example
local-registry.yml Local Docker registry for image builds
operator-development.yml OLM + operator-sdk + cert-manager
full-stack.yml All components combined

History

Originally built upon KinD and tuned as part of certsuite-sample-workload, the project now supports KinD and Minikube as cluster providers.

This action is essentially a wrapper around best practices for deploying Kubernetes environments that run well on GitHub Actions free-tier Ubuntu runners, with intelligent resource management and optimizations for CI/CD workflows.

References

About

Github Action that will automatically create a Kubernetes cluster that lives and runs on Github Actions

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages