updated helm chart catalogue

This commit is contained in:
Alexis GUYOT 2024-04-18 17:04:54 +02:00
parent a4414711f2
commit b1cea515c7
26 changed files with 4652 additions and 27 deletions

View File

@ -0,0 +1,758 @@
{
"$schema": "http://json-schema.org/schema#",
"type": "object",
"properties": {
"resources": {
"description": "Your service will have at least the requested resources and never more than its limits. No limit for a resource and you can consume everything left on the host machine.",
"type": "object",
"properties": {
"requests": {
"description": "Guaranteed resources",
"type": "object",
"properties": {
"cpu": {
"description": "The amount of cpu guaranteed",
"title": "CPU",
"type": "string",
"default": "100m",
"render": "slider",
"sliderMin": 50,
"sliderMax": 40000,
"sliderStep": 50,
"sliderUnit": "m",
"sliderExtremity": "down",
"sliderExtremitySemantic": "guaranteed",
"sliderRangeId": "cpu",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.cpuRequest",
"useRegionSliderConfig": "cpu"
}
},
"memory": {
"description": "The amount of memory guaranteed",
"title": "memory",
"type": "string",
"default": "2Gi",
"render": "slider",
"sliderMin": 1,
"sliderMax": 200,
"sliderStep": 1,
"sliderUnit": "Gi",
"sliderExtremity": "down",
"sliderExtremitySemantic": "guaranteed",
"sliderRangeId": "memory",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.memoryRequest",
"useRegionSliderConfig": "memory"
}
}
}
},
"limits": {
"description": "max resources",
"type": "object",
"properties": {
"cpu": {
"description": "The maximum amount of cpu",
"title": "CPU",
"type": "string",
"default": "30000m",
"render": "slider",
"sliderMin": 50,
"sliderMax": 40000,
"sliderStep": 50,
"sliderUnit": "m",
"sliderExtremity": "up",
"sliderExtremitySemantic": "Maximum",
"sliderRangeId": "cpu",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.cpuLimit",
"useRegionSliderConfig": "cpu"
}
},
"memory": {
"description": "The maximum amount of memory",
"title": "Memory",
"type": "string",
"default": "50Gi",
"render": "slider",
"sliderMin": 1,
"sliderMax": 200,
"sliderStep": 1,
"sliderUnit": "Gi",
"sliderExtremity": "up",
"sliderExtremitySemantic": "Maximum",
"sliderRangeId": "memory",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.memoryLimit",
"useRegionSliderConfig": "memory"
}
}
}
}
}
},
"discovery": {
"description": "configure your service to autodetect some ressources.",
"type": "object",
"properties": {
"hive": {
"type": "boolean",
"title": "Enable hive metastore discovery",
"description": "discover your hive metastore service",
"default": true
},
"mlflow": {
"type": "boolean",
"title": "Enable mlflow discovery",
"description": "discover your mlflow service",
"default": true
},
"metaflow": {
"type": "boolean",
"title": "Enable metaflow discovery",
"description": "discover your metaflow service",
"default": true
}
}
},
"service": {
"description": "spark-history specific configuration",
"type": "object",
"properties": {
"image": {
"description": "image docker",
"type": "object",
"properties": {
"pullPolicy": {
"type": "string",
"description": "option when pulling the docker image",
"default": "IfNotPresent",
"enum": [
"IfNotPresent",
"Always",
"Never"
]
},
"version": {
"description": "vscode supported version",
"type": "string",
"default": "inseefrlab/onyxia-vscode-python:py3.11.6",
"listEnum": [
"inseefrlab/onyxia-vscode-python:py3.11.6",
"inseefrlab/onyxia-vscode-python:py3.10.13"
],
"render": "list",
"hidden": {
"value": true,
"path": "service/image/custom/enabled"
}
},
"custom": {
"description": "use a custom vscode docker image",
"type": "object",
"properties": {
"enabled": {
"title": "custom image",
"type": "boolean",
"description": "use a custom vscode docker images",
"default": false
},
"version": {
"description": "vscode unsupported version",
"type": "string",
"default": "inseefrlab/onyxia-vscode-python:py3.11.6",
"hidden": {
"value": false,
"path": "service/image/custom/enabled"
}
}
}
}
}
}
}
},
"persistence": {
"description": "Configuration for persistence",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Create a persistent volume",
"default": true
},
"size": {
"type": "string",
"title": "Persistent volume size",
"description": "Size of the persistent volume",
"default": "10Gi",
"form": true,
"render": "slider",
"sliderMin": 1,
"sliderMax": 100,
"sliderStep": 1,
"sliderUnit": "Gi",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.disk",
"useRegionSliderConfig": "disk"
},
"hidden": {
"value": false,
"path": "persistence/enabled"
}
}
}
},
"security": {
"description": "security specific configuration",
"type": "object",
"properties": {
"password": {
"type": "string",
"description": "Password",
"default": "changeme",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{project.password}}"
}
},
"allowlist": {
"type": "object",
"description": "IP protection",
"properties": {
"enabled": {
"type": "boolean",
"title": "Enable IP protection",
"description": "Only the configured set of IPs will be able to reach the service",
"default": true,
"x-onyxia": {
"overwriteDefaultWith": "region.defaultIpProtection"
}
},
"ip": {
"type": "string",
"description": "the white list of IP is whitespace",
"title": "Whitelist of IP",
"x-onyxia": {
"overwriteDefaultWith": "{{user.ip}}"
}
}
}
},
"networkPolicy": {
"type": "object",
"description": "Define access policy to the service",
"properties": {
"enabled": {
"type": "boolean",
"title": "Enable network policy",
"description": "Only pod from the same namespace will be allowed",
"default": true,
"x-onyxia": {
"overwriteDefaultWith": "region.defaultNetworkPolicy"
}
},
"from": {
"type": "array",
"description": "Array of source allowed to have network access to your service",
"default": [],
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "region.from"
}
}
}
}
}
},
"kubernetes": {
"description": "configuration of your kubernetes access",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "allow your service to access your namespace ressources",
"default": true
},
"role": {
"type": "string",
"description": "bind your service account to this kubernetes default role",
"default": "view",
"hidden": {
"value": false,
"path": "kubernetes/enabled"
},
"enum": [
"view",
"edit",
"admin"
]
}
}
},
"git": {
"description": "Git user configuration",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Add git config inside your environment",
"default": true
},
"name": {
"type": "string",
"description": "user name for git",
"default": "",
"x-onyxia": {
"overwriteDefaultWith": "{{git.name}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"email": {
"type": "string",
"description": "user email for git",
"default": "",
"x-onyxia": {
"overwriteDefaultWith": "{{git.email}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"cache": {
"type": "string",
"description": "duration in seconds of the credentials cache duration",
"default": "",
"x-onyxia": {
"overwriteDefaultWith": "{{git.credentials_cache_duration}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"token": {
"type": "string",
"description": "personal access token",
"default": "",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{git.token}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"repository": {
"type": "string",
"description": "projet",
"default": "",
"x-onyxia": {
"overwriteDefaultWith": "{{git.project}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"branch": {
"type": "string",
"description": "Branch automatically checked out",
"default": "",
"hidden": {
"value": "",
"path": "git/repository"
}
}
}
},
"vault": {
"description": "Configuration of vault client",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Add vault temporary identity inside your environment",
"default": true
},
"token": {
"description": "token vault",
"type": "string",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{vault.VAULT_TOKEN}}"
},
"hidden": {
"value": false,
"path": "vault/enabled"
}
},
"url": {
"description": "url of vault server",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{vault.VAULT_ADDR}}"
},
"hidden": {
"value": false,
"path": "vault/enabled"
}
},
"mount": {
"description": "mount of the v2 secret engine",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{vault.VAULT_MOUNT}}"
},
"hidden": {
"value": false,
"path": "vault/enabled"
}
},
"directory": {
"description": "top level directory",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{vault.VAULT_TOP_DIR}}"
},
"hidden": {
"value": false,
"path": "vault/enabled"
}
},
"secret": {
"description": "the path of the secret to convert into a list of environment variables",
"type": "string",
"default": "",
"hidden": {
"value": false,
"path": "vault/enabled"
}
}
}
},
"s3": {
"description": "Configuration of temporary identity",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Add S3 temporary identity inside your environment",
"default": true
},
"accessKeyId": {
"description": "AWS Access Key",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "s3.AWS_ACCESS_KEY_ID"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"endpoint": {
"description": "AWS S3 Endpoint",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_S3_ENDPOINT}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"defaultRegion": {
"description": "AWS S3 default region",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_DEFAULT_REGION}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"secretAccessKey": {
"description": "AWS S3 secret access key",
"type": "string",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_SECRET_ACCESS_KEY}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"sessionToken": {
"description": "AWS S3 session Token",
"type": "string",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_SESSION_TOKEN}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
}
}
},
"ingress": {
"type": "object",
"form": true,
"title": "Ingress Details",
"properties": {
"enabled": {
"description": "Enable Ingress",
"type": "boolean",
"default": true,
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "k8s.ingress"
}
},
"hostname": {
"type": "string",
"form": true,
"title": "Hostname",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-0.{{k8s.domain}}"
}
},
"userHostname": {
"type": "string",
"form": true,
"title": "Hostname",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-user.{{k8s.domain}}"
}
},
"ingressClassName": {
"type": "string",
"form": true,
"title": "ingressClassName",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{k8s.ingressClassName}}"
}
},
"useCertManager": {
"type": "boolean",
"description": "Whether CertManager should be used to generate a certificate",
"default": false,
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "k8s.useCertManager"
}
},
"certManagerClusterIssuer":{
"type": "string",
"description": "certManager cluster issuer",
"title": "CertManager Cluster Issuer",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "k8s.certManagerClusterIssuer"
}
}
}
},
"route": {
"type": "object",
"form": true,
"title": "Route details",
"properties": {
"enabled": {
"description": "Enable route",
"type": "boolean",
"default": false,
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "k8s.route"
}
},
"hostname": {
"type": "string",
"form": true,
"title": "Hostname",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-0.{{k8s.domain}}"
}
},
"userHostname": {
"type": "string",
"form": true,
"title": "Hostname",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-user.{{k8s.domain}}"
}
}
}
},
"networking": {
"type": "object",
"form": true,
"title": "Networking detail",
"properties": {
"user": {
"type": "object",
"description": "user defined port",
"properties": {
"enabled": {
"type": "boolean",
"title": "Enable a custom service port",
"description": "Enable a custom service port",
"default": false
},
"port": {
"type": "integer",
"description": "port of the custom service",
"title": "Custom service port",
"hidden": {
"value": false,
"path": "networking/user/enabled"
},
"default": 5000
}
}
}
}
},
"init": {
"description": "Init parameters",
"type": "object",
"properties": {
"regionInit": {
"type": "string",
"description": "region initialization script",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{k8s.initScriptUrl}}"
}
},
"regionInitCheckSum": {
"type": "string",
"description": "region initialization script",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{k8s.initScriptCheckSum}}"
}
},
"personalInit": {
"type": "string",
"description": "user initialization script",
"default": ""
},
"personalInitArgs": {
"type": "string",
"description": "args for user initialization script",
"default": ""
}
}
},
"repository": {
"description": "python repositories for pip and conda",
"type": "object",
"properties": {
"pipRepository": {
"type": "string",
"description": "python repository for pip",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{packageRepositoryInjection.pypiProxyUrl}}"
}
},
"condaRepository": {
"type": "string",
"description": "python repository for pip",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{packageRepositoryInjection.condaProxyUrl}}"
}
}
}
},
"startupProbe": {
"type": "object",
"description": "Start up probe",
"default": {},
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "region.startupProbe"
}
},
"tolerations": {
"type": "array",
"description": "Array of tolerations",
"default": [],
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "region.tolerations"
}
},
"nodeSelector": {
"type": "object",
"description": "NodeSelector",
"default": {},
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "region.nodeSelector"
}
},
"userPreferences": {
"description": "User Preferences",
"type": "object",
"properties": {
"darkMode": {
"type": "boolean",
"description": "dark mode is or is not enabled",
"default": false,
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "user.darkMode"
}
},
"language": {
"type": "string",
"description": "Preferred language",
"default": "en",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "user.lang"
}
}
}
},
"global": {
"description": "Suspend",
"type": "object",
"properties": {
"suspend": {
"type": "boolean",
"description": "Suspend this service",
"default": false,
"x-onyxia": {
"hidden": true
}
}
}
}
}
}

View File

@ -2,6 +2,7 @@
"$schema": "http://json-schema.org/schema#", "$schema": "http://json-schema.org/schema#",
"type": "object", "type": "object",
"properties": { "properties": {
"wordpress": {
"wordpressUsername": { "wordpressUsername": {
"type": "string", "type": "string",
"title": "Username", "title": "Username",
@ -22,18 +23,281 @@
"type": "string", "type": "string",
"title": "Blog Name", "title": "Blog Name",
"form": true "form": true
}
}, },
"persistence": { "s3": {
"description": "Configuration of temporary identity",
"type": "object", "type": "object",
"properties": { "properties": {
"size": { "enabled": {
"type": "boolean",
"description": "Add S3 temporary identity inside your environment",
"default": true
},
"accessKeyId": {
"description": "AWS Access Key",
"type": "string", "type": "string",
"title": "Persistent Volume Size", "x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_ACCESS_KEY_ID}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"endpoint": {
"description": "AWS S3 Endpoint",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_S3_ENDPOINT}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"defaultRegion": {
"description": "AWS S3 default region",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_DEFAULT_REGION}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"secretAccessKey": {
"description": "AWS S3 secret access key",
"type": "string",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_SECRET_ACCESS_KEY}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"sessionToken": {
"description": "AWS S3 session Token",
"type": "string",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_SESSION_TOKEN}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
}
}
},
"ingress": {
"type": "object",
"form": true, "form": true,
"title": "Ingress Details",
"properties": {
"enabled": {
"description": "Enable Ingress",
"type": "boolean",
"default": true,
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "k8s.ingress"
}
},
"hostname": {
"type": "string",
"form": true,
"title": "Hostname",
"x-onyxia": {
"hidden": false,
"overwriteDefaultWith": "{{project.id}}-mlflow.{{k8s.domain}}"
}
},
"ingressClassName": {
"type": "string",
"form": true,
"title": "ingressClassName",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{k8s.ingressClassName}}"
}
}
}
},
"route": {
"type": "object",
"form": true,
"title": "Route details",
"properties": {
"enabled": {
"description": "Enable route",
"type": "boolean",
"default": false,
"x-onyxia": {
"hidden": false,
"overwriteDefaultWith": "k8s.route"
}
},
"hostname": {
"type": "string",
"form": true,
"title": "Hostname",
"x-onyxia": {
"hidden": false,
"overwriteDefaultWith": "{{project.id}}-mlflow.{{k8s.domain}}"
}
}
}
},
"security": {
"description": "security specific configuration",
"type": "object",
"properties": {
"password": {
"type": "string",
"description": "Password",
"default": "changeme",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{project.password}}"
}
},
"allowlist": {
"type": "object",
"description": "IP protection",
"properties": {
"enabled": {
"type": "boolean",
"title": "Enable IP protection",
"description": "Only the configured set of IPs will be able to reach the service",
"default": true,
"x-onyxia": {
"overwriteDefaultWith": "region.defaultIpProtection"
}
},
"ip": {
"type": "string",
"description": "the white list of IP is whitespace",
"title": "Whitelist of IP",
"default": "0.0.0.0",
"x-onyxia": {
"overwriteDefaultWith": "{{user.ip}}"
},
"hidden": {
"value": false,
"path": "security/allowlist/enabled"
}
}
}
},
"networkPolicy": {
"type": "object",
"description": "Define access policy to the service",
"properties": {
"enabled": {
"type": "boolean",
"title": "Enable network policy",
"description": "Only pod from the same namespace will be allowed",
"default": true,
"x-onyxia": {
"overwriteDefaultWith": "region.defaultNetworkPolicy"
}
},
"from": {
"type": "array",
"description": "Array of source allowed to have network access to your service",
"default": [
{
"namespaceSelector": {
"matchLabels": {
"kubernetes.io/metadata.name": "ingress"
}
}
}
],
"x-onyxia": {
"overwriteDefaultWith": "region.from"
}
}
}
}
}
},
"resources": {
"description": "Your service will have at least the requested resources and never more than its limits. No limit for a resource and you can consume everything left on the host machine.",
"type": "object",
"properties": {
"requests": {
"description": "Guaranteed resources",
"type": "object",
"properties": {
"cpu": {
"description": "The amount of cpu guaranteed",
"title": "CPU",
"type": "string",
"default": "100m",
"render": "slider",
"sliderMin": 50,
"sliderMax": 40000,
"sliderStep": 50,
"sliderUnit": "m",
"sliderExtremity": "down",
"sliderExtremitySemantic": "guaranteed",
"sliderRangeId": "cpu"
},
"memory": {
"description": "The amount of memory guaranteed",
"title": "memory",
"type": "string",
"default": "2Gi",
"render": "slider", "render": "slider",
"sliderMin": 1, "sliderMin": 1,
"sliderMax": 100, "sliderMax": 200,
"sliderUnit": "Gi" "sliderStep": 1,
"sliderUnit": "Gi",
"sliderExtremity": "down",
"sliderExtremitySemantic": "guaranteed",
"sliderRangeId": "memory"
}
}
},
"limits": {
"description": "max resources",
"type": "object",
"properties": {
"cpu": {
"description": "The maximum amount of cpu",
"title": "CPU",
"type": "string",
"default": "30000m",
"render": "slider",
"sliderMin": 50,
"sliderMax": 40000,
"sliderStep": 50,
"sliderUnit": "m",
"sliderExtremity": "up",
"sliderExtremitySemantic": "Maximum",
"sliderRangeId": "cpu"
},
"memory": {
"description": "The maximum amount of memory",
"title": "Memory",
"type": "string",
"default": "50Gi",
"render": "slider",
"sliderMin": 1,
"sliderMax": 200,
"sliderStep": 1,
"sliderUnit": "Gi",
"sliderExtremity": "up",
"sliderExtremitySemantic": "Maximum",
"sliderRangeId": "memory"
}
}
} }
} }
}, },

View File

@ -0,0 +1,839 @@
{
"$schema": "http://json-schema.org/schema#",
"type": "object",
"properties": {
"wordpressUsername": {
"type": "string",
"title": "Username",
"form": true
},
"wordpressPassword": {
"type": "string",
"title": "Password",
"form": true,
"description": "Defaults to a random 10-character alphanumeric string if not set"
},
"wordpressEmail": {
"type": "string",
"title": "Admin email",
"form": true
},
"wordpressBlogName": {
"type": "string",
"title": "Blog Name",
"form": true
},
"persistence": {
"type": "object",
"properties": {
"size": {
"type": "string",
"title": "Persistent Volume Size",
"form": true,
"render": "slider",
"sliderMin": 1,
"sliderMax": 100,
"sliderUnit": "Gi"
}
}
},
"mariadb": {
"type": "object",
"title": "MariaDB Details",
"form": true,
"properties": {
"enabled": {
"type": "boolean",
"title": "Use a new MariaDB database hosted in the cluster",
"form": true,
"description": "Whether to deploy a mariadb server to satisfy the applications database requirements. To use an external database switch this off and configure the external database details"
},
"primary": {
"type": "object",
"properties": {
"persistence": {
"type": "object",
"properties": {
"size": {
"type": "string",
"title": "Volume Size",
"form": true,
"hidden": {
"value": false,
"path": "mariadb/primary/persistence/enabled"
},
"render": "slider",
"sliderMin": 1,
"sliderMax": 100,
"sliderUnit": "Gi"
}
}
}
}
}
}
},
"resources": {
"description": "Your service will have at least the requested resources and never more than its limits. No limit for a resource and you can consume everything left on the host machine.",
"type": "object",
"properties": {
"requests": {
"description": "Guaranteed resources",
"type": "object",
"properties": {
"cpu": {
"description": "The amount of cpu guaranteed",
"title": "CPU",
"type": "string",
"default": "100m",
"render": "slider",
"sliderMin": 50,
"sliderMax": 40000,
"sliderStep": 50,
"sliderUnit": "m",
"sliderExtremity": "down",
"sliderExtremitySemantic": "guaranteed",
"sliderRangeId": "cpu",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.cpuRequest",
"useRegionSliderConfig": "cpu"
}
},
"memory": {
"description": "The amount of memory guaranteed",
"title": "memory",
"type": "string",
"default": "2Gi",
"render": "slider",
"sliderMin": 1,
"sliderMax": 200,
"sliderStep": 1,
"sliderUnit": "Gi",
"sliderExtremity": "down",
"sliderExtremitySemantic": "guaranteed",
"sliderRangeId": "memory",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.memoryRequest",
"useRegionSliderConfig": "memory"
}
}
}
},
"limits": {
"description": "max resources",
"type": "object",
"properties": {
"cpu": {
"description": "The maximum amount of cpu",
"title": "CPU",
"type": "string",
"default": "30000m",
"render": "slider",
"sliderMin": 50,
"sliderMax": 40000,
"sliderStep": 50,
"sliderUnit": "m",
"sliderExtremity": "up",
"sliderExtremitySemantic": "Maximum",
"sliderRangeId": "cpu",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.cpuLimit",
"useRegionSliderConfig": "cpu"
}
},
"memory": {
"description": "The maximum amount of memory",
"title": "Memory",
"type": "string",
"default": "50Gi",
"render": "slider",
"sliderMin": 1,
"sliderMax": 200,
"sliderStep": 1,
"sliderUnit": "Gi",
"sliderExtremity": "up",
"sliderExtremitySemantic": "Maximum",
"sliderRangeId": "memory",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.memoryLimit",
"useRegionSliderConfig": "memory"
}
}
}
}
}
},
"discovery": {
"description": "configure your service to autodetect some ressources.",
"type": "object",
"properties": {
"hive": {
"type": "boolean",
"title": "Enable hive metastore discovery",
"description": "discover your hive metastore service",
"default": true
},
"mlflow": {
"type": "boolean",
"title": "Enable mlflow discovery",
"description": "discover your mlflow service",
"default": true
},
"metaflow": {
"type": "boolean",
"title": "Enable metaflow discovery",
"description": "discover your metaflow service",
"default": true
}
}
},
"service": {
"description": "spark-history specific configuration",
"type": "object",
"properties": {
"image": {
"description": "image docker",
"type": "object",
"properties": {
"pullPolicy": {
"type": "string",
"description": "option when pulling the docker image",
"default": "IfNotPresent",
"enum": [
"IfNotPresent",
"Always",
"Never"
]
},
"version": {
"description": "vscode supported version",
"type": "string",
"default": "inseefrlab/onyxia-vscode-python:py3.11.6",
"listEnum": [
"inseefrlab/onyxia-vscode-python:py3.11.6",
"inseefrlab/onyxia-vscode-python:py3.10.13"
],
"render": "list",
"hidden": {
"value": true,
"path": "service/image/custom/enabled"
}
},
"custom": {
"description": "use a custom vscode docker image",
"type": "object",
"properties": {
"enabled": {
"title": "custom image",
"type": "boolean",
"description": "use a custom vscode docker images",
"default": false
},
"version": {
"description": "vscode unsupported version",
"type": "string",
"default": "inseefrlab/onyxia-vscode-python:py3.11.6",
"hidden": {
"value": false,
"path": "service/image/custom/enabled"
}
}
}
}
}
}
}
},
"persistence": {
"description": "Configuration for persistence",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Create a persistent volume",
"default": true
},
"size": {
"type": "string",
"title": "Persistent volume size",
"description": "Size of the persistent volume",
"default": "10Gi",
"form": true,
"render": "slider",
"sliderMin": 1,
"sliderMax": 100,
"sliderStep": 1,
"sliderUnit": "Gi",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.disk",
"useRegionSliderConfig": "disk"
},
"hidden": {
"value": false,
"path": "persistence/enabled"
}
}
}
},
"security": {
"description": "security specific configuration",
"type": "object",
"properties": {
"password": {
"type": "string",
"description": "Password",
"default": "changeme",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{project.password}}"
}
},
"allowlist": {
"type": "object",
"description": "IP protection",
"properties": {
"enabled": {
"type": "boolean",
"title": "Enable IP protection",
"description": "Only the configured set of IPs will be able to reach the service",
"default": true,
"x-onyxia": {
"overwriteDefaultWith": "region.defaultIpProtection"
}
},
"ip": {
"type": "string",
"description": "the white list of IP is whitespace",
"title": "Whitelist of IP",
"x-onyxia": {
"overwriteDefaultWith": "{{user.ip}}"
}
}
}
},
"networkPolicy": {
"type": "object",
"description": "Define access policy to the service",
"properties": {
"enabled": {
"type": "boolean",
"title": "Enable network policy",
"description": "Only pod from the same namespace will be allowed",
"default": true,
"x-onyxia": {
"overwriteDefaultWith": "region.defaultNetworkPolicy"
}
},
"from": {
"type": "array",
"description": "Array of source allowed to have network access to your service",
"default": [],
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "region.from"
}
}
}
}
}
},
"kubernetes": {
"description": "configuration of your kubernetes access",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "allow your service to access your namespace ressources",
"default": true
},
"role": {
"type": "string",
"description": "bind your service account to this kubernetes default role",
"default": "view",
"hidden": {
"value": false,
"path": "kubernetes/enabled"
},
"enum": [
"view",
"edit",
"admin"
]
}
}
},
"git": {
"description": "Git user configuration",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Add git config inside your environment",
"default": true
},
"name": {
"type": "string",
"description": "user name for git",
"default": "",
"x-onyxia": {
"overwriteDefaultWith": "{{git.name}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"email": {
"type": "string",
"description": "user email for git",
"default": "",
"x-onyxia": {
"overwriteDefaultWith": "{{git.email}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"cache": {
"type": "string",
"description": "duration in seconds of the credentials cache duration",
"default": "",
"x-onyxia": {
"overwriteDefaultWith": "{{git.credentials_cache_duration}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"token": {
"type": "string",
"description": "personal access token",
"default": "",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{git.token}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"repository": {
"type": "string",
"description": "projet",
"default": "",
"x-onyxia": {
"overwriteDefaultWith": "{{git.project}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"branch": {
"type": "string",
"description": "Branch automatically checked out",
"default": "",
"hidden": {
"value": "",
"path": "git/repository"
}
}
}
},
"vault": {
"description": "Configuration of vault client",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Add vault temporary identity inside your environment",
"default": true
},
"token": {
"description": "token vault",
"type": "string",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{vault.VAULT_TOKEN}}"
},
"hidden": {
"value": false,
"path": "vault/enabled"
}
},
"url": {
"description": "url of vault server",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{vault.VAULT_ADDR}}"
},
"hidden": {
"value": false,
"path": "vault/enabled"
}
},
"mount": {
"description": "mount of the v2 secret engine",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{vault.VAULT_MOUNT}}"
},
"hidden": {
"value": false,
"path": "vault/enabled"
}
},
"directory": {
"description": "top level directory",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{vault.VAULT_TOP_DIR}}"
},
"hidden": {
"value": false,
"path": "vault/enabled"
}
},
"secret": {
"description": "the path of the secret to convert into a list of environment variables",
"type": "string",
"default": "",
"hidden": {
"value": false,
"path": "vault/enabled"
}
}
}
},
"s3": {
"description": "Configuration of temporary identity",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Add S3 temporary identity inside your environment",
"default": true
},
"accessKeyId": {
"description": "AWS Access Key",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "s3.AWS_ACCESS_KEY_ID"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"endpoint": {
"description": "AWS S3 Endpoint",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_S3_ENDPOINT}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"defaultRegion": {
"description": "AWS S3 default region",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_DEFAULT_REGION}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"secretAccessKey": {
"description": "AWS S3 secret access key",
"type": "string",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_SECRET_ACCESS_KEY}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"sessionToken": {
"description": "AWS S3 session Token",
"type": "string",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_SESSION_TOKEN}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
}
}
},
"ingress": {
"type": "object",
"form": true,
"title": "Ingress Details",
"properties": {
"enabled": {
"description": "Enable Ingress",
"type": "boolean",
"default": true,
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "k8s.ingress"
}
},
"hostname": {
"type": "string",
"form": true,
"title": "Hostname",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-0.{{k8s.domain}}"
}
},
"userHostname": {
"type": "string",
"form": true,
"title": "Hostname",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-user.{{k8s.domain}}"
}
},
"ingressClassName": {
"type": "string",
"form": true,
"title": "ingressClassName",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{k8s.ingressClassName}}"
}
},
"useCertManager": {
"type": "boolean",
"description": "Whether CertManager should be used to generate a certificate",
"default": false,
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "k8s.useCertManager"
}
},
"certManagerClusterIssuer":{
"type": "string",
"description": "certManager cluster issuer",
"title": "CertManager Cluster Issuer",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "k8s.certManagerClusterIssuer"
}
}
}
},
"route": {
"type": "object",
"form": true,
"title": "Route details",
"properties": {
"enabled": {
"description": "Enable route",
"type": "boolean",
"default": false,
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "k8s.route"
}
},
"hostname": {
"type": "string",
"form": true,
"title": "Hostname",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-0.{{k8s.domain}}"
}
},
"userHostname": {
"type": "string",
"form": true,
"title": "Hostname",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-user.{{k8s.domain}}"
}
}
}
},
"networking": {
"type": "object",
"form": true,
"title": "Networking detail",
"properties": {
"user": {
"type": "object",
"description": "user defined port",
"properties": {
"enabled": {
"type": "boolean",
"title": "Enable a custom service port",
"description": "Enable a custom service port",
"default": false
},
"port": {
"type": "integer",
"description": "port of the custom service",
"title": "Custom service port",
"hidden": {
"value": false,
"path": "networking/user/enabled"
},
"default": 5000
}
}
}
}
},
"init": {
"description": "Init parameters",
"type": "object",
"properties": {
"regionInit": {
"type": "string",
"description": "region initialization script",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{k8s.initScriptUrl}}"
}
},
"regionInitCheckSum": {
"type": "string",
"description": "region initialization script",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{k8s.initScriptCheckSum}}"
}
},
"personalInit": {
"type": "string",
"description": "user initialization script",
"default": ""
},
"personalInitArgs": {
"type": "string",
"description": "args for user initialization script",
"default": ""
}
}
},
"repository": {
"description": "python repositories for pip and conda",
"type": "object",
"properties": {
"pipRepository": {
"type": "string",
"description": "python repository for pip",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{packageRepositoryInjection.pypiProxyUrl}}"
}
},
"condaRepository": {
"type": "string",
"description": "python repository for pip",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{packageRepositoryInjection.condaProxyUrl}}"
}
}
}
},
"startupProbe": {
"type": "object",
"description": "Start up probe",
"default": {},
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "region.startupProbe"
}
},
"tolerations": {
"type": "array",
"description": "Array of tolerations",
"default": [],
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "region.tolerations"
}
},
"nodeSelector": {
"type": "object",
"description": "NodeSelector",
"default": {},
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "region.nodeSelector"
}
},
"userPreferences": {
"description": "User Preferences",
"type": "object",
"properties": {
"darkMode": {
"type": "boolean",
"description": "dark mode is or is not enabled",
"default": false,
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "user.darkMode"
}
},
"language": {
"type": "string",
"description": "Preferred language",
"default": "en",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "user.lang"
}
}
}
},
"global": {
"description": "Suspend",
"type": "object",
"properties": {
"suspend": {
"type": "boolean",
"description": "Suspend this service",
"default": false,
"x-onyxia": {
"hidden": true
}
}
}
}
}
}

View File

@ -0,0 +1,875 @@
{
"$schema": "http://json-schema.org/schema#",
"wordpress": {
"type": "object",
"properties": {
"wordpressUsername": {
"type": "string",
"title": "Username",
"form": true
},
"wordpressPassword": {
"type": "string",
"title": "Password",
"form": true,
"description": "Defaults to a random 10-character alphanumeric string if not set"
},
"wordpressEmail": {
"type": "string",
"title": "Admin email",
"form": true
},
"wordpressBlogName": {
"type": "string",
"title": "Blog Name",
"form": true
},
"persistence": {
"description": "Configuration for persistence",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Create a persistent volume",
"default": true
},
"size": {
"type": "string",
"title": "Persistent volume size",
"description": "Size of the persistent volume",
"default": "10Gi",
"form": true,
"render": "slider",
"sliderMin": 1,
"sliderMax": 100,
"sliderStep": 1,
"sliderUnit": "Gi",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.disk",
"useRegionSliderConfig": "disk"
},
"hidden": {
"value": false,
"path": "persistence/enabled"
}
}
}
}
},
"mariadb": {
"type": "object",
"title": "MariaDB Details",
"form": true,
"properties": {
"enabled": {
"type": "boolean",
"title": "Use a new MariaDB database hosted in the cluster",
"form": true,
"description": "Whether to deploy a mariadb server to satisfy the applications database requirements. To use an external database switch this off and configure the external database details"
},
"primary": {
"type": "object",
"properties": {
"persistence": {
"description": "Configuration for persistence",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Create a persistent volume",
"default": true
},
"size": {
"type": "string",
"title": "Persistent volume size",
"description": "Size of the persistent volume",
"default": "10Gi",
"form": true,
"hidden": {
"value": false,
"path": "mariadb/primary/persistence/enabled"
},
"render": "slider",
"sliderMin": 1,
"sliderMax": 100,
"sliderStep": 1,
"sliderUnit": "Gi",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.disk",
"useRegionSliderConfig": "disk"
},
"hidden": {
"value": false,
"path": "persistence/enabled"
}
}
}
}
}
}
}
},
"resources": {
"description": "Your service will have at least the requested resources and never more than its limits. No limit for a resource and you can consume everything left on the host machine.",
"type": "object",
"properties": {
"requests": {
"description": "Guaranteed resources",
"type": "object",
"properties": {
"cpu": {
"description": "The amount of cpu guaranteed",
"title": "CPU",
"type": "string",
"default": "100m",
"render": "slider",
"sliderMin": 50,
"sliderMax": 40000,
"sliderStep": 50,
"sliderUnit": "m",
"sliderExtremity": "down",
"sliderExtremitySemantic": "guaranteed",
"sliderRangeId": "cpu",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.cpuRequest",
"useRegionSliderConfig": "cpu"
}
},
"memory": {
"description": "The amount of memory guaranteed",
"title": "memory",
"type": "string",
"default": "2Gi",
"render": "slider",
"sliderMin": 1,
"sliderMax": 200,
"sliderStep": 1,
"sliderUnit": "Gi",
"sliderExtremity": "down",
"sliderExtremitySemantic": "guaranteed",
"sliderRangeId": "memory",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.memoryRequest",
"useRegionSliderConfig": "memory"
}
}
}
},
"limits": {
"description": "max resources",
"type": "object",
"properties": {
"cpu": {
"description": "The maximum amount of cpu",
"title": "CPU",
"type": "string",
"default": "30000m",
"render": "slider",
"sliderMin": 50,
"sliderMax": 40000,
"sliderStep": 50,
"sliderUnit": "m",
"sliderExtremity": "up",
"sliderExtremitySemantic": "Maximum",
"sliderRangeId": "cpu",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.cpuLimit",
"useRegionSliderConfig": "cpu"
}
},
"memory": {
"description": "The maximum amount of memory",
"title": "Memory",
"type": "string",
"default": "50Gi",
"render": "slider",
"sliderMin": 1,
"sliderMax": 200,
"sliderStep": 1,
"sliderUnit": "Gi",
"sliderExtremity": "up",
"sliderExtremitySemantic": "Maximum",
"sliderRangeId": "memory",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.memoryLimit",
"useRegionSliderConfig": "memory"
}
}
}
}
}
},
"discovery": {
"description": "configure your service to autodetect some ressources.",
"type": "object",
"properties": {
"hive": {
"type": "boolean",
"title": "Enable hive metastore discovery",
"description": "discover your hive metastore service",
"default": true
},
"mlflow": {
"type": "boolean",
"title": "Enable mlflow discovery",
"description": "discover your mlflow service",
"default": true
},
"metaflow": {
"type": "boolean",
"title": "Enable metaflow discovery",
"description": "discover your metaflow service",
"default": true
}
}
},
"service": {
"description": "spark-history specific configuration",
"type": "object",
"properties": {
"image": {
"description": "image docker",
"type": "object",
"properties": {
"pullPolicy": {
"type": "string",
"description": "option when pulling the docker image",
"default": "IfNotPresent",
"enum": [
"IfNotPresent",
"Always",
"Never"
]
},
"version": {
"description": "vscode supported version",
"type": "string",
"default": "inseefrlab/onyxia-vscode-python:py3.11.6",
"listEnum": [
"inseefrlab/onyxia-vscode-python:py3.11.6",
"inseefrlab/onyxia-vscode-python:py3.10.13"
],
"render": "list",
"hidden": {
"value": true,
"path": "service/image/custom/enabled"
}
},
"custom": {
"description": "use a custom vscode docker image",
"type": "object",
"properties": {
"enabled": {
"title": "custom image",
"type": "boolean",
"description": "use a custom vscode docker images",
"default": false
},
"version": {
"description": "vscode unsupported version",
"type": "string",
"default": "inseefrlab/onyxia-vscode-python:py3.11.6",
"hidden": {
"value": false,
"path": "service/image/custom/enabled"
}
}
}
}
}
}
}
},
"persistence": {
"description": "Configuration for persistence",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Create a persistent volume",
"default": true
},
"size": {
"type": "string",
"title": "Persistent volume size",
"description": "Size of the persistent volume",
"default": "10Gi",
"form": true,
"render": "slider",
"sliderMin": 1,
"sliderMax": 100,
"sliderStep": 1,
"sliderUnit": "Gi",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.disk",
"useRegionSliderConfig": "disk"
},
"hidden": {
"value": false,
"path": "persistence/enabled"
}
}
}
},
"security": {
"description": "security specific configuration",
"type": "object",
"properties": {
"password": {
"type": "string",
"description": "Password",
"default": "changeme",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{project.password}}"
}
},
"allowlist": {
"type": "object",
"description": "IP protection",
"properties": {
"enabled": {
"type": "boolean",
"title": "Enable IP protection",
"description": "Only the configured set of IPs will be able to reach the service",
"default": true,
"x-onyxia": {
"overwriteDefaultWith": "region.defaultIpProtection"
}
},
"ip": {
"type": "string",
"description": "the white list of IP is whitespace",
"title": "Whitelist of IP",
"x-onyxia": {
"overwriteDefaultWith": "{{user.ip}}"
}
}
}
},
"networkPolicy": {
"type": "object",
"description": "Define access policy to the service",
"properties": {
"enabled": {
"type": "boolean",
"title": "Enable network policy",
"description": "Only pod from the same namespace will be allowed",
"default": true,
"x-onyxia": {
"overwriteDefaultWith": "region.defaultNetworkPolicy"
}
},
"from": {
"type": "array",
"description": "Array of source allowed to have network access to your service",
"default": [],
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "region.from"
}
}
}
}
}
},
"kubernetes": {
"description": "configuration of your kubernetes access",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "allow your service to access your namespace ressources",
"default": true
},
"role": {
"type": "string",
"description": "bind your service account to this kubernetes default role",
"default": "view",
"hidden": {
"value": false,
"path": "kubernetes/enabled"
},
"enum": [
"view",
"edit",
"admin"
]
}
}
},
"git": {
"description": "Git user configuration",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Add git config inside your environment",
"default": true
},
"name": {
"type": "string",
"description": "user name for git",
"default": "",
"x-onyxia": {
"overwriteDefaultWith": "{{git.name}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"email": {
"type": "string",
"description": "user email for git",
"default": "",
"x-onyxia": {
"overwriteDefaultWith": "{{git.email}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"cache": {
"type": "string",
"description": "duration in seconds of the credentials cache duration",
"default": "",
"x-onyxia": {
"overwriteDefaultWith": "{{git.credentials_cache_duration}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"token": {
"type": "string",
"description": "personal access token",
"default": "",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{git.token}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"repository": {
"type": "string",
"description": "projet",
"default": "",
"x-onyxia": {
"overwriteDefaultWith": "{{git.project}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"branch": {
"type": "string",
"description": "Branch automatically checked out",
"default": "",
"hidden": {
"value": "",
"path": "git/repository"
}
}
}
},
"vault": {
"description": "Configuration of vault client",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Add vault temporary identity inside your environment",
"default": true
},
"token": {
"description": "token vault",
"type": "string",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{vault.VAULT_TOKEN}}"
},
"hidden": {
"value": false,
"path": "vault/enabled"
}
},
"url": {
"description": "url of vault server",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{vault.VAULT_ADDR}}"
},
"hidden": {
"value": false,
"path": "vault/enabled"
}
},
"mount": {
"description": "mount of the v2 secret engine",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{vault.VAULT_MOUNT}}"
},
"hidden": {
"value": false,
"path": "vault/enabled"
}
},
"directory": {
"description": "top level directory",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{vault.VAULT_TOP_DIR}}"
},
"hidden": {
"value": false,
"path": "vault/enabled"
}
},
"secret": {
"description": "the path of the secret to convert into a list of environment variables",
"type": "string",
"default": "",
"hidden": {
"value": false,
"path": "vault/enabled"
}
}
}
},
"s3": {
"description": "Configuration of temporary identity",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Add S3 temporary identity inside your environment",
"default": true
},
"accessKeyId": {
"description": "AWS Access Key",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "s3.AWS_ACCESS_KEY_ID"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"endpoint": {
"description": "AWS S3 Endpoint",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_S3_ENDPOINT}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"defaultRegion": {
"description": "AWS S3 default region",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_DEFAULT_REGION}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"secretAccessKey": {
"description": "AWS S3 secret access key",
"type": "string",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_SECRET_ACCESS_KEY}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"sessionToken": {
"description": "AWS S3 session Token",
"type": "string",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_SESSION_TOKEN}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
}
}
},
"ingress": {
"type": "object",
"form": true,
"title": "Ingress Details",
"properties": {
"enabled": {
"description": "Enable Ingress",
"type": "boolean",
"default": true,
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "k8s.ingress"
}
},
"hostname": {
"type": "string",
"form": true,
"title": "Hostname",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-0.{{k8s.domain}}"
}
},
"userHostname": {
"type": "string",
"form": true,
"title": "Hostname",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-user.{{k8s.domain}}"
}
},
"ingressClassName": {
"type": "string",
"form": true,
"title": "ingressClassName",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{k8s.ingressClassName}}"
}
},
"useCertManager": {
"type": "boolean",
"description": "Whether CertManager should be used to generate a certificate",
"default": false,
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "k8s.useCertManager"
}
},
"certManagerClusterIssuer":{
"type": "string",
"description": "certManager cluster issuer",
"title": "CertManager Cluster Issuer",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "k8s.certManagerClusterIssuer"
}
}
}
},
"route": {
"type": "object",
"form": true,
"title": "Route details",
"properties": {
"enabled": {
"description": "Enable route",
"type": "boolean",
"default": false,
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "k8s.route"
}
},
"hostname": {
"type": "string",
"form": true,
"title": "Hostname",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-0.{{k8s.domain}}"
}
},
"userHostname": {
"type": "string",
"form": true,
"title": "Hostname",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-user.{{k8s.domain}}"
}
}
}
},
"networking": {
"type": "object",
"form": true,
"title": "Networking detail",
"properties": {
"user": {
"type": "object",
"description": "user defined port",
"properties": {
"enabled": {
"type": "boolean",
"title": "Enable a custom service port",
"description": "Enable a custom service port",
"default": false
},
"port": {
"type": "integer",
"description": "port of the custom service",
"title": "Custom service port",
"hidden": {
"value": false,
"path": "networking/user/enabled"
},
"default": 5000
}
}
}
}
},
"init": {
"description": "Init parameters",
"type": "object",
"properties": {
"regionInit": {
"type": "string",
"description": "region initialization script",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{k8s.initScriptUrl}}"
}
},
"regionInitCheckSum": {
"type": "string",
"description": "region initialization script",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{k8s.initScriptCheckSum}}"
}
},
"personalInit": {
"type": "string",
"description": "user initialization script",
"default": ""
},
"personalInitArgs": {
"type": "string",
"description": "args for user initialization script",
"default": ""
}
}
},
"repository": {
"description": "python repositories for pip and conda",
"type": "object",
"properties": {
"pipRepository": {
"type": "string",
"description": "python repository for pip",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{packageRepositoryInjection.pypiProxyUrl}}"
}
},
"condaRepository": {
"type": "string",
"description": "python repository for pip",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{packageRepositoryInjection.condaProxyUrl}}"
}
}
}
},
"startupProbe": {
"type": "object",
"description": "Start up probe",
"default": {},
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "region.startupProbe"
}
},
"tolerations": {
"type": "array",
"description": "Array of tolerations",
"default": [],
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "region.tolerations"
}
},
"nodeSelector": {
"type": "object",
"description": "NodeSelector",
"default": {},
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "region.nodeSelector"
}
},
"userPreferences": {
"description": "User Preferences",
"type": "object",
"properties": {
"darkMode": {
"type": "boolean",
"description": "dark mode is or is not enabled",
"default": false,
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "user.darkMode"
}
},
"language": {
"type": "string",
"description": "Preferred language",
"default": "en",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "user.lang"
}
}
}
},
"global": {
"description": "Suspend",
"type": "object",
"properties": {
"suspend": {
"type": "boolean",
"description": "Suspend this service",
"default": false,
"x-onyxia": {
"hidden": true
}
}
}
}
}
}

View File

@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

View File

@ -0,0 +1,6 @@
dependencies:
- name: mariadb
repository: https://groundhog2k.github.io/helm-charts
version: 0.3.14
digest: sha256:375cfa874809b30e37b4459addf6bfbe413bdb58862246e64260f3011f3ad448
generated: "2023-08-15T19:41:56.623332511+02:00"

View File

@ -0,0 +1,20 @@
apiVersion: v2
name: wordpress
description: A Helm chart for Wordpress on Kubernetes
maintainers:
- name: groundhog2k
type: application
# This is the chart version.
version: "0.11.0"
# This is the version number of the application being deployed.
appVersion: "6.5.0-apache"
dependencies:
- name: mariadb
version: "0.3.14"
repository: "https://groundhog2k.github.io/helm-charts"
condition: mariadb.enabled

View File

@ -0,0 +1,176 @@
# Wordpress
![Version: 0.11.0](https://img.shields.io/badge/Version-0.11.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 6.5.0-apache](https://img.shields.io/badge/AppVersion-6.5.0--apache-informational?style=flat-square)
## Changelog
see [RELEASENOTES.md](RELEASENOTES.md)
A Helm chart for Wordpress on Kubernetes
## TL;DR
```bash
helm repo add groundhog2k https://groundhog2k.github.io/helm-charts/
helm install my-release groundhog2k/wordpress
```
## Introduction
This chart uses the original [Wordpress from Docker](https://hub.docker.com/_/wordpress) to deploy Wordpress in Kubernetes.
It fully supports deployment of the multi-architecture docker image.
## Prerequisites
- Kubernetes 1.12+
- Helm 3.x
- PV provisioner support in the underlying infrastructure
## Installing the Chart
To install the chart with the release name `my-release`:
```bash
helm install my-release groundhog2k/wordpress
```
## Uninstalling the Chart
To uninstall/delete the `my-release` deployment:
```bash
helm uninstall my-release
```
## Requirements
| Repository | Name | Version |
|------------|------|---------|
| @groundhog2k | mariadb | 0.3.14 |
## Common parameters
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| fullnameOverride | string | `""` | Fully override the deployment name |
| nameOverride | string | `""` | Partially override the deployment name |
## Deployment parameters
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
| image.registry | string | `"docker.io"` | Image registry |
| image.repository | string | `"wordpress"` | Image name |
| image.tag | string | `""` | Image tag |
| imagePullSecrets | list | `[]` | Image pull secrets |
| extraInitContainers | list | `[]` | Extra init containers |
| extaContainers | list | `[]` | Extra containers for usage as sidecars |
| strategy | object | `{}` | Pod deployment strategy |
| livenessProbe | object | `see values.yaml` | Liveness probe configuration |
| startupProbe | object | `see values.yaml` | Startup probe configuration |
| readinessProbe | object | `see values.yaml` | Readiness probe configuration |
| customLivenessProbe | object | `{}` | Custom liveness probe (overwrites default liveness probe configuration) |
| customStartupProbe | object | `{}` | Custom startup probe (overwrites default startup probe configuration) |
| customReadinessProbe | object | `{}` | Custom readiness probe (overwrites default readiness probe configuration) |
| resources | object | `{}` | Resource limits and requests |
| nodeSelector | object | `{}` | Deployment node selector |
| customLabels | object | `{}` | Additional labels for Deployment or StatefulSet |
| customAnnotations | object | `{}` | Additional annotations for Deployment or StatefulSet |
| podAnnotations | object | `{}` | Additional pod annotations |
| podLabels | object | `{}` | Additional pod labels |
| podSecurityContext | object | `see values.yaml` | Pod security context |
| securityContext | object | `see values.yaml` | Container security context |
| env | list | `[]` | Additional container environmment variables |
| args | list | `[]` | Arguments for the container entrypoint process |
| serviceAccount.create | bool | `false` | Enable service account creation |
| serviceAccount.name | string | `""` | Optional name of the service account |
| serviceAccount.annotations | object | `{}` | Additional service account annotations |
| affinity | object | `{}` | Affinity for pod assignment |
| tolerations | list | `[]` | Tolerations for pod assignment |
| topologySpreadConstraints | object | `{}` | Topology spread constraints for pods |
| containerPort | int | `8000` | Internal http container port |
| replicaCount | int | `1` | Number of replicas |
| revisionHistoryLimit | int | `nil` | Maximum number of revisions maintained in revision history
| podDisruptionBudget | object | `{}` | Pod disruption budget |
| podDisruptionBudget.minAvailable | int | `nil` | Minimum number of pods that must be available after eviction |
| podDisruptionBudget.maxUnavailable | int | `nil` | Maximum number of pods that can be unavailable after eviction |
## Service paramters
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| service.port | int | `80` | Wordpress HTTP service port |
| service.type | string | `"ClusterIP"` | Service type |
| service.nodePort | int | `nil` | The node port (only relevant for type LoadBalancer or NodePort) |
| service.clusterIP | string | `nil` | The cluster ip address (only relevant for type LoadBalancer or NodePort) |
| service.loadBalancerIP | string | `nil` | The load balancer ip address (only relevant for type LoadBalancer) |
| service.annotations | object | `{}` | Additional service annotations |
| service.labels | object | `{}` | Additional service labels |
## Ingress parameters
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| ingress.enabled | bool | `false` | Enable ingress for Wordpress service |
| ingress.className | string | `nil` | Optional ingress class name |
| ingress.annotations | object | `{}` | Additional annotations for ingress |
| ingress.labels | object | `{}` | Additional ingress lables |
| ingress.hosts[0].host | string | `""` | Hostname for the ingress endpoint |
| ingress.hosts[0].host.paths[0].path | string | `"/"` | Default root path |
| ingress.hosts[0].host.paths[0].pathType | string | `ImplementationSpecific` | Ingress path type (ImplementationSpecific, Prefix, Exact) |
| ingress.tls | list | `[]` | Ingress TLS parameters |
| ingress.maxBodySize | string | `"64m"` | Maximum body size for post requests |
## Network policies
Allows to define optional network policies for [ingress and egress](https://kubernetes.io/docs/concepts/services-networking/network-policies/)
The policyTypes will be automatically set
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| networkPolicy.ingress | object | `{}` | Ingress network policies |
| networkPolicy.egress | object | `{}` | Egress network policies |
## Database settings
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| externalDatabase.host | string | `nil` | External database host |
| externalDatabase.name | string | `"wordpress"` | External database name |
| externalDatabase.user | string | `nil` | External database user name |
| externalDatabase.password | string | `nil` | External database user password |
| mariadb.enabled | bool | `false` | Enable MariaDB deployment (will disable external database settings) |
| mariadb.settings.rootPassword | string | `nil` | MariaDB root user password |
| mariadb.storage | string | `nil` | MariaDB storage settings |
| mariadb.userDatabase.name | string | `nil` | MariaDB wordpress database name |
| mariadb.userDatabase.password | string | `nil` | MariaDB wordpress database user |
| mariadb.userDatabase.user | string | `nil` | MariaDB wordpress database user password |
## Wordpress parameters
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| apacheDefaultSiteConfig | string | `""` | Overwrite default apache 000-default.conf |
| apachePortsConfig | string | `""` | Overwrite default apache ports.conf |
| customPhpConfig | string | `""` | Additional PHP custom.ini |
| settings.tablePrefix | string | `nil` | Database table name prefix |
| settings.maxFileUploadSize | string | `64M` | Maximum file upload size |
| settings.memoryLimit | string | `128M` | PHP memory limit |
| settings.configExtra | string | `nil` | Extra values embedded inside wp-config.php |
| extraEnvSecrets | list | `[]` | A list of existing secrets that will be mounted into the container as environment variables |
| extraEnvConfigs | list | `[]` | A list of existing configmaps that will be mounted into the container as environment variables |
| extraSecrets | list | `[]` | A list of additional existing secrets that will be mounted into the container |
## Storage parameters
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| storage.accessModes[0] | string | `"ReadWriteOnce"` | Storage access mode |
| storage.persistentVolumeClaimName | string | `nil` | PVC name when existing storage volume should be used |
| storage.requestedSize | string | `nil` | Size for new PVC, when no existing PVC is used |
| storage.className | string | `nil` | Storage class name |
| storage.keepPvc | bool | `false` | Keep a created Persistent volume claim when uninstalling the helm chart |
| storage.annotations | object | `{}` | Additional storage annotations |
| storage.labels | object | `{}` | Additional storage labels |

View File

@ -0,0 +1,46 @@
# Changelog
| Chart version | App version | Change description |
| :------------ | :---------- | :----------------- |
| 0.4.9 | 5.8.3-apache | Implemented startupProbe support |
| 0.4.10 | 5.8.3-apache | Updated chart dependencies |
| 0.5.0 | 5.9.0-apache | Upgraded to Wordpress 5.9.0 |
| 0.5.1 | 5.9.0-apache | Updated chart dependencies (mariadb 0.2.18) |
| 0.5.2 | 5.9.2-apache | Upgraded to Wordpress 5.9.2 |
| 0.5.3 | 5.9.2-apache | Updated chart dependencies (mariadb 0.2.20) |
| 0.5.4 | 5.9.3-apache | Upgraded to Wordpress 5.9.3 |
| 0.6.0 | 6.0.0-apache | Upgraded to Wordpress 6.0.0 |
| 0.6.1 | 6.0.0-apache | Updated chart dependencies (mariadb 0.2.21) |
| 0.6.2 | 6.0.1-apache | Upgraded to Wordpress 6.0.1 |
| 0.6.3 | 6.0.1-apache | Updated chart dependencies (mariadb 0.2.22) |
| 0.6.4 | 6.0.2-apache | Upgraded to Wordpress 6.0.2 |
| 0.6.5 | 6.0.2-apache | Implemented support for image.registry option |
| 0.6.6 | 6.0.2-apache | Updated chart dependencies (mariadb 0.2.23) |
| 0.6.7 | 6.0.3-apache | Upgraded to Wordpress 6.0.3 |
| 0.7.0 | 6.1.0-apache | Upgraded to Wordpress 6.1.0 |
| 0.7.1 | 6.1.1-apache | Upgraded to Wordpress 6.1.1 |
| 0.7.2 | 6.1.1-apache | Updated chart dependencies (mariadb 0.2.24) |
| 0.7.3 | 6.1.1-apache | Fixed values documentation - thx @generalovmaksim |
| 0.7.4 | 6.1.1-apache | Updated version detection for pod disruption budget |
| 0.7.5 | 6.1.1-apache | Updated chart dependencies (mariadb 0.2.25) |
| 0.7.6 | 6.1.1-apache | Fixed health probe warnings |
| 0.8.0 | 6.2.0-apache | Upgraded to Wordpress 6.2.0 |
| 0.8.1 | 6.2.0-apache | Updated chart dependencies (mariadb 0.3.11) |
| 0.8.2 | 6.2.0-apache | Added support for extra configuration (WORDPRESS_CONFIG_EXTRA) - thx @MihaiMoldovanu |
| 0.8.3 | 6.2.0-apache | Updated chart dependencies (mariadb 0.3.12) |
| 0.8.4 | 6.2.1-apache | Upgraded to Wordpress 6.2.1 |
| 0.8.5 | 6.2.2-apache | Upgraded to Wordpress 6.2.2 |
| 0.8.6 | 6.2.2-apache | Updated chart dependencies (mariadb 0.3.13) |
| 0.8.7 | 6.2.2-apache | Updated chart dependencies (mariadb 0.3.14) |
| 0.9.0 | 6.3.0-apache | Upgraded to Wordpress 6.3.0 |
| 0.9.1 | 6.3.1-apache | Upgraded to Wordpress 6.3.1 |
| 0.9.2 | 6.3.2-apache | Upgraded to Wordpress 6.3.2 |
| 0.10.0 | 6.4.0-apache | Upgraded to Wordpress 6.4.0 |
| 0.10.1 | 6.4.1-apache | Upgraded to Wordpress 6.4.1 |
| 0.10.2 | 6.4.2-apache | Upgraded to Wordpress 6.4.2 |
| 0.10.3 | 6.4.2-apache | Added optional ingressClassName and removed deprecated api support |
| 0.10.4 | 6.4.2-apache | Refactored ingress configuration and added optional labels |
| 0.10.5 | 6.4.2-apache | Added support for network policies and additional labels and annotations |
| 0.10.6 | 6.4.3-apache | Upgraded to Wordpress 6.4.3 |
| 0.11.0 | 6.5.0-apache | Upgraded to Wordpress 6.5.0 |
| | | |

Binary file not shown.

View File

@ -0,0 +1,88 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "wordpress.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "wordpress.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{- define "mariadb.servicename" -}}
{{- if .Values.mariadb.fullnameOverride }}
{{- .Values.mariadb.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default "mariadb" .Values.mariadb.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{- define "redis.servicename" -}}
{{- if .Values.redis.fullnameOverride }}
{{- .Values.redis.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default "redis" .Values.redis.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "wordpress.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "wordpress.labels" -}}
helm.sh/chart: {{ include "wordpress.chart" . }}
{{ include "wordpress.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "wordpress.selectorLabels" -}}
app.kubernetes.io/name: {{ include "wordpress.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "wordpress.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "wordpress.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,223 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "wordpress.fullname" . }}
labels:
{{- include "wordpress.labels" . | nindent 4 }}
{{- with .Values.customLabels }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.customAnnotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
replicas: {{ .Values.replicaCount }}
{{- if .Values.revisionHistoryLimit }}
revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
{{- end }}
selector:
matchLabels:
{{- include "wordpress.selectorLabels" . | nindent 6 }}
{{- with .Values.strategy }}
strategy:
{{- toYaml . | nindent 4 }}
{{- end }}
template:
metadata:
annotations:
checksum/secureconfig: {{ include (print $.Template.BasePath "/secureconfig.yaml") . | sha256sum }}
checksum/extendedconfig: {{ include (print $.Template.BasePath "/extendedconfig.yaml") . | sha256sum }}
{{- with .Values.podAnnotations }}
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "wordpress.selectorLabels" . | nindent 8 }}
{{- with .Values.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ include "wordpress.serviceAccountName" . }}
{{- with .Values.podSecurityContext }}
securityContext:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.extraInitContainers }}
initContainers:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: {{ .Chart.Name }}
{{- with .Values.securityContext }}
securityContext:
{{- toYaml . | nindent 12 }}
{{- end }}
image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
envFrom:
- secretRef:
name: {{ include "wordpress.fullname" . }}
{{- range .Values.extraEnvSecrets }}
- secretRef:
name: {{ . }}
{{- end }}
{{- range .Values.extraEnvConfigs }}
- configMapRef:
name: {{ . }}
{{- end }}
{{- with .Values.env }}
env:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- if .Values.args }}
args:
{{- range .Values.args }}
- {{ . }}
{{- end }}
{{- end }}
ports:
- name: http
containerPort: {{ .Values.containerPort }}
protocol: TCP
{{- if .Values.customStartupProbe }}
startupProbe:
{{- toYaml .Values.customStartupProbe | nindent 12 }}
{{- else }}
{{- if .Values.startupProbe.enabled }}
startupProbe:
httpGet:
path: /wp-login.php
port: http
httpHeaders:
- name: Host
value: localhost:{{ .Values.containerPort }}
- name: x-forwarded-proto
value: https
{{- with .Values.startupProbe }}
initialDelaySeconds: {{ .initialDelaySeconds }}
timeoutSeconds: {{ .timeoutSeconds }}
failureThreshold: {{ .failureThreshold }}
successThreshold: {{ .successThreshold }}
periodSeconds: {{ .periodSeconds }}
{{- end }}
{{- end }}
{{- end }}
{{- if .Values.customLivenessProbe }}
livenessProbe:
{{- toYaml .Values.customLivenessProbe | nindent 12 }}
{{- else }}
{{- if .Values.livenessProbe.enabled }}
livenessProbe:
httpGet:
path: /wp-admin/install.php
port: http
httpHeaders:
- name: Host
value: localhost:{{ .Values.containerPort }}
- name: x-forwarded-proto
value: https
{{- with .Values.livenessProbe }}
initialDelaySeconds: {{ .initialDelaySeconds }}
timeoutSeconds: {{ .timeoutSeconds }}
failureThreshold: {{ .failureThreshold }}
successThreshold: {{ .successThreshold }}
periodSeconds: {{ .periodSeconds }}
{{- end }}
{{- end }}
{{- end }}
{{- if .Values.customReadinessProbe }}
readinessProbe:
{{- toYaml .Values.customReadinessProbe | nindent 12 }}
{{- else }}
{{- if .Values.readinessProbe.enabled }}
readinessProbe:
httpGet:
path: /wp-login.php
port: http
httpHeaders:
- name: Host
value: localhost:{{ .Values.containerPort }}
- name: x-forwarded-proto
value: https
{{- with .Values.readinessProbe }}
initialDelaySeconds: {{ .initialDelaySeconds }}
timeoutSeconds: {{ .timeoutSeconds }}
failureThreshold: {{ .failureThreshold }}
successThreshold: {{ .successThreshold }}
periodSeconds: {{ .periodSeconds }}
{{- end }}
{{- end }}
{{- end }}
{{- with .Values.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
volumeMounts:
- mountPath: /var/www/html
name: wordpress-vol
- mountPath: /tmp
name: tmp
- mountPath: /var/run
name: run
- mountPath: /etc/apache2/ports.conf
subPath: ports.conf
name: extended
- mountPath: /etc/apache2/000-default.conf
subPath: 000-default.conf
name: extended
- mountPath: /usr/local/etc/php/conf.d/custom.ini
subPath: custom.ini
name: extended
{{- range $secret := .Values.extraSecrets }}
- mountPath: {{ $secret.mountPath }}
name: {{ $secret.name }}
{{- end }}
{{- with .Values.extraContainers }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.topologySpreadConstraints }}
topologySpreadConstraints:
{{- toYaml . | nindent 8 }}
{{- end }}
volumes:
- name: tmp
emptyDir: {}
- name: run
emptyDir: {}
- name: extended
configMap:
name: {{ include "wordpress.fullname" . }}-extended
{{- range $secret := .Values.extraSecrets }}
- name: {{ $secret.name }}
secret:
secretName: {{ $secret.name }}
defaultMode: 0440
{{- end }}
- name: wordpress-vol
{{- if .Values.storage.persistentVolumeClaimName }}
persistentVolumeClaim:
claimName: {{ .Values.storage.persistentVolumeClaimName }}
{{- else }}
{{- if .Values.storage.requestedSize }}
persistentVolumeClaim:
claimName: {{ include "wordpress.fullname" . }}
{{- else }}
emptyDir: {}
{{- end }}
{{- end }}

View File

@ -0,0 +1,33 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "wordpress.fullname" . }}-extended
labels:
{{- include "wordpress.labels" . | nindent 4 }}
data:
000-default.conf: |
{{- if .Values.apacheDefaultSiteConfig }}
{{ .Values.apacheDefaultSiteConfig | nindent 4 }}
{{- else }}
<VirtualHost *:{{ .Values.containerPort }}>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
{{- end }}
ports.conf: |
{{- if .Values.apachePortsConfig }}
{{ .Values.apachePortsConfig | nindent 4 }}
{{- else }}
Listen {{ .Values.containerPort }}
{{- end }}
custom.ini: |
{{- if .Values.customPhpConfig }}
{{ .Values.customPhpConfig | nindent 4 }}
{{- else }}
upload_max_filesize = {{ .Values.settings.maxFileUploadSize }}
post_max_size = {{ .Values.settings.maxFileUploadSize }}
memory_limit = {{ .Values.settings.memoryLimit }}
{{- end }}

View File

@ -0,0 +1,52 @@
{{- if .Values.ingress.enabled }}
{{- $fullName := include "wordpress.fullname" . -}}
{{- $labels := include "wordpress.labels" . -}}
{{- $svcPort := .Values.service.port -}}
{{- with .Values.ingress }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ $fullName }}
labels:
{{- $labels | nindent 4 }}
{{- with .labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
annotations:
{{- if .maxBodySize }}
nginx.ingress.kubernetes.io/proxy-body-size: {{ .maxBodySize }}
{{- end }}
{{- with .annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if .className }}
ingressClassName: {{ .className }}
{{- end }}
{{- if .tls }}
tls:
{{- range .tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ .path }}
pathType: {{ .pathType }}
backend:
service:
name: {{ $fullName }}
port:
number: {{ $svcPort }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,25 @@
{{- with .Values.networkPolicy }}
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: {{ include "wordpress.fullname" $ }}
spec:
podSelector:
matchLabels:
{{- include "wordpress.selectorLabels" $ | nindent 6 }}
policyTypes:
{{- if .ingress }}
- Ingress
{{- end }}
{{- if .egress }}
- Egress
{{- end }}
{{- with .ingress }}
ingress:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .egress }}
egress:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,22 @@
{{- if and (.Values.podDisruptionBudget) (or .Values.podDisruptionBudget.minAvailable .Values.podDisruptionBudget.maxUnavailable) }}
{{- if .Capabilities.APIVersions.Has "policy/v1" }}
apiVersion: policy/v1
{{- else }}
apiVersion: policy/v1beta1
{{- end }}
kind: PodDisruptionBudget
metadata:
name: {{ include "wordpress.fullname" . }}
labels:
{{- include "wordpress.labels" . | nindent 4 }}
spec:
{{- if .Values.podDisruptionBudget.minAvailable }}
minAvailable: {{ .Values.podDisruptionBudget.minAvailable }}
{{- end }}
{{- if .Values.podDisruptionBudget.maxUnavailable }}
maxUnavailable: {{ .Values.podDisruptionBudget.maxUnavailable }}
{{- end }}
selector:
matchLabels:
{{- include "wordpress.selectorLabels" . | nindent 6 }}
{{- end }}

View File

@ -0,0 +1,33 @@
{{- $createNcPvc := and (empty .Values.storage.persistentVolumeClaimName) (.Values.storage.requestedSize) }}
{{- if $createNcPvc }}
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ include "wordpress.fullname" . }}
labels:
{{- include "wordpress.labels" . | nindent 4 }}
{{- with .Values.storage.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- if or .Values.storage.keepPvc .Values.storage.annotations }}
annotations:
{{- if .Values.storage.keepPvc }}
"helm.sh/resource-policy": keep
{{- end }}
{{- with .Values.storage.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- end }}
spec:
{{- with .Values.storage }}
accessModes:
{{- toYaml .accessModes | nindent 4 }}
volumeMode: Filesystem
resources:
requests:
storage: {{ .requestedSize }}
{{- if .className }}
storageClassName: {{ .className }}
{{- end }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,30 @@
apiVersion: v1
kind: Secret
metadata:
name: {{ include "wordpress.fullname" . }}
labels:
{{- include "wordpress.labels" . | nindent 4 }}
data:
{{- if .Values.mariadb.enabled }}
WORDPRESS_DB_HOST: {{ (include "mariadb.servicename" .) | b64enc }}
{{- with .Values.mariadb.userDatabase }}
WORDPRESS_DB_NAME: {{ .name | b64enc }}
WORDPRESS_DB_USER: {{ .user | b64enc }}
WORDPRESS_DB_PASSWORD: {{ .password | b64enc }}
{{- end }}
{{- else }}
{{- with .Values.externalDatabase }}
WORDPRESS_DB_NAME: {{ .name | b64enc }}
WORDPRESS_DB_USER: {{ .user | b64enc }}
WORDPRESS_DB_PASSWORD: {{ .password | b64enc }}
WORDPRESS_DB_HOST: {{ .host | b64enc }}
{{- end }}
{{- end }}
{{- with .Values.settings }}
{{- if .tablePrefix }}
WORDPRESS_TABLE_PREFIX: {{ .tablePrefix | b64enc }}
{{- end }}
{{- if .configExtra }}
WORDPRESS_CONFIG_EXTRA: {{ .configExtra | b64enc }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,31 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "wordpress.fullname" . }}
labels:
{{- include "wordpress.labels" . | nindent 4 }}
{{- with .Values.service.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.service.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.port }}
targetPort: http
protocol: TCP
name: http
{{- if and ( or (eq .Values.service.type "LoadBalancer") (eq .Values.service.type "NodePort") ) (.Values.service.nodePort) }}
nodePort: {{ .Values.service.nodePort }}
{{- end }}
{{- if and (eq .Values.service.type "LoadBalancer") (.Values.service.loadBalancerIP) }}
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
{{- end }}
{{- if .Values.service.clusterIP }}
clusterIP: {{ .Values.service.clusterIP }}
{{- end }}
selector:
{{- include "wordpress.selectorLabels" . | nindent 4 }}

View File

@ -0,0 +1,12 @@
{{- if .Values.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "wordpress.serviceAccountName" . }}
labels:
{{- include "wordpress.labels" . | nindent 4 }}
{{- with .Values.serviceAccount.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,15 @@
apiVersion: v1
kind: Pod
metadata:
name: "{{ include "wordpress.fullname" . }}-test-connection"
labels:
{{- include "wordpress.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": test-success
spec:
containers:
- name: wget
image: busybox
command: ['wget']
args: ['{{ include "wordpress.fullname" . }}:{{ .Values.service.port }}']
restartPolicy: Never

View File

@ -0,0 +1,758 @@
{
"$schema": "http://json-schema.org/schema#",
"type": "object",
"properties": {
"resources": {
"description": "Your service will have at least the requested resources and never more than its limits. No limit for a resource and you can consume everything left on the host machine.",
"type": "object",
"properties": {
"requests": {
"description": "Guaranteed resources",
"type": "object",
"properties": {
"cpu": {
"description": "The amount of cpu guaranteed",
"title": "CPU",
"type": "string",
"default": "100m",
"render": "slider",
"sliderMin": 50,
"sliderMax": 40000,
"sliderStep": 50,
"sliderUnit": "m",
"sliderExtremity": "down",
"sliderExtremitySemantic": "guaranteed",
"sliderRangeId": "cpu",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.cpuRequest",
"useRegionSliderConfig": "cpu"
}
},
"memory": {
"description": "The amount of memory guaranteed",
"title": "memory",
"type": "string",
"default": "2Gi",
"render": "slider",
"sliderMin": 1,
"sliderMax": 200,
"sliderStep": 1,
"sliderUnit": "Gi",
"sliderExtremity": "down",
"sliderExtremitySemantic": "guaranteed",
"sliderRangeId": "memory",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.memoryRequest",
"useRegionSliderConfig": "memory"
}
}
}
},
"limits": {
"description": "max resources",
"type": "object",
"properties": {
"cpu": {
"description": "The maximum amount of cpu",
"title": "CPU",
"type": "string",
"default": "30000m",
"render": "slider",
"sliderMin": 50,
"sliderMax": 40000,
"sliderStep": 50,
"sliderUnit": "m",
"sliderExtremity": "up",
"sliderExtremitySemantic": "Maximum",
"sliderRangeId": "cpu",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.cpuLimit",
"useRegionSliderConfig": "cpu"
}
},
"memory": {
"description": "The maximum amount of memory",
"title": "Memory",
"type": "string",
"default": "50Gi",
"render": "slider",
"sliderMin": 1,
"sliderMax": 200,
"sliderStep": 1,
"sliderUnit": "Gi",
"sliderExtremity": "up",
"sliderExtremitySemantic": "Maximum",
"sliderRangeId": "memory",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.memoryLimit",
"useRegionSliderConfig": "memory"
}
}
}
}
}
},
"discovery": {
"description": "configure your service to autodetect some ressources.",
"type": "object",
"properties": {
"hive": {
"type": "boolean",
"title": "Enable hive metastore discovery",
"description": "discover your hive metastore service",
"default": true
},
"mlflow": {
"type": "boolean",
"title": "Enable mlflow discovery",
"description": "discover your mlflow service",
"default": true
},
"metaflow": {
"type": "boolean",
"title": "Enable metaflow discovery",
"description": "discover your metaflow service",
"default": true
}
}
},
"service": {
"description": "spark-history specific configuration",
"type": "object",
"properties": {
"image": {
"description": "image docker",
"type": "object",
"properties": {
"pullPolicy": {
"type": "string",
"description": "option when pulling the docker image",
"default": "IfNotPresent",
"enum": [
"IfNotPresent",
"Always",
"Never"
]
},
"version": {
"description": "vscode supported version",
"type": "string",
"default": "inseefrlab/onyxia-vscode-python:py3.11.6",
"listEnum": [
"inseefrlab/onyxia-vscode-python:py3.11.6",
"inseefrlab/onyxia-vscode-python:py3.10.13"
],
"render": "list",
"hidden": {
"value": true,
"path": "service/image/custom/enabled"
}
},
"custom": {
"description": "use a custom vscode docker image",
"type": "object",
"properties": {
"enabled": {
"title": "custom image",
"type": "boolean",
"description": "use a custom vscode docker images",
"default": false
},
"version": {
"description": "vscode unsupported version",
"type": "string",
"default": "inseefrlab/onyxia-vscode-python:py3.11.6",
"hidden": {
"value": false,
"path": "service/image/custom/enabled"
}
}
}
}
}
}
}
},
"persistence": {
"description": "Configuration for persistence",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Create a persistent volume",
"default": true
},
"size": {
"type": "string",
"title": "Persistent volume size",
"description": "Size of the persistent volume",
"default": "10Gi",
"form": true,
"render": "slider",
"sliderMin": 1,
"sliderMax": 100,
"sliderStep": 1,
"sliderUnit": "Gi",
"x-onyxia": {
"overwriteDefaultWith": "region.resources.disk",
"useRegionSliderConfig": "disk"
},
"hidden": {
"value": false,
"path": "persistence/enabled"
}
}
}
},
"security": {
"description": "security specific configuration",
"type": "object",
"properties": {
"password": {
"type": "string",
"description": "Password",
"default": "changeme",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{project.password}}"
}
},
"allowlist": {
"type": "object",
"description": "IP protection",
"properties": {
"enabled": {
"type": "boolean",
"title": "Enable IP protection",
"description": "Only the configured set of IPs will be able to reach the service",
"default": true,
"x-onyxia": {
"overwriteDefaultWith": "region.defaultIpProtection"
}
},
"ip": {
"type": "string",
"description": "the white list of IP is whitespace",
"title": "Whitelist of IP",
"x-onyxia": {
"overwriteDefaultWith": "{{user.ip}}"
}
}
}
},
"networkPolicy": {
"type": "object",
"description": "Define access policy to the service",
"properties": {
"enabled": {
"type": "boolean",
"title": "Enable network policy",
"description": "Only pod from the same namespace will be allowed",
"default": true,
"x-onyxia": {
"overwriteDefaultWith": "region.defaultNetworkPolicy"
}
},
"from": {
"type": "array",
"description": "Array of source allowed to have network access to your service",
"default": [],
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "region.from"
}
}
}
}
}
},
"kubernetes": {
"description": "configuration of your kubernetes access",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "allow your service to access your namespace ressources",
"default": true
},
"role": {
"type": "string",
"description": "bind your service account to this kubernetes default role",
"default": "view",
"hidden": {
"value": false,
"path": "kubernetes/enabled"
},
"enum": [
"view",
"edit",
"admin"
]
}
}
},
"git": {
"description": "Git user configuration",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Add git config inside your environment",
"default": true
},
"name": {
"type": "string",
"description": "user name for git",
"default": "",
"x-onyxia": {
"overwriteDefaultWith": "{{git.name}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"email": {
"type": "string",
"description": "user email for git",
"default": "",
"x-onyxia": {
"overwriteDefaultWith": "{{git.email}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"cache": {
"type": "string",
"description": "duration in seconds of the credentials cache duration",
"default": "",
"x-onyxia": {
"overwriteDefaultWith": "{{git.credentials_cache_duration}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"token": {
"type": "string",
"description": "personal access token",
"default": "",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{git.token}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"repository": {
"type": "string",
"description": "projet",
"default": "",
"x-onyxia": {
"overwriteDefaultWith": "{{git.project}}"
},
"hidden": {
"value": false,
"path": "git/enabled"
}
},
"branch": {
"type": "string",
"description": "Branch automatically checked out",
"default": "",
"hidden": {
"value": "",
"path": "git/repository"
}
}
}
},
"vault": {
"description": "Configuration of vault client",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Add vault temporary identity inside your environment",
"default": true
},
"token": {
"description": "token vault",
"type": "string",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{vault.VAULT_TOKEN}}"
},
"hidden": {
"value": false,
"path": "vault/enabled"
}
},
"url": {
"description": "url of vault server",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{vault.VAULT_ADDR}}"
},
"hidden": {
"value": false,
"path": "vault/enabled"
}
},
"mount": {
"description": "mount of the v2 secret engine",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{vault.VAULT_MOUNT}}"
},
"hidden": {
"value": false,
"path": "vault/enabled"
}
},
"directory": {
"description": "top level directory",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{vault.VAULT_TOP_DIR}}"
},
"hidden": {
"value": false,
"path": "vault/enabled"
}
},
"secret": {
"description": "the path of the secret to convert into a list of environment variables",
"type": "string",
"default": "",
"hidden": {
"value": false,
"path": "vault/enabled"
}
}
}
},
"s3": {
"description": "Configuration of temporary identity",
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Add S3 temporary identity inside your environment",
"default": true
},
"accessKeyId": {
"description": "AWS Access Key",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "s3.AWS_ACCESS_KEY_ID"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"endpoint": {
"description": "AWS S3 Endpoint",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_S3_ENDPOINT}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"defaultRegion": {
"description": "AWS S3 default region",
"type": "string",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_DEFAULT_REGION}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"secretAccessKey": {
"description": "AWS S3 secret access key",
"type": "string",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_SECRET_ACCESS_KEY}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
},
"sessionToken": {
"description": "AWS S3 session Token",
"type": "string",
"render": "password",
"x-onyxia": {
"overwriteDefaultWith": "{{s3.AWS_SESSION_TOKEN}}"
},
"hidden": {
"value": false,
"path": "s3/enabled"
}
}
}
},
"ingress": {
"type": "object",
"form": true,
"title": "Ingress Details",
"properties": {
"enabled": {
"description": "Enable Ingress",
"type": "boolean",
"default": true,
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "k8s.ingress"
}
},
"hostname": {
"type": "string",
"form": true,
"title": "Hostname",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-0.{{k8s.domain}}"
}
},
"userHostname": {
"type": "string",
"form": true,
"title": "Hostname",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-user.{{k8s.domain}}"
}
},
"ingressClassName": {
"type": "string",
"form": true,
"title": "ingressClassName",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{k8s.ingressClassName}}"
}
},
"useCertManager": {
"type": "boolean",
"description": "Whether CertManager should be used to generate a certificate",
"default": false,
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "k8s.useCertManager"
}
},
"certManagerClusterIssuer":{
"type": "string",
"description": "certManager cluster issuer",
"title": "CertManager Cluster Issuer",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "k8s.certManagerClusterIssuer"
}
}
}
},
"route": {
"type": "object",
"form": true,
"title": "Route details",
"properties": {
"enabled": {
"description": "Enable route",
"type": "boolean",
"default": false,
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "k8s.route"
}
},
"hostname": {
"type": "string",
"form": true,
"title": "Hostname",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-0.{{k8s.domain}}"
}
},
"userHostname": {
"type": "string",
"form": true,
"title": "Hostname",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-user.{{k8s.domain}}"
}
}
}
},
"networking": {
"type": "object",
"form": true,
"title": "Networking detail",
"properties": {
"user": {
"type": "object",
"description": "user defined port",
"properties": {
"enabled": {
"type": "boolean",
"title": "Enable a custom service port",
"description": "Enable a custom service port",
"default": false
},
"port": {
"type": "integer",
"description": "port of the custom service",
"title": "Custom service port",
"hidden": {
"value": false,
"path": "networking/user/enabled"
},
"default": 5000
}
}
}
}
},
"init": {
"description": "Init parameters",
"type": "object",
"properties": {
"regionInit": {
"type": "string",
"description": "region initialization script",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{k8s.initScriptUrl}}"
}
},
"regionInitCheckSum": {
"type": "string",
"description": "region initialization script",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{k8s.initScriptCheckSum}}"
}
},
"personalInit": {
"type": "string",
"description": "user initialization script",
"default": ""
},
"personalInitArgs": {
"type": "string",
"description": "args for user initialization script",
"default": ""
}
}
},
"repository": {
"description": "python repositories for pip and conda",
"type": "object",
"properties": {
"pipRepository": {
"type": "string",
"description": "python repository for pip",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{packageRepositoryInjection.pypiProxyUrl}}"
}
},
"condaRepository": {
"type": "string",
"description": "python repository for pip",
"default": "",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "{{packageRepositoryInjection.condaProxyUrl}}"
}
}
}
},
"startupProbe": {
"type": "object",
"description": "Start up probe",
"default": {},
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "region.startupProbe"
}
},
"tolerations": {
"type": "array",
"description": "Array of tolerations",
"default": [],
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "region.tolerations"
}
},
"nodeSelector": {
"type": "object",
"description": "NodeSelector",
"default": {},
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "region.nodeSelector"
}
},
"userPreferences": {
"description": "User Preferences",
"type": "object",
"properties": {
"darkMode": {
"type": "boolean",
"description": "dark mode is or is not enabled",
"default": false,
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "user.darkMode"
}
},
"language": {
"type": "string",
"description": "Preferred language",
"default": "en",
"x-onyxia": {
"hidden": true,
"overwriteDefaultWith": "user.lang"
}
}
}
},
"global": {
"description": "Suspend",
"type": "object",
"properties": {
"suspend": {
"type": "boolean",
"description": "Suspend this service",
"default": false,
"x-onyxia": {
"hidden": true
}
}
}
}
}
}

View File

@ -0,0 +1,296 @@
## Default values for Wordpress deployment
## Number of wordpress replicas
replicaCount: 1
## Netxcloud docker image
image:
registry: "docker.io"
repository: "wordpress"
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: ""
## Pull secrets and name override options
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
## Additional labels for Deployment or StatefulSet
customLabels: {}
## Additional annotations for Deployment or StatefulSet
customAnnotations: {}
## Pod deployment strategy
strategy: {}
## Optional service account
serviceAccount:
# Specifies whether a service account should be created
create: false
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
## Additional pod annotations
podAnnotations: {}
## Additional pod labels
podLabels: {}
## Pod security options (default: www-data as fsGroup and user running as non-root)
podSecurityContext:
fsGroup: 33
runAsUser: 33
runAsNonRoot: true
## Default security options to run Wordpress as read only container without privilege escalation
securityContext:
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
privileged: false
service:
type: ClusterIP
port: 80
## The node port (only relevant for type LoadBalancer or NodePort)
nodePort:
## The cluster ip address (only relevant for type LoadBalancer or NodePort)
clusterIP:
## The loadbalancer ip address (only relevant for type LoadBalancer)
loadBalancerIP:
## Annotations to add to the service
annotations: {}
## Labels to add to the service
labels: {}
## Ingress configuration
ingress:
## Enable ingress endpoint
enabled: false
## Optional ingress class name
className:
## Maximal body size (default: 64m - increase if uploads to Wordpress failing)
maxBodySize: 64m
## Additional ingress annotations
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
## Additional ingress labels
labels: {}
## Hosts
hosts:
- host:
paths:
- path: /
pathType: ImplementationSpecific
## TLS settings for hosts
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
## Resource limits and requests
resources: {}
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
## Custom startup probe (overwrites default startup probe)
customStartupProbe: {}
## Default startup probe
startupProbe:
enabled: true
initialDelaySeconds: 10
timeoutSeconds: 5
failureThreshold: 30
successThreshold: 1
periodSeconds: 10
## Custom liveness probe (overwrites default liveness probe)
customLivenessProbe: {}
## Default liveness probe
livenessProbe:
enabled: true
initialDelaySeconds: 30
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
periodSeconds: 10
## Custom readiness probe (overwrites default readiness probe)
customReadinessProbe: {}
## Default readiness probe
readinessProbe:
enabled: true
initialDelaySeconds: 30
timeoutSeconds: 5
failureThreshold: 5
successThreshold: 1
periodSeconds: 10
## Extra init containers
extraInitContainers: []
## Extra containers for usage as sidecars
extraContainers:
## Additional node selector
nodeSelector: {}
## Tolerations for pod assignment
tolerations: []
## Affinity for pod assignment
affinity: {}
## Topology spread constraints for pods
topologySpreadConstraints: {}
## Maximum number of revisions maintained in revision history
revisionHistoryLimit:
## Pod disruption budget
podDisruptionBudget: {}
## Minimum number of pods that must be available after eviction
# minAvailable:
## Maximum number of pods that can be unavailable after eviction
# maxUnavailable:
## Internal container port (default: 8000)
containerPort: 8000
## Additional environment variables
env: []
## Additional arguments for the container entrypoint process
args: []
## External database settings (is used when mariadb.enabled is false)
externalDatabase: {}
## Name of the database (default: wordpress)
# name: wordpress
## Database user
# user:
## Database password
# password:
## Database host
# host:
## Wordpress specific settings
settings:
## Database table name prefix
tablePrefix:
## Maximum file upload size (default: 64M)
maxFileUploadSize: 64M
## PHP memory limit (default: 128M)
memoryLimit: 128M
## Extra values embedded inside wp-config.php
configExtra:
## Additional PHP custom.ini
customPhpConfig: |
## Overwrite default apache ports.conf
apachePortsConfig: |
## Overwrite default apache 000-default.conf
apacheDefaultSiteConfig: |
## A list of existing secrets that will be mounted into the container as environment variables
extraEnvSecrets: []
## A list of existing configmaps that will be mounted into the container as environment variables
extraEnvConfigs: []
## A list of additional existing secrets that will be mounted into the container
## The mounted files of the secrets can be used for advanced configuration - f.e. TLS
extraSecrets: []
## Name of the existing K8s secret
# - name:
## Mount path where the secret should be mounted into the container (f.e. /mysecretfolder)
# mountPath:
## Storage parameters
storage:
## Set persistentVolumenClaimName to reference an existing PVC
persistentVolumeClaimName:
## Alternative set requestedSize to define a size for a dynmaically created PVC
requestedSize:
## the storage class name
className:
## Default access mode (ReadWriteOnce)
accessModes:
- ReadWriteOnce
## Keep a created Persistent volume claim when uninstalling the helm chart
keepPvc: false
## Additional storage annotations
annotations: {}
## Additional storage labels
labels: {}
## MariaDB configuration
mariadb:
## Enable MariaDB helm chart for deployment (default: false)
enabled: false
## Database configuration
settings:
## The root user password
rootPassword:
## Optional user database which is created during first startup with user and password
userDatabase: {}
## Name of the user database
# name:
## Database user with full access rights
# user:
## Password of the database user
# password:
# Storage parameters
storage:
## Set persistentVolumenClaimName to reference an existing PVC
persistentVolumeClaimName:
## Alternative set requestedSize to define a size for a dynmaically created PVC
requestedSize:
## the storage class name
className:
## Additional storage annotations
annotations: {}
## Additional storage labels
labels: {}
## Network policies
networkPolicy: {}
## Ingress and Egress policies
# ingress: {}
# egress: {}

Binary file not shown.