ngrok-operator v0.21.0: status conditions galore | ngrok blog
October 31, 2025
October 31, 2025
I'm excited to announce we've shipped ngrok-operator v0.21.0 with comprehensive status conditions across all our major custom resource definitions (CRDs) and several bug fixes that enhance reliability for LoadBalancer services.
This release focuses on improving observability by bringing Kubernetes-standard status conditions to
AgentEndpoint, Domain, CloudEndpoint, IPPolicy, and BoundEndpoint CRDs. Now you can use standard
kubectl commands to track the provisioning and health of your ngrok resources directly in your cluster.
All major CRDs now include comprehensive status tracking with Kubernetes-standard conditions, giving you better visibility into resource provisioning and health:
You can now inspect resource state using familiar kubectl patterns:
kubectl get cloudendpoints
kubectl describe domain my-domainHere is the output of kubectl get cloudendpoints showing one CloudEndpoint is in a Ready state while another is not:

This brings the ngrok-operator more in line with community standards for Kubernetes resource management, making it easier to integrate with existing monitoring and debugging workflows.
For example, if using Argo CD, you can add a custom health check
for AgentEndpoint resources to reflect their Ready condition by adding the following to your argocd-cm ConfigMap:
apiVersion: v1
data:
resource.customizations.health.ngrok.k8s.ngrok.com_AgentEndpoint: |
local hs = {}
function checkConditions(conditions, conditionType)
for _, condition in ipairs(conditions) do
if condition.status == "False" and condition.type == conditionType then
return false, condition.message or ("Failed condition: " .. conditionType)
end
end
return true
end
if obj.status ~= nil then
if obj.status.conditions ~= nil then
local ready, readyMsg = checkConditions(obj.status.conditions, "Ready")
if ready then
hs.status = "Healthy"
hs.message = "AgentEdnpoint is Healthy"
return hs
end
hs.status = "Degraded"
hs.message = readyMsg
return hs
end
end
hs.status = "Progressing"
hs.message = "Waiting for AgentEndpoint status"
return hsThis allows you to quickly see the health of your AgentEndpoint resources directly in the Argo CD dashboard:

This release includes several important fixes:
This release continues our work toward ngrok-operator v1.0, improving reliability and observability.