The ttclassic Chart

The ttclassic chart creates a TimesTen Classic object.

The following table describes the variables and default values for the ttclassic chart. Indentation and case sensitivity must be correct for each variable. The fields are in alphabetical order.

Table 21-3 Variables for the ttclassic Chart

Variable Default Example

additionalMemoryRequest

Variable that defines the amount of memory to request in addition to what is required for the TimesTen database. This memory is used for the TimesTen daemon, subdaemons, replication agents, cache agents, and the server in a client/server environment.

Default: 2Gi

See TimesTenClassicSpecSpec.

additionalMemoryRequest: 3Gi

affinity

Variable to define Kubernetes nodeAffinity, podAffinity, and podAntiAffinity parameters.

There is no default.

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

agentTcpTimeout

Variable that determines the time in seconds that the TimesTen Operator waits for a TCP handshake when communicating with the TimesTen agent.

The default is 10. A value of 0 indicates that there is no timeout. If the timeout is exceeded, the TimesTen Operator considers the agent to be down.

See TimesTenClassicSpecSpec.

agentTcpTimeout: 20

agentTlsTimeout

Variable that determines the time in seconds that the Operator waits for a TLS (https) credential exchange when communicating with the TimesTen agent.

The default is 10. A value of 0 indicates that there is no timeout. If the timeout is exceeded, the TimesTen Operator considers the agent to be down.

See TimesTenClassicSpecSpec.

agentTlsTimeout: 20

annotations

A list of annotations to be applied to a TimesTenClassic object.

There is no default.

annotations:
  x: y

clientTLS

Optional variable used to instruct the TimesTen Operator to automatically generate certificates and automatically configure client/server TLS connections.

For the TimesTen Operator to automatically perform these operations, you must specify clientTLS and you must set clientTLS.auto to true.

For a list of options and defaults for clientTLS, see TimesTenClassicSpecSpecClientTLS.

For more information about how the TimesTen Operator automatically generates certificates and configures client/server connections, see Automatically Configure Client/Server TLS.

clientTLS:
  auto: true
  validity: 9999
  encryption: required

containers

Variable to define a custom container. This container is created in each Pod in a TimesTenClassic object. The provided YAML is copied directly to the .spec.template.spec.containers section of a TimesTenClassic object YAML manifest.

Default: There is no default.

See TimesTenClassicSpec.

containers:
  - name: sampleapp
    image: sample.com/sample:latest
    command:
        - /bin/sample

createASReadinessProbe

Variable that determines if the TimesTen Operator creates a readiness probe for a replicated TimesTenClassic.

Valid values:

  • true (default): The TimesTen Operator creates a readiness probe.

  • false: The TimesTen Operator does not create a readiness probe.

See About Readiness Probes for TimesTen Containers.

createASReadinessProbe: true

customerService[1-5]

Variable to create one or more Services (up to 5). A Service maps to your TimesTen database, which allows applications outside of your Kubernetes cluster to access TimesTen through client/server.

You can define a maximun of five custom Services, named customService1, customService2, customService3, customService4, and customService5.

Note:

The YAML that you provide for a customService definition is used without modification.

Default: There is no default.

customService1:
  apiVersion: v1
  kind: Service
  metadata:
    name: sampleexternal
  spec:
    type: NodePort
    selector:
      database.timesten.oracle.com: payroll
    ports:
      - port: 6625
        targetPort: 6625
        nodePort: 31625

customService2:
  apiVersion: v1
  kind: Service
  metadata:
    name: sampleinteral
  spec:
    type: NodePort
    selector:
      database.timesten.oracle.com: payroll
    ports:
      - port: 6626
        targetPort: 6626
        nodePort: 31626

daemonLogCPURequest

Amount of CPU requested for the daemonlog container.

Default: 200m

See TimesTenClassicSpecSpec.

daemonlogCPURequest: 400m

daemonLogMemoryRequest

Amount of memory requested for the daemonlog container.

Default: 200Mi

See TimesTenClassicSpecSpec.

daemonLogMemoryRequest: 300Mi

databaseCPURequest

Amount of CPU your tt containers require. This includes the CPU used by the TimesTen daemon, subdaemons, replication agents, cache agents, and the server in a client/server environment.

Default: There is no default.

See TimesTenClassicSpecSpec.

databaseCPURequest: 2

databaseMemorySize

Amount of shared memory your database requires.

Default: There is no default.

See TimesTenClassicSpecSpec.

databaseMemorySize: 20Gi

dbConfigMap

Variable that creates a Kubernetes ConfigMap based on the provided values and adds a dbConfigMap entry to a TimesTenClassic object definition.

Default: There is no default. By default, a ConfigMap is not created by a ttclassic chart.

See TimesTenClassicSpecSpec.

dbConfigMap:
  - name: sample
    directory: cm

Note: You must create a directory in the /ttclassic directory of the ttclassic chart. All files in the directory are added to the generated ConfigMap. This example assumes you have created a cm directory in the /ttclassic directory tree.

dbSecret

Variable that creates a Kubernetes Secret based on the provided values and adds a dbSecret entry to a TimesTenClassic object definition.

Default: There is no default. By default, a Secret is not created by a ttclassic chart.

See TimesTenClassicSpecSpec.

dbSecret:
  - name: sample
    directory: seekret

Note: You must create a directory in the /ttclassic directory of the ttclassic chart. All files in the directory are added to the generated Secret. This example assumes you have created a seekret directory in the /ttclassic directory tree.

deleteDbOnNotReadyNode

When specified, this variable directs the TimesTen Operator to detect situations where a Node is not ready (or unknown) for a specific period of time. When detected, the TimesTen Operator takes appropriate action to remedy the situation. Specifically, the TimesTen Operator checks to see if the Node's not ready condition has existed for more than deleteDbOnNotReadyNode seconds. If so, the TimesTen Operator deletes the Pod and the PVCs associated with the Pod. This causes Kubernetes to create a new Pod and new PVCs on a surviving Node. Once the Pod is scheduled and started by Kubernetes, the TimesTen Operator configures it as usual.

The value is expressed in seconds and must be greater than pollingInterval.

By default, this variable is not specified. You must specify it.

Note: Use caution when specifying this datum. Specifying this datum could result in the TimesTen Operator deleting PVCs. Deleting PVCs discards the on-disk copy of TimesTen databases.

For more information, see How the TimesTen Kubernetes Operator Handles Node Failure.

deleteDbOnNotReadyNode: 30

exporterCPURequest

Amount of CPU requested for the exporter container (if provisioned).

Default: 200m

See TimesTenClassicSpecSpec.

exporterCPURequest: 400m

exporterMemoryRequest

Amount of memory requested for the exporter container (if provisioned).

Default: 200Mi

exporterMemoryRequest: 400Mi

image

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

imagePullSecret

Pull Secret required to pull container images.

Default: There is no default.

See TimesTenClassicSpecSpec.

imagePullSecret: sekret

imageUpgradeStrategy

Variable to determine if the TimesTen Operator performs automated upgrades. If set to Manual, Helm cannot automatically upgrade or rollback a release.

Default: Auto

See TimesTenClassicSpecSpec.

imageUpgradeStrategy: Manual

initContainers

Variable used to define an init container. This init container is created in each Pod in a TimesTenClassic object.

The provided YAML is copied directly to the .spec.template.spec section of a TimesTenClassic object YAML manifest.

Default: There is no default.

initContainers:
- name: sample
  image:
  command:
  - sh
  - "-c"
  - |
    /bin/bash <<'EOF'
    echo test/user > /ttconfig/testUser
    ls -l /ttconfig
    EOF
  volumeMounts:
  - name: tt-config
    mountPath: /ttconfig

labels

A list of labels to be applied to a TimesTenClassic object.

Default: There is no default.

labels:
  x: y

logStorageClassName

Name of the storage class that is used to request persistent volumes for the TimesTen database transaction log files.

Default: There is no default. If you do not specify logStorageClassName, a log volume is not allocated.

See TimesTenClassicSpecSpec.

logStorageClassName: fast

logStorageSize

Amount of storage to be provisioned for the TimesTen transaction log files.

Default: 50Gi

See TimesTenClassicSpecSpec.

logStorageSize: 100Gi

name

Name of the TimesTenClassic object to be created.

Default: releaseName

name: sample

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"

pollingInterval

Variable that determines how often (expressed in seconds) that the TimesTen Operator checks the status of a TimesTenClassic object.

Default: 5

pollingInterval: 6

readOnlyRootFilesystem

Variable that determines if the TimesTen Operator causes the container image to be mounted read only in TimesTen containers. The TimesTen Operator provisions an empty directory and mounts it on top of the /tmp directory in all TimesTen containers in all TimesTen Pods. This includes the tt, daemonlog, and exporter containers in each Pod.

Valid values:

  • true (default): The TimesTen Operator provisions an empty directory and mounts it on top of the /tmp directory. In addition, the TimesTen Operator creates these containers with container images mounted as read-only.

  • false: The TimesTen Operator does not provision an empty directory and does not create containers with container images mounted as read-only.

If you provide your own containers, the TimesTen Operator does not automatically mount your container images as read-only.

If you upgrade a v1 TimesTenClassic object and if the Pods associated with that TimesTenClassic object are replaced, the replacements do not have readOnlyRootFilesystem set.

readOnlyRootFilesystem: true

replicas

Variable that determines the number of Pods to provision for a non-replicated TimesTenClassic object.

The default is 1. The maximum value is 3.

replicas: 2

replicationTopology

Variable that determines the configuration for a TimesTen Classic database.

Valid values:
  • activeStandbyPair (default): The TimesTen Operator configures an active standby pair replication scheme.

  • none: The TimesTen Operator does not configure replication. Instead, it configures a non-replicated configuration and uses the replicas variable to determine how many TimesTen Pods to create.

replicationTopology: activeStandbyPair

or

replicationTopology: none

repStateTimeout

Variable that indicates the time in seconds a replicated database remains in the recovering replication state as reported by the TimesTen ttRepStateGet built-in procedure.

The recovering replication state indicates that the database is in the process of synchronizing updates with the active database after a failure. For more information about the TimesTen ttRepStateGet built-in procedure, see ttRepStateGet in the Oracle TimesTen In-Memory Database Reference.

Default: 30 (expressed in seconds).

For more information about repStateTimeout, see TimesTenClassicSpecSpec.

repStateTimeout: 40

rollingUpdatePartition

Variable that is specific to upgrading a non-replicated configuration. Kubernetes upgrades Pods with an ordinal value that is greater than or equal to the rollingUpdatePartition value.

For example, if you have three non-replicated Pods (replicas = 3 and Pods are samplerep-0, samplerep-1, and samplerep-2) and you set rollingUpdatePartition to 1, the samplerep_1 and samplerep-2 Pods are upgraded, but the samplerep-0 Pod is not.

The default is 0.

For more information, see Perform Upgrades in this book and Partitioned rolling updates in the Kubernetes documentation.

rollingUpdatePartition: 2

securityContext

Variable used to create an optional securityContext definition. This securityContext definition is applied to TimesTenClassic at the Pod level.

The provided YAML is copied directly to the .spec.template.spec section of a TimesTenClassic object YAML manifest.

Default: There is no default.

securityContext
  runAsNonRoot: true

serviceAccountName

Name of the service account that is assigned to the Pods that are created by the TimesTen Operator.

By default, when the TimesTen Operator creates StatefulSets (which in turn create Pods that run TimesTen), the StatefulSets and Pods have no service account. Specifying serviceAccountName lets you define a Kubernetes ServiceAccount that the TimesTen Pods run under.

Default: There is no default.

serviceAccountName: xyz

storageClassName

Name of the storage class that is used to request persistent volumes for a TimesTen database.

Default: There is no default. However, you must specify a value for storageClassName.

See TimesTenClassicSpecSpec.

storageClassName: oci-bv

storageSize

Amount of storage to be provisioned for TimesTen and the TimesTen database.

Default: 50Gi

storageSize: 250Gi

storePassword

The TimesTen Operator stores its security certificates in Java Keystores. In order to create and use Java Keystores, they must be secured with a known password (storePassword). The password must be known by both the TimesTen Operator who creates and reads the keystore and the TimesTen Agent who also reads it.

The default value is a hard-coded string that is not documented.

Although not recommended, you can use the storePassword variable to set the password to a different value than the default and control the password setting. Once set, you cannot change storePassword. If it is changed, the TimesTen Operator generates a warning in the form of a Kubernetes Event and ignores the changed value.

storePassword: pseudoRandomString

templateSpec

Variable used to insert arbitrary YAML into the .spec.template.spec section of a TimesTenClassic object.

Default: There is no default.

See TimesTenClassicSpec.

templateSpec:
  preemptionPolicy: Never

terminationGracePeriod

Variable that determines the amount of time (in seconds) that Kubernetes waits for a Pod to gracefully shut down before being forcefully terminated.

The default varies depending on your configuration:
  • Replicated (Active Standby Pair: Default) is 10 seconds.

  • Non-replicated: Default is 300 seconds.

terminationGracePeriod: 30

testAffinity

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

There is no default.

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

testAnnotations

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

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

Default: There is no default.

testLabels:
  x: y

tolerations

Variable to define tolerations to be applied to the Pods in a TimesTenClassic object.

The provided YAML is copied directly to the .spec.template.spec section of a TimesTenClassic object YAML manifest.

Default: There is no default.

tolerations:
  - key: "key1"
    operator: "Equal"
    value: "value1"
    effect: "NoSchedule"

ttspec

Variable to insert arbitrary YAML into the .spec.ttspec section of a TimesTenClassic object. Use this variable to specify additional datum that are supported by the TimesTenClassic object type, but are not explicitly supported by the ttclassic chart.

Default: There is no default.

See TimesTenClassicSpecSpec.

ttspec:
  agentGetTimeout: 10
  prometheus:
    port: 7777

volumes

Variable used to create optional volume definitions. These definitions are applied to TimesTenClassic objects.

The provided YAML is copied directly to the .spec.template.spec section of a TimesTenClassic object YAML manifest.

Default: There is no default.

volumes:
  - name: tt-config
    emptyDir: {}