Skip to main content

Helm Chart Values

This file lists the configurable Helm Chart Values for the Corsha Gatekeeper. Default values have been provided where applicable. Deploying this Helm Chart is described in the How to Install Corsha Gatekeeper guide.

Configurable Helm Values​

Globals​

NameDescriptionValue
global.TLDTop-level Domain of the Corsha Gatekeeper""

Corsha Gatekeeper Image​

NameDescriptionValue
image.registryCorsha Gatekeeper image registrycorsha-docker.jfrog.io
image.repositoryCorsha Gatekeeper image repositoryproxy
image.tagCorsha Gatekeeper image tag (immutable tags are recommended)v0.0.1
image.pullPolicycorsha-authenticator image pull policyIfNotPresent
imageCredentials.registryDocker image registry hosting Corsha Artifacts"corsha-docker.jfrog.io"
imageCredentials.usernameDocker image username for registry hosting Corsha Artifacts""
imageCredentials.passwordDocker image password for registry hosting Corsha Artifacts""

Proxy Secret​

The Proxy Secret parameter is used to seed the Gatekeeper.

NameDescriptionValue
proxySecretA secret used to initialize the Proxy""

Corsha Protected APIs​

Corsha Gatekeeper parameters configure the core functionality of the Corsha Gatekeeper.

The Corsha Gatekeeper can proxy downstream client requests to multiple upstream services. Each Gatekeeper can be configured by assigning the following proxy values under the proxies key. Examples can be found in the How to Install Corsha Gatekeeper guide.

NameDescriptionValue
http.listenPortThe port the Corsha Gatekeeper listens. This is coupled with the k8s Service port8080
http.observeOnlyMode.enabledWhether the Gatekeeper is deployed in Observe Only modefalse
http.proxies[].nameName of the Corsha-protected service""
http.proxies[].domainThe domain signifies the host that the Corsha Gatekeeper will match to route client requests.""
http.proxies[].upstream.hostHostname of the upstream Corsha-protected service""
http.proxies[].upstream.portPort of the upstream Corsha-protected service""
http.proxies[].upstream.protocolProtocol of the upstream Corsha-protected service. Options: HTTP, HTTPS, or TCP""
http.proxies[].tls.existingSecretName of existing secret containing PEM-encoded TLS signing certificate and key. Mutually exclusive with http.proxies[].tls.cert and http.proxies[].tls.key""
http.proxies[].tls.certPEM-encoded signing certificate for TLS. Mutually exclusive with http.proxies[].tls.existingSecret""
http.proxies[].tls.keyPEM-encoded key for the signing certificate for ingress to the Gatekeeper. Mutually exclusive with http.proxies[].tls.existingSecret""
http.proxies[].rewriteRedirect.enabledEnable the ability the modify URLs in a response's Redirect Headers. Only allowed for HTTP upstreams.false
http.proxies[].rewriteRedirect.redirectRedirect path to be replaced for rewriteRedirect. This should include the protocol and the full path to be redirected.""
http.proxies[].rewriteRedirect.replacementReplacement path to replace redirect for rewriteRedirect. This should include the protocol and the full path to be replaced.""
http.proxies[].requestTimeoutSets how long the Corsha Gatekeeper waits for a response from the upstream service. You can use short formats like 30s (seconds) and 5m (minutes). If not specified, the default is 15 seconds; set to zero to disable timeout.""
http.credPassThrough.enabledEnables passing the X-Corsha-Cred header to downstream services.false
http.allowHttp10.enabledAllow downstream HTTP 1.0 clients to connect.false
http.allowHttp10.defaultHostThe default Host header value for HTTP/1.0 requests if it is empty. The Corsha Gatekeeper does not support HTTP/1.0 without a Host header. This is a no-op if http.allowHttp10.enabled: false.""

Trusted CA​

NameDescriptionValue
trustedCAsA bundle of PEM-encoded CA certs used to extend trust""

Corsha Auth Server​

These parameters contain the required values to connect to the Corsha Authentication Server.

NameDescriptionValue
authserver.hostAuth Server host where cred-checking occurs""
authserver.portAuth Server port where cred-checking occurs""
authserver.tls.certPEM-encoded TLS signing certificate.""
authserver.tls.keyPEM-encoded TLS key for the signing certificate.""
authserver.timeoutTimeout when performing authentication checks30s

Kubernetes Deployment​

NameDescriptionValue
imagePullSecrets.customImagePullSecretsArray of image pull secrets[]
imagePullSecrets.defaultImagePullSecretsEnables use of global imageCredentials derived from a combination of imageCredentials.registry, imageCredentials.username, and imageCredentials.passwordtrue
replicaCountNumber of Gatekeeper replicas1
serviceAccountSpecifies whether a Service Account should be createdtrue
service.typeProxy service typeClusterIP
nameOverrideString to partially override common.names.fullname. Ex: Deployment release-name-chart-name becomes release-name-override-name""
fullNameOverrideString to fully override common.names.fullname. Ex: Deployment release-name-chart-name becomes override-name""
podAnnotationsAnnotations for Gatekeeper pod{}
resources.limits.cpuResource CPU limit for the Gatekeeper container100m
resources.limits.memoryResource memory limit for the Gatekeeper container128Mi
resources.requests.cpuRequest CPU limit for the Gatekeeper container100m
resources.requests.memoryRequest memory limit for the Gatekeeper container128Mi
nodeSelectorNode labels for pod assignment{}
tolerationsTolerations for pod assignment[]
affinityAffinity for pod assignment{}

Liveness and Readiness Probe Parameters​

NameDescriptionValue
livenessProbe.initialDelaySecondsNumber of seconds after the container has started before liveness probes is initiated30
livenessProbe.periodSecondsHow often (in seconds) to perform the probe.15
livenessProbe.timeoutSecondsNumber of seconds after which the probe times out.5
livenessProbe.successThresholdMinimum consecutive successes for the probe to be considered successful after having failed.1
livenessProbe.failureThresholdNumber of times the probe can fail before Kubernetes considers the overall check failed. For the liveness probe, Kubernetes will treat the container as unhealthy and trigger a restart once the failureThreshold is reached.5
readinessProbe.initialDelaySecondsNumber of seconds after the container has started before liveness probes is initiated30
readinessProbe.periodSecondsHow often (in seconds) to perform the probe.15
readinessProbe.timeoutSecondsNumber of seconds after which the probe times out.2
readinessProbe.successThresholdMinimum consecutive successes for the probe to be considered successful after having failed.1
readinessProbe.failureThresholdNumber of times the probe can fail before Kubernetes considers the overall check failed and the container not ready.3

Kubernetes Security Context​

NameDescriptionValue
podSecurityContext.enabledEnable pod security contexttrue
podSecurityContext.runAsNonRootRequire that the pod will run with a non-root usertrue
podSecurityContext.runAsUserUser ID for Gatekeeper pod10001
podSecurityContext.runAsGroupGroup ID for Gatekeeper pod10001
securityContext.enabledEnable container security contexttrue
securityContext.runAsNonRootRequire that the container will run with a non-root usertrue
securityContext.runAsUserUser ID for container10001
securityContext.runAsGroupPrimary group ID for container10001

Enabling cert-manager​

The Corsha Gatekeeper comes with native cert-manager support to easily configure TLS endpoints. To enable cert-manager support, the following Helm values are required.

NameDescriptionValue
certmanager.enabledFlag to enable Cert-Managertrue
ingress.annotationsIngress annotation for Cert-Managercert-manager.io/cluster-issuer: "le-wildcard-issuer"

Enabling TLS Termination​

NameDescriptionValue
http.tlsTermination.enabledEnables TLS termination at the proxy. If enabled, either http.proxies[].tls.existingSecret or both http.proxies[].tls.cert and http.proxies[].tls.key will be used as server certificates.false
ingress.annotationsIngress annotation to enable SSL passthrough. This must be enabled to terminate TLS at the proxy.nginx.ingress.kubernetes.io/ssl-passthrough: true

Corsha Protected OPC UA TCP Protocol Parameters​

NameDescriptionValue
opcuaTcp.listenPortThe port the Corsha Gatekeeper listens for OPC UA TCP traffic. This is coupled with the k8s Service port4841
opcuaTcp.upstream.hostHostname of the upstream Corsha-protected service""
opcuaTcp.upstream.portPort of the upstream Corsha-protected service""
opcuaTcp.upstream.protocolProtocol of the upstream Corsha-protected service. Options: OPCUATCP""
opcuaTcp.tlsTermination.enabledEnables TLS termination at the Gatekeeper OPC UA TCP listenport. If enabled, either opcuaTcp.tls.existingSecret or both opcuaTcp.tls.cert and opcuaTcp.tls.key will be used as server certificates.false
opcuaTcp.tls.existingSecretName of existing secret containing PEM-encoded TLS signing certificate and key. Mutually exclusive with opcuaTcp.tls.cert and opcuaTcp.tls.key""
opcuaTcp.tls.certInline PEM-encoded signing certificate for TLS. Mutually exclusive with opcuaTcp.tls.existingSecret""
opcuaTcp.tls.keyInline PEM-encoded key for the signing certificate for ingress to the Gatekeeper. Mutually exclusive with opcuaTcp.tls.existingSecret""