Below sections detail the properties for creating pods via HULL.
For pod-based objects there is no need to create a spec
property. The spec.selector
property is automatically created under the hood to match the objects automatically created metadata. Any spec.template.metadata
metadata is specified at top-level via templateAnnotations
and templateLabels
keys.
selector
property of pod-based objects will be automatically populated to match the exact combination of the auto-generated hull.config.general.metadata.labels.common
fields app.kubernetes.io/name
, app.kubernetes.io/instance
and app.kubernetes.io/component
. An exception is made for the objects of type job
where no selector
field is set because Kubernetes jobs deal with the selector
implicitly. If need be it is possible to set selector
manually for the particular job
however.
So for all HULL based objects, the pod specific information is wrapped like this:
Parameter | Description | Default | Example |
---|---|---|---|
templateAnnotations |
Dictionary with annotations to add to the Kubernetes objects spec.template.metadata.annotations section. |
{} |
appImportance: "low" |
templateLabels |
Dictionary with labels to add to the Kubernetes objects spec.template.metadata.labels section. |
{} |
appStatus: "bad" |
pod |
Specification of the inner pod in the form of hull.Pod.v1 . See below for reference. |
Properties can be set as they are defined in the Kubernetes API's pod spec.
However the properties listed below are overwritten or added by HULL:
Parameter | Description | Default | Example |
---|---|---|---|
initContainers |
Dictionary with init containers to add to the pods spec.initContainers section. Key: Unique related to parent element. Value: The hull.Container.v1 properties. See below for reference.01_ , 02_ , ... to the initContainer key names. |
{} |
|
containers |
Dictionary with containers to add to the pods spec.containers section. Key: Unique related to parent element. Value: The hull.Container.v1 properties. See below for reference. |
{} |
|
volumes |
Dictionary with volumes to add to the pods spec.volumes section. Key: Unique related to parent element. Value: The hull.Volume.v1 properties. See below for reference. |
{} |
The key-value pairs of value type
hull.Container.v1
are converted to an array on rendering
The
name
property of the container is derived from the key.
Properties can be set as they are defined in the Kubernetes API's container spec.
However the properties listed below are overwritten or added by HULL:
Parameter | Description | Default | Example |
---|---|---|---|
image |
Specification of the image in form of hull.Image.v1 . See below for reference. |
||
env |
Dictionary with hull.Env.v1 values to add to the containers env section. Key: Unique related to parent element. Value: The hull.Env.v1 properties of the container. See below for reference. |
{} |
|
envFrom |
Dictionary with hull.EnvFrom.v1 values to add to the containers envFrom section. Key: Unique related to parent element. Value: The hull.EnvFrom.v1 properties of the container. See below for reference. |
{} |
|
ports |
Dictionary with hull.ContainerPort.v1 values to add to the containers ports section. Key: Unique related to parent element. Value: The hull.Port.v1 properties of the container. See below for reference. |
{} |
|
volumeMount |
Dictionary with hull.VolumeMount.v1 values to add to the containers volumeMounts section. Key: Unique related to parent element. Value: The hull.VolumeMount.v1 properties of the container. See below for reference. |
{} |
Definition of container images is split into multiple parts to allow better support of switching the registry endpoints throughout the whole chart.
Parameter | Description | Default | Example |
---|---|---|---|
registry |
Optional endpoint of the repository. If set will produce a prefix and appended / . |
|
myregistry.azure.cr |
repository |
Name/Repository of the container image | apps/videoeditor |
|
tag |
Tag of the container image. The value must be of string type on the Kubernetes side, but it is allowed to have integer or float type input on the HULL side. Any value will be automatically converted to string on rendering. | 20.1.3-pre.321 "23.3" 23.3 "10" 10 |
The key-value pairs of value type
hull.Env.v1
are converted to an array on rendering
The
name
property of the environment variable is derived from the key.
Properties can be set as they are defined in the Kubernetes API's envvar spec.
However the properties listed below are overwritten or added by HULL:
Parameter | Description | Default | Example |
---|---|---|---|
enabled |
Needs to resolve to a boolean switch, it can be a boolean input directly or a transformation that resolves to a boolean value. If resolved to true or missing, the key-value-pair will be rendered for deployment. If resolved to false, it will be omitted from rendering. This way you can predefine objects which are only enabled and created in the cluster in certain environments when needed. | true |
|
value |
Whereas the value must be of string type on the Kubernetes side, it is allowed to have boolean, integer or float type input on the HULL side. Any value will be automatically converted to string on rendering. | DB_TYPE "false" false true "123" 123 "3.14" 3.14 |
|
valueFrom.configMapKeyRef.staticName |
Specifies whether the name key of this valueFrom.configMapKeyRef refers to a fixed name of a ConfigMap in the cluster or not. If the field does not exist or is set to false , the name field of this valueFrom.configMapKeyRef references a key defined in this helm chart. |
false |
true |
valueFrom.configMapKeyRef.hashsumAnnotation |
If present and true, the contents of the referenced ConfigMap data key is automatically hashed and added as an annotation to the pod template metadata annotations (templateAnnotations ). If set to true, any change to the referenced content will trigger a pod restart on upgrade. |
false |
true |
valueFrom.secretKeyRef.staticName |
Specifies whether the name key of this valueFrom.secretKeyRef refers to a fixed name of a Secret in the cluster or not. If the field does not exist or is set to false , the name field of this valueFrom.secretKeyRef references a key defined in this helm chart. |
false |
true |
valueFrom.secretKeyRef.hashsumAnnotation |
If present and true, the contents of the referenced Secret data key is automatically hashed and added as an annotation to the pod template metadata annotations (templateAnnotations ). If set to true, any change to the referenced content will trigger a pod restart on upgrade. |
false |
true |
The key-value pairs of value type
hull.EnvFrom.v1
are converted to an array on rendering
Properties can be set as they are defined in the Kubernetes API's envfromsource spec.
However the properties listed below are overwritten or added by HULL:
Parameter | Description | Default | Example |
---|---|---|---|
However the properties listed below are overwritten or added by HULL: |
Parameter | Description | Default | Example |
---|---|---|---|
enabled |
Needs to resolve to a boolean switch, it can be a boolean input directly or a transformation that resolves to a boolean value. If resolved to true or missing, the key-value-pair will be rendered for deployment. If resolved to false, it will be omitted from rendering. This way you can predefine objects which are only enabled and created in the cluster in certain environments when needed. | true |
|
configMapRef.staticName |
Specifies whether the name key of this configMapRef refers to a fixed name of a ConfigMap in the cluster or not. If the field does not exist or is set to false , the name field of this configMapRef references a key defined in this helm chart. |
false |
true |
valueFrom.configMapRef.hashsumAnnotation |
If present and true, the contents of the referenced ConfigMap data keys are automatically hashed and added as annotations to the pod template metadata annotations (templateAnnotations ). If set to true, any change to the referenced content will trigger a pod restart on upgrade. |
false |
true |
secretRef.staticName |
Specifies whether the name key of this secretRef refers to a fixed name of a Secret in the cluster or not. If the field does not exist or is set to false , the name field of this secretRef references a key defined in this helm chart. |
false |
true |
valueFrom.secretRef.hashsumAnnotation |
If present and true, the contents of the referenced Secret data keys are automatically hashed and added as annotations to the pod template metadata annotations (templateAnnotations ). If set to true, any change to the referenced content will trigger a pod restart on upgrade. |
false |
true |
The key-value pairs of value type
hull.ContainerPort.v1
are converted to an array on rendering
The
name
property of the container's port is derived from the key.
Properties can be set as they are defined in the Kubernetes API's containerport spec.
However the properties listed below are overwritten or added by HULL:
Parameter | Description | Default | Example |
---|---|---|---|
enabled |
Needs to resolve to a boolean switch, it can be a boolean input directly or a transformation that resolves to a boolean value. If resolved to true or missing, the key-value-pair will be rendered for deployment. If resolved to false, it will be omitted from rendering. This way you can predefine objects which are only enabled and created in the cluster in certain environments when needed. | true |
The key-value pairs of value type
hull.VolumeMount.v1
are converted to an array on rendering
Properties can be set as they are defined in the Kubernetes API's volumemount spec.
However the properties listed below are overwritten or added by HULL:
Parameter | Description | Default | Example |
---|---|---|---|
enabled |
Needs to resolve to a boolean switch, it can be a boolean input directly or a transformation that resolves to a boolean value. If resolved to true or missing, the key-value-pair will be rendered for deployment. If resolved to false, it will be omitted from rendering. This way you can predefine objects which are only enabled and created in the cluster in certain environments when needed. | true |
|
hashsumAnnotation |
If present and true, the setting takes effect when the volume for this mount is a ConfigMap or Secret reference. In case of a present subPath property, the ConfigMaps or Secrets data subPath key content is automatically hashed and added as annotations to the pod template metadata annotations (templateAnnotations ). In case of a missing subPath , all data keys contents of the ConfigMap or Secret are automatically hashed and added as annotations to the pod template metadata annotations (templateAnnotations ). If set to true, any change to the referenced content will trigger a pod restart on upgrade. |
false |
true |
The key-value pairs of value type
hull.Volume.v1
are converted to an array on rendering
The
name
property of the volume is derived from the key.
Properties can be set as they are defined in the Kubernetes API's volume spec.
However the properties listed below are overwritten or added by HULL:
Parameter | Description | Default | Example |
---|---|---|---|
enabled |
Needs to resolve to a boolean switch, it can be a boolean input directly or a transformation that resolves to a boolean value. If resolved to true or missing, the key-value-pair will be rendered for deployment. If resolved to false, it will be omitted from rendering. This way you can predefine objects which are only enabled and created in the cluster in certain environments when needed. | true |
|
active |
Using the active property it becomes possible to specify multiple different sources of volumes (such as emptyDir , persistentVolumeClaim , secret ...) for one volume entry and decide which one to actually render in the end. Kubernetes does not allow one volume entry to have specifications for multiple sources and will throw an error if it detects this. Sometimes however it is reasonable to start with an emptyDir for a particular volume 's default source and for some reason change it to some other persistent source for your actual environment. Setting active allows to neglect all other specified sources except the active one. The value of active - if provided - must match an existing volume source key name and the exact volume source must be specified to select this volume source's definition for rendering. If active property is not presentonly one volume source definition is allowed to exist for the volume entry, otherwise Kubernetes API will not accept the volume . |
awsElasticBlockStore azureDisk azureFile cephfs cinder configMap csi downwardAPI emptyDir ephemeral fc flexVolume flocker gcePersistentDisk gitRepo glusterfs hostPath iscsi nfs persistentVolumeClaim photonPersistentDisk portworxVolume projected quobyte rbd scaleIO secret storageos vsphereVolume |
|
configMap.staticName |
Specifies whether the name key of this configMap refers to a fixed name of a ConfigMap in the cluster or not. If the field does not exist or is set to false , the name field of this configMap references a key defined in this helm chart. |
false |
true |
persistentVolumeClaim.staticName |
Specifies whether the name key of this persistentVolumeClaim refers to a fixed name of a Secret in the cluster or not. If the field does not exist or is set to false , the name field of this persistentVolumeClaim references a key defined in this helm chart. |
false |
true |
secret.staticName |
Specifies whether the name key of this secret refers to a fixed name of a Secret in the cluster or not. If the field does not exist or is set to false , the name field of this secret references a key defined in this helm chart. |
false |
true |
Back to README.md