add scripts and config for a local kind cluster

This commit is contained in:
Joel Wetzell
2026-03-13 20:51:26 -05:00
parent f590e102c7
commit 10a66188e3
6 changed files with 60 additions and 0 deletions

22
README.md Normal file
View File

@@ -0,0 +1,22 @@
# Local Testing
## Kind
To create a local Kubernetes cluster using [Kind](https://kind.sigs.k8s.io/) you will need the following installed:
- [Docker](https://docs.docker.com/get-docker/) or any container runtime probably
- [Kind](https://kind.sigs.k8s.io/docs/user/quick-start/#installation)
- [cloud-provider-kind](https://github.com/kubernetes-sigs/cloud-provider-kind)
- [kubectl](https://kubernetes.io/docs/tasks/tools/)
Scripts:
- `kind/create.sh`
- creates a Kind cluster and sets up the gateway
- build and deploy ontime-operator into cluster
- deploy the sample stage
- start `cloud-provider-kind`
- `kind/delete.sh` - deletes the Kind cluster
To get the gateway IP address run `kubectl get gateway -n kube-system` the output will look something like this:
```
NAMESPACE NAME CLASS ADDRESS PROGRAMMED AGE
kube-system gateway cloud-provider-kind 172.18.0.5 True 23s
```

View File

@@ -3,6 +3,10 @@ kind: Stage
metadata:
name: stage-sample
spec:
gateway:
name: gateway
namespace: kube-system
sectionName: default
ontime:
timezone: "America/Chicago"
prefix: "test"

7
kind/config.yaml Normal file
View File

@@ -0,0 +1,7 @@
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: ontime-operator
nodes:
- role: control-plane
- role: worker
- role: worker

12
kind/create.sh Executable file
View File

@@ -0,0 +1,12 @@
SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd)
ROOT=$(realpath "$SCRIPT_DIR/..")
set -e
kind create cluster --config "$SCRIPT_DIR/config.yaml"
kubectl apply --server-side -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.0/standard-install.yaml
kubectl apply -f "$SCRIPT_DIR/manifests"
export IMG=ontime-operator:dev
make -C "$ROOT" docker-build
kind load docker-image --name ontime-operator "${IMG}"
make -C "$ROOT" deploy
kubectl apply -k "$ROOT/config/samples"
sudo cloud-provider-kind

1
kind/delete.sh Executable file
View File

@@ -0,0 +1 @@
kind delete cluster --name ontime-operator

View File

@@ -0,0 +1,14 @@
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: gateway
namespace: kube-system
spec:
gatewayClassName: cloud-provider-kind
listeners:
- name: default
port: 80
protocol: HTTP
allowedRoutes:
namespaces:
from: All