Upgrade in Namespace One
Let's upgrade the TimesTen Operator in the mynamespace
namespace at namespace-scope.
- Switch to namespace one (
mynamespace
, in this example).kubectl config set-context --current --namespace=mynamespace
The output is similar to the following:
Context "default" modified.
- Confirm a TimesTen Operator is running in this namespace.
kubectl get pods
The output is similar to the following:
NAME READY STATUS RESTARTS AGE ... timesten-operator-577f7fbc6f-tbr7m 1/1 Running 0 10d ...
- Change to the directory that contains the YAML manifest files for the upgrade. In this example, the
new_kube_files/deploy
directory contains the files.cd new_kube_files/deploy
- Upgrade the service account, role, and role binding objects.
kubectl replace -f service_account.yaml
The output is similar to the following:role.rbac.authorization.k8s.io/timesten-operator replaced serviceaccount/timesten-operator replaced rolebinding.rbac.authorization.k8s.io/timesten-operator replaced
- Make a copy of the
service_account_cluster.yaml
file for the first namespace (service_account_cluster_n1.yaml
, in this example).cp service_account_cluster.yaml service_account_cluster_n1.yaml
- Replace the
service_account_cluster_n1.yaml
YAML file by doing the following:- (Optional): Display the contents of the
service_account_cluster_n1.yaml
file.cat service_account_cluster_n1.yaml
The output is similar to the following:# Copyright (c) 2025, Oracle and/or its affiliates. apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: timesten-operator # If running multiple operators on the same cluster: #name: timesten-operator-<NAMESPACE> rules: - apiGroups: - "" resources: - nodes verbs: - get - list - watch - apiGroups: - "" resources: - persistentvolumeclaims verbs: - get - list - watch - delete --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: timesten-operator # If running multiple operators on the same cluster: #name: timesten-operator-<NAMESPACE> subjects: - kind: ServiceAccount name: timesten-operator #namespace: <NAMESPACE> roleRef: kind: ClusterRole name: timesten-operator # If running multiple operators on the same cluster: #name: timesten-operator-<NAMESPACE> apiGroup: rbac.authorization.k8s.io
- Use a text editor to modify the
service_account_cluster_n1.yaml
file.Make the following changes:-
Locate
#namespace
, remove#
, and replace<NAMESPACE>
with the name of your namespace (mynamespace
, in this example). -
Locate the three occurrences of
#name
, remove#
, and replace<NAMESPACE>
with the name of your namespace (mynamespace
, in this example).
vi service_account_cluster_n1.yaml # Copyright (c) 2025, Oracle and/or its affiliates. apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: timesten-operator # If running multiple operators on the same cluster: name: timesten-operator-mynamespace rules: - apiGroups: - "" resources: - nodes verbs: - get - list - watch - apiGroups: - "" resources: - persistentvolumeclaims verbs: - get - list - watch - delete --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: timesten-operator # If running multiple operators on the same cluster: name: timesten-operator-mynamespace subjects: - kind: ServiceAccount name: timesten-operator namespace: mynamespace roleRef: kind: ClusterRole name: timesten-operator # If running multiple operators on the same cluster: name: timesten-operator-mynamespace apiGroup: rbac.authorization.k8s.io
-
- Save and close the
service_account_cluster_n1.yaml
file. - Replace the
service_account_cluster_n1.yaml
file.kubectl replace -f service_account_cluster_n1.yaml
The output is similar to the following:clusterrole.rbac.authorization.k8s.io/timesten-operator-mynamespace replaced clusterrolebinding.rbac.authorization.k8s.io/timesten-operator-mynamespace replaced
- (Optional): Display the contents of the
- Modify the
operator.yaml
file by doing the following:- Use a text editor to modify the
operator.yaml
file.Replace the following:
-
image
: Replacecontainer-registry.oracle.com/timesten/timesten:latest
with the name of the image for the upgrade. In this example, the name of the image for the upgrade iscontainer-registry.oracle.com/timesten/timesten:22.1.1.35.0
. -
If you are running in a multi-architecture environment, modify the
affinity
section, using the same setting you used during installation. This example usesamd64
.
vi operator.yaml # Copyright (c) 2019 - 2025, Oracle and/or its affiliates. apiVersion: apps/v1 kind: Deployment metadata: name: timesten-operator spec: replicas: 1 ... spec: serviceAccountName: timesten-operator imagePullSecrets: - name: sekret containers: - name: timesten-operator image: container-registry.oracle.com/timesten/timesten:22.1.1.35.0 ... # An example affinity definition; this pod will only be assigned to a node # running on amd64 (the default) # affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: "kubernetes.io/arch" operator: In values: ["amd64"]
-
- Save and close the
operator.yaml
file.
- Use a text editor to modify the
- Upgrade the TimesTen Operator.
kubectl replace -f operator.yaml
The output is the following:deployment.apps/timesten-operator replaced
- Verify the TimesTen Operator is running.
kubectl get pods
The output is similar to the following:NAME READY STATUS RESTARTS AGE ... timesten-operator-7fb9bddf-xrc8h 1/1 Running 0 41s ...
- (Optional) Verify the TimesTen Operator is running the new image.
kubectl describe deployment timesten-operator | grep Image
The output is the following:
Image: container-registry.oracle.com/timesten/timesten:22.1.1.35.0
Congratulations! You successfully upgraded the TimesTen Operator in the mynamespace
namespace at namespace-scope. The Operator is using the container-registry.oracle.com/timesten/timesten:22.1.1.35.0
image and is automatically managing any existing TimesTenClassic objects in this namespace.
If you are upgrading the TimesTen Operator in a second namespace at namespace-scope, proceed to Upgrade in Namespace Two. If you are ready to upgrade TimesTenClassic objects in the mynamespace
namespace, proceed to About Upgrading TimesTen Classic Databases.