apiVersion: v1
kind: Namespace
metadata:
  name: www
---
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: www
  name: www
  labels:
    app: www
spec:
  replicas: 1
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
    type: RollingUpdate
  selector:
    matchLabels:
      app: www
  template:
    metadata:
      labels:
        app: www
    spec:
      containers:
      - name: www
        image: quay.io/adyxax/www:2021111202
        ports:
        - containerPort: 80
        readinessProbe:
          httpGet:
            path: '/'
            port: 80
          initialDelaySeconds: 1
          timeoutSeconds: 1
        livenessProbe:
          httpGet:
            path: '/'
            port: 80
          initialDelaySeconds: 1
          timeoutSeconds: 1
        lifecycle:
          preStop:
            exec:
              command: ["/bin/sh", "-c", "sleep 10"]
      - name: search
        image: quay.io/adyxax/www-search:2021111202
        ports:
        - containerPort: 8080
        readinessProbe:
          httpGet:
            path: '/search/'
            port: 8080
          initialDelaySeconds: 1
          timeoutSeconds: 1
        livenessProbe:
          httpGet:
            path: '/search/'
            port: 8080
          initialDelaySeconds: 1
          timeoutSeconds: 1
        lifecycle:
          preStop:
            exec:
              command: ["/bin/sh", "-c", "sleep 10"]
---
apiVersion: v1
kind: Service
metadata:
  namespace: www
  name: www
spec:
  type: ClusterIP
  selector:
    app: www
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
      name: www
    - protocol: TCP
      port: 8080
      targetPort: 8080
      name: search
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/configuration-snippet: |
      more_set_headers "Content-Security-Policy: script-src 'unsafe-inline'";
  namespace: www
  name: www
spec:
  ingressClassName: nginx
  tls:
  - secretName: wildcard-adyxax-org
  rules:
  - host: www.adyxax.org
    http:
      paths:
      - path: '/'
        pathType: Prefix
        backend:
          service:
            name: www
            port:
              number: 80
      - path: '/search'
        pathType: Prefix
        backend:
          service:
            name: www
            port:
              number: 8080
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: www
  name: redirects
  annotations:
    nginx.ingress.kubernetes.io/permanent-redirect: https://www.adyxax.org/
    nginx.ingress.kubernetes.io/permanent-redirect-code: "308"
spec:
  ingressClassName: nginx
  tls:
  - secretName: wildcard-adyxax-org
  rules:
  - host: adyxax.org
  - host: wiki.adyxax.org