Compare commits
37 Commits
ad9f37b20a
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| f9899a478b | |||
| 1f65cc7377 | |||
| ffa421d6f2 | |||
| 5143af649f | |||
| 3d6dae36b6 | |||
| 2b83210de0 | |||
| 3a91deff1a | |||
| 377f7de295 | |||
| 128eb220e9 | |||
| d0b4486649 | |||
| 5dd1f90afc | |||
| a99043dc4f | |||
| d5e2bacd32 | |||
| ce9c7c48e8 | |||
| e6b6208876 | |||
| 2644d2b50c | |||
| fa39cd58e0 | |||
| b089a9bbfb | |||
| 0d3d5696b1 | |||
| de4f98b0eb | |||
| ec9792266a | |||
| f6747342a6 | |||
| cdc54654ff | |||
| c53b269e9c | |||
| 2c51eafe83 | |||
| df911f1dd8 | |||
| fa990719d3 | |||
| 85b2fa0e0e | |||
| 0cd9e24246 | |||
| 52de5d0dd9 | |||
| 232e0d2008 | |||
| 0f4358a3f5 | |||
| 0b0aeeb15c | |||
| 35b471cb54 | |||
| 6465932a1b | |||
| 9cd2d8b69e | |||
| ba0d0429ec |
39
external/external-controller.yaml
vendored
Normal file
39
external/external-controller.yaml
vendored
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: nginx-external
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: nginx-external
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: nginx-external
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: nginx-external
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: nginx-ingress
|
||||||
|
image: registry.k8s.io/ingress-nginx/controller:v1.7.0
|
||||||
|
args:
|
||||||
|
- /nginx-ingress-controller
|
||||||
|
- --ingress-class=nginx-external
|
||||||
|
- --configmap=$(POD_NAMESPACE)/nginx-configuration
|
||||||
|
- --publish-status-address=192.168.0.190
|
||||||
|
- --update-status
|
||||||
|
env:
|
||||||
|
- name: POD_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: POD_NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 80
|
||||||
|
- name: https
|
||||||
|
containerPort: 443
|
||||||
13
external/external-policy.yaml
vendored
Normal file
13
external/external-policy.yaml
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: allow-all-ingress-nginx-external
|
||||||
|
spec:
|
||||||
|
podSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: nginx-external
|
||||||
|
policyTypes:
|
||||||
|
- Ingress
|
||||||
|
ingress:
|
||||||
|
- {}
|
||||||
6
external/ingress-class.yaml
vendored
Normal file
6
external/ingress-class.yaml
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: IngressClass
|
||||||
|
metadata:
|
||||||
|
name: nginx-external
|
||||||
|
spec:
|
||||||
|
controller: k8s.io/ingress-nginx
|
||||||
12
external/kustomization.yaml
vendored
Normal file
12
external/kustomization.yaml
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
namespace: external-ingress
|
||||||
|
|
||||||
|
resources:
|
||||||
|
# - proxy
|
||||||
|
- external-controller.yaml
|
||||||
|
- external-policy.yaml
|
||||||
|
- service.yaml
|
||||||
|
- namespace.yaml
|
||||||
|
- ingress-class.yaml
|
||||||
29
external/proxy/deployment.yaml
vendored
Normal file
29
external/proxy/deployment.yaml
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: external-proxy
|
||||||
|
annotations:
|
||||||
|
argocd.argoproj.io/sync-wave: "100"
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: external-proxy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: external-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: external-proxy-config
|
||||||
11
external/proxy/kustomization.yaml
vendored
Normal file
11
external/proxy/kustomization.yaml
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- deployment.yaml
|
||||||
|
- service.yaml
|
||||||
|
|
||||||
|
configMapGenerator:
|
||||||
|
- name: external-proxy-config
|
||||||
|
files:
|
||||||
|
- nginx.conf
|
||||||
38
external/proxy/nginx.conf
vendored
Normal file
38
external/proxy/nginx.conf
vendored
Normal 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 two upstreams: external and internal
|
||||||
|
upstream external_ingress {
|
||||||
|
server nginx-external.ingress-nginx.svc.cluster.local:80;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Server block for HTTP (port 80)
|
||||||
|
server {
|
||||||
|
listen 80 default_server;
|
||||||
|
server_name _;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name ~^(?<subdomain>.+)\.mrcynic\.site$;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass http://external_ingress;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
14
external/proxy/service.yaml
vendored
Normal file
14
external/proxy/service.yaml
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: external-proxy-service
|
||||||
|
spec:
|
||||||
|
type: LoadBalancer
|
||||||
|
selector:
|
||||||
|
app: external-proxy
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 80
|
||||||
|
targetPort: 80
|
||||||
|
loadBalancerIP: 192.168.0.201
|
||||||
18
external/service.yaml
vendored
Normal file
18
external/service.yaml
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: nginx-external
|
||||||
|
spec:
|
||||||
|
type: LoadBalancer
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: nginx-external
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 80
|
||||||
|
targetPort: 80
|
||||||
|
- name: https
|
||||||
|
port: 443
|
||||||
|
targetPort: 443
|
||||||
|
loadBalancerIP: 192.168.0.202
|
||||||
20
ingress.yaml
20
ingress.yaml
@@ -1,20 +0,0 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: external-ingress
|
|
||||||
namespace: external-ingress
|
|
||||||
annotations:
|
|
||||||
nginx.ingress.kubernetes.io/rewrite-target: /
|
|
||||||
argocd.argoproj.io/sync-wave: "0"
|
|
||||||
spec:
|
|
||||||
rules:
|
|
||||||
- host: gitea.atlas.com
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: Prefix
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: gitea
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
39
internal/internal-controller.yaml
Normal file
39
internal/internal-controller.yaml
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: nginx-internal
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: nginx-internal
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: nginx-internal
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: nginx-internal
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: nginx-ingress
|
||||||
|
image: registry.k8s.io/ingress-nginx/controller:v1.7.0
|
||||||
|
args:
|
||||||
|
- /nginx-ingress-controller
|
||||||
|
- --ingress-class=nginx-internal
|
||||||
|
- --configmap=$(POD_NAMESPACE)/nginx-configuration
|
||||||
|
- --publish-status-address=192.168.0.190
|
||||||
|
- --update-status
|
||||||
|
env:
|
||||||
|
- name: POD_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: POD_NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 80
|
||||||
|
- name: https
|
||||||
|
containerPort: 443
|
||||||
21
internal/internal-policy.yaml
Normal file
21
internal/internal-policy.yaml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: restrict-ingress-nginx-internal
|
||||||
|
spec:
|
||||||
|
podSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: nginx-internal
|
||||||
|
policyTypes:
|
||||||
|
- Ingress
|
||||||
|
ingress:
|
||||||
|
- {}
|
||||||
|
# - from:
|
||||||
|
# - ipBlock:
|
||||||
|
# cidr: 192.168.0.0/16
|
||||||
|
# ports:
|
||||||
|
# - protocol: TCP
|
||||||
|
# port: 80
|
||||||
|
# - protocol: TCP
|
||||||
|
# port: 443
|
||||||
11
internal/kustomization.yaml
Normal file
11
internal/kustomization.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
namespace: internal-ingress
|
||||||
|
|
||||||
|
resources:
|
||||||
|
# - proxy
|
||||||
|
- internal-controller.yaml
|
||||||
|
- internal-policy.yaml
|
||||||
|
- service.yaml
|
||||||
|
- namespace.yaml
|
||||||
6
internal/namespace.yaml
Normal file
6
internal/namespace.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: internal-ingress
|
||||||
|
annotations:
|
||||||
|
argocd.argoproj.io/sync-wave: "0"
|
||||||
29
internal/proxy/deployment.yaml
Normal file
29
internal/proxy/deployment.yaml
Normal 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
|
||||||
11
internal/proxy/kustomization.yaml
Normal file
11
internal/proxy/kustomization.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- deployment.yaml
|
||||||
|
- service.yaml
|
||||||
|
|
||||||
|
configMapGenerator:
|
||||||
|
- name: internal-proxy-config
|
||||||
|
files:
|
||||||
|
- nginx.conf
|
||||||
38
internal/proxy/nginx.conf
Normal file
38
internal/proxy/nginx.conf
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
14
internal/proxy/service.yaml
Normal file
14
internal/proxy/service.yaml
Normal 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
|
||||||
|
loadBalancerIP: 192.168.0.202
|
||||||
17
internal/service.yaml
Normal file
17
internal/service.yaml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: nginx-internal
|
||||||
|
spec:
|
||||||
|
type: LoadBalancer
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: nginx-internal
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 80
|
||||||
|
targetPort: 80
|
||||||
|
- name: https
|
||||||
|
port: 443
|
||||||
|
targetPort: 443
|
||||||
|
loadBalancerIP: 192.168.0.201
|
||||||
@@ -2,8 +2,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
- namespace.yaml
|
- internal
|
||||||
- ingress.yaml
|
- external
|
||||||
|
|
||||||
generatorOptions:
|
generatorOptions:
|
||||||
annotations:
|
annotations:
|
||||||
|
|||||||
3
renovate.json
Normal file
3
renovate.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user