Changes for page XWiki (Helm)

Last modified by Itzhak Daniel on 2024/04/29 16:35

From version 19.1
edited by Itzhak Daniel
on 2024/04/29 01:43
Change comment: Uploaded new attachment "Dockerfile", version 1.2
To version 21.1
edited by Itzhak Daniel
on 2024/04/29 01:50
Change comment: Uploaded new attachment "values.yaml", version 1.2

Summary

Details

Page properties
Content
... ... @@ -49,7 +49,7 @@
49 49  git clone --depth 1 --branch master https://github.com/xwiki/xwiki-docker.git
50 50  {{/code}}
51 51  
52 -Once you have the repo locally, modify the //Dockerfile// as shown below:
52 +Once you have the repo locally, modify the [[//Dockerfile//>>attach:Dockerfile]] as shown below:
53 53  
54 54  {{code language="git" title="# Diff"}}
55 55  @@ -89,6 +89,11 @@ COPY xwiki/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
... ... @@ -71,15 +71,15 @@
71 71  
72 72  {{code language="sh" layout="LINENUMBERS" title="# Docker"}}
73 73  cd ./16/mysql-tomcat/
74 -docker build -t behemothil/xwiki-mysql-tomcat-nonroot:16.2.0-2 .
74 +docker build -t behemothil/xwiki-mysql-tomcat-nonroot:16.2.0-3 .
75 75  docker login
76 -docker push behemothil/xwiki-mysql-tomcat-nonroot:16.2.0-2
76 +docker push behemothil/xwiki-mysql-tomcat-nonroot:16.2.0-3
77 77  {{/code}}
78 78  
79 79  {{code language="sh" layout="LINENUMBERS" title="# Podman"}}
80 80  cd ./16/mysql-tomcat/
81 -buildah build -f Dockerfile -t behemothil/xwiki-mysql-tomcat-nonroot:16.2.0-2
82 -docker push --creds=[Username:[Password]] behemothil/xwiki-mysql-tomcat-nonroot:16.2.0-2
81 +buildah build -f Dockerfile -t behemothil/xwiki-mysql-tomcat-nonroot:16.2.0-3
82 +podman push --creds=[Username:[Password]] behemothil/xwiki-mysql-tomcat-nonroot:16.2.0-3
83 83  {{/code}}
84 84  
85 85  === Deploy ===
... ... @@ -86,7 +86,7 @@
86 86  
87 87  We're going to deploy XWiki as a [[statefulset>>https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/]] using [[Helm>>https://helm.sh/]], the Database (MySQL) and the App, each will have a volume to store their information. As I mentioned, in our case, we need to perform several additional steps.
88 88  
89 -After the path/loop devices were created, create the PVs (only if your cluster doesn't know how to provision storage for itself):
89 +After the path/loop devices were created, create the [[PVs>>attach:pv_storage.yaml]] (only if your cluster doesn't know how to provision storage for itself):
90 90  
91 91  {{code language="sh" layout="LINENUMBERS" title="# kubectl stdin"}}
92 92  kubectl create -f - <<EOF
values.yaml
Size
... ... @@ -1,1 +1,1 @@
1 -4.1 KB
1 +5.5 KB
Content
... ... @@ -1,3 +1,6 @@
1 +# Default values for node.
2 +# This is a YAML-formatted file.
3 +# Declare variables to be passed into your templates.
1 1  cluster:
2 2   enabled: false
3 3  
... ... @@ -4,8 +4,11 @@
4 4  image:
5 5   name: xwiki
6 6   pullPolicy: IfNotPresent
10 +## Image Tag useful when externalDB is been used
11 +## https://hub.docker.com/_/xwiki
7 7   name: "behemothil/xwiki-mysql-tomcat-nonroot"
8 - tag: "16.2.0-1"
13 + tag: "16.2.0-2"
14 +# tag: '16.2.0-mysql-tomcat'
9 9  service:
10 10   portName: node
11 11   name: http
... ... @@ -12,7 +12,11 @@
12 12   type: ClusterIP
13 13   externalPort: 80
14 14   internalPort: 8080
21 + # Set an array of externalIPs for the service
15 15   externalIPs: []
23 + # - 10.20.30.40
24 + # - 10.20.30.41
25 + # Reference: https://kubernetes.io/docs/reference/networking/virtual-ips/#session-affinity
16 16   sessionAffinity: ClientIP
17 17  resources:
18 18   limits:
... ... @@ -26,6 +26,7 @@
26 26   - -Xms1024m
27 27   - -Xmx6000m
28 28  
39 +# Enable to choose witch kind of workload will be used: (true) StatefulSet or (false) for Deployment
29 29  workloadStateful: true
30 30  
31 31  securityContext:
... ... @@ -54,20 +54,36 @@
54 54   type: "RuntimeDefault"
55 55   enabled: true
56 56  
68 +##
69 +## MySql chart configuration
70 +##
71 +## https://github.com/bitnami/charts/tree/main/bitnami/mysql
72 +##
57 57  mysql:
74 + ## Whether to deploy a mysql server. Set false for a different database.
58 58   enabled: true
59 59   image:
60 60   tag: "8.0-debian-12"
61 61   pullPolicy: "IfNotPresent"
62 62   auth:
63 - rootPassword: "ROOT_PASSWORD_CHANGEME !!!"
64 - username: "USERNAME_CHANGEME !!!"
65 - password: "USER_PASSWORD_CHANGEME !!!"
66 - database: "DB_NAME_CHANGEME !!!"
80 + rootPassword: "Wxv11dZmzw4YIozxj1"
81 + username: "xwiki"
82 + password: "3N5NBYnb5VQfDA2gde"
83 + database: "xwiki"
67 67   initdbScripts:
68 68   00-init.sql: |
69 69   grant all privileges on *.* to xwiki@'%'
70 70   primary:
88 + # initContainers:
89 + # - name: "fix-non-root-permissions"
90 + # image: "busybox"
91 + # imagePullPolicy: "IfNotPresent"
92 + # command: [ "chown", "-R", "30001:30001", "/opt/bitnami" ]
93 + # volumeMounts:
94 + # - name: conf
95 + # mountPath: /opt/bitnami
96 + # Changed to use UTF8mb4, check future versions if this was already changed.
97 + # TODO: review explicit_defaults_for_timestamp
71 71   configuration: |-
72 72   [mysqld]
73 73   default_authentication_plugin=mysql_native_password
... ... @@ -118,12 +118,25 @@
118 118   seccompProfile:
119 119   type: "RuntimeDefault"
120 120  
148 +mariadb:
149 + enabled: false
150 +
151 +postgresql:
152 + enabled: false
153 +
154 +solr:
155 + enabled: false
156 +
157 +# To use ingress for routing set ingress.enabled value to true and istio.enabled value to false
121 121  ingress:
122 122   enabled: true
123 123   className: nginx
124 124   annotations:
125 125   kubernetes.io/ingress.class: nginx
163 +# nginx.ingress.kubernetes.io/whitelist-source-range: "152.67.64.124/32, 178.255.149.139/32"
126 126   cert-manager.io/cluster-issuer: letsencrypt-prod
165 + # kubernetes.io/tls-acme: "true"
166 + # ingress.kubernetes.io/rewrite-target: /
127 127   hosts:
128 128   - host: wiki.behemoth.co.il
129 129   paths:
... ... @@ -134,6 +134,9 @@
134 134   hosts:
135 135   - wiki.behemoth.co.il
136 136  
177 +istio:
178 + enabled: false
179 +
137 137  persistence:
138 138   enabled: true
139 139   storageClass: "behemoth-xwiki-www"
... ... @@ -141,6 +141,19 @@
141 141   - ReadWriteOnce
142 142   size: "5Gi"
143 143  
187 +podDisruptionBudget:
188 + enabled: false
189 +
190 +glowroot:
191 + enabled: false
192 +
193 +logback:
194 + enabled: false
195 +
196 +autoscaling:
197 + enabled: false
198 +
199 +# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
144 144  probes:
145 145   startup:
146 146   enabled: true
... ... @@ -160,6 +160,7 @@
160 160   initialDelaySeconds: 30
161 161   timeoutSeconds: 3
162 162   periodSeconds: 30
219 + # 5 minutes
163 163   failureThreshold: 10
164 164   successThreshold: 1
165 165   readiness:
... ... @@ -170,9 +170,13 @@
170 170   initialDelaySeconds: 30
171 171   timeoutSeconds: 3
172 172   periodSeconds: 30
230 + # 5 minutes
173 173   failureThreshold: 10
174 174   successThreshold: 1
175 175  
234 +infinispan:
235 + enabled: false
236 +
176 176  prometheus:
177 177   javaagent:
178 178   # https://github.com/prometheus/jmx_exporter
... ... @@ -179,23 +179,3 @@
179 179   # Enable to download and use this agent
180 180   enabled: true
181 181  
182 -podDisruptionBudget:
183 - enabled: false
184 -
185 -solr:
186 - enabled: false
187 -istio:
188 - enabled: false
189 -
190 -glowroot:
191 - enabled: false
192 -
193 -logback:
194 - enabled: false
195 -
196 -autoscaling:
197 - enabled: false
198 -
199 -infinispan:
200 - enabled: false
201 -