XWiki Helm Chart
![]() | Provide a helm chart to install and configure XWiki in a Kubernetes environment |
Type | Other |
Category | Other |
Developed by | Unknown |
Rating | |
License | GNU Lesser General Public License 2.1 |
Table of contents
Description
This contrib extension provides Helm Chart aiming to ease the deployment in both Local and Highly Available setups.
TL/DR
# Use --devel install most recent released (beta/alpha) version
helm upgrade -i xwiki xwiki-helm/xwiki
<1.0.0 Install from source.
Complete guide to see Requirements/Install instructions.
Parameters
XWiki
Name | Description | Value |
---|---|---|
image.name | XWiki docker image name | xwiki |
image.tag | XWiki docker image tag | lts-mysql-tomcat |
image.pullPolicy | XWiki docker image pull policy | IfNotPresent |
replicaCount | Number of XWiki instances | 1 |
workloadStateful | 1.0.0+ Define if workload will be (true) StatefulSet or Deployment | true |
customConfigs.xwiki.cfg | 1.0.0+ Key/Value preferences to be replaced or inserted on xwiki.cfg file | [] |
customConfigs.xwiki.properties | 1.0.0+ Key/Value preferences to be replaced or inserted on xwiki.properties file | [] |
properties | 1.0.0+ Key/Value preferences to be passed to Java process with -D parameters using JAVA_OPTS | [] |
javaOpts | 1.0.0+ Custom JVM parameters | [] |
extraEnvVars | 1.0.0+ Array with extra environment variables | [] |
nodeSelector | 1.0.0+ Node labels for XWiki pods assignment | {} |
tolerations | 1.0.0+ Tolerations for XWiki pods assignment | [] |
affinity | 1.0.0+ Affinity for XWiki pods assignment | {} |
resources.limits | The resources limits for XWiki | {} |
resources.requests | The requested resources for XWiki | {} |
Persistence
Name | Description | Value |
---|---|---|
persistence.enable | 1.0.0+ Enable XWiki data persistence using PVC | true |
persistence.existingClaim | 1.0.0+ Name of an existing PVC to use | "" |
persistence.storageClass | 1.0.0+ PVC Storage Class for XWiki data volume | "" |
persistence.accessModes | 1.0.0+ PVC Access Mode for XWiki data volume | ["ReadWriteOnce"] |
persistence.size | 1.0.0+ PVC Storage Request for XWiki data volume | 500Mi |
persistence.annotations | 1.0.0+ Annotations for the PVC | {} |
persistence.labels | 1.0.0+ Labels for the PVC | {} |
persistence.selector | 1.0.0+ Selector to match an existing Persistent Volume | {} |
persistence.dataSource | 1.0.0+ Custom PVC data source | {} |
Traffic
Name | Description | Value |
---|---|---|
ingress.enabled | Enable ingress rule that makes XWiki service accessible | false |
ingress.className | IngressClass that implement the Ingress | "" |
ingress.annotations | Additional annotations for the Ingress. | {} |
ingress.hosts[0].host | 1.0.0+ Host for the ingress | "" |
ingress.hosts[0].paths[0].path | 1.0.0+ Path for the ingress | "/" |
ingress.hosts[0].paths[0].pathType | 1.0.0+ Path Type fo the ingress | "ImplementationSpecific" |
ingress.tls | 1.0.0+ TLS configuration | [] |
service.portName | Port name of service | 'node' |
service.name | Name of service | 'http' |
service.type | Kubernetes service type | 'ClusterIP' |
service.externalPort | External port | 80 |
service.internalPort | Internal/Container port | 8080 |
Database
In case deploy a database with xwiki chart, the database options are PostgreSQL, 1.0.0+ MariaDB and MySQL provided by bitnami.
Name | Description | Value |
---|---|---|
externalDB.host | Host to external/existing database instance to use | '' |
externalDB.database | Database to use | '' |
externalDB.user | User to use | '' |
externalDB.password | Password for the above user | '' |
mysql.enable | Whether to deploy new MySQL server | true |
mysql.auth.rootPassword | Password for the MySQL 'root' user | xwiki |
mysql.auth.username | Database user to create | xwiki |
mysql.auth.password | Database password for username above | xwiki |
mysql.auth.database | Database name to create | xwiki |
mariadb.enable | 1.0.0+ Whether to deploy new MySQL server | false |
mariadb.auth.rootPassword | 1.0.0+ Password for the MySQL 'root' user | xwiki |
mariadb.auth.username | 1.0.0+ Database user to create | xwiki |
mariadb.auth.password | 1.0.0+ Database password for username above | xwiki |
mariadb.auth.database | 1.0.0+ Database name to create | xwiki |
postgresql.enable | Whether to deploy new PostgreSQL server | false |
postgresql.auth.postgresPassword | Password for the 'postgres' user | xwiki |
postgresql.auth.username | Database user to create | xwiki |
postgresql.auth.password | Database password for username above | xwiki |
postgresql.auth.database | Database name to create | xwiki |
For MySQL and MariaDB a initilization script and custom config are made in order to grant permission and use correct character set.
Examples
Custom Properties
# Custom configuration files for xwiki
customConfigs:
# Properties key that exists, replace in line is done with value here defined.
# If key don't exists, this key and value will be appended in that specific file.
# This files are list of key: value that are translated as key=value in that file.
xwiki.cfg:
xwiki.superadminpassword: "s3cr3t"
xwiki.properties:
extension.repositories: "store.xwiki.com:xwiki:https://store.xwiki.com/xwiki/rest/"
# Properties to be passed to Java process with -D parameters using JAVA_OPTS
properties:
http.proxyHost: "proxy.mycompany.com"
http.proxyPort: 7777
https.proxyHost: "proxy.mycompany.com"
https.proxyPort: 7777
# This propertie is only used on new extension, maybe on future versions will be possible to setup this custom change.
# But works for another properties
"property:xwiki:XWiki.XWikiPreferences^XWiki.XWikiPreferences[0].colorTheme": "FlamingoThemes.Iceberg"
Prerequisites & Installation Instructions
Requirements
- Kubernetes 1.23+
- kubectl https://kubernetes.io/docs/tasks/tools/
- Helm 3.x https://helm.sh/docs/intro/install/
Install
To install chart with the release name xwiki:
# Use --devel install most recent released (beta/alpha) version
helm install xwiki xwiki-helm/xwiki
Source
To install using local chart definitions or other not released version:
# git checkout branch-name
cd xwiki-helm/charts/xwiki
helm dependency update
helm install xwiki .
Tests
Current tests are unit tests created to run with helm-unittest plugin:
helm unittest charts/xwiki
Upgrading
v0.X to v1.0.0
In this version some persistent mappings have been modified, so it is strongly recommended to perform a backup. Velero is a useful tool for managing Kubernetes backups.
If your instance is utilizing an external database, it is possible to upgrade Helm release by changing the workloadStateful to false.
For releases that utilize database settings/install, the recommended approach is to install new Helm release and perform data migration accordingly. See Import/Export.
Release Notes
v1.0.0
Here are the updates in this release:
- Support for Kubernetes v1.23+
- Upgrade of the Helm definition to use v2 API.
- Changed the repository for MySQL and PostgreSQL to use Bitnami.
- Added MariaDB (10.11.2) as database option using chart version 12.1.4.
- Updated the MySQL (8.0.33) chart version to 9.9.0.
- Updated the PostgreSQL (15.2.0) chart version to 12.4.2.
- Upgraded unittesting to lasted version.
- Added new persistent options for XWiki data.
- Introduced Github workflow actions to perform testing and release.
- Added support config xwiki properties and cfg using helm chart values.
Jira issues solved: