Skip to content

Instantly share code, notes, and snippets.

@jm96441n
Last active June 12, 2024 19:52
Show Gist options
  • Save jm96441n/b92a80c2251c7a54d1feada320c5eac6 to your computer and use it in GitHub Desktop.
Save jm96441n/b92a80c2251c7a54d1feada320c5eac6 to your computer and use it in GitHub Desktop.
gw-cleanup
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: basic
nodes:
- role: control-plane
image: kindest/node:v1.25.3
- role: worker
image: kindest/node:v1.25.3
# Contains values that affect multiple components of the chart.
global:
imageK8S: consul-k8s-control-plane:local
image: consul:local
# imageK8S: hashicorp/consul-k8s-control-plane:1.3.2
# image: hashicorp/consul-enterprise:1.18.2-ent
logLevel: debug
tls:
enabled: true
acls:
manageSystemACLs: true
enterpriseLicense:
secretName: "license"
secretKey: "key"
server:
enabled: true
# The number of server agents to run. This determines the fault tolerance of the cluster.
replicas: 1
# Contains values that configure the Consul UI.
ui:
enabled: true
connectInject:
#this needs to be true for newly created services to be added to the service mesh
#so they will display a topology tab. They won't if they're not explicitly in the service mesh
enabled: true
apiVersion: gateway.networking.k8s.io/v1beta1
kind: Gateway
metadata:
name: api-gateway
spec:
gatewayClassName: consul
listeners:
- protocol: HTTP
port: 9001
name: listener-one
apiVersion: gateway.networking.k8s.io/v1beta1
kind: Gateway
metadata:
name: api-gateway-2
spec:
gatewayClassName: consul
listeners:
- protocol: HTTP
port: 9002
name: listener-two
- protocol: HTTP
port: 9004
name: listener-three
tls:
certificateRefs:
- kind: Secret
name: cert-one
namespace: default
apiVersion: v1
kind: Secret
metadata:
name: cert-one
type: kubernetes.io/tls
data:
tls.crt: |
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURRakNDQWlvQ0NRQzZjTVJZc0UrYWhEQU5CZ2txaGtpRzl3MEJBUXNGQURCak1Rc3dDUVlEVlFRR0V3SlYKVXpFTE1Ba0dBMVVFQ0F3Q1EwRXhDekFKQmdOVkJBY01Ba3hCTVEwd0N3WURWUVFLREFSVVpYTjBNUTB3Q3dZRApWUVFMREFSVGRIVmlNUnd3R2dZRFZRUUREQk5vYjNOMExtTnZibk4xYkM1bGVHRnRjR3hsTUI0WERUSXpNREl4Ck56QXlNVEExTWxvWERUSTRNREl4TmpBeU1UQTFNbG93WXpFTE1Ba0dBMVVFQmhNQ1ZWTXhDekFKQmdOVkJBZ00KQWtOQk1Rc3dDUVlEVlFRSERBSk1RVEVOTUFzR0ExVUVDZ3dFVkdWemRERU5NQXNHQTFVRUN3d0VVM1IxWWpFYwpNQm9HQTFVRUF3d1RhRzl6ZEM1amIyNXpkV3d1WlhoaGJYQnNaVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFECmdnRVBBRENDQVFvQ2dnRUJBTk1NMlhxSjFKSllUcnlkQU1YSFEzUWs0ak1FZmJiSnYraUJuTVBTWnVkTVZXUHEKb09SaFlOVVZxMEdqZzZ1eG82bmZ5UTFBTUxVd1owRExOY3JlcDI3QjN0a0lXdytGM3FyV2Z1bjA3OVdhUnQ1UApCWGdmek5OY1JhcUwzTTBWZjRudSs4SGVMNnFEdy9nSEh3L0RRd0JTYmQ0YmNGSUJpS3BFQno5OXZVb2QwN1M0Ckd2V1RBck5US0UwL2p6bUJsRHkvRzhMZlVlZ3BUYTduR3grQWJPanAxOW1SV3loZStUdlRoeWpjVms1cVEwcUgKYnpoV3hjaXFiTndYNXo3aGRHZXBvK1RPY21YZ281clgwdHVUNjdETjZUQVJpdVdCMjlESlJYMlNLeUJtNkRHNgo4L1Jmd1RFQ2V1S1RIdU55c0toNzA1Mnlsb2Flajh5NFJKRHhpNThDQXdFQUFUQU5CZ2txaGtpRzl3MEJBUXNGCkFBT0NBUUVBSEYxMG9kUk5KN1RLdmNEMkpQdFI4d01hY2ZsZFNpUGNRbm4rcmhNVXlCYUtPb1NyQUx4T2V2K04KTDhOK1J0RVYrS1hreUJrdlQ3MU9aekVwWTlST3dxT1EvYWNuTWRiZkcwSUJQYmczYy83V0REMnNqY2RyMXp2YwpVM1Q3V0o3RzNndVo1YVdDdUFHZ095VDZaVzhuckRhNHlGYktaMVBDSmt2VVEydHRPMWxYbXlHUE01MzNZMnBpClNlWFA2TEw3ejVWTnFZTzNvejVJSkVzdHQxMElLeGRtYjJnS0ZoSGpnRW1ITjJnRkwwamFQaTRtamphSU5yeHEKTWRxY005SXpMcjI2QWpaNDVOdUk5QkNjWldPMW1yYWFRVE9JYjNRTDVMeXFhQzdDUkpYTFlQU0dBUnRoeURocQpKM1RyUUUzWVZyTDREOXhua2xUODZXRG5aS0FwSmc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t
tls.key: |
LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBMHd6WmVvblVrbGhPdkowQXhjZERkQ1RpTXdSOXRzbS82SUdjdzlKbTUweFZZK3FnCjVHRmcxUldyUWFPRHE3R2pxZC9KRFVBd3RUQm5RTXMxeXQ2bmJzSGUyUWhiRDRYZXF0Wis2ZlR2MVpwRzNrOEYKZUIvTTAxeEZxb3ZjelJWL2llNzd3ZDR2cW9QRCtBY2ZEOE5EQUZKdDNodHdVZ0dJcWtRSFAzMjlTaDNUdExnYQo5Wk1DczFNb1RUK1BPWUdVUEw4Ynd0OVI2Q2xOcnVjYkg0QnM2T25YMlpGYktGNzVPOU9IS054V1RtcERTb2R2Ck9GYkZ5S3BzM0JmblB1RjBaNm1qNU01eVplQ2ptdGZTMjVQcnNNM3BNQkdLNVlIYjBNbEZmWklySUdib01icnoKOUYvQk1RSjY0cE1lNDNLd3FIdlRuYktXaHA2UHpMaEVrUEdMbndJREFRQUJBb0lCQURCRUpBaU9OUHN6RHU2Nwp5VTF5QU04ekVEZ3lzcjEyN2xpeUs3UHREbk9mVlhnQVZNTm1NY3NKcFp6aFZGK1R4S1k0ODdZQUZDT2I2a0U3Ck9CWXBUWWxhOVNnVmJSM2pzOFRHUVVnb0tDRmxvd2Q4Y3ZmQjdnbjRkRVpJcmpxSXpCNHpkWWdrMUNuZThKWnMKcW9Ia1doSmN4NXVnRXRQdVhkN3lwK1d4VC9UKzZ1T3JvMDZzY3A2N05oUDV0OXlvQUdGdjVWZGI1NzdSdXpSbwpXa2Q5aGlnUTlBMjArR3RqQ1kwRVl4ZGdSdmlXdlc3bU01L0YrTHpjYXVpODZNRStnYTc1NGdYOHpnVzMrTko1CkxNc3o1T0xTbmgyOTFVeWptcjc3SFdCdi94dnBxMDFGbHMwTHlKY2d4RlZadUpzNUdReitsM290U3F2NEZUUDYKVWE5dy9ZRUNnWUVBOFRvM2RnVUsxUWh6WDVyd2hXdGxzdDNwSXRHVHZtRWROelhtamdTeWx1N3VLTTEzaSt4ZwpsbGhwMnVYck9FdHVMK3h0QlpkZUZOYWlqdXNieXFqZzB4ajZlNG8zMWMxOW9rdXVEa0pENS9zZlFxMjJidnJuCmdWSk1HdUVTcHJJaVBlUHJFeXJYQ0hPZHhINmVEZ1IyZEl6QWVPNXZ6MG5uS0dGQVdySkpidkVDZ1lFQTMvbUoKZWFjWE9Kem53NFNhOGpHV1MyRnRaTEt4REhwaDd1REtNSm11RzB1a2IzYUhKOWRNSHJQbGVDTG84bWhwb09iQQpodWVvSWJJUDdzd0dyUXg3OStuWmJuUXBGNnJNcDZGQVU1YkYzZ1NyajFlV2JhZWg4cG45bXJ2NGhhbDlVU21uCm9yVGJYTXhEcDNYU2g3dm9SOEZxeTV0TVFxd1orTHo3NGNjYnc0OENnWUVBNWNFaEdkTnJvY1BPdjN4L0lWUk4KSkxPZlhYNW5UYWlKZnhCamExaW1FSU81YWp0b1pXamFCZGhuMmdtcW80K1VmeWljSGZzeHJIOVJqUFg1SG1rQwoyWXlzNWdXYmNKT3IyV3hqZDBrK0RERnVjTCtyUnNES3hxMXZ0eG92L1gwa2gvWVE2OHlkeW5yMEJUYmpxMDRzCjFJMUt0T1BFc3BZZENLUzMrcXBjcnNFQ2dZQnR2WWVWZXNCTzlkbzlHMGtNS0MyNnk0YmRFd3phejFBU3lrTm4KSXJXREhFSDZkem5yMUhxd2hIYUhzWnN2d3VjV2RsbVpBQUtLV0FPa2ZvVTYzdVlTNTVxb212UFRhOVdRd05xUwoya29pNldqaCtBbDF1dkFIdlZuY0tnT3dBZ2FyOE52NVJlSkJpcmdQWWhTQWV4cHBwaVJjbEwvOTN2TnV3N0lxCnd2TWdrd0tCZ1FDNXduYjZTVVVyenpLS1NSZ3l1c0hNL1hyamlLZ1ZLcTdsdkZFOS9pSmtjdytCRVhwampiRWUKUnlEMGE3UFJ0Q2ZSMzlTTVZyWnA0S1hWTk5LNWxuMFdodUx2cmFNRHdPcEg5SkRXSFFpQWh1SjNvb1N3QnlsSworUUNManlPdFdBR1pBSUJSSnliMXR4ZlRYWisrZGxka09qQmkzYm1FaWFkT2E0OGtzdkRzTlE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQ==
apiVersion: consul.hashicorp.com/v1alpha1
kind: ProxyDefaults
metadata:
name: global
spec:
config:
protocol: http
#!/bin/bash
set -e
if [ -z "$(kind get clusters | rg "basic")" ]; then
kind create cluster --config cluster.yaml
fi
# The following line assumes that you have compiled the image locally using `make docker/dev` from the consul-k8s repo
kind load docker-image consul-k8s-control-plane:local -n basic
kind load docker-image consul:local -n basic
kubectl create namespace consul
kubectl create secret generic license -n consul --from-literal="key=$CONSUL_LICENSE"
echo "helm installing"
helm upgrade --install consul hashicorp/consul -f ./consul_values.yaml -n consul --create-namespace --wait
echo "helm is done"
kubectl wait --timeout=180s --for=condition=Available=True deployments/consul-consul-connect-injector -n consul
kubectl apply -f ./proxy-defaults.yaml
kubectl apply -f ./inline-cert.yaml
kubectl apply -f ./gw.yaml
kubectl apply -f ./gw2.yaml
# while ! kubectl get deployments api-gateway; do sleep 1; done
kubectl wait --timeout=180s --for=condition=Available=True deployments/api-gateway || true
kubectl get svc -n consul
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment