diff --git a/docs/common/values/hostname.md b/docs/common/values/hostname.md index 3c08208fc5..33f3e06534 100644 --- a/docs/common/values/hostname.md +++ b/docs/common/values/hostname.md @@ -15,6 +15,7 @@ Can be defined in: --- Specifies pod's hostname +If left unspecified, Kubernetes will use the Deployment's name. Examples: diff --git a/docs/common/values/names.md b/docs/common/values/names.md new file mode 100644 index 0000000000..051f351ec5 --- /dev/null +++ b/docs/common/values/names.md @@ -0,0 +1,50 @@ +# Names + +## Key: nameOverride + +Info: + +- Type: `string` +- Default: `""` +- Helm Template: ❌ + +Can be defined in: + +- `.Values`.nameOverride + +--- + +Overrides the name of the workload. + +> This is not the full name, but a part of the full name +> This is something that will only needed in very rare scenarios. +> Should be avoided, unless is absolutely needed. + +Examples: + +```yaml +nameOverride: some_name +``` + +--- +--- + +## Key: fullnameOverride + +Info: + +- Type: `string` +- Default: `""` +- Helm Template: ❌ + +Can be defined in: + +- `.Values`.fullnameOverride + +--- + +Overrides the name of the workload. + +> This affects the full name of the Deployment/StatefulSet/etc +> This is something that will only needed in very rare scenarios. +> Should be avoided, unless is absolutely needed. diff --git a/docs/common/values/nodeSelector.md b/docs/common/values/nodeSelector.md new file mode 100644 index 0000000000..c45475c329 --- /dev/null +++ b/docs/common/values/nodeSelector.md @@ -0,0 +1,33 @@ +# Node Selector + +## Key: nodeSelector + +Info: + +- Type: `dict` +- Default: `{}` +- Helm Template: + - key: ❌ + - value: ✅ + +Can be defined in: + +- `.Values`.nodeSelector +- `.Values.jobs.[job-name].podSpec`.nodeSelector + +--- + +Defines the nodeSelector(s) that will be used. +Node selector is used to select in which node a workload will be deployed. + +Examples: + +```yaml +nodeSelector: + disktype: ssd + cpu-type: "{{ .Values.some.path }}" +``` + +Kubernetes Documentation: + +- [Node Selector](https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes/) diff --git a/docs/common/values/runtimeClassName.md b/docs/common/values/runtimeClassName.md new file mode 100644 index 0000000000..068b2154ee --- /dev/null +++ b/docs/common/values/runtimeClassName.md @@ -0,0 +1,28 @@ +# Runtime Class Name + +## Key: runtimeClassName + +Info: + +- Type: `string` +- Default: `""` +- Helm Template: ❌ + +Can be defined in: + +- `.Values`.runtimeClassName +- `.Values.jobs.[job-name].podSpec`.runtimeClassName + +--- + +Defines the `runtimeClassName` for the workloads. + +Leaving it empty it will use the default `runtimeClassName`. +> On TrueNAS Scale, it will dynamically pick the `runtimeClassName` +> based on metadata provided by the middleware. + +Examples: + +```yaml +runtimeClassName: some-class-name +``` diff --git a/docs/common/values/scheduler.md b/docs/common/values/scheduler.md new file mode 100644 index 0000000000..35babd5492 --- /dev/null +++ b/docs/common/values/scheduler.md @@ -0,0 +1,30 @@ +# Scheduler + +## Key: schedulerName + +Info: + +- Type: `string` +- Default: `""` +- Helm Template: ✅ + +Can be defined in: + +- `.Values`.schedulerName +- `.Values.jobs.[job-name].podSpec`.schedulerName + +--- + +Defines the scheduler that will be used. +Leaving it empty, Kubernetes will assign the `default-scheduler` + +Examples: + +```yaml +schedulerName: some-scheduler +# schedulerName: "{{ .Values.some.path }}" +``` + +Kubernetes Documentation: + +- [Scheduler](https://kubernetes.io/docs/tasks/extend-kubernetes/configure-multiple-schedulers/#specify-schedulers-for-pods) diff --git a/docs/common/values/termination.md b/docs/common/values/termination.md new file mode 100644 index 0000000000..b396be0cd5 --- /dev/null +++ b/docs/common/values/termination.md @@ -0,0 +1,55 @@ +# Termination + +## Key: termination + +Info: + +- Type: `dict` +- Default: + + ```yaml + termination: + messagePath: "" + messagePolicy: "" + gracePeriodSeconds: 10 + ``` + +- Helm Template: + - messagePath: ✅ + - messagePolicy: ✅ + - gracePeriodSeconds: ❌ + +Can be defined in: + +- `.Values`.termination.messagePath +- `.Values`.termination.messagePolicy +- `.Values`.termination.gracePeriodSeconds +- `.Values.additionalContainers.[container-name]`.termination.messagePath +- `.Values.additionalContainers.[container-name]`.termination.messagePolicy +- `.Values.initContainers.[container-name]`.termination.messagePath +- `.Values.initContainers.[container-name]`.termination.messagePolicy +- `.Values.installContainers.[container-name]`.termination.messagePath +- `.Values.installContainers.[container-name]`.termination.messagePolicy +- `.Values.upgradeContainers.[container-name]`.termination.messagePath +- `.Values.upgradeContainers.[container-name]`.termination.messagePolicy +- `.Values.systemContainers.[container-name]`.termination.messagePath +- `.Values.systemContainers.[container-name]`.termination.messagePolicy +- `.Values.jobs.[job-name].podSpec`.termination.gracePeriodSeconds +- `.Values.jobs.[job-name].podSpec.containers.[container-name].[container-name]`.termination.messagePath +- `.Values.jobs.[job-name].podSpec.containers.[container-name].[container-name]`.termination.messagePolicy + +--- + +`messagePath` and `messagePolicy` can be set per container. +`gracePeriodSeconds` can only be set per pod. + +Examples: + +```yaml +termination: + messagePath: "" + # messagePath: "{{ .Values.some.path }}" + messagePolicy: "" + # messagePolicy: "{{ .Values.some.path }}" + gracePeriodSeconds: 10 +``` diff --git a/library/common/1.0.0/values.yaml b/library/common/1.0.0/values.yaml index c2ff070b74..be95e921cc 100644 --- a/library/common/1.0.0/values.yaml +++ b/library/common/1.0.0/values.yaml @@ -26,6 +26,15 @@ envFrom: [] # Defines the timezone for the container TZ: UTC +# Define the default hostname of the Deployment/StatefulSet/DaemonSet/etc +hostname: "" + +# Overrides the name of the workload +nameOverride: "" + +# Overrides the fullname of the workload +fullnameOverride: "" + # Default Security values for main container security: PUID: 568 @@ -89,6 +98,9 @@ addAnnotations: traefik: false metallb: false +# Adds labels to the pod +podLabels: {} + # Used for SCALE scaleCerts: {} @@ -115,8 +127,23 @@ ixExternalInterfacesConfiguration: [] # Injected from middleware ixExternalInterfacesConfigurationNames: [] -# - Everything bellow needs documentation -hostname: "" +# Defines termination strategy +termination: + messagePath: "" + messagePolicy: "" + gracePeriodSeconds: 10 + +# Defines the scheduler +schedulerName: "" + +# Defines the nodeSelector(s) +nodeSelector: {} + +# Defines the runtimeClassName +runtimeClassName: "" + + +###### - Everything bellow needs documentation ##### # Injected from middleware ixCertificates: [] @@ -264,6 +291,7 @@ securityContext: add: [] drop: - ALL + # Default resources for main container resources: limits: @@ -273,54 +301,25 @@ resources: cpu: 10m memory: 50Mi -nameOverride: "" - -fullnameOverride: "" - -podLabels: {} - enableServiceLinks: false -schedulerName: "" - priorityClassName: "" dnsPolicy: "" dnsConfig: {} -nodeSelector: {} - -runtimeClassName: "" - tolerations: [] -# podSecurityContext: -# fsGroup: 568 -# fsGroupChangePolicy: OnRootMismatch - -# securityContext: -# runAsUser: 568 -# runAsGroup: 568 -# privileged: false -# readOnlyRootFilesystem: true -# allowPrivilegeEscalation: false -# runAsNonRoot: true - -termination: - messagePath: "" - messagePolicy: "" - gracePeriodSeconds: 10 - controller: # -- Enable the controller. enabled: true # -- Set the controller type. - # Valid options are: deployment | daemonset | statefulset + # Valid options are: Deployment | DaemonSet | StatefulSet | CronJob | Job type: Deployment - # -- Set labels on the deployment/statefulset/daemonset. Helm templates can be used. + # -- Set labels on the Deployment/StatefulSet/DaemonSet/CronJob/Job. Helm templates can be used. labels: {} - # -- Set annotations on the deployment/statefulset/daemonset. Helm templates can be used. + # -- Set annotations on the Deployment/StatefulSet/DaemonSet. Helm templates can be used. annotations: {} # -- Revision history limit revisionHistoryLimit: 3 @@ -333,11 +332,11 @@ controller: strategy: "" # -- Set rollingUpdate strategies rollingUpdate: - # -- Set deployment RollingUpdate max unavailable + # -- Set Deployment RollingUpdate max unavailable unavailable: - # -- Set deployment RollingUpdate max surge + # -- Set Deployment RollingUpdate max surge surge: - # -- Set statefulset RollingUpdate partition + # -- Set StatefulSet RollingUpdate partition partition: # -- Configure the services for the chart here.