Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/medyagh/setup-minikube
official minikube github action, continuous integration test on Kubernetes cluster, test your code on a certified Kubernetes
https://github.com/medyagh/setup-minikube
ci continuous-integration e2e-tests github-actions k8s kubernetes local-kubernetes-cluster minikube
Last synced: 7 days ago
JSON representation
official minikube github action, continuous integration test on Kubernetes cluster, test your code on a certified Kubernetes
- Host: GitHub
- URL: https://github.com/medyagh/setup-minikube
- Owner: medyagh
- License: mit
- Created: 2020-04-18T02:21:37.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-12-12T20:45:06.000Z (10 days ago)
- Last Synced: 2024-12-12T21:29:54.435Z (10 days ago)
- Topics: ci, continuous-integration, e2e-tests, github-actions, k8s, kubernetes, local-kubernetes-cluster, minikube
- Language: TypeScript
- Homepage: https://minikube.sigs.k8s.io/docs/tutorials/setup_minikube_in_github_actions/
- Size: 5.91 MB
- Stars: 97
- Watchers: 4
- Forks: 31
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## About setup-minikube
- build/deploy/test your application against a certified Kubernetes cluster in GitHub Actions.
- officialy maintained by minikube maintainers.## Basic Usage
```
steps:
- name: start minikube
id: minikube
uses: medyagh/setup-minikube@latest```
## Caching
By default setup-minikube caches the ISO, kicbase, and preload using GitHub Action Cache, if you'd like to disable this caching add the following to your workflow file.
```
- uses: medyagh/setup-minikube@latest
with:
cache: false
```## Examples
- [Example 1: Start Kubernetes on pull request](https://github.com/medyagh/setup-minikube#example-1)- [Example 2: Start Kubernetes using all configuration options](https://github.com/medyagh/setup-minikube#example-2)
- [Example 3: Build image and deploy to Kubernetes on pull request](https://github.com/medyagh/setup-minikube#example-3)
- [Real World Examples](https://github.com/medyagh/setup-minikube#Real-World)## Configurable Fields
start (optional)
- default: true
- options:
- true
- false
minikube-version (optional)
- default: latest
- options:
- version in format of 'X.X.X'
- 'latest' for the latest stable release
- 'HEAD' for the latest development build
- example: 1.24.0
driver (optional)
- default: '' (minikube will auto-select)
- options:
- docker
- none (baremetal)
- virtualbox (available on macOS free agents)
- also possible if installed on self-hosted agent: podman, parallels, vmwarefusion, hyperkit, vmware, ssh
container-runtime (optional)
- default: docker
- options:
- docker
- containerd
- cri-o
kubernetes-version (optional)
- default: stable
- options:
- 'stable' for the latest stable Kubernetes version
- 'latest' for the Newest Kubernetes version
- 'vX.X.X'
- example: v1.23.1
cpus (optional)
- default: '' (minikube will auto-set)
- options:
- ''
- 'max' to use the maximum available CPUs
- example: 4
memory (optional)
- default: '' (minikube will auto-set)
- options:
- '' where unit = b, k, m or g
- 'max' to use the maximum available memory
- example: 4000m
network-plugin (optional)
- default: auto
- options:
- cni
cni (optional)
- default: '' (auto)
- options:
- bridge
- calico
- cilium
- flannel
- kindnet
- (path to a CNI manifest)
wait (optional)
- default: all
- options:
- comma separated list of Kubernetes components (e.g. apiserver,system_pods,default_sa,apps_running,node_ready,kubelet)
- all
- none
- true
- false
addons (optional)
- default: ''
- options:
- ambassador
- auto-pause
- csi-hostpath-driver
- dashboard
- default-storageclass
- efk
- freshpod
- gcp-auth
- gvisor
- headlamp
- helm-tiller
- inaccel
- ingress
- ingress-dns
- istio
- istio-provisioner
- kong
- kubevirt
- logviewer
- metallb
- metrics-server
- nvidia-driver-installer
- nvidia-gpu-device-plugin
- olm
- pod-security-policy
- portainer
- registry
- registry-aliases
- registry-creds
- storage-provisioner
- storage-provisioner-gluster
- volumesnapshots
- (minikube addons list)
- example: ingress,registry
extra-config (optional)
- default: ''
- value: Any extra config fields (see [docs](https://minikube.sigs.k8s.io/docs/handbook/config/#kubernetes-configuration))
feature-gates (optional)
- default: ''
- value: Enable feature gates in API service (see [docs](https://minikube.sigs.k8s.io/docs/handbook/config/#enabling-feature-gates))
listen-address (optional)
- default: ''
- value: IP Address to use to expose ports (docker and podman driver only)
mount-path (optional)
- default: ''
- value: Mount the source directory from your host into the target directory inside the cluster (format: :)
install-path (optional)
- default: ''
- value: Path where the executables (minikube) will get installed. Useful when having multiple self-hosted runners on one machine.
insecure-registry (optional)
- default: ''
- value: Any container registry address which is insecure
- example: localhost:5000,10.0.0.0/24
start-args (optional)
- default: ''
- value: Any flags you would regularly pass into minikube via CLI
- example: --delete-on-failure --subnet 192.168.50.0
## Example 1:
#### Start Kubernetes on pull request```
name: CI
on:
- pull_request
jobs:
job1:
runs-on: ubuntu-latest
name: job1
steps:
- name: start minikube
id: minikube
uses: medyagh/setup-minikube@latest
# now you can run kubectl to see the pods in the cluster
- name: kubectl
run: kubectl get pods -A
```## Example 2
### Start Kubernetes using all configuration options```
name: CI
on:
- pull_request
jobs:
job1:
runs-on: ubuntu-latest
name: job1
steps:
- name: start minikube
uses: medyagh/setup-minikube@latest
id: minikube
with:
cache: false
minikube-version: 1.24.0
driver: docker
container-runtime: containerd
kubernetes-version: v1.22.3
cpus: 4
memory: 4000m
cni: bridge
addons: registry,ingress
extra-config: 'kubelet.max-pods=10'
feature-gates: 'DownwardAPIHugePages=true'
mount-path: '/Users/user1/test-files:/testdata'
wait: false
insecure-registry: 'localhost:5000,10.0.0.0/24'
start-args: '--delete-on-failure --subnet 192.168.50.0'
# now you can run kubectl to see the pods in the cluster
- name: kubectl
run: kubectl get pods -A
```## Example 3:
### Build image and deploy to Kubernetes on pull request
```
name: CI
on:
- push
- pull_request
jobs:
job1:
runs-on: ubuntu-latest
name: build discover and deploy
steps:
- uses: actions/checkout@v4
with:
repository: medyagh/local-dev-example-with-minikube
- name: Start minikube
uses: medyagh/setup-minikube@latest
# now you can run kubectl to see the pods in the cluster
- name: Try the cluster!
run: kubectl get pods -A
- name: Build image
run: |
minikube image build -t local/devex:v1 .
- name: Deploy to minikube
run: |
kubectl apply -f deploy/k8s.yaml
kubectl wait --for=condition=ready pod -l app=local-devex
- name: Test service URLs
run: |
minikube service list
minikube service local-devex-svc --url
echo -n "------------------opening the service------------------"
curl $(minikube service local-devex-svc --url)/version
```
## Real World:
#### Add your own repo here:
- [medyagh/test-minikube-example](https://github.com/medyagh/test-minikube-example)
- [More examples](https://github.com/medyagh/setup-minikube/tree/master/examples)## About Author
Medya Ghazizadeh, Follow me on [twitter](https://twitter.com/medya_dev) for my dev news!