Compare commits
17 Commits
c93f98c93c
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| eb3ca05bfb | |||
| bf2332e1ac | |||
| 8ed20f7e58 | |||
| a62ee9efb1 | |||
| 17c97b4333 | |||
| e6a410f926 | |||
| a79fb8df5a | |||
| 068537b11d | |||
| 5c3d6736dc | |||
| 62e363f01e | |||
| 99968b13b7 | |||
| 1de8e79a05 | |||
| 03bfdf847f | |||
| 9a066ac5d0 | |||
| b7f407e2d5 | |||
| f5aac44bd6 | |||
| 9ff876b158 |
@@ -1,2 +1,3 @@
|
|||||||
data
|
data
|
||||||
charts
|
charts
|
||||||
|
.claude/settings.local.json
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ kind: Ingress
|
|||||||
metadata:
|
metadata:
|
||||||
name: frontend
|
name: frontend
|
||||||
annotations:
|
annotations:
|
||||||
nginx.ingress.kubernetes.io/upstream-vhost: "localhost:3300"
|
traefik.ingress.kubernetes.io/router.middlewares: default-frontend-host@kubernetescrd
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: nginx
|
ingressClassName: traefik
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- staging-shiny.unbound.se
|
- staging-shiny.unbound.se
|
||||||
@@ -59,9 +59,9 @@ kind: Ingress
|
|||||||
metadata:
|
metadata:
|
||||||
name: api
|
name: api
|
||||||
annotations:
|
annotations:
|
||||||
nginx.ingress.kubernetes.io/upstream-vhost: "localhost:4444"
|
traefik.ingress.kubernetes.io/router.middlewares: default-api-host@kubernetescrd
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: nginx
|
ingressClassName: traefik
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- staging-shiny-api.unbound.se
|
- staging-shiny-api.unbound.se
|
||||||
@@ -77,3 +77,21 @@ spec:
|
|||||||
name: api-external
|
name: api-external
|
||||||
port:
|
port:
|
||||||
number: 4444
|
number: 4444
|
||||||
|
---
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: Middleware
|
||||||
|
metadata:
|
||||||
|
name: frontend-host
|
||||||
|
spec:
|
||||||
|
headers:
|
||||||
|
customRequestHeaders:
|
||||||
|
Host: "localhost:3300"
|
||||||
|
---
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: Middleware
|
||||||
|
metadata:
|
||||||
|
name: api-host
|
||||||
|
spec:
|
||||||
|
headers:
|
||||||
|
customRequestHeaders:
|
||||||
|
Host: "localhost:4444"
|
||||||
|
|||||||
@@ -10,13 +10,13 @@ helmCharts:
|
|||||||
includeCRDs: true
|
includeCRDs: true
|
||||||
releaseName: external-secrets
|
releaseName: external-secrets
|
||||||
repo: https://charts.external-secrets.io
|
repo: https://charts.external-secrets.io
|
||||||
version: 2.0.1
|
version: 2.3.0
|
||||||
- name: cert-manager
|
- name: cert-manager
|
||||||
namespace: cert-manager
|
namespace: cert-manager
|
||||||
includeCRDs: true
|
includeCRDs: true
|
||||||
releaseName: cert-manager
|
releaseName: cert-manager
|
||||||
repo: https://charts.jetstack.io
|
repo: https://charts.jetstack.io
|
||||||
version: v1.19.4
|
version: v1.20.2
|
||||||
valuesInline:
|
valuesInline:
|
||||||
crds:
|
crds:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ spec:
|
|||||||
app.kubernetes.io/name: lavinmq
|
app.kubernetes.io/name: lavinmq
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: cloudamqp/lavinmq:2.6.8
|
- image: cloudamqp/lavinmq:2.6.10@sha256:e52866d61141b3bb61a3ae99acd7fac1c750ba86af50037864f9498c27fbd89a
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
tcpSocket:
|
tcpSocket:
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: postgres
|
- name: postgres
|
||||||
image: postgres:18.3-alpine@sha256:97e0c20847f5fe90be7e002ce2619be71f037e898f6c7364ad59e3826d60fee5
|
image: postgres:18.3-alpine@sha256:52098013b4b64a746626437d38afc03cabff6cdeb4d3d92e2342aa95f0ce56ea
|
||||||
args:
|
args:
|
||||||
- -c
|
- -c
|
||||||
- shared_buffers=384MB
|
- shared_buffers=384MB
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
resources:
|
|
||||||
- namespaces.yaml
|
|
||||||
helmCharts:
|
|
||||||
- name: ingress-nginx
|
|
||||||
namespace: ingress-nginx
|
|
||||||
includeCRDs: true
|
|
||||||
releaseName: ingress-nginx
|
|
||||||
repo: https://kubernetes.github.io/ingress-nginx
|
|
||||||
version: 4.14.3
|
|
||||||
valuesFile: https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/hack/manifest-templates/provider/kind/values.yaml
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- namespaces.yaml
|
||||||
|
helmCharts:
|
||||||
|
- name: traefik
|
||||||
|
namespace: traefik
|
||||||
|
includeCRDs: true
|
||||||
|
releaseName: traefik
|
||||||
|
repo: https://traefik.github.io/charts
|
||||||
|
version: 39.0.7
|
||||||
|
valuesFile: values.yaml
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: traefik
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
deployment:
|
||||||
|
kind: DaemonSet
|
||||||
|
|
||||||
|
ports:
|
||||||
|
web:
|
||||||
|
hostPort: 80
|
||||||
|
websecure:
|
||||||
|
hostPort: 443
|
||||||
|
|
||||||
|
tolerations:
|
||||||
|
- key: "node-role.kubernetes.io/master"
|
||||||
|
operator: "Equal"
|
||||||
|
effect: "NoSchedule"
|
||||||
|
- key: "node-role.kubernetes.io/control-plane"
|
||||||
|
operator: "Equal"
|
||||||
|
effect: "NoSchedule"
|
||||||
|
|
||||||
|
nodeSelector:
|
||||||
|
ingress-ready: "true"
|
||||||
|
|
||||||
|
providers:
|
||||||
|
kubernetesIngress:
|
||||||
|
publishedService:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
service:
|
||||||
|
type: ClusterIP
|
||||||
|
|
||||||
|
ingressClass:
|
||||||
|
enabled: true
|
||||||
|
isDefaultClass: true
|
||||||
@@ -12,20 +12,20 @@ kubectl create secret docker-registry gitlab \
|
|||||||
|
|
||||||
kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "gitlab"}]}'
|
kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "gitlab"}]}'
|
||||||
|
|
||||||
kustomized="$(mktemp -t unboundnginx.yaml.XXXXXX)"
|
kustomized="$(mktemp -t unboundtraefik.yaml.XXXXXX)"
|
||||||
|
|
||||||
kubectl kustomize --enable-helm "k8s/nginx" >> "${kustomized}"
|
kubectl kustomize --enable-helm "k8s/traefik" >> "${kustomized}"
|
||||||
kubectl apply -f "${kustomized}" --server-side || true
|
kubectl apply -f "${kustomized}" --server-side || true
|
||||||
|
|
||||||
printf "\nWait for pod app.kubernetes.io/component=controller to be created."
|
printf "\nWait for pod app.kubernetes.io/name=traefik to be created."
|
||||||
while :; do
|
while :; do
|
||||||
sleep 2
|
sleep 2
|
||||||
[ -n "$(kubectl -n ingress-nginx get pod --selector=app.kubernetes.io/component=controller 2>/dev/null)" ] && printf "\n\n" && break
|
[ -n "$(kubectl -n traefik get pod --selector=app.kubernetes.io/name=traefik 2>/dev/null)" ] && printf "\n\n" && break
|
||||||
printf "."
|
printf "."
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "Wait for nginx to be available."
|
echo "Wait for traefik to be available."
|
||||||
until [[ $(kubectl -n ingress-nginx get endpointslices -l 'kubernetes.io/service-name=ingress-nginx-controller' -o=jsonpath='{.items[*].endpoints[*].addresses[*]}') ]]; do sleep 5; done
|
until [[ $(kubectl -n traefik get endpointslices -l 'kubernetes.io/service-name=traefik' -o=jsonpath='{.items[*].endpoints[*].addresses[*]}') ]]; do sleep 5; done
|
||||||
|
|
||||||
kustomized="$(mktemp -t unboundinfra.yaml.XXXXXX)"
|
kustomized="$(mktemp -t unboundinfra.yaml.XXXXXX)"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user