--- # tasks file for deploy-gitea.yml # TODO: Store configuration in repository - name: Create persistent volume for gitea k8s: state: present definition: apiVersion: v1 kind: PersistentVolume metadata: name: gitea spec: capacity: storage: "{{ gitea_storage }}" accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: standard hostPath: path: "/data/store-0/eom/gitea" nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - alpha-worker-0 - name: Create persistent volume claim for gitea data k8s: state: present definition: apiVersion: v1 kind: PersistentVolumeClaim metadata: name: gitea namespace: eom spec: accessModes: - ReadWriteOnce resources: requests: storage: "{{ gitea_storage }}" storageClassName: standard volumeName: gitea - name: Create a deployment k8s: definition: apiVersion: apps/v1 kind: Deployment metadata: name: gitea namespace: eom spec: replicas: 1 selector: matchLabels: app: gitea template: metadata: labels: app: gitea spec: containers: - name: gitea image: gitea/gitea volumeMounts: - name: gitea mountPath: /var/lib/gitea ports: - containerPort: 2222 - containerPort: 3000 env: - name: GITEA__database__DB_TYPE value: "mysql" - name: GITEA__database__HOST value: "mariadb.eom.svc.cluster.local:3306" - name: GITEA__database__NAME value: "gitea" - name: GITEA__database__USER value: "gitea" - name: GITEA__database__PASSWD value: "{{ gitea_mariadb_password }}" volumes: - name: gitea persistentVolumeClaim: claimName: gitea - name: Expose deployment as a service k8s: definition: apiVersion: v1 kind: Service metadata: name: gitea namespace: eom spec: selector: app: gitea ports: - port: 22 targetPort: 2222 protocol: TCP name: gitea-port-22 - port: 80 targetPort: 3000 protocol: TCP name: gitea-port-80 type: ClusterIP