mirror of
https://github.com/Noratrieb/vps.git
synced 2026-01-14 16:55:00 +01:00
More
This commit is contained in:
parent
1b8879c684
commit
4be274f187
12 changed files with 270 additions and 12 deletions
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
*.yaml linguist-detectable
|
||||||
68
kube/apps/cargo-bisect-rustc.yaml
Normal file
68
kube/apps/cargo-bisect-rustc.yaml
Normal file
|
|
@ -0,0 +1,68 @@
|
||||||
|
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
|
||||||
65
kube/apps/hugo-chat-db.yaml
Normal file
65
kube/apps/hugo-chat-db.yaml
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
# 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
|
||||||
23
kube/default-volume.yaml
Normal file
23
kube/default-volume.yaml
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
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
|
||||||
14
kube/letsencrypt-cluster-issuer-production.yaml
Normal file
14
kube/letsencrypt-cluster-issuer-production.yaml
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
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
|
||||||
14
kube/letsencrypt-cluster-issuer-staging.yaml
Normal file
14
kube/letsencrypt-cluster-issuer-staging.yaml
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
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
|
||||||
|
|
@ -16,3 +16,13 @@ spec:
|
||||||
name: hugo-chat-frontend-service
|
name: hugo-chat-frontend-service
|
||||||
port:
|
port:
|
||||||
number: 8080
|
number: 8080
|
||||||
|
- host: bisect-rustc.nilstrieb.dev
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- pathType: Prefix
|
||||||
|
path: /
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: cargo-bisect-rustc-service
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
38
kube/server-ingress.yaml
Normal file
38
kube/server-ingress.yaml
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
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
|
||||||
7
scripts/cert-manager.sh
Executable file
7
scripts/cert-manager.sh
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
# https://getbetterdevops.io/k8s-ingress-with-letsencrypt/
|
||||||
|
|
||||||
|
helm repo add jetstack https://charts.jetstack.io
|
||||||
|
helm repo update
|
||||||
|
helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --set installCRDs=true
|
||||||
4
scripts/minikube-setup.sh
Normal file
4
scripts/minikube-setup.sh
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
minikube addons enable ingress
|
||||||
|
minikube addons enable ingress-dns
|
||||||
14
scripts/setup-env.sh
Executable file
14
scripts/setup-env.sh
Executable file
|
|
@ -0,0 +1,14 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
if kubectl cert-manager 2>/dev/null >/dev/null ;
|
||||||
|
then
|
||||||
|
echo "The cert-manger kubectl plugin is already installed"
|
||||||
|
else
|
||||||
|
CERT_MANAGER_KUBECTL_VERSION="v1.6.1"
|
||||||
|
|
||||||
|
echo "Installing the cert-manager kubectl plugin: $CERT_MANAGER_KUBECTL_VERSION"
|
||||||
|
|
||||||
|
curl -L -o kubectl-cert-manager.tar.gz "https://github.com/jetstack/cert-manager/releases/download/$CERT_MANAGER_KUBECTL_VERSION/kubectl-cert_manager-linux-amd64.tar.gz"
|
||||||
|
tar xzf kubectl-cert-manager.tar.gz
|
||||||
|
sudo mv kubectl-cert_manager /usr/local/bin
|
||||||
|
fi
|
||||||
Loading…
Add table
Add a link
Reference in a new issue