DomainReleaseOutOfSync
Meaning
Domain release is out of sync.
Full context
Domain resource desired state is out of sync. The coresponding domain Helm release install/upgrade operation failed to apply the latest Helm values.Symptom
To manually evaluate the conditions for this alert follow the steps below.
A domain, in which the desired state is out of sync, will have the Released
status condition set to False
.
List all out of sync domains.
JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[?(@.type=="Released")]}{@.type}={@.status}{"\n"}{end}{end}'
kubectl get domain -o jsonpath="$JSONPATH" | grep "Released=False"
Inspect the domain Released
condition message for more details.
kubectl get domain <name> -o jsonpath='{.status.conditions[?(@.type=="Released")]}' | jq
Impact
Latest domain configuration is not enforced.
New domain won’t become available. Connectivity to already provisioned domains is not impacted by this issue, however, some features that require applying domain configuration changes might be unavailable (e.g. start/stop domain, TLS rotation, etc.).
Diagnosis
- Check the domain state using
kubectl describe domain <name>
. - Check the domain
Released
condition’s state and message. - Check the
Released
condition’s state and message for the corresponding HelmApp resource. - List the Helm revisions for the Helm release associated with the domain.
- Check the latest Helm values for the failed Helm release.
- Check that Helm chart repository services are available. By default, the public NuoDB Helm charts repository in GitHub is used, however, this can be overridden.
Scenarios
Example
Get the domain name and its namespace from the alert’s labels. Inspect the domain state in the Kubernetes cluster.
kubectl get domain acme-messaging -n nuodb-cp-system
Notice that the SYNCED
value is False
which means that the database desired state is not enforced.
NAME TIER VERSION READY SYNCED DISABLED AGE
acme-messaging n0.small 6.0.2 False False False 62h
Inspect the domain Released
condition.
kubectl get domain acme-messaging -o jsonpath='{.status.conditions[?(@.type=="Released")]}' | jq
The output below indicates issues with the corresponding HelmApp resource acme-messaging-demo-zfb77wc
.
{
"lastTransitionTime": "2025-06-10T10:27:21Z",
"message": "synchronization failed for applications [acme-messaging-fc4bwd8]",
"observedGeneration": 1,
"reason": "ReconciliationFailed",
"status": "False",
"type": "Released"
}
Inspect the HelmApp resource associalted with the domain.
RELEASE_NAME=$(kubectl get domain acme-messaging -o jsonpath='{.spec.template.releaseName}')
kubectl describe helmapp $RELEASE_NAME
Check the Released
status condition of the HelmApp.
kubectl get helmapp $RELEASE_NAME -o jsonpath='{.status.conditions[?(@.type=="Released")]}' | jq
The output below indicates issues Helm upgrade operation. An existing ResourseQuota limits creation of ConfigMap resources.
{
"lastTransitionTime": "2025-06-10T10:27:21Z",
"message": "HelmApp upgrade failed: error='failed to create resource: configmaps \"acme-messaging-fc4bwd8-readinessprobe\" is forbidden: exceeded quota: quota-account, requested: count/configmaps=1, used: count/configmaps=15, limited: count/configmaps=15', values='{\"admin\":{\"domain\":\"acme-messaging-fc4bwd8\", ... }'",
"observedGeneration": 1,
"reason": "UpgradeFailed",
"status": "False",
"type": "Released"
}
If needed, drill down to the Helm revisions associated with the domain by using the below commands.
helm history $RELEASE_NAME