-
Notifications
You must be signed in to change notification settings - Fork 0
/
nextcloud.yaml
160 lines (158 loc) · 3.6 KB
/
nextcloud.yaml
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
# NEXTCLOUD DEPLOYMENT
apiVersion: apps/v1
kind: Deployment
metadata:
name: nextcloud-deployment
labels:
app: nextcloud
spec:
replicas: 1
selector:
matchLabels:
app: nextcloud
template:
metadata:
labels:
app: nextcloud
spec:
containers:
- name: nextcloud
image: nextcloud:latest
volumeMounts:
- mountPath: /var/www/html/apps
name: apps
- mountPath: /var/www/html/custom_apps
name: custom-apps
- mountPath: /var/www/html/config
name: config
- mountPath: /var/www/html/data
name: data
ports:
- containerPort: 80
env:
- name: MYSQL_DATABASE
valueFrom:
secretKeyRef:
name: nextcloud-db-secret
key: database
- name: MYSQL_USER
valueFrom:
secretKeyRef:
name: nextcloud-db-secret
key: user
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: nextcloud-db-secret
key: password
- name: MYSQL_HOST
value: "nextcloud-db-service"
volumes:
- name: apps
hostPath:
path: /home/docker/data/nextcloud/apps
type: Directory
- name: custom-apps
hostPath:
path: /home/docker/data/nextcloud/custom_apps
type: Directory
- name: config
hostPath:
path: /home/docker/data/nextcloud/config
type: Directory
- name: data
hostPath:
path: /home/docker/data/nextcloud/data
type: Directory
---
# NEXTCLOUD SERVICE
apiVersion: v1
kind: Service
metadata:
name: nextcloud-service
spec:
type: NodePort
selector:
app: nextcloud
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30001
---
# NEXTCLOUD DATABASE DEPLOYMENT
apiVersion: apps/v1
kind: Deployment
metadata:
name: nextcloud-db-deployment
labels:
app: nextcloud-db
spec:
replicas: 1
selector:
matchLabels:
app: nextcloud-db
template:
metadata:
labels:
app: nextcloud-db
spec:
containers:
- name: nextcloud-db
image: mariadb:latest
volumeMounts:
- mountPath: /var/lib/mysql
name: database
ports:
- containerPort: 3306
env:
- name: MYSQL_USER
valueFrom:
secretKeyRef:
name: nextcloud-db-secret
key: user
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: nextcloud-db-secret
key: password
- name: MYSQL_DATABASE
valueFrom:
secretKeyRef:
name: nextcloud-db-secret
key: database
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: nextcloud-db-secret
key: root-password
volumes:
- name: database
hostPath:
path: /home/docker/data/nextcloud/db
type: Directory
---
# NEXTCLOUD DATABASE SERVICE
apiVersion: v1
kind: Service
metadata:
name: nextcloud-db-service
spec:
selector:
app: nextcloud-db
ports:
- protocol: TCP
port: 3306
targetPort: 3306
---
# NEXTCLOUD DATABASE SECRET
apiVersion: v1
kind: Secret
metadata:
name: nextcloud-db-secret
type: Opaque
data:
user: bmV4dGNsb3Vk #nextcloud in base64 - CHANGE THIS
password: bmV4dGNsb3Vk #nextcloud in base64 - CHANGE THIS
database: bmV4dGNsb3Vk #nextcloud in base64 - CHANGE THIS
root-password: bmV4dGNsb3Vk #nextcloud in base64 - CHANGE THIS