apiVersion: v1 kind: Secret metadata: name: focalboard namespace: focalboard labels: app.kubernetes.io/name: focalboard annotations: kube-1password: dpszqviipd5tkls5bajzeb56ui kube-1password/vault: Kubernetes kube-1password/secret-text-key: config.json type: Opaque --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: focalboard namespace: focalboard labels: app.kubernetes.io/name: focalboard spec: accessModes: - ReadWriteOnce resources: requests: storage: 2Gi --- apiVersion: v1 kind: Service metadata: name: focalboard namespace: focalboard labels: app.kubernetes.io/name: focalboard annotations: prometheus.io/scrape: "true" prometheus.io/path: "/metrics" prometheus.io/port: "9000" spec: type: ClusterIP ports: - port: 80 targetPort: web name: web selector: app.kubernetes.io/name: focalboard --- apiVersion: apps/v1 kind: Deployment metadata: name: focalboard namespace: focalboard labels: app.kubernetes.io/name: focalboard annotations: secret.reloader.stakater.com/reload: "focalboard" spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app.kubernetes.io/name: focalboard template: metadata: labels: app.kubernetes.io/name: focalboard spec: containers: - name: focalboard image: mattermost/focalboard:7.2.0 imagePullPolicy: IfNotPresent ports: - containerPort: 8000 name: web env: - name: FOCALBOARD_PORT value: "8000" - name: VIRTUAL_HOST value: "localhost" - name: VIRTUAL_PORT value: "8000" - name: VIRTUAL_PROTO value: "http" volumeMounts: - name: data mountPath: /data - name: config mountPath: /opt/focalboard/config.json subPath: config.json volumes: - name: data persistentVolumeClaim: claimName: focalboard - name: config secret: secretName: focalboard --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: focalboard namespace: focalboard labels: app.kubernetes.io/name: focalboard annotations: cert-manager.io/cluster-issuer: letsencrypt nginx.ingress.kubernetes.io/force-ssl-redirect: "true" nginx.ingress.kubernetes.io/proxy-body-size: "0" spec: tls: - hosts: - focalboard.cluster.fun secretName: focalboard-ingress rules: - host: focalboard.cluster.fun http: paths: - path: / pathType: Prefix backend: service: name: focalboard port: number: 80