Update via Helm
This guide describes the process of upgrading TDP Kubernetes components using the Helm CLI.
Updating via Helm allows you to apply new versions of charts, update configurations and ensure that the environment is always aligned with the most recent versions.
- Preparation
- Update
- Validation
- Troubleshooting
Update Preparation
Before starting any update, perform the checks below to ensure a safe process.
- Commands
- Videos
Check Current Versions
List all releases installed in the namespace to identify current versions:
helm list -n <NAMESPACE>

The output will display the release name, namespace, revision, status, chart, and application version.
Check pods and workload readiness
Verify that your workloads are ready in the target namespace before proceeding:
kubectl get pods -n <NAMESPACE>
kubectl get statefulset -n <NAMESPACE>


If the application uses Deployment, also validate:
kubectl get deploy -n <NAMESPACE>
What to validate:
- The pods are in
STATUSRunning - Pods
READYcolumn is complete, for example1/1 - The application's StatefulSets or Deployments show all ready replicas, for example
1/1,2/2or3/3
Why validate before updating:
- Ensure that the application is already stable before the change
- Avoid confusing previous failure with failure caused by the update
- Reduce the risk of unavailability during the process
Backup of Current Values
Export the current values for each release to enable rollback in case of failure:
helm get values <RELEASE_NAME> -n <NAMESPACE> -o yaml > <RELEASE_NAME>-values-backup.yaml
Repeat this command for each release that will be updated.
Backup of Persistent Volumes
Before any update, perform a backup of persistent data. In case of a severe failure, these backups will be required for recovery.
-
Identify the component PVCs:
Terminal inputkubectl get pvc -n <NAMESPACE> -l app.kubernetes.io/instance=<RELEASE_NAME>
Figure 4 - Get Pvc -
Create snapshots of the persistent volumes (if the StorageClass supports it):
Terminal inputkubectl apply -f - <<EOF
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
name: <RELEASE_NAME>-snapshot
namespace: <NAMESPACE>
spec:
volumeSnapshotClassName: <snapshot-class>
source:
persistentVolumeClaimName: <pvc-name>
EOF -
Check the snapshot status:
Terminal inputkubectl get volumesnapshot -n <NAMESPACE>
Update of CRDs
CRDs must be updated before other components. These are global scope resources within the cluster and are not automatically managed by Helm during upgrade.
Update platform CRDs (tdp-crds) before any other components:
helm upgrade --install <RELEASE_NAME> \
oci://registry.tecnisys.com.br/tdp/charts/tdp-crds \
-n <NAMESPACE> --create-namespace
helm upgrade --install tdp-crds \
oci://registry.tecnisys.com.br/tdp/charts/tdp-crds \
-n <NAMESPACE> --create-namespace

Wait for it to complete and check if the CRDs have been updated:
kubectl get crds | grep argoproj.io

Check history:
helm history <RELEASE_NAME> -n <NAMESPACE>
Command used in the captures of this documentation:
helm history demo-postgresql -n tdp-install-doc

- helm-list
- get-pods
- get-statefulset
- get-pvc-before
- helm-upgrade-tdp-crds
- get-crds
- helm-history