Skip to main content

Otterize OSS Helm chart

The Otterize OSS Helm chart is a chart that installs all Otterize components and supporting components together, and configures them to work with each other. For example, it configures the credentials operator to work with the deployed SPIRE server, and the intents operator to get mTLS credentials from the credentials operator.

Parameters

Deployment parameters

KeyDescriptionDefault
global.deployment.spireWhether or not to deploy SPIRE. Required for mTLS, if not using Otterize Cloud.true
global.deployment.credentialsOperatorWhether or not to deploy credentials-operator. Required to provision mTLS credentials, database username/password, and AWS IAM roles.true
global.deployment.intentsOperatorWhether or not to deploy intents-operator.true
global.deployment.networkMapperWhether or not to deploy network-mapper.true

Global parameters

These parameters are used by multiple charts, and must be kept the same for the correct functioning of the separate components.

KeyDescriptionDefault
global.spiffe.CASubjectThe Subject that CA certificates should use (see below).
global.spiffe.CASubject.countrySPIRE's CA certificates Country value."US"
global.spiffe.CASubject.organizationSPIRE's CA certificates Organization Value."SPIRE"
global.spiffe.trustDomainThe trust domain that SPIRE will use."example.org"
global.certificateProviderWhat provider should be used to generate certificates/credentials - "spire", "otterize-cloud" or "cert-manager""spire"
global.spire.serverServiceNameName of the Kubernetes service that will be created for SPIRE-server.
global.allowGetAllResourcesIf defined overrides allowGetAllResources in subcharts. Gives get, list and watch permission to watch on all resources. This is used to resolve service names when pods have owners that are custom resources. When disabled, a limited set of permissions is used that only allows access to built-in Kubernetes resources that deploy Pods and Pods themselves - Deployments, StatefulSets, DaemonSets, ReplicaSets and Services. Resolving may not be able to complete if the owning resource is not one of those.
global.telemetry.enabledIf set to false, anonymous telemetries collection will be disabledtrue
global.commonAnnotationsAnnotations to add to all deployed objects{}
global.commonLabelsLabels to add to all deployed objects{}
global.podAnnotationsAnnotations to add to all deployed pods{}
global.podLabelsLabels to add to all deployed pods{}
global.serviceNameOverrideAnnotationNameWhich annotation to use (in the service name resolution algorithm) for setting a pod's service name, if not the default. Use this if you already have annotations on your pods that provide the correct service name.intents.otterize.com/service-name

Cloud parameters

KeyDescriptionDefault
global.otterizeCloud.credentials.clientIdClient ID for connecting to Otterize Cloud.(none)
global.otterizeCloud.credentials.clientSecretClient secret for connecting to Otterize Cloud.(none)
global.otterizeCloud.credentials.clientSecretKeyRef.secretNameIf specified, the name of a pre-created Kubernetes Secret to be used instead of creating a secret with the value of clientSecret.(none)
global.otterizeCloud.credentials.clientSecretKeyRef.secretKeyIf specified, the key for the clientSecret in a pre-created Kubernetes Secret to be used instead of creating a secret with the value of clientSecret.(none)
global.otterizeCloud.apiAddressOverrides Otterize Cloud default API address.(none)
global.otterizeCloud.apiExtraCAPEMSecretThe name of a secret containing a single CA.pem file for an extra root CA used to connect to Otterize Cloud. The secret should be placed in the same namespace as the Otterize deployment.(none)

AWS Integration parameters

KeyDescriptionDefault
global.aws.enabledEnable or disable AWS integrationfalse
global.aws.eksClusterNameOverrideEKS cluster name (overrides auto-detection)(none)

Intents operator parameters

All configurable parameters of intents-operator can be configured under the alias intentsOperator. Further information about intents-operator parameters can be found in the intents operator's Helm chart.

KeyDescriptionDefault
intentsOperator.operator.repositoryIntents Operator image repository.otterize
intentsOperator.operator.imageIntents Operator image.intents-operator
intentsOperator.operator.tagIntents Operator image tag.(pinned to latest version as of this Helm chart version's publish)
intentsOperator.operator.pullPolicyIntents Operator image pull policy.(none)
intentsOperator.operator.pullSecretsIntents Operator image pull secrets.(none)
intentsOperator.operator.autoGenerateTLSUsingCredentialsOperatorIf set to true, adds the necessary pod annotations in order to integrate with credentials-operator, and gets the TLS certificate.false
intentsOperator.operator.modedefaultActive or defaultShadow.
When defaultActive is set, enforcement is enabled by default.
When defaultShadow is set, enforcement is disabled by default, but can be enabled per-service using a ProtectedService resource.
defaultActive
intentsOperator.operator.enableEnforcement(Deprecated; use mode instead) If set to false, enforcement is disabled globally (both for network policies and Kafka ACL). If true, you may use the other flags for more granular enforcement settings.true
intentsOperator.operator.enableNetworkPolicyCreationWhether the operator should create ingress network policies according to ClientIntents.true
intentsOperator.operator.enableEgressNetworkPolicyCreationWhether the operator should create egress network policies according to ClientIntents.false
intentsOperator.operator.enableKafkaACLCreationWhether the operator should create Kafka ACL rules according to ClientIntents of type Kafka.true
intentsOperator.operator.enableIstioPolicyCreationWhether the operator should create Istio authorization policies according to ClientIntents.true
intentsOperator.operator.allowExternalTrafficifBlockedByOtterize, off or always. Specify how the operator handles external traffic for Ingress/Service resources: ifBlockedByOtterize automatically create network policies to enable internet traffic for services that would be blocked by Otterize network policies when protecting a server. Choosing off may necessitate manual network policy creation to allow external traffic, while always automatically creates policies for all such resource that are visible to the operator.ifBlockedByOtterize
intentsOperator.operator.ingressControllerConfigsRestricts the automatically created external traffic network policies to only allow access to an ingress controller within the cluster. Only relevant if you use an in-cluster ingress controller, such as nginx or HAProxy. A list of objects with keys name, namespace and kind, such as ingress-nginx-controller, nginx and Deployment.(none)
intentsOperator.operator.ingressControllerAWSALBExemptIf set to true, the operator will allow all traffic if an Ingress is managed by the AWS ALB Ingress Controller.false
intentsOperator.operator.resourcesResources override.
intentsOperator.operator.enableDatabaseCredentialsCreationEnables support for database intentstrue
intentsOperator.enforcedNamespacesWhen using "shadow enforcement" mode, namespaces in this list will be treated as if the enforcement were active.(nil)
intentsOperator.operator.extraEnvVarsExtra environment variables to pass to the intents operator pod. To set an environment variable: "intentsOperator.operator.extraEnvVars[0].name=MY_ENV_VAR", to set its value: "intentsOperator.operator.extraEnvVars[0].value=someValue"

SPIRE parameters

All configurable parameters of SPIRE can be configured under the alias spire. Further information about SPIRE parameters can be found in SPIRE's Helm chart.

Network mapper parameters

All configurable parameters of the network mapper can be configured under the alias networkMapper. Further information about network mapper parameters can be found in the network mapper's chart.

KeyDescriptionDefault
networkMapper.mapper.extraEnvVarsExtra environment variables to pass to the network mapper pod. To set an environment variable: "networkMapper.mapper.extraEnvVars[0].name=MY_ENV_VAR", to set its value: "networkMapper.mapper.extraEnvVars[0].value=someValue"

Credentials operator parameters

All configurable parameters of the credentials operator can be configured under the alias credentialsOperator. Further information about network mapper parameters can be found in the credentials operator's chart.

KeyDescriptionDefault
credentialsOperator.databaseSecretRotationIntervalInterval in which secrets created by the credentials operator will be rotated. Valid time units are "ns", "ms", "s", "m", "h"8h
credentialsOperator.enableSecretRotationWhether periodic secret rotation is enabledfalse
credentialsOperator.operator.extraEnvVarsExtra environment variables to pass to the credentials operator pod. To set an environment variable: "credentialsOperator.operator.extraEnvVars[0].name=MY_ENV_VAR", to set its value: "credentialsOperator.operator.extraEnvVars[0].value=someValue"

Resource configuration

ComponentKeyDefault
Intents operatorintentsOperator.operator.resources(none)
Intents operator - watcherintentsOperator.watcher.resources(none)
SPIRE Serverspire.server.resources(none)
SPIRE Agentspire.agent.resources(none)
credentials operatorcredentialsOperator.resources(none)