LimeSurvey is the number one open-source survey software.
helm repo add martialblog https://martialblog.github.io/helm-charts
helm repo update
helm install my-release \
--set mariadb.enabled=true \
--set mariadb.auth.rootPassword=CHANGE-ME \
--set mariadb.auth.password=CHANGE-ME \
martialblog/limesurvey
This chart bootstraps LimeSurvey deployment on a Kubernetes cluster using the Helm package manager.
It also packages the Bitnami MariaDB chart which is required for bootstrapping a MariaDB deployment for the database requirements of the application. You can also provide your own database instance.
- Kubernetes 1.13+
- Helm 3+
- PV provisioner support in the underlying infrastructure
Name | Description | Value |
---|---|---|
global.imageRegistry |
Global Docker image registry | nil |
Name | Description | Value |
---|---|---|
image.registry |
LimeSurvey image registry | docker.io |
image.repository |
LimeSurvey image repository | martialblog/limesurvey |
image.tag |
LimeSurvey image tag (immutable tags are recommended) | 6-apache |
image.pullPolicy |
LimeSurvey image pull policy | IfNotPresent |
image.pullSecrets |
LimeSurvey image pull secrets | [] |
Name | Description | Value |
---|---|---|
limesurvey.admin.user |
LimeSurvey initial Admin Username | admin |
limesurvey.admin.password |
LimeSurvey initial Admin Password | nil |
limesurvey.admin.name |
LimeSurvey initial Admin Full Name | Administrator |
limesurvey.admin.email |
LimeSurvey initial Admin Email | admin@example.com |
limesurvey.listenPort |
LimeSurvey Container port for webserver | 8080 |
limesurvey.publicUrl |
LimeSurvey Public URL for public scripts | nil |
limesurvey.baseUrl |
LimeSurvey Application Base URL | nil |
limesurvey.mysqlEngine |
MySQL engine used for survey tables (MyISAM or InnoDB) | MyISAM |
limesurvey.urlFormat |
LimeSurvey URL Format (path | get) |
limesurvey.showScriptName |
LimeSurvey Script name in URL (true | false) |
limesurvey.tablePrefix |
LimeSurvey Database table prefix; set this to a single whitespace if you don't want a table prefix. | lime_ |
limesurvey.tableSession |
LimeSurvey Table sessions; For storing sessions in the database | false |
limesurvey.debug |
LimeSurvey Debug level (0, 1, 2) | 0 |
limesurvey.debugSql |
LimeSurvey SQL Debug level (0, 1, 2) | 0 |
limesurvey.encrypt.keypair |
LimeSurvey Data encryption keypair | nil |
limesurvey.encrypt.publicKey |
LimeSurvey Data encryption public key | nil |
limesurvey.encrypt.secretKey |
LimeSurvey Data encryption secret key | nil |
limesurvey.encrypt.nonce |
LimeSurvey Data encryption nonce | nil |
limesurvey.encrypt.secretBoxKey |
LimeSurvey Data encryption secret box key | nil |
Name | Description | Value |
---|---|---|
persistence.enabled |
Enable persistence using Persistent Volume Claims | true |
persistence.accessModes |
Persistent Volume access modes | [ReadWriteOnce] |
persistence.size |
Persistent Volume size | 5Gi |
persistence.storageClassName |
Persistent Volume storage class name | nil |
persistence.subPath |
Persistent Volume sub path | nil |
persistence.finalizers |
Persistent Volume finalizers | [kubernetes.io/pvc-protection] |
persistence.selectorLabels |
Persistent Volume selector labels | {} |
persistence.annotations |
persistent volume claim annotations | {} |
persistence.existingClaim |
The name of an existing PVC to use for persistence | nil |
Name | Description | Value |
---|---|---|
service.type |
LimeSurvey service type | ClusterIP |
service.port |
LimeSurvey service port | 80 |
ingress.enabled |
Enable ingress record generation for LimeSurvey | false |
ingress.className |
IngressClass that will be be used to implement the Ingress | "" |
ingress.hosts |
An array with hosts for the Ingress | limesurvey.local |
ingress.annotations |
Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations. | {} |
ingress.tls |
Enable TLS configuration for the host defined at ingress.hostname parameter |
false |
Name | Description | Value |
---|---|---|
imagePullSecrets |
Docker registry secret names as an array | [] |
nameOverride |
String to override the Chart Name | nil |
fullnameOverride |
String to fully override the Chart Name | nil |
extraVolumeMounts |
Additional volumes as an array | [] |
extraEmptyDirMounts |
Additional emptyDir volumes as an array | [] |
nodeSelector |
Node labels for pod assignment | {} |
tolerations |
Tolerations for pod assignment | {} |
affinity |
Affinity for pod assignment | {} |
podAnnotations |
Annotations for LimeSurvey pods | [] |
updateStrategy.type |
Deployment strategy type | RollingUpdate |
updateStrategy.rollingUpdate |
Deployment rolling update configuration parameters | {} |
replicaCount |
Number of LimeSurvey replicas to deploy | 1 |
autoscaling.enabled |
Enable Horizontal POD autoscaling for LimeSurvey | false |
autoscaling.minReplicas |
Minimum number of LimeSurvey replicas | 1 |
autoscaling.maxReplicas |
Maximum number of LimeSurvey replicas | 11 |
autoscaling.targetCPUUtilizationPercentage |
Target CPU utilization percentage | 80 |
podSecurityContext.fsGroup |
Set LimeSurvey pod's Security Context fsGroup | 33 |
podSecurityContext.runAsUser |
Set LimeSurvey pod's Security Context runAsUser | 33 |
podSecurityContext.runAsGroup |
Set LimeSurvey pod's Security Context runAsGroup | 33 |
containerSecurityContext.enabled |
Enable LimeSurvey containers' Security Context | true |
containerSecurityContext.allowPrivilegeEscalation |
Default LimeSurvey containers' Security Context | true |
LimeSurvey requires a MySQL- or PostgreSQL-compatible database.
You can either provide your own:
externalDatabase:
host: hostname.example
database: limesurvey-db
username: limesurvey
password: "your-super-secret-password"
or you can let the Helm chart provision one for you (based on Bitnami MariaDB Helm chart):
mariadb:
enabled: true
auth:
rootPassword: "please-change-me"
database: limesurvey
username: limesurvey
password: "please-change-me"
In both cases the application will automatically be configured to use these credentials. Please refer to the values.yaml for all possible configuration values.
If the initial Admin Password limesurvey.admin.password
is not provided it will be set to a random string. You can extract the password from the Secret:
kubectl get secrets --template={{.data.limesurvey-admin-password}} | base64 -d
This release bumps the LimeSurvey container used. LimeSurvey 5 is the new LTS. Follow the official instructions for more information.
This release bumps the Bitnami MariaDB to 10.6. Follow the official instructions official instructions.
This Helm chart is tested with helm unittest (test format spec).
You can find the test specifications in the ./tests/
directory.
Tests are automatically run in CI.
To run the tests locally, use the following command:
# Required for pulling the MariaDB chart
helm repo add bitnami https://charts.bitnami.com/bitnami
helm dependency build
podman run --rm -v "${PWD}:/apps" docker.io/quintush/helm-unittest:3.7.1-0.2.8 --helm3 .