homelab/manifests/portfolio/portfolio.yaml

81 lines
1.6 KiB
YAML

# Apply: kubectl apply -f manifests/portfolio/portfolio.yaml
# Delete: kubectl delete -f manifests/portfolio/portfolio.yaml
# Description: Portfolio website deployment, service, TLS certificate, and public IngressRoute at nik4nao.com.
---
apiVersion: v1
kind: Namespace
metadata:
name: portfolio
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: portfolio
namespace: portfolio
spec:
replicas: 1
selector:
matchLabels:
app: portfolio
template:
metadata:
labels:
app: portfolio
spec:
imagePullSecrets:
- name: gitea-registry
containers:
- name: portfolio
image: gitea.nik4nao.com/nik/portfolio:latest
imagePullPolicy: Always
ports:
- containerPort: 80
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 128Mi
---
apiVersion: v1
kind: Service
metadata:
name: portfolio
namespace: portfolio
spec:
selector:
app: portfolio
ports:
- port: 80
targetPort: 80
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: portfolio-tls
namespace: portfolio
spec:
secretName: portfolio-tls
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
dnsNames:
- nik4nao.com
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: portfolio
namespace: portfolio
spec:
entryPoints:
- websecure
routes:
- match: Host(`nik4nao.com`)
kind: Rule
services:
- name: portfolio
port: 80
tls:
secretName: portfolio-tls