Miscellaneous#
OpenAPI#
service.rest.serveOpenapi- Required:
no
- Type:
boolean
- Default:
true
Serves the OpenAPI documents on the REST port.
falsealso removes the Swagger UI, which renders from them.
Service account#
The following values configure the Kubernetes ServiceAccount used by the Deployment.
serviceAccount.create- Required:
no
- Type:
boolean
- Default:
false
Creates a ServiceAccount for the Deployment. When
false, the Deployment uses the existing ServiceAccount named byserviceAccount.name. A created account uses the release-qualified chart fullname unlessserviceAccount.nameis set.serviceAccount.automount- Required:
no
- Type:
boolean
- Default:
false
Controls whether Kubernetes pod credentials are mounted in running pods through
automountServiceAccountTokenon the ServiceAccount created by the chart. Keep it set tofalseunless Kubernetes credentials are needed.serviceAccount.annotations- Required:
no
- Type:
object
- Default:
{}
Annotations for the ServiceAccount created by the chart, for example cloud-provider IAM annotations.
serviceAccount.name- Required:
no
- Type:
string
Name of the ServiceAccount to create or use. When
serviceAccount.createisfalse, this names the existing ServiceAccount used by the Deployment. When creating an account, leave this value unset to use the release-qualified chart fullname.
Container probes#
The chart configures Kubernetes liveness and readiness probes for the Storage Service container. The probe configurations are passed to the Deployment verbatim, except that the chart adds the required gRPC probe handler and sets its port to the named probe container port (8100).
probes.liveness- Required:
no
- Type:
- Default:
{periodSeconds: 5, failureThreshold: 6}
Configuration for the Storage Service container’s liveness probe.
probes.readiness- Required:
no
- Type:
- Default:
{periodSeconds: 5, failureThreshold: 6}
Configuration for the Storage Service container’s readiness probe.
Configure probe timing and threshold fields, such as periodSeconds and failureThreshold, under the applicable object.
Warning
Do not configure another probe handler, such as exec or httpGet. The chart always configures the required gRPC probe handler; using an alternative handler results in undefined behavior.
Pod customization#
The following root-level values customize the Deployment pod and its containers. Environment variables and volume mounts are added to the chart-managed Storage Service and bootstrap containers only. Custom init containers and sidecars must declare their own environment variables, resource requirements, security context, and volume mounts.
podAnnotations- Required:
no
- Type:
object
- Default:
{}
Annotations added to the pod template, for example annotations used by monitoring, service mesh, or secret-injection systems.
podLabels- Required:
no
- Type:
object
- Default:
{}
Labels added to the pod template in addition to the chart labels.
extraEnvs- Required:
no
- Type:
list[EnvVar]
- Default:
[]
Environment variables added to the Storage Service and bootstrap containers. Values may come directly from the values file or from a ConfigMap or Secret reference.
extraEnvFrom- Required:
no
- Type:
list[EnvFromSource]
- Default:
[]
ConfigMap and Secret sources used to populate environment variables in the Storage Service and bootstrap containers.
extraContainers- Required:
no
- Type:
list[Container]
- Default:
[]
Sidecar containers appended to the pod. Each sidecar must declare its own container-level settings.
extraInitContainers- Required:
no
- Type:
list[Container]
- Default:
[]
Init containers appended to the pod. Each custom init container must declare its own container-level settings.
extraVolumes- Required:
no
- Type:
list[Volume]
- Default:
[]
Volumes appended to the pod specification.
extraVolumeMounts- Required:
no
- Type:
list[VolumeMount]
- Default:
[]
Volume mounts added to the Storage Service and bootstrap containers. A custom container must declare its own mounts, and every mount must reference a pod volume.
podSecurityContext- Required:
no
- Type:
- Default:
{runAsNonRoot: true, runAsUser: 1000, runAsGroup: 1000}
Security context applied to the pod. The value is replaced verbatim rather than merged.
securityContext- Required:
no
- Type:
- Default:
{allowPrivilegeEscalation: false, capabilities: {drop: [ALL]}}
Security context applied to the Storage Service and bootstrap containers. The value is replaced verbatim rather than merged.
The image declares its user by name (USER nvs:nvs, uid and gid 1000). The kubelet cannot check a named user against runAsNonRoot and refuses to start the pod with container has runAsNonRoot and image has non-numeric user unless the numeric id is also given, which is why podSecurityContext.runAsUser is set rather than left to the image. If you run a rebuilt image whose uid differs, override runAsUser and runAsGroup together with runAsNonRoot.
For example, the following configuration adds a pod annotation, an environment variable sourced from a Secret, a shared empty directory, and a sidecar that declares its own volume mount and resources:
podAnnotations:
example.com/configured: "true"
extraEnvs:
- name: API_TOKEN
valueFrom:
secretKeyRef:
name: storage-service-secrets
key: api-token
extraVolumes:
- name: shared-data
emptyDir: {}
extraVolumeMounts:
- name: shared-data
mountPath: /var/lib/storage-service
extraContainers:
- name: sidecar
image: example.com/sidecar:latest
volumeMounts:
- name: shared-data
mountPath: /var/lib/sidecar
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 200m
memory: 256Mi