split internal & external

This commit is contained in:
2025-01-19 20:14:30 +01:00
parent e6b6208876
commit ce9c7c48e8
18 changed files with 161 additions and 78 deletions

View File

@@ -0,0 +1,11 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- proxy.yaml
- service.yaml
configMapGenerator:
- name: internal-proxy-config
files:
- nginx.conf

38
internal/proxy/nginx.conf Normal file
View File

@@ -0,0 +1,38 @@
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
# Basic config
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# We define internal upstreams
upstream internal_ingress {
server nginx-internal.ingress-nginx.svc.cluster.local:80;
}
server {
listen 80 default_server;
server_name _;
}
# dev.mrcynic.site - allow only LAN
server {
listen 80;
server_name ~^(?<subdomain>.+)\.dev\.mrcynic\.site$;
location / {
proxy_pass http://internal_ingress;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}

29
internal/proxy/proxy.yaml Normal file
View File

@@ -0,0 +1,29 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: internal-proxy
annotations:
argocd.argoproj.io/sync-wave: "100"
spec:
replicas: 1
selector:
matchLabels:
app: internal-proxy
template:
metadata:
labels:
app: internal-proxy
spec:
containers:
- name: nginx
image: nginx:stable-alpine
volumeMounts:
- name: config
mountPath: /etc/nginx/nginx.conf
subPath: nginx.conf
ports:
- containerPort: 80
volumes:
- name: config
configMap:
name: internal-proxy-config

View File

@@ -0,0 +1,14 @@
---
apiVersion: v1
kind: Service
metadata:
name: internal-proxy-service
spec:
type: LoadBalancer
selector:
app: internal-proxy
ports:
- name: http
port: 80
targetPort: 80
nodePort: 30080