ITADN
palmsoftware/quick-k8s
palmsoftware/quick-k8s · 文件
文件最后提交记录最后更新时间
README.md

quick-k8s

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

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

Requirements

RunnerArchitectureStatus
ubuntu-22.04x86_64Fully supported
ubuntu-22.04-armARM64Fully supported
ubuntu-24.04x86_64Fully supported
ubuntu-24.04-armARM64Fully supported
ubuntu-26.04x86_64Fully 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.38.1
      minikubeDriver: docker

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

Features

FeatureEnableDetails
Istio service meshinstallIstio: trueGuide
cert-manager TLSinstallCertManager: trueGuide
ingress-nginx controllerinstallIngressNginx: trueGuide
metrics-server (HPA)installMetricsServer: trueGuide
operator-sdk CLIinstallOperatorSdk: trueGuide
MetalLB load balancerinstallMetalLB: trueGuide
Monitoring (Prometheus/Thanos/Grafana)enableClusterMonitoring: trueGuide
CNI selection (Calico/Cilium/none)cniPlugin: ciliumGuide
Custom KinD configkindConfigPath: pathGuide
Local Docker registryinstallLocalRegistry: trueGuide

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

GuideDescription
Configuration ReferenceAll inputs with defaults for KinD and Minikube
Optional FeaturesIstio, cert-manager, ingress-nginx, monitoring, and more
Cluster ProvidersKinD vs Minikube comparison and recommendations
NetworkingIP family configuration (dual-stack, IPv4, IPv6)
Resource ManagementAdaptive disk and memory optimization
Downstream UsageUsing kubectl/oc, kubeconfig, storage classes
Resource RequirementsRAM, disk, and timing for each component
TroubleshootingCommon issues and solutions
Version CompatibilityComponent version matrix and known issues

Examples

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

ExampleDescription
basic-cluster.ymlMinimal cluster for CI testing
istio-service-mesh.ymlCluster with Istio and sidecar injection
monitoring-stack.ymlFull Prometheus/Thanos/Grafana stack
multi-node-cluster.ymlMulti-node with labels and topology spread
custom-cni.ymlCilium CNI example
local-registry.ymlLocal Docker registry for image builds
operator-development.ymlOLM + operator-sdk + cert-manager
full-stack.ymlAll 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