mirror of
https://github.com/Noratrieb/vps.git
synced 2026-01-14 16:55:00 +01:00
more cleanup
This commit is contained in:
parent
ee0c5f9cec
commit
6702351df4
21 changed files with 5 additions and 508 deletions
|
|
@ -5,3 +5,7 @@ see `new` for the new infra
|
|||
## things that shall not be forgotten
|
||||
|
||||
there once was some custom k8s cluster setup in `./k8s-cluster`. it was incomplete and pretty cursed.
|
||||
|
||||
also some kubernetes config in `./kube`. why.
|
||||
|
||||
gloriously not great docker configs in `./docker`.
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||
|
||||
if [ "$STAGE" = "prod" ] ;
|
||||
then
|
||||
export NGINX_CONF_PATH=../nginx/nginx.conf
|
||||
EXTRA_ARGS="-f $SCRIPT_DIR/production.yml"
|
||||
else
|
||||
export NGINX_CONF_PATH=../nginx/nginx.local.conf
|
||||
fi
|
||||
|
||||
export REGISTRY_CONF_DIR=../registry
|
||||
|
||||
docker compose -f "$SCRIPT_DIR/docker-compose.yml" $@ up -d
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
version: '3.3'
|
||||
services:
|
||||
nginx:
|
||||
container_name: nginx-c
|
||||
restart: always
|
||||
image: nginx:latest
|
||||
ports:
|
||||
- "80:80"
|
||||
volumes:
|
||||
- "${NGINX_CONF_PATH}:/etc/nginx/nginx.conf:ro"
|
||||
networks:
|
||||
- internal
|
||||
registry:
|
||||
container_name: registry-c
|
||||
restart: always
|
||||
image: registry:2
|
||||
volumes:
|
||||
- "${REGISTRY_CONF_DIR}/config.yml:/etc/docker/registry/config.yml"
|
||||
- "/var/lib/docker/registry:/var/lib/registry"
|
||||
networks:
|
||||
- internal
|
||||
|
||||
networks:
|
||||
internal:
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
version: '3.3'
|
||||
services:
|
||||
nginx:
|
||||
volumes:
|
||||
- "/etc/letsencrypt:/etc/nginx/certs:ro"
|
||||
ports:
|
||||
- "443:443"
|
||||
registry:
|
||||
volumes:
|
||||
- "/etc/letsencrypt:/etc/letsencrypt"
|
||||
- "/etc/htpasswd:/htpasswd"
|
||||
environment:
|
||||
- REGISTRY_HTTP_TLS_CERTIFICATE=/etc/letsencrypt/live/nilstrieb.dev/fullchain.pem
|
||||
- REGISTRY_HTTP_TLS_KEY=/etc/letsencrypt/live/nilstrieb.dev/privkey.pem
|
||||
- REGISTRY_AUTH=htpasswd
|
||||
- REGISTRY_AUTH_HTPASSWD_REALM=Realm
|
||||
- REGISTRY_AUTH_HTPASSWD_PATH=/htpasswd
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
NET_NAME="internal"
|
||||
|
||||
if docker network inspect "$NET_NAME" > /dev/null 2>&1 ;
|
||||
then
|
||||
echo "Network $NET_NAME exists already...";
|
||||
else
|
||||
echo "Creating network $NET_NAME..."
|
||||
docker network create "$NET_NAME"
|
||||
fi
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: cargo-bisect-rustc-config
|
||||
data:
|
||||
SQLITE_DB: /app/db/db.sqlite
|
||||
RUST_LOG: debug
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: cargo-bisect-rustc-volume-claim
|
||||
spec:
|
||||
resources:
|
||||
requests:
|
||||
storage: "50Mi"
|
||||
volumeMode: Filesystem
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: cargo-bisect-rustc
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: cargo-bisect-rustc
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: cargo-bisect-rustc
|
||||
spec:
|
||||
containers:
|
||||
- name: cargo-bisect-rustc
|
||||
image: docker.nilstrieb.dev/cargo-bisect-rustc-service:1.10
|
||||
resources:
|
||||
requests:
|
||||
memory: "256Mi"
|
||||
cpu: "200m"
|
||||
limits:
|
||||
memory: "1000Mi"
|
||||
cpu: "2000m"
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: cargo-bisect-rustc-config
|
||||
volumeMounts:
|
||||
- mountPath: /app/db
|
||||
name: sqlitedb
|
||||
ports:
|
||||
- containerPort: 4000
|
||||
imagePullSecrets:
|
||||
- name: docker-nilstrieb-dev-login
|
||||
volumes:
|
||||
- name: sqlitedb
|
||||
persistentVolumeClaim:
|
||||
claimName: cargo-bisect-rustc-volume-claim
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: cargo-bisect-rustc-service
|
||||
spec:
|
||||
selector:
|
||||
app: cargo-bisect-rustc
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 4000
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
# https://www.containiq.com/post/deploy-postgres-on-kubernetes
|
||||
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: hugo-chat-db-config
|
||||
data:
|
||||
POSTGRES_PASSWORD: huGO123.corsBOSS
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: hugo-chat-db-volume-claim
|
||||
spec:
|
||||
storageClassName: local-storage
|
||||
resources:
|
||||
requests:
|
||||
storage: 100Mi
|
||||
volumeMode: Filesystem
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: hugo-chat-db
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: hugo-chat-db
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: hugo-chat-db
|
||||
spec:
|
||||
containers:
|
||||
- name: hugo-chat-db
|
||||
image: docker.io/postgres:latest
|
||||
resources:
|
||||
limits:
|
||||
memory: "256Mi"
|
||||
cpu: "500m"
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: hugo-chat-db-config
|
||||
volumeMounts:
|
||||
- mountPath: /var/lib/postgresql/data
|
||||
name: postgredb
|
||||
ports:
|
||||
- containerPort: 5432
|
||||
volumes:
|
||||
- name: postgredb
|
||||
persistentVolumeClaim:
|
||||
claimName: hugo-chat-db-volume-claim
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: hugo-chat-db-service
|
||||
spec:
|
||||
selector:
|
||||
app: hugo-chat-db
|
||||
ports:
|
||||
- port: 5432
|
||||
targetPort: 5432
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: hugo-chat-frontend
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: hugo-chat-frontend
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: hugo-chat-frontend
|
||||
spec:
|
||||
containers:
|
||||
- name: hugo-chat-frontend
|
||||
image: docker.nilstrieb.dev/hugo-chat-frontend:1.1
|
||||
ports:
|
||||
- containerPort: 80
|
||||
name: http-web-svc
|
||||
resources:
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 300M
|
||||
imagePullSecrets:
|
||||
- name: docker-nilstrieb-dev-login
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: hugo-chat-frontend-service
|
||||
spec:
|
||||
selector:
|
||||
app.kubernetes.io/name: hugo-chat-frontend
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 8080
|
||||
targetPort: http-web-svc
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: nilstriev-dev-cert
|
||||
spec:
|
||||
secretName: nilstrieb-dev-cert-tls
|
||||
dnsNames:
|
||||
- nilstrieb.dev
|
||||
- docker.nilstrieb.dev
|
||||
- cors-school.nilstrieb.dev
|
||||
- api.cors-school.nilstrieb.dev
|
||||
- hugo-chat.nilstrieb.dev
|
||||
- api.hugo-chat.nilstrieb.dev
|
||||
- bisect-rustc.nilstrieb.dev
|
||||
issuerRef:
|
||||
name: letsencrypt-staging
|
||||
kind: ClusterIssuer
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: default-volume
|
||||
labels:
|
||||
type: local
|
||||
spec:
|
||||
storageClassName: local-storage
|
||||
capacity:
|
||||
storage: 500Mi
|
||||
volumeMode: Filesystem
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
local:
|
||||
path: /mnt/kube-default-volume
|
||||
nodeAffinity:
|
||||
required:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: kubernetes.io/hostname
|
||||
operator: In
|
||||
values:
|
||||
- minikube
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: docker-nilstrieb-dev-login
|
||||
type: kubernetes.io/dockerconfigjson
|
||||
data:
|
||||
.dockerconfigjson: <fill me>
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
apiVersion: cert-manager.io/v1
|
||||
kind: ClusterIssuer
|
||||
metadata:
|
||||
name: letsencrypt-production
|
||||
spec:
|
||||
acme:
|
||||
server: https://acme-v02.api.letsencrypt.org/directory
|
||||
email: nilstrieb@gmail.com
|
||||
privateKeySecretRef:
|
||||
name: letsencrypt-production
|
||||
solvers:
|
||||
- http01:
|
||||
ingress:
|
||||
class: nginx
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
apiVersion: cert-manager.io/v1
|
||||
kind: ClusterIssuer
|
||||
metadata:
|
||||
name: letsencrypt-staging
|
||||
spec:
|
||||
acme:
|
||||
server: https://acme-staging-v02.api.letsencrypt.org/directory
|
||||
email: nilstrieb@gmail.com
|
||||
privateKeySecretRef:
|
||||
name: letsencrypt-staging
|
||||
solvers:
|
||||
- http01:
|
||||
ingress:
|
||||
class: nginx
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: main-ingress
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/rewrite-target: /
|
||||
spec:
|
||||
rules:
|
||||
- host: hugo-chat.nilstrieb.dev
|
||||
http:
|
||||
paths:
|
||||
- pathType: Prefix
|
||||
path: /
|
||||
backend:
|
||||
service:
|
||||
name: hugo-chat-frontend-service
|
||||
port:
|
||||
number: 8080
|
||||
- host: bisect-rustc.nilstrieb.dev
|
||||
http:
|
||||
paths:
|
||||
- pathType: Prefix
|
||||
path: /
|
||||
backend:
|
||||
service:
|
||||
name: cargo-bisect-rustc-service
|
||||
port:
|
||||
number: 80
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
# Private Docker registry
|
||||
|
||||
https://medium.com/swlh/deploy-your-private-docker-registry-as-a-pod-in-kubernetes-f6a489bf0180
|
||||
|
||||
You need a `htaccess` file created using `htpasswd`. Use that as the secret.
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: docker-registry-auth-secret
|
||||
type: Opaque
|
||||
data:
|
||||
htpasswd: SECRET
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: docker-registry-volume
|
||||
spec:
|
||||
capacity:
|
||||
storage: 2Gi
|
||||
volumeMode: Filesystem
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
persistentVolumeReclaimPolicy: Recycle
|
||||
local:
|
||||
path: /mnt/kube-registry-volume
|
||||
nodeAffinity:
|
||||
required:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: kubernetes.io/hostname
|
||||
operator: In
|
||||
values:
|
||||
- minikube
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: docker-registry-pvc
|
||||
spec:
|
||||
resources:
|
||||
requests:
|
||||
storage: 2Gi
|
||||
volumeMode: Filesystem
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: docker-registry
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: docker-registry
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: docker-registry
|
||||
spec:
|
||||
containers:
|
||||
- name: docker-registry
|
||||
image: registry:latest
|
||||
resources:
|
||||
limits:
|
||||
memory: "128Mi"
|
||||
cpu: "500m"
|
||||
env:
|
||||
- name: REGISTRY_AUTH
|
||||
value: "htpasswd"
|
||||
- name: REGISTRY_AUTH_HTPASSWD_REALM
|
||||
value: "docker.nilstriev.dev"
|
||||
- name: REGISTRY_AUTH_HTPASSWD_PATH
|
||||
value: "/auth/htpasswd"
|
||||
- name: REGISTRY_HTTP_TLS_CERTIFICATE
|
||||
value: "/certs/tls.crt"
|
||||
- name: REGISTRY_HTTP_TLS_KEY
|
||||
value: "/certs/tls.key"
|
||||
volumeMounts:
|
||||
- name: repo-vol
|
||||
mountPath: "/var/lib/registry"
|
||||
- name: certs-vol
|
||||
mountPath: "/certs"
|
||||
readOnly: true
|
||||
- name: auth-vol
|
||||
mountPath: "/auth"
|
||||
readOnly: true
|
||||
volumes:
|
||||
- name: repo-vol
|
||||
persistentVolumeClaim:
|
||||
claimName: docker-registry-pvc
|
||||
- name: certs-vol
|
||||
secret:
|
||||
secretName: nilstriev-dev-cert
|
||||
- name: auth-vol
|
||||
secret:
|
||||
secretName: docker-registry-auth-secret
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: docker-registry-service
|
||||
spec:
|
||||
selector:
|
||||
app: docker-registry
|
||||
ports:
|
||||
- port: 5000
|
||||
targetPort: 5000
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: main-ingress
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/rewrite-target: /
|
||||
cert-manager.io/cluster-issuer: letsencrypt-staging
|
||||
spec:
|
||||
rules:
|
||||
- host: hugo-chat.nilstrieb.dev
|
||||
http:
|
||||
paths:
|
||||
- pathType: Prefix
|
||||
path: /
|
||||
backend:
|
||||
service:
|
||||
name: hugo-chat-frontend-service
|
||||
port:
|
||||
number: 8080
|
||||
- host: bisect-rustc.nilstrieb.dev
|
||||
http:
|
||||
paths:
|
||||
- pathType: Prefix
|
||||
path: /
|
||||
backend:
|
||||
service:
|
||||
name: cargo-bisect-rustc-service
|
||||
port:
|
||||
number: 80
|
||||
tls:
|
||||
- hosts:
|
||||
- nilstrieb.dev
|
||||
- docker.nilstrieb.dev
|
||||
- cors-school.nilstrieb.dev
|
||||
- api.cors-school.nilstrieb.dev
|
||||
- hugo-chat.nilstrieb.dev
|
||||
- api.hugo-chat.nilstrieb.dev
|
||||
- bisect-rustc.nilstrieb.dev
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: ubuntu-debugger
|
||||
labels:
|
||||
name: ubuntu-debugger
|
||||
spec:
|
||||
containers:
|
||||
- name: ubuntu-debugger
|
||||
image: docker.io/ubuntu:latest
|
||||
resources:
|
||||
limits:
|
||||
memory: "128Mi"
|
||||
cpu: "500m"
|
||||
command: ["/bin/bash", "-c", "--"]
|
||||
args: ["while true; do sleep 30; done;"]
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
docker run --net internal --name hugo-chat-frontend \
|
||||
-d --restart=always docker.nilstrieb.dev/hugo-chat-frontend:1.0
|
||||
|
||||
docker run --net internal --name hugo-chat-db \
|
||||
-d -e POSTGRES_PASSWORD=huGO123.corsBOSS postgres
|
||||
|
||||
docker run --net internal --name hugo-chat-backend \
|
||||
-d docker.nilstrieb.dev/hugo-chat-backend:1.0
|
||||
Loading…
Add table
Add a link
Reference in a new issue