#SPDX-License-Identifier: MIT-0 --- # tasks file for ansible-role-fediprofile - name: namespace k8s: state: present definition: apiVersion: v1 kind: Namespace metadata: name: "{{ fediprofile_namespace }}" - name: configmap k8s: state: present definition: apiVersion: v1 kind: ConfigMap metadata: name: config namespace: "{{ fediprofile_namespace }}" data: fediprofile.yml: "{{ lookup('template', 'appsettings.json.j2') }}" - name: pvc for data k8s: state: present definition: apiVersion: v1 kind: PersistentVolumeClaim metadata: name: data namespace: "{{ fediprofile_namespace }}" spec: accessModes: - ReadWriteOnce resources: requests: storage: "{{ fediprofile_pvc_size_data }}" - name: pvc for uploads k8s: state: present definition: apiVersion: v1 kind: PersistentVolumeClaim metadata: name: uploads namespace: "{{ fediprofile_namespace }}" spec: accessModes: - ReadWriteOnce resources: requests: storage: "{{ fediprofile_pvc_size_uploads }}" - name: deployment for fediprofile k8s: definition: apiVersion: v1 kind: Deployment metadata: name: fediprofile namespace: "{{ fediprofile_namespace }}" spec: replicas: 1 selector: matchLabels: app: fediprofile template: metadata: labels: app: fediprofile spec: containers: - name: fediprofile image: ghcr.io/tryvocalcat/fediprofile tag: latest env: - name: DB_DATA value: /app/data - name: ASPNETCORE_URLS value: "https://{{ fediprofile_hostname }}" volumeMounts: - name: config mountPath: /opt/fediprofile/conf/fediprofile.yml subPath: fediprofile.yml - name: data mountPath: /app/data - name: uploads mountPath: /app/wwwroot/uploads ports: - containerPort: 8080 volumes: - name: data persistentVolumeClaim: claimName: data - name: config configMap: name: config - name: uploads persistentVolumeClaim: claimName: uploads - name: service for fediprofile k8s: definition: apiVersion: v1 kind: Service metadata: name: fediprofile namespace: "{{ fediprofile_namespace }}" spec: selector: app: fediprofile ports: - port: 8080 name: http type: ClusterIP - name: onionservice k8s: definition: apiVersion: tor.k8s.torproject.org/v1alpha2 kind: OnionService metadata: name: fediprofile namespace: "{{ fediprofile_namespace }}" spec: version: 3 rules: - port: number: 8080 backend: service: name: fediprofile port: number: 8080 - name: ingress k8s: state: present definition: apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: cert-manager.io/cluster-issuer: ca-issuer name: fediprofile namespace: "{{ fediprofile_namespace }}" spec: ingressClassName: nginx rules: - host: "{{ fediprofile_hostname }}" http: paths: - pathType: Prefix path: / backend: service: name: fediprofile port: number: 8080