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
on 2024/04/29 01:43
Change comment:
Uploaded new attachment "Dockerfile", version 1.2
To version 22.1
edited by Itzhak Daniel
on 2024/04/29 16:35
on 2024/04/29 16:35
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (1 modified, 0 added, 0 removed)
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- 276 +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- 282 - dockerpush --creds=[Username:[Password]] behemothil/xwiki-mysql-tomcat-nonroot:16.2.0-281 +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 ... ... @@ -181,15 +181,15 @@ 181 181 Theoretically, if there aren't any breaking changes or prerequisites, you can run: 182 182 183 183 {{code language="sh" layout="LINENUMBERS" title="# Helm upgrade"}} 184 +helm repo update xwiki-helm 184 184 helm upgrade --namespace behemoth-wiki \ 185 185 --values values.yaml \ 186 186 behemoth-xwiki xwiki-helm/xwiki 187 - 188 188 {{/code}} 189 189 190 190 === Uninstall === 191 191 192 -To fully remove XWiki, use the following commands: 192 +To fully remove XWiki from your cluster, use the following commands: 193 193 194 194 {{code language="sh" layout="LINENUMBERS" title="# Uninstalling"}} 195 195 helm uninstall --namespace behemoth-wiki behemoth-xwiki
- values.yaml
-
- Size
-
... ... @@ -1,1 +1,1 @@ 1 - 4.1KB1 +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 -