For the complete documentation index, see llms.txt. Markdown versions are available by appending .md to documentation URLs.

SigNoz Operator Reference - Custom Resources & Spec Fields

SigNoz Cloud - This page applies to SigNoz Cloud editions.
Self-Host - This page applies to self-hosted SigNoz editions.

Overview

Look up the custom resources, spec fields, status conditions, and flags of the SigNoz Operator here. To install the operator and create your first resource, see the SigNoz Operator overview.

To see every field of a kind in your cluster, run kubectl explain, for example kubectl explain dashboard.spec.

Custom Resources

All kinds are in the resources.signoz.io/v1alpha1 API group.

KindScopeSigNoz object
ProviderConfigNamespaceA SigNoz endpoint and the API key for it
ClusterProviderConfigClusterThe same as ProviderConfig, for all namespaces
DashboardNamespaceA dashboard
RuleNamespaceAn alert rule
SavedViewNamespaceA saved view
PlannedMaintenanceNamespaceA planned maintenance window
RoutePolicyNamespaceA notification routing policy
UserNamespaceA user
RoleNamespaceA role
ServiceAccountNamespaceA service account
AuthDomainNamespaceAn SSO auth domain

The samples directory of the operator repository has one sample manifest for each kind.

Shared Spec Fields

Every kind except ProviderConfig and ClusterProviderConfig has these fields at the root of spec:

FieldDefaultDescription
providerConfigRef.nameNone, requiredThe name of the ProviderConfig or ClusterProviderConfig to use.
providerConfigRef.kindProviderConfigProviderConfig or ClusterProviderConfig.
interval10mHow often the operator compares the object in SigNoz with the manifest and reverts drift.
retryIntervalinterval, then 1mHow often the operator retries after a temporary failure. If you do not set it, the operator uses interval. If you set neither, it uses --default-resources-retry-interval.
timeout30sThe maximum time for one reconcile, including the calls to SigNoz.
suspendfalseIf true, the operator stops acting on the resource. It does not change or delete the object in SigNoz.
reclaimPolicyDeleteWhat happens in SigNoz when you delete the custom resource. Delete removes the SigNoz object. Orphan keeps it.
objectTemplate.specNoneThe SigNoz object as typed fields. The API server validates them when you apply the manifest.
objectTemplate.jsonSpecNoneThe SigNoz object as a JSON request body. The operator sends it without changes, so the body must include the identity field, such as name, and the schema version, such as "schemaVersion": "v6" for a dashboard.

Set exactly one of objectTemplate.spec or objectTemplate.jsonSpec. The default values of interval, retryInterval, and timeout come from the operator flags.

ProviderConfig Fields

ProviderConfig and ClusterProviderConfig have the same spec:

FieldDescription
endpoint.valueThe URL of the SigNoz instance. It must start with http:// or https://. Use https://, because the operator sends the API key in a request header.
endpoint.valueFromReads the URL from a secretKeyRef or a configMapKeyRef.
auth.header.nameThe header that carries the API key. The default is SIGNOZ-API-KEY.
auth.header.schemeA prefix for the header value, for example Bearer. The operator sends <scheme> <value>.
auth.header.valueThe API key inline. Use valueFrom instead, so that the key does not appear in the manifest.
auth.header.valueFromReads the API key from a secretKeyRef or a configMapKeyRef.
tls.caSecretRefA Secret name and key that hold a CA bundle to trust. The operator reads it from the same namespace as the other references.
tls.insecureSkipVerifyIf true, the operator does not verify the server certificate.

Set exactly one of value or valueFrom for endpoint and for auth.header.

The operator reads the Secrets and ConfigMaps of a ProviderConfig from the namespace of the ProviderConfig. For a ClusterProviderConfig, it reads them from the operator namespace, signoz-operator-system.

Status Conditions

Every managed kind reports the same condition types:

ConditionMeaning
ReadyThe summary of all other conditions. Wait on this one.
SyncedTrue when the object in SigNoz matches the manifest. Unknown when the operator cannot tell yet.
RecoverableA temporary failure. The operator retries at retryInterval.
TerminalA failure that retries cannot fix. The operator stops retrying until you edit the resource, change its ProviderConfig or Secret, or restart the operator.
Suspendedspec.suspend is true.

kubectl get shows the status and the reason of the Ready condition in the READY and REASON columns, and the SigNoz ID in the ID column.

Resource reasons

ReasonMeaning
Created, Updated, SyncedThe object in SigNoz matches the manifest.
PendingThe object is missing in SigNoz, for example because someone deleted it in the UI. The operator creates it again.
InvalidSpecThe operator cannot read the desired state, for example a jsonSpec that is not valid JSON.
RejectedSigNoz rejected the body with a 400 response.
ImmutableFieldChangedYou changed a field that you can set only when the operator creates the object.
AmbiguousMore than one SigNoz object matches the identity of the resource.
SigNozResourceIDMismatchThe resources.signoz.io/signoz-resource-id annotation names an object that does not match the identity of the resource.
UnauthorizedSigNoz rejected the API key with a 401 or 403 response.
ProviderConfigNotReadyThe operator cannot read the endpoint or the API key from the ProviderConfig.
BackendErrorSigNoz returned a 5xx or 429 response.
BackendUnreachableA connection, timeout, or TLS failure.
Suspendedspec.suspend is true.
CompareFailedThe operator cannot compare the manifest with the object in SigNoz. This is likely a bug in the operator. Report it in the operator issues.

ProviderConfig reasons

A ProviderConfig reports only the Ready condition. Ready=True means that the operator can read the endpoint and the API key. The operator does not send a test request to SigNoz.

ReasonMeaning
ResolvedThe operator read the endpoint and the API key.
SpecInvalidThe spec is not valid.
EndpointInvalidThe endpoint is not a valid URL.
SecretNotFound, ConfigMapNotFoundThe referenced Secret or ConfigMap does not exist in the namespace that the operator reads from.
KeyNotFoundThe Secret or ConfigMap does not have the referenced key.
ValueEmptyThe referenced key is empty.
CABundleInvalidThe CA bundle in tls.caSecretRef is not valid.
ReferenceReadFailedThe operator cannot read a referenced Secret or ConfigMap.

Resource Identity

When a resource has no SigNoz ID yet, the operator looks for an existing object with the same identity and adopts it. For example, a Dashboard matches a dashboard with the same name, and a User matches a user with the same email. With reclaimPolicy: Delete, the operator also deletes an adopted object when you delete the custom resource.

If more than one object matches, set the resources.signoz.io/signoz-resource-id annotation on the custom resource to the ID of the object to adopt.

Operator Flags

The operator reads its configuration from flags. The table lists the common flags. For the full list, including the TLS flags for the metrics and webhook servers, see cmd/config.go. You can also set each flag as an environment variable with the SIGNOZ_OPERATOR_ prefix. For example, --log-level becomes SIGNOZ_OPERATOR_LOG_LEVEL.

FlagDefaultDescription
--log-levelinfoOne of debug, info, error, or panic.
--watch-namespacesAll namespacesThe namespaces that the operator watches.
--operator-namespaceNone, requiredThe namespace of the operator. The operator reads the Secrets of a ClusterProviderConfig from this namespace.
--default-resources-interval10mThe interval for resources that do not set one.
--default-resources-retry-interval1mThe retryInterval for resources that set neither retryInterval nor interval.
--default-resources-timeout30sThe timeout for resources that do not set one.
--leader-electfalseEnables leader election, so that only one operator replica is active.
--health-probe-bind-address:8081The address of the health probe endpoint.
--metrics-bind-address0The address of the metrics endpoint. 0 turns off the metrics endpoint.

Get Help

If you need help with the steps in this topic, please reach out to us on SigNoz Community Slack. If you are a SigNoz Cloud user, please use in product chat support located at the bottom right corner of your SigNoz instance or contact us at cloud-support@signoz.io.

Is this page helpful

Last updated—September 24, 2026

Edit on GitHub