90 lines
1.9 KiB
YAML
90 lines
1.9 KiB
YAML
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: ${CI_PROJECT_PATH_SLUG}-config-map
|
|
data:
|
|
APP_NAME: "${APP_APP_NAME}"
|
|
APP_ENV: "${APP_APP_ENV}"
|
|
APP_KEY: "${APP_APP_KEY}"
|
|
APP_DEBUG: "${APP_APP_DEBUG}"
|
|
APP_URL: "https://www.${APP_DOMAIN}"
|
|
LOG_CHANNEL: "k8s"
|
|
SENTRY_LARAVEL_DSN: "${APP_SENTRY_LARAVEL_DSN}"
|
|
MATOMO_SITE_ID: "${APP_MATOMO_SITE_ID}"
|
|
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: ${CI_PROJECT_PATH_SLUG}-deployment
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: ${CI_PROJECT_PATH_SLUG}-app
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: ${CI_PROJECT_PATH_SLUG}-app
|
|
spec:
|
|
containers:
|
|
- name: ${CI_PROJECT_PATH_SLUG}-container
|
|
image: $IMAGE_TAG
|
|
envFrom:
|
|
- configMapRef:
|
|
name: ${CI_PROJECT_PATH_SLUG}-config-map
|
|
imagePullSecrets:
|
|
- name: docker-registry-credentials
|
|
securityContext:
|
|
runAsUser: 33
|
|
runAsGroup: 33
|
|
fsGroup: 33
|
|
fsGroupChangePolicy: "OnRootMismatch"
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: ${CI_PROJECT_PATH_SLUG}-service
|
|
spec:
|
|
selector:
|
|
app: ${CI_PROJECT_PATH_SLUG}-app
|
|
ports:
|
|
- port: 80
|
|
targetPort: 443
|
|
|
|
---
|
|
apiVersion: traefik.containo.us/v1alpha1
|
|
kind: IngressRoute
|
|
metadata:
|
|
name: ${CI_PROJECT_PATH_SLUG}-ingress-route
|
|
spec:
|
|
entryPoints:
|
|
- web
|
|
- websecure
|
|
routes:
|
|
- match: Host(`${APP_DOMAIN}`, `www.${APP_DOMAIN}`)
|
|
kind: Rule
|
|
services:
|
|
- name: ${CI_PROJECT_PATH_SLUG}-service
|
|
port: 80
|
|
middlewares:
|
|
- name: redirect-no-www-to-www
|
|
namespace: common-services
|
|
tls:
|
|
secretName: $APP_DOMAIN
|
|
|
|
---
|
|
apiVersion: cert-manager.io/v1
|
|
kind: Certificate
|
|
metadata:
|
|
name: $APP_DOMAIN
|
|
spec:
|
|
dnsNames:
|
|
- $APP_DOMAIN
|
|
- www.${APP_DOMAIN}
|
|
secretName: $APP_DOMAIN
|
|
issuerRef:
|
|
name: $APP_CERT_ISSUER
|
|
kind: ClusterIssuer
|