--- # tasks file for pleroma - name: Create NextCloud namespace k8s: state: present definition: apiVersion: v1 kind: Namespace metadata: name: pleroma - name: Create PVC for PostgreSQL k8s: state: present definition: apiVersion: v1 kind: PersistentVolumeClaim metadata: name: postgresql namespace: pleroma spec: accessModes: - ReadWriteOnce resources: requests: storage: 2Ti - name: Create Deployment for PostgreSQL k8s: state: present definition: apiVersion: v1 kind: Deployment metadata: name: postgresql namespace: pleroma labels: app: postgresql spec: replicas: 1 selector: matchLabels: app: postgresql template: metadata: labels: app: postgresql spec: containers: - name: postgresql image: postgresql volumeMounts: - name: data mountPath: /var/lib/postgresql/data ports: - containerPort: 5432 env: - name: MYSQL_ROOT_PASSWORD value: "{{ mysql_root_password }}" - name: MYSQL_DATABASE value: nextcloud - name: MYSQL_USER value: nextcloud - name: MYSQL_PASSWORD value: "{{ nextcloud_mysql_password }}" volumes: - name: data persistentVolumeClaim: claimName: postgresql - name: Create Service for PostgreSQL k8s: state: present definition: apiVersion: v1 kind: Service metadata: name: postgresql namespace: cloud spec: selector: app: postgresql ports: - port: 3306 name: mysql type: ClusterIP - name: Create PVC for Pleroma k8s: state: present definition: apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pleroma namespace: pleroma spec: accessModes: - ReadWriteOnce resources: requests: storage: 128Gi - name: Create Deployment for Pleroma k8s: state: present definition: apiVersion: v1 kind: Deployment metadata: name: pleroma namespace: pleroma labels: app: pleroma spec: replicas: 1 selector: matchLabels: app: pleroma template: metadata: labels: app: pleroma spec: containers: - name: pleroma image: pleroma volumeMounts: - name: data mountPath: /data/uploads ports: - containerPort: 4000 env: - name: POSTGRES_PASSWORD value: "{{ pleroma_admin_password }}" - name: POSTGRES_USER value: pleroma - name: POSTGRES_DB value: pleroma - name: ADMIN_EMAIL value: pleroma@eom.dev - name: ADMIN_PASSWORD value: "{{ pleroma_admin_password }}" - name: DB_HOST value: postgresql - name: DB_PORT value: 5432 - name: DB_USER value: pleroma - name: DB_PASS value: "{{ pleroma_admin_password }}" - name: DB_NAME value: pleroma - name: INSTANCE_NAME value: Pleroma - name: DOMAIN value: pleroma.eom.dev - name: LDAP_ENABLED value: true - name: LDAP_HOST value: openldap.openldap.svc.cluster.local - name: LDAP_PORT value: 389 - name: LDAP_SSL value: false - name: LDAP_TLS value: false - name: LDAP_BASE value: dc=eom,dc=dev - name: LDAP_UID value: uid - name: LDAP_MAIL value: mail volumes: - name: data persistentVolumeClaim: claimName: pleroma - name: Create Service for Pleroma k8s: state: present definition: apiVersion: v1 kind: Service metadata: name: pleroma namespace: pleroma spec: selector: app: pleroma ports: - port: 80 name: http type: ClusterIP - name: Create Ingress k8s: state: present definition: apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: cert-manager.io/cluster-issuer: ca-issuer name: pleroma namespace: pleroma spec: ingressClassName: nginx rules: - host: pleroma.eom.dev http: paths: - pathType: Prefix path: / backend: service: name: pleroma port: number: 4000 tls: - hosts: - pleroma.eom.dev secretName: pleroma