summaryrefslogtreecommitdiff
path: root/roles/nextcloud/templates/pod-with-mariadb.yml.j2
blob: dfef3810a714466181bbd6b1bf9e4e7c1bea60de (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
apiVersion: v1
kind: Pod
metadata:
  name: "nextcloud-{{ item.key }}"
spec:
  securityContext:
    allowPrivilegeEscalation: false
  containers:
  - name: nextcloud
    image: "nextcloud:{{ item.value.version }}"
    securityContext:
      runAsUser: {{ nextcloud_app_uid }}
      runAsGroup: {{ nextcloud_app_gid }}
    resources:
      limits:
        memory: "4Gi"
{% if 'new' in item.value and item.value.new %}
    env:
    - name: NEXTCLOUD_TRUSTED_DOMAINS
      value: "{{ item.value.hostnames | join(' ') }}"
    - name: MYSQL_HOST
      value: 127.0.0.1
    - name: MYSQL_DATABASE
      value: nextcloud
    - name: MYSQL_USER
      value: nextcloud
    - name: MYSQL_PASSWORD
      value: "{{ item.value.database.password }}"
{% endif %}
    volumeMounts:
    - name: nextcloud
      mountPath: /var/www/html
    - name: config
      mountPath: /etc/apache2/sites-available/000-default.conf
      subPath: apache-site.conf
      readOnly: true
    - name: config
      mountPath: /etc/apache2/ports.conf
      subPath: ports.conf
      readOnly: true
    ports:
    - containerPort: 8080
      hostPort: {{ item.value.port }}
  - name: database
    image: "mariadb:{{ item.value.database.version }}"
    args:
    - --transaction-isolation=READ-COMMITTED
    - --binlog-format=ROW
    securityContext:
      runAsUser: {{ nextcloud_db_uid }}
      runAsGroup: {{ nextcloud_db_gid }}
    resources:
      limits:
        memory: "2Gi"
{% if 'new' in item.value and item.value.new %}
    env:
    - name: MYSQL_RANDOM_ROOT_PASSWORD
      value: "true"
    - name: MYSQL_DATABASE
      value: nextcloud
    - name: MYSQL_USER
      value: nextcloud
    - name: MYSQL_PASSWORD
      value: "{{ item.value.database.password }}"
{% endif %}
    volumeMounts:
    - name: database
      mountPath: /var/lib/mysql
  volumes:
  - name: config
    hostPath:
      path: "{{ nextcloud_base_path }}/{{ item.key }}/config/"
      type: Directory
  - name: nextcloud
    hostPath:
      path: "{{ nextcloud_base_path }}/{{ item.key }}/nextcloud"
      type: Directory
  - name: database
    hostPath:
      path: "{{ nextcloud_base_path }}/{{ item.key }}/{{ item.value.database.type }}"
      type: Directory