About the Deployment Process

After you define a TimesTenClassic object for either a replicated or non-replicated configuration, you deploy the object into your namespace using either the kubectl create or the helm install command. After the object is deployed in your namespace, the TimesTen Operator notices and takes action. The process to create and configure TimesTen and its databases begins:
  • StatefulSet: The TimesTen Operator creates a StatefulSet to run TimesTen. The StatefulSet contains a specified number of replicas:
    • For replicated objects, the number of replicas is 2.

    • For non-replicated objects, the TimesTen Opertor uses the value you specified for .spec.ttspec.replicas. If you do not specify a value, the TimesTen Operator uses the default value of 1.

  • Pods: Because the TimesTen Operator creates a StatefulSet, Kubernetes in turn provisions replicas number of Pods.

    For both replicated and non-replicated configurations, each Pod contains several containers, including tt, daemonlog1, and exporter. If you define additional containers in .spec.template of your TimesTenClassic object, they are included in the Pod.

  • PersistentVolumes: Kubernetes provisions one or more PersistentVolumes (persistent storage), which are mounted in the TimesTen containers. This is where your TimesTen databases are stored.

  • Service: The TimesTen Operator creates a headless Service, which causes Kubernetes to issue unique DNS names for each Pod.

When Kubernetes creates and starts a new Pod as part of a TimesTenClassic object's StatefulSet, the TimesTen Operator interacts with the TimesTen Agent in each Pod to perform the actions to get TimesTen and its databases up and running.

The Operator performs the following actions:
  • Creates a TimesTen installation.

  • Creates a TimesTen instance that uses the installation just created.

  • Creates TimesTen configuration files in the instance based on your provided metadata files (such as db.ini).

  • Starts the TimesTen instance.

  • Creates the TimesTen database.

  • Create database users based on your provided metadata files (such as adminUser and cacheUser).

  • Creates database schemas, tables, views, procedures, and other database objects based on your provided metadata files (such as schema.sql, cachegroups.sql, and epilog.sql).

Let's walk through some examples that show you how to define and create replicated and non-replicated TimesTenClassic objects and how the TimesTen Operator uses the information to create TimesTen databases.