diff --git a/charts/wordpress copie original - no valuesjson/values.schema.json b/charts/wordpress copie original - no valuesjson/values.schema.json new file mode 100644 index 0000000..53992d3 --- /dev/null +++ b/charts/wordpress copie original - no valuesjson/values.schema.json @@ -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 + } + } + } + } + } +} \ No newline at end of file diff --git a/charts/wordpress copie original - no valuesjson/wordpress/wordpress-copie-original-nojson-20.1.2.tgz b/charts/wordpress copie original - no valuesjson/wordpress/wordpress-copie-original-nojson-20.1.2.tgz index 377eeb8..3f4da13 100644 Binary files a/charts/wordpress copie original - no valuesjson/wordpress/wordpress-copie-original-nojson-20.1.2.tgz and b/charts/wordpress copie original - no valuesjson/wordpress/wordpress-copie-original-nojson-20.1.2.tgz differ diff --git a/charts/wordpress+valuesjson de VScode/values.schema.json b/charts/wordpress+valuesjson de VScode/values.schema.json index c96fa0e..c13e3be 100644 --- a/charts/wordpress+valuesjson de VScode/values.schema.json +++ b/charts/wordpress+valuesjson de VScode/values.schema.json @@ -2,38 +2,302 @@ "$schema": "http://json-schema.org/schema#", "type": "object", "properties": { - "wordpressUsername": { - "type": "string", - "title": "Username", - "form": true + "wordpress": { + "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 + } }, - "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": { + "s3": { + "description": "Configuration of temporary identity", "type": "object", "properties": { - "size": { + "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", - "title": "Persistent Volume Size", "form": true, - "render": "slider", - "sliderMin": 1, - "sliderMax": 100, - "sliderUnit": "Gi" + "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", + "sliderMin": 1, + "sliderMax": 200, + "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" + } + } } } }, diff --git a/charts/wordpress+valuesjson de VScode/values.schema.json avant modif persistence b/charts/wordpress+valuesjson de VScode/values.schema.json avant modif persistence new file mode 100644 index 0000000..c96fa0e --- /dev/null +++ b/charts/wordpress+valuesjson de VScode/values.schema.json avant modif persistence @@ -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 + } + } + } + } + } +} \ No newline at end of file diff --git a/charts/wordpress+valuesjson de VScode/values.schema1.json b/charts/wordpress+valuesjson de VScode/values.schema1.json new file mode 100644 index 0000000..801115f --- /dev/null +++ b/charts/wordpress+valuesjson de VScode/values.schema1.json @@ -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 + } + } + } + } + } +} \ No newline at end of file diff --git a/charts/wordpress+valuesjson de VScode/wordpress+valuesjson-VScode-2.1.tgz b/charts/wordpress+valuesjson de VScode/wordpress+valuesjson-VScode-2.1.tgz index 2b6d48d..f6a39eb 100644 Binary files a/charts/wordpress+valuesjson de VScode/wordpress+valuesjson-VScode-2.1.tgz and b/charts/wordpress+valuesjson de VScode/wordpress+valuesjson-VScode-2.1.tgz differ diff --git a/charts/wordpress-not-binami/.helmignore b/charts/wordpress-not-binami/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/charts/wordpress-not-binami/.helmignore @@ -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/ diff --git a/charts/wordpress-not-binami/Chart.lock b/charts/wordpress-not-binami/Chart.lock new file mode 100644 index 0000000..2f40d6c --- /dev/null +++ b/charts/wordpress-not-binami/Chart.lock @@ -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" diff --git a/charts/wordpress-not-binami/Chart.yaml b/charts/wordpress-not-binami/Chart.yaml new file mode 100644 index 0000000..054721e --- /dev/null +++ b/charts/wordpress-not-binami/Chart.yaml @@ -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 diff --git a/charts/wordpress-not-binami/README.md b/charts/wordpress-not-binami/README.md new file mode 100644 index 0000000..0fc3dc0 --- /dev/null +++ b/charts/wordpress-not-binami/README.md @@ -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 | diff --git a/charts/wordpress-not-binami/RELEASENOTES.md b/charts/wordpress-not-binami/RELEASENOTES.md new file mode 100644 index 0000000..f5e43e7 --- /dev/null +++ b/charts/wordpress-not-binami/RELEASENOTES.md @@ -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 | +| | | | diff --git a/charts/wordpress-not-binami/charts/mariadb-0.3.14.tgz b/charts/wordpress-not-binami/charts/mariadb-0.3.14.tgz new file mode 100644 index 0000000..5996722 Binary files /dev/null and b/charts/wordpress-not-binami/charts/mariadb-0.3.14.tgz differ diff --git a/charts/wordpress-not-binami/templates/_helpers.tpl b/charts/wordpress-not-binami/templates/_helpers.tpl new file mode 100644 index 0000000..bcb6a06 --- /dev/null +++ b/charts/wordpress-not-binami/templates/_helpers.tpl @@ -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 }} diff --git a/charts/wordpress-not-binami/templates/deployment.yaml b/charts/wordpress-not-binami/templates/deployment.yaml new file mode 100644 index 0000000..d505a1a --- /dev/null +++ b/charts/wordpress-not-binami/templates/deployment.yaml @@ -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 }} \ No newline at end of file diff --git a/charts/wordpress-not-binami/templates/extendedconfig.yaml b/charts/wordpress-not-binami/templates/extendedconfig.yaml new file mode 100644 index 0000000..e1b46b8 --- /dev/null +++ b/charts/wordpress-not-binami/templates/extendedconfig.yaml @@ -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 }} + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/html + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + {{- 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 }} diff --git a/charts/wordpress-not-binami/templates/ingress.yaml b/charts/wordpress-not-binami/templates/ingress.yaml new file mode 100644 index 0000000..9967af2 --- /dev/null +++ b/charts/wordpress-not-binami/templates/ingress.yaml @@ -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 }} diff --git a/charts/wordpress-not-binami/templates/networkpolicy.yaml b/charts/wordpress-not-binami/templates/networkpolicy.yaml new file mode 100644 index 0000000..387dadb --- /dev/null +++ b/charts/wordpress-not-binami/templates/networkpolicy.yaml @@ -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 }} diff --git a/charts/wordpress-not-binami/templates/pdp.yaml b/charts/wordpress-not-binami/templates/pdp.yaml new file mode 100644 index 0000000..e09e6da --- /dev/null +++ b/charts/wordpress-not-binami/templates/pdp.yaml @@ -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 }} diff --git a/charts/wordpress-not-binami/templates/pvc.yaml b/charts/wordpress-not-binami/templates/pvc.yaml new file mode 100644 index 0000000..1d21709 --- /dev/null +++ b/charts/wordpress-not-binami/templates/pvc.yaml @@ -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 }} diff --git a/charts/wordpress-not-binami/templates/secureconfig.yaml b/charts/wordpress-not-binami/templates/secureconfig.yaml new file mode 100644 index 0000000..77b1fd0 --- /dev/null +++ b/charts/wordpress-not-binami/templates/secureconfig.yaml @@ -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 }} diff --git a/charts/wordpress-not-binami/templates/service.yaml b/charts/wordpress-not-binami/templates/service.yaml new file mode 100644 index 0000000..757f723 --- /dev/null +++ b/charts/wordpress-not-binami/templates/service.yaml @@ -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 }} diff --git a/charts/wordpress-not-binami/templates/serviceaccount.yaml b/charts/wordpress-not-binami/templates/serviceaccount.yaml new file mode 100644 index 0000000..2db9c9c --- /dev/null +++ b/charts/wordpress-not-binami/templates/serviceaccount.yaml @@ -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 }} diff --git a/charts/wordpress-not-binami/templates/tests/test-connection.yaml b/charts/wordpress-not-binami/templates/tests/test-connection.yaml new file mode 100644 index 0000000..95fb60f --- /dev/null +++ b/charts/wordpress-not-binami/templates/tests/test-connection.yaml @@ -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 diff --git a/charts/wordpress-not-binami/values.schema.json b/charts/wordpress-not-binami/values.schema.json new file mode 100644 index 0000000..53992d3 --- /dev/null +++ b/charts/wordpress-not-binami/values.schema.json @@ -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 + } + } + } + } + } +} \ No newline at end of file diff --git a/charts/wordpress-not-binami/values.yaml b/charts/wordpress-not-binami/values.yaml new file mode 100644 index 0000000..cd283c8 --- /dev/null +++ b/charts/wordpress-not-binami/values.yaml @@ -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: {} diff --git a/charts/wordpress-not-binami/wordpress-0.11.0.tgz b/charts/wordpress-not-binami/wordpress-0.11.0.tgz new file mode 100644 index 0000000..f185d4e Binary files /dev/null and b/charts/wordpress-not-binami/wordpress-0.11.0.tgz differ