The ttoperator Chart

The ttoperator chart deploys the TimesTen Operator in a namespace in your Kubernetes cluster. The TimesTen Operator runs at namespace-scope and services TimesTenClassic objects in this namespace.

The following table describes the variables and default values for the ttoperator chart. Indentation and case sensitivity must be correct for each variable. There may be some variables that exist in the product, but are not documented.

Table 21-1 Variables for the ttoperator Chart

Variable Description Description

affinity

Variable that defines Kubernetes nodeAffinity, podAffinity, and podAntiAffinity parameters.

There is no default. However, if you are using a multi-architecture cluster that consists of amd64 and arm64 nodes, you must instruct Kubernetes to deploy the TimesTen Operator on a specific architecture.

affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
      - matchExpressions:
        - key: topology.kubernetes.io/zone
          operator: In
          values:
          - antarctica-east1
          - antarctica-west1

Here is an example that shows how to instruct Kubernetes to deploy the TimesTen Operator and the objects it manages on arm64 nodes:

affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
      - matchExpressions:
        - key: topology.kubernetes.io/zone
          operator: In
          values: ["arm64"]

Valid values for values are:

  • "amd64": Use this for TimesTen Operators that you want to run on amd64 nodes.

  • "arm64": Use this for TimesTen Operators that you want to run on arm64 nodes.

Here is a complete affinity section with node affinity and pod affinity sections:
affinity: {}
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
        - matchExpressions:
          - key: "kubernetes.io/arch"
            operator: In
            values: ["amd64"]

  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
      - matchExpressions:
        - key: topology.kubernetes.io/zone
          operator: In
          values:
          - antarctica-east1
          - antarctica-west1
    preferredDuringSchedulingIgnoredDuringExecution:
    - weight: 1
      preference:
        matchExpressions:
        - key: another-node-label-key
          operator: In
          values:
          - another-node-label-value
  podAntiAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
    - labelSelector:
        matchExpressions:
        - key: app
          operator: In
          values:
          - exampleApp
      topologyKey: "kubernetes.io/hostname"
  podAffinity:
    preferredDuringSchedulingIgnoredDuringExecution:
     - weight: 50
       podAffinityTerm:
         labelSelector:
           matchExpressions:
           - key: app
             operator: In
             values:
               - exampleApp
         topologyKey: "kubernetes.io/hostname"

annotations

Variable that defines a list of annotations to be applied to a TimesTen Operator Deployment and the Pods that the TimesTen Operator manages.

There is no default.

annotations:
  x: y

connectionManager

Variable that determines if the TimesTen Operator's Connection Manager is used.

Values are as follows:
  • true (default): The TimesTen Operator's Connection Manager is used.

  • false: The TimesTen Operator's Connection Manager is not used.

See About the Connection Manager.

connectionManager: true

createClusterRole

Variable that determines if cluster level roles are created.

Default: true

By default or if you specify true, the chart creates additional permissions and privileges for the TimesTen Operator.

If you specify false, the chart does not create the additional permissions and privileges. You must create these objects by running the kubectl create service_account_cluster.yaml command. The service_account_cluster.yaml YAML manifest file is included in the TimesTen Operator distribution.

createClusterRole: true

image

Variable that defines parameters that affect container images.

Default:
  • repository: Location of the container image. For example, container-registry.oracle.com/timesten/timesten.

  • tag: TimesTen release number that contains the relevant Helm charts. For example, "22.1.1.34.0".

  • pullPolicy: Pull policy for the container image. For example, Always.

image: 
  repository: phx.ocir.io/youraccount/tt2211260image
  tag: "1"
  pullPolicy: Always

imagePullSecrets

Variable that defines a list of pull Secrets required to pull container images.

There is no default.

imagePullSecrets: sekret

javaHome

Variable that defines the location where Java is installed in the TimesTen container image.

Default: "/usr/java/jdk-21"

javaHome: "/usr/java/jdk-21"

labels

Variable that defines a list of labels applied to a TimesTen Operator Deployment and the Pods that the TimesTen Operator manages.

There is no default.

labels:
  x: y

livenessFailureThreshold

Variable that sets the FailureThreshold attribute for the TimesTen Operator's liveness probe.

Default: 3

livenessFailureThreshold: 2

livenessInitialDelaySeconds

Variable that sets the InitialDelaySeconds attribute for the TimesTen Operator's liveness probe.

Default: 10

livenessInitialDelaySeconds: 15

livenessPeriodSeconds

Variable that sets the PeriodSeconds attribute for the TimesTen Operator's liveness probe.

Default: 30

livenessPeriodSeconds: 20

livenessSuccessThreshold

Variable that sets the SuccessThreshold attribute for the TimesTen Operator's liveness probe.

Default: 1

livenessSuccessThreshold: 2

livenessTimeoutSeconds

Variable that sets the TimeoutSeconds attribute for the TimesTen Operator's liveness probe.

Default: 10

livenessTimeoutSeconds: 15

maxReconciles

Variable that determines how many TimesTenClassic objects the TimesTen Operator processes concurrently.

Valid values are as follows:
  • "2" (default): The TimesTen Operator processes at most two TimesTenClassic objects at one time (in parallel).

  • "1": The TimesTen Operator processes at most one TimesTenClassic object at one time.

For performance purposes, we recommend that you do not change the default value.

maxReconciles: 2

metrics

Variable that determines if and how TimesTen Operator metrics are exposed.

Valid values are as follows:
  • expose: 1 or expose: 0: If you specify expose: 1 (or do not specify it), TimesTen Operator metrics are exposed. If you specify expose: 0, TimesTen Operator metrics are not exposed.

  • scheme: https or scheme: http: If you specify scheme: https (or do not specify it), TimesTen Operator metrics are available by using https/Transport Layer Security (mutual TLS). If you specify scheme: http, TimesTen Operator metrics are available by using http.

  • createServiceMonitor: 1 or createServiceMonitor: 0: If you specify createServiceMonitor: 1 (or do not specify it), the TimesTen Operator attempts to create a ServiceMonitor object. If you specify createServiceMonitor: 0, the TimesTen Operator does not create a ServiceMonitor object.

Default:
  expose: 1
  scheme: https
  createServiceMonitor: 1

See Expose Metrics from the TimesTen Kubernetes Operator.

metrics:
  expose: 0
  scheme: http
  createServiceMonitor: 0

name

Variable for the name of the TimesTen Operator Deployment.

Default: timesten-operator

name: timesten-operator

operatorNodePort

Variable that determines the port on which the Connection Manager is available to applications outside the cluster.

The Connection Manager can be accessed from outside the Kubernetes cluster on any node in the Kubernetes cluster by this port number.

The default is 32625. Valid values are between 30000 and 32767.

operatorNodePort: 32627

operatorSAN

Variable that adds subject alternate names (SANs) to the TLS certificate that the TimesTen Operator creates to control access to the TimesTen Operator metrics and to the Connection Manager.
  • If you use metrics and the Connection Manager from inside the Kubernetes cluster, you do not need to specify this variable.

  • If you use either metrics or the Connection Manager (or both) from outside the Kubernetes cluster, you must define a SAN for the nodes in the cluster. A SAN value can be a DNS name (potentially wildcarded) or an IP address. The value is a comma delimited list of SAN values.

    You can specify a single level of wildcards.

By default, there is no SAN specified.

operatorSan: "1.2.3.4,1.2.3.5,*.mycluster.example.org"

podDisruptionBudget

Variable that determines if a podDisruptionBudget is created . If created, uses the provided values.

Default: create: false

A podDisruptionBudget is not created by default.

podDisruptionBudget:
  create: true
  pdbName: samplepdb
  maxUnvailable: 1
  minAvailable: 1
  matchLabels:
    "x": "y"

probes

Variable that determines if TimesTen Operator probes are exposed.

If you specify expose: 1 (or do not specify it), TimesTen Operator probes are exposed. If you specify expose: 0, TimesTen Operator probes are not exposed.

Default:
  expose: 1

See About Readiness and Liveness Probes.

probes:
  expose: 0

readinessFailureThreshold

Variable that sets the FailureThreshold attribute for the TimesTen Operator's readiness probe.

Default: 1

readinessFailureThreshold: 2

readinessInitialDelaySeconds

Variable that sets the InitialDelaySeconds attribute for the TimesTen Operator's readiness probe.

Default: 10

readinessInitialDelaySeconds: 15

readinessPeriodSeconds

Variable that sets the PeriodSeconds attribute for the TimesTen Operator's readiness probe.

Default: 10

readinessPeriodSeconds: 15

readinessSuccessThreshold

Variable that sets the SuccessThreshold attribute for the TimesTen Operator's readiness probe.

Default: 1

readinessSuccessThreshold: 2

readinessTimeoutSeconds

Variable that sets the TimeoutSeconds attribute for the TimesTen Operator's readiness probe.

Default: 10

readinessTimeoutSeconds: 15

replicas

Variable that defines the number of replica Pods in a TimesTen Operator Deployment.

Default: 1

replicas: 3

resources

Variable that defines resource requests and limits.

Default:
  requests:
    cpu: "250m" 
    memory: "1G"
  limits:
    cpu: "250m"
    memory: "1G"
resources:
  requests:
    cpu: "300m" 
    memory: "1G"
  limits:
    cpu: "300m"
    memory: "1G"

serviceAccount

Variable that determines if a service account is created and what annotations to apply (if any).

Default: create: true

By default or if you specify create: true, the chart creates a Kubernetes ServiceAccount called timesten-operator as well as a Kubernetes Role object and a Kubernetes RoleBinding object. The Role and RoleBinding objects grant the ServiceAccount the privileges needed to run the TimesTen Operator.

If you specify create: false, the chart does not create the ServiceAccount, Role, and RoleBinding objects. You must create these objects by running the kubectl create service_account.yaml command. The service_account.yaml YAML manifest file is included in the TimesTen Operator distribution.

serviceAccount:
  create: false

testAffinity

Variable that defines Kubernetes nodeAffinity, podAffinity, and podAntiAffinity parameters. These affinity configurations are only applied to the Helm test Pod.

There is no default. However, if you are using a multi-architecture cluster that consists of amd64 and arm64 nodes, you must instruct Kubernetes to deploy the TimesTen test Pod on a specific architecture. This must be the same architecture as what the TimesTen Operator and its objects run on. For example, if the TimesTen Operator runs on arm64 nodes, the test Pod must also run on arm64 nodes.

testAffinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
      - matchExpressions:
        - key: topology.kubernetes.io/zone
          operator: In
          values:
          - antarctica-east1
          - antarctica-west1

Here is an example that shows how to instruct Kubernetes to run the test Pod on arm64 nodes:

testAffinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
      - matchExpressions:
        - key: topology.kubernetes.io/zone
          operator: In
          values: ["arm64"]

Valid values for values are:

  • "amd64": Use this if you want the test Pod to run on amd64 nodes.

  • "arm64": Use this if you want the test Pod to run on arm64 nodes.

testAnnotations

Variable that defines a list of annotations to be applied to a Helm test Pod. This Pod is created when you run the helm test command.

Default:
helm.sh/hook-delete-policy: hook-succeeded
testAnnotations:
  x: y

testLabels

Variable that defines a list of labels to be applied to a Helm test Pod. This Pod is created when you run the helm test command.

There is no default.

testLabels:
  x: y