Create Replicated TimesTen Databases
This example shows you how to create replicated TimesTen Classic databases using the ttclassic Helm chart. The example uses a YAML manifest file and assumes you have created the kube_files/helm/customyaml directory for the file.
- On your development host, change to the
helmdirectory.cd kube_files/helm - Create a YAML file that defines the variables for your replicated configuration.
vi customyaml/repsamplehelm.yaml storageClassName: oci-bv storageSize: 10Gi image: repository: container-registry.oracle.com/timesten/timesten tag: "22.1.1.34.0" imagePullSecret: sekret replicationTopology: activeStandbyPair dbConfigMap: - name: repsamplehelm directory: cmNote the following:-
The
storageClassNameisoci-bv. Replaceoci-bvwith the name of your storage class. -
The
storageSizeis10Gi. Replace10Giwith the amount of storage that needs to be requested for each Pod to hold TimesTen. -
For the
imagevariable:-
repository: Therepositoryiscontainer-registry.oracle.com/timesten/timesten. Replacewith the name and location of your TimesTen container image.container-registry.oracle.com/timesten/timesten -
tag: The tag is22.1.1.34.0. Replacetagwith the tag for the TimesTen release.
-
-
The
imagePullSecretissekret. Replacesekretwith the image pull secret that Kubernetes needs to use to fetch the TimesTen container image. - The
replicationTopologyisactiveStandbyPair, indicating a replicated configuration consisting of an active standby pair of TimesTen databases. - The name of the ConfigMap is
repsamplehelm. The location of the metadata files is in thecmdirectory, which is located within thekube_file/helm/ttclassicdirectory tree..
-
- Install the
ttclassicchart.helm install -f customyaml/repsamplehelm.yaml repsamplehelm ./ttclassicLet's look at thishelminstallcommand:-
The
-foption indicates that a YAML file is passed to thehelminstallcommand. -
The name of the YAML file that contains the customizations is
repsamplehelm.yaml, which is located in thecustomyamldirectory. -
The name of the release is
repsamplehelm. -
The name of the chart is
ttclassic, which is located in thekube_files/helm/ttclassicdirectory.
Let's look at the output from the
helminstallcommand.NAME: repsamplehelm LAST DEPLOYED: Thu Jan 16 14:58:40 2025 NAMESPACE: default STATUS: deployed REVISION: 1 NOTES: Version 2211340.1.0 of the ttclassic chart has been installed. This release is named "repsamplehelm". To learn more about the release, try: $ helm status repsamplehelm $ helm get all repsamplehelm $ helm history repsamplehelm To rollback to a previous version of the chart, run: $ helm rollback repsamplehelm <REVISION> - run 'helm history repsamplehelm' for a list of revisions.Note the following:-
The
ttclassicchart version is2211340.1.0, corresponding to TimesTen release22.1.1.34.0. -
The release name is
repsamplehelm. -
The status of the release is
deployed.
-
- (Optional) Verify the release.
helm listThe output is similar to the following:NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION repsamplehelm default 1 2025-01-16 14:58:40.109402333 +0000 UTC deployed ttclassic-2211340.1.0 22.1.1.34.0 ...The
helmlistcommand shows therepsamplehelmrelease exists and is installed in your namespace. - Monitor the progress.
kubectl get ttc repsamplehelmThe output is similar to the following:NAME STATE ACTIVE AGE repsamplehelm Initializing None 44sThe provisioning starts, but is not yet complete as indicated by the
Initializingstate.Wait a few minutes. Then, check again.kubectl get ttc repsamplehelmThe output is similar to the following:NAME STATE ACTIVE AGE repsamplehelm Normal repsamplehelm-0 4m23sThe provisioning process completes. The active standby pair of TimesTen databases are up and running and operational as indicated by the
Normalstate. - Confirm the ConfigMap and the metadata files exist.
kubectl get configmap repsamplehelmThe output is similar to the following:NAME DATA AGE repsamplehelm 4 8m50sCheck the metadata files.
kubectl describe configmap repsamplehelmThe output is similar to the following:
Name: repsamplehelm Namespace: default Labels: app.kubernetes.io/managed-by=Helm Annotations: meta.helm.sh/release-name: repsamplehelm meta.helm.sh/release-namespace: default Data ==== adminUser: ---- adminuser/adminuserpwd db.ini: ---- PermSize=200 DatabaseCharacterSet=AL32UTF8 schema.sql: ---- create table adminuser.emp (id number not null primary key, name char (32)); testUser: ---- sampletestuser/sampletestuserpwd1 BinaryData ==== Events: <none>The
repsamplehelmConfigMap exists and contains the metadata files. Since thetestUserfile exists, you can use Helm to test TimesTen. See Test TimesTen for a Replicated Configuration. - (Optional) Confirm the Pods.
kubectl get podsThe output is similar to the following:NAME READY STATUS RESTARTS AGE repsamplehelm-0 3/3 Running 0 11m repsamplehelm-1 2/3 Running 0 11m ...The
repsamplehelm-0andrepsamplehelm-1Pods are running in your namespace. Each Pod is running TimesTen.
ttclassic chart for a replicated configuration. An active standby pair of TimesTen Classic databases are up and running and fully operational.