{ "1.1.3": { "healthy": true, "supported": true, "healthy_error": null, "location": "/__w/charts/charts/community/jenkins/1.1.3", "last_update": "2023-12-01 12:58:12", "required_features": [ "definitions/certificate", "definitions/timezone", "normalize/ixVolume" ], "human_version": "2.426.1_1.1.3", "version": "1.1.3", "chart_metadata": { "name": "jenkins", "description": "Jenkins is a leading open source automation server,", "annotations": { "title": "Jenkins" }, "type": "application", "version": "1.1.3", "apiVersion": "v2", "appVersion": "2.426.1", "kubeVersion": ">=1.16.0-0", "maintainers": [ { "name": "truenas", "url": "https://www.truenas.com/", "email": "dev@ixsystems.com" } ], "dependencies": [ { "name": "common", "repository": "file://../../../common", "version": "1.2.3" } ], "home": "https://www.jenkins.io/", "icon": "https://media.sys.truenas.net/apps/jenkins/icons/icon.svg", "sources": [ "https://hub.docker.com/r/jenkins/jenkins", "https://github.com/truenas/charts/tree/master/community/jenkins", "https://github.com/jenkinsci/jenkins", "https://www.jenkins.io/" ], "keywords": [ "automation", "ci/cd" ] }, "app_metadata": { "runAsContext": [ { "userName": "jenkins", "groupName": "jenkins", "gid": 1000, "uid": 1000, "description": "Jenkins runs as a non-root user." } ], "capabilities": [], "hostMounts": [] }, "schema": { "groups": [ { "name": "Jenkins Configuration", "description": "Configure Jenkins" }, { "name": "User and Group Configuration", "description": "Configure User and Group for Jenkins" }, { "name": "Network Configuration", "description": "Configure Network for Jenkins" }, { "name": "Storage Configuration", "description": "Configure Storage for Jenkins" }, { "name": "Resources Configuration", "description": "Configure Resources for Jenkins" } ], "portals": { "web_portal": { "protocols": [ "$kubernetes-resource_configmap_portal_protocol" ], "host": [ "$kubernetes-resource_configmap_portal_host" ], "ports": [ "$kubernetes-resource_configmap_portal_port" ], "path": "$kubernetes-resource_configmap_portal_path" } }, "questions": [ { "variable": "TZ", "group": "Jenkins Configuration", "label": "Timezone", "schema": { "type": "string", "default": "America/Los_Angeles", "required": true, "$ref": [ "definitions/timezone" ], "enum": [ { "value": "Asia/Damascus", "description": "'Asia/Damascus' timezone" }, { "value": "Asia/Saigon", "description": "'Asia/Saigon' timezone" } ] } }, { "variable": "jenkinsConfig", "label": "", "group": "Jenkins Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "jenkinsJavaOpts", "label": "Additional Jenkins Java Options", "description": "Configure additional jenkins java options for Jenkins.
\nSee https://www.jenkins.io/doc/book/managing/system-properties\n", "schema": { "type": "list", "default": [], "items": [ { "variable": "jenkinsJavaOpt", "label": "Jenkins Java Option", "schema": { "type": "dict", "attrs": [ { "variable": "property", "label": "Property", "description": "The property to set, see https://www.jenkins.io/doc/book/managing/system-properties
\nThe prefix [-D] is automatically added.\n", "schema": { "type": "string", "required": true } }, { "variable": "value", "description": "The value to set for the property.
\n", "label": "Value", "schema": { "type": "string", "required": true } } ] } } ] } }, { "variable": "jenkinsOpts", "label": "Additional Jenkins Options", "description": "Configure additional jenkins options for Jenkins.
\nsee https://www.jenkins.io/doc/book/installing/initial-settings\n", "schema": { "type": "list", "default": [], "items": [ { "variable": "jenkinsOption", "label": "Jenkins Option", "description": "The option to set, see https://www.jenkins.io/doc/book/installing/initial-settings
\nThe prefix [--] is automatically added.\n", "schema": { "type": "string", "required": true } } ] } }, { "variable": "additionalEnvs", "label": "Additional Environment Variables", "description": "Configure additional environment variables for Jenkins.", "schema": { "type": "list", "default": [], "items": [ { "variable": "env", "label": "Environment Variable", "schema": { "type": "dict", "attrs": [ { "variable": "name", "label": "Name", "schema": { "type": "string", "required": true } }, { "variable": "value", "label": "Value", "schema": { "type": "string", "required": true } } ] } } ] } } ] } }, { "variable": "jenkinsNetwork", "label": "", "group": "Network Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "webPort", "label": "Web Port", "description": "The port for the Jenkins Web UI.", "schema": { "type": "int", "default": 30036, "min": 9000, "max": 65535, "required": true } }, { "variable": "certificateID", "label": "Certificate", "description": "The certificate to use for HTTPS.", "schema": { "type": "int", "null": true, "$ref": [ "definitions/certificate" ], "enum": [ { "value": null, "description": "No Certificate" } ], "default": null } }, { "variable": "agent", "label": "Enable Agent", "description": "Enable Agent Port for Jenkins.", "schema": { "type": "boolean", "default": false } }, { "variable": "agentPort", "label": "Agent Port", "description": "The port for the Jenkins Agent.", "schema": { "type": "int", "show_if": [ [ "agent", "=", true ] ], "default": 50000, "min": 9000, "max": 65535, "required": true } }, { "variable": "hostNetwork", "label": "Host Network", "description": "Bind to the host network. It's recommended to keep this disabled.
\n", "schema": { "type": "boolean", "default": false } } ] } }, { "variable": "jenkinsStorage", "label": "", "group": "Storage Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "home", "label": "Jenkins Home Storage", "description": "The path to store Jenkins Home Directory.", "schema": { "type": "dict", "attrs": [ { "variable": "type", "label": "Type", "description": "ixVolume: Is dataset created automatically by the system.
\nHost Path: Is a path that already exists on the system.\n", "schema": { "type": "string", "required": true, "immutable": true, "default": "ixVolume", "enum": [ { "value": "hostPath", "description": "Host Path (Path that already exists on the system)" }, { "value": "ixVolume", "description": "ixVolume (Dataset created automatically by the system)" } ] } }, { "variable": "datasetName", "label": "Dataset Name", "schema": { "type": "string", "show_if": [ [ "type", "=", "ixVolume" ] ], "required": true, "hidden": true, "immutable": true, "default": "home", "$ref": [ "normalize/ixVolume" ] } }, { "variable": "hostPath", "label": "Host Path", "schema": { "type": "hostpath", "show_if": [ [ "type", "=", "hostPath" ] ], "immutable": true, "required": true } } ] } }, { "variable": "additionalStorages", "label": "Additional Storage", "description": "Additional storage for Jenkins.", "schema": { "type": "list", "default": [], "items": [ { "variable": "storageEntry", "label": "Storage Entry", "schema": { "type": "dict", "attrs": [ { "variable": "type", "label": "Type", "description": "ixVolume: Is dataset created automatically by the system.
\nHost Path: Is a path that already exists on the system.
\nSMB Share: Is a SMB share that is mounted to a persistent volume claim.\n", "schema": { "type": "string", "required": true, "default": "ixVolume", "immutable": true, "enum": [ { "value": "hostPath", "description": "Host Path (Path that already exists on the system)" }, { "value": "ixVolume", "description": "ixVolume (Dataset created automatically by the system)" }, { "value": "smb-pv-pvc", "description": "SMB Share (Mounts a persistent volume claim to a SMB share)" } ] } }, { "variable": "mountPath", "label": "Mount Path", "description": "The path inside the container to mount the storage.", "schema": { "type": "path", "required": true } }, { "variable": "hostPath", "label": "Host Path", "description": "The host path to use for storage.", "schema": { "type": "hostpath", "show_if": [ [ "type", "=", "hostPath" ] ], "required": true } }, { "variable": "datasetName", "label": "Dataset Name", "description": "The name of the dataset to use for storage.", "schema": { "type": "string", "show_if": [ [ "type", "=", "ixVolume" ] ], "required": true, "immutable": true, "default": "storage_entry", "$ref": [ "normalize/ixVolume" ] } }, { "variable": "server", "label": "Server", "description": "The server for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true } }, { "variable": "share", "label": "Share", "description": "The share name for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true } }, { "variable": "domain", "label": "Domain (Optional)", "description": "The domain for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ] } }, { "variable": "username", "label": "Username", "description": "The username for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true } }, { "variable": "password", "label": "Password", "description": "The password for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true, "private": true } }, { "variable": "size", "label": "Size (in Gi)", "description": "The size of the volume quota.", "schema": { "type": "int", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true, "min": 1, "default": 1 } } ] } } ] } } ] } }, { "variable": "resources", "group": "Resources Configuration", "label": "", "schema": { "type": "dict", "attrs": [ { "variable": "limits", "label": "Limits", "schema": { "type": "dict", "attrs": [ { "variable": "cpu", "label": "CPU", "description": "CPU limit for Jenkins.", "schema": { "type": "string", "max_length": 6, "valid_chars": "^(0\\.[1-9]|[1-9][0-9]*)(\\.[0-9]|m?)$", "valid_chars_error": "Valid CPU limit formats are
\n- Plain Integer - eg. 1
\n- Float - eg. 0.5
\n- Milicpu - eg. 500m\n", "default": "4000m", "required": true } }, { "variable": "memory", "label": "Memory", "description": "Memory limit for Jenkins.", "schema": { "type": "string", "max_length": 12, "valid_chars": "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$", "valid_chars_error": "Valid Memory limit formats are
\n- Suffixed with E/P/T/G/M/K - eg. 1G
\n- Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi
\n- Plain Integer in bytes - eg. 1024
\n- Exponent - eg. 134e6\n", "default": "8Gi", "required": true } } ] } } ] } } ] }, "app_readme": "

Jenkins

\n

Jenkins. The leading open source automation server, Jenkins provides hundreds of\nplugins to support building, deploying and automating any project.

\n
\n

When application is installed and on each startup, a container will be launched with root privileges.\nThis is required in order to apply the correct permissions to the Jenkins directories.\nAfterward, the Jenkins container will run as a non-root user (1000).\nAll mounted storage(s) will be chowned only if the parent directory does not match the user and group (1000).

\n
", "detailed_readme": "

Jenkins

\n

Jenkins. The leading open source automation server, Jenkins provides hundreds of\nplugins to support building, deploying and automating any project.

\n
\n

When application is installed and on each startup, a container will be launched with root privileges.\nThis is required in order to apply the correct permissions to the Jenkins directories.\nAfterward, the Jenkins container will run as a non-root user (1000).\nAll mounted storage(s) will be chowned only if the parent directory does not match the user and group (1000).

\n
", "changelog": null } }