Skip to content

API Reference#

Packages#

templates.v2.stakater.com/v2alpha1#

Package v2alpha1 contains API Schema definitions for the templates v2alpha1 API group.

Resource Types#

Template#

Template is a reusable blueprint that defines Kubernetes resources which can be instantiated multiple times across different namespaces using TemplateInstances. Templates are scoped to a provider namespace and contain go templates or Helm charts that render into one or more Kubernetes manifests when instantiated.

Namespace Scope (Provider): The Template may only reference other resources in its own namespace.

Security Implication: Anyone who can create a Template in a namespace can expose any resource that the template-operator service account is allowed to read within that namespace.

Field Description Default Validation
apiVersion string templates.v2.stakater.com/v2alpha1
kind string Template
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec TemplateSpec
status TemplateStatus Optional: {}

TemplateSpec#

TemplateSpec defines the desired state of Template

Appears in: - Template

Field Description Default Validation
gotemplate string Exactly one of gotemplate or helm must be specified.
gotemplate is rendered using Go text/template.
It may emit one or more Kubernetes manifests.
Sprig functions are also available https://masterminds.github.io/sprig/
If a namespace-scoped resource omits the namespace field,
it will be created in the TemplateInstance's namespace (consumer namespace),
NOT in the 'default' namespace or the Template's namespace.
Available context (non-exhaustive):
- .parameters : resolved parameter values
- .instance : metadata of the TemplateInstance (name, namespace, labels)
Referencing a value that does not exist (a typo, or an instance label
that is not set) fails the render; the TemplateInstance reports the
missing key in its Rendered condition. For optional values, look up
through index, which returns an empty value instead of failing:
{{ index .instance.labels "env" | default "dev" }}
{{ if index .instance.labels "env" }} ... {{ end }}
helm HelmSpec Helm renders a Helm chart instead of a raw Go template.
Exactly one of gotemplate or helm must be specified.
Optional: {}
parameters TemplateParameterDefinition array Parameters define the inputs required to render the template.
Rules:
- type is a hint used for validation/coercion (operator-defined).
Optional: {}
targetNamespaces TargetNamespaces TargetNamespaces controls where this Template may be instantiated.
Default behavior:
If this field is omitted entirely, the Template may ONLY be instantiated
in the same namespace as this Template.
A namespace is eligible if it matches the explicit list OR the selector.
Optional: {}
sync SyncConfig Sync controls drift protection for rendered resources. Optional: {}
outputs TemplateOutput array Outputs declare named extractions from this Template's rendered resources,
surfaced on TemplateInstance.status.outputs. Each entry chooses exactly one
iteration mode by field combination:
- from only single-resource extraction
- fromAll only iterate all rendered resources of a GVK
- from + forEach iterate an array of objects inside one resource
MaxItems: 50
Optional: {}

HelmSpec#

HelmSpec defines a Helm chart source and rendering configuration.

Appears in: - TemplateSpec

Field Description Default Validation
chart HelmChart Chart defines where the Helm chart is sourced from. Required: {}
releaseName string ReleaseName is the Helm release name used during rendering.
If omitted, defaults to the TemplateInstance name at render time.
MaxLength: 53
Optional: {}
version HelmVersion Version selects the Helm rendering engine.
Defaults to "v3" if omitted: existing templates are written against
Helm v3 behavior, so migrated charts render the same as before.
Set "v4" to opt in to the Helm v4 engine.
v3 Enum: [v3 v4]
Optional: {}
valuesTemplate string ValuesTemplate is a Go template that renders into YAML used as Helm values.
The rendered YAML is parsed and passed as Helm value overrides
(merged over the chart's default values.yaml).
Available context (same as gotemplate):
- .parameters : resolved parameter values
- .instance : metadata of the TemplateInstance (name, namespace, labels)
Like gotemplate, referencing a value that does not exist fails the
render; use index (with default) for optional lookups.
Optional: {}

HelmChart#

HelmChart identifies a Helm chart source.

Appears in: - HelmSpec

Field Description Default Validation
repository HelmRepository Repository defines the repository location, chart name, version,
and optional authentication.
Required: {}

HelmRepository#

HelmRepository defines the location, chart identity, and optional authentication for a Helm chart repository or OCI registry.

Appears in: - HelmChart

Field Description Default Validation
url string URL is the repository URL.
For HTTP/HTTPS repositories: https://charts.example.com
For OCI registries: oci://ghcr.io/org/charts
MinLength: 1
Pattern: ^(https?\|oci)://
Required: {}
name string Name is the chart name within the repository. MinLength: 1
Required: {}
version string Version is the exact chart version to pull (SemVer 2, e.g. "1.2.3").
Must follow SemVer 2 (https://semver.org): MAJOR.MINOR.PATCH with
optional pre-release and build metadata.
MinLength: 5
Pattern: ^v?(0\|[1-9][0-9]*)\.(0\|[1-9][0-9]*)\.(0\|[1-9][0-9]*)(-[0-9A-Za-z.-]+)?(\+[0-9A-Za-z.-]+)?$
Required: {}
auth HelmAuth Auth provides optional authentication credentials.
The referenced Secret MUST live in the same namespace as this Template.
Supported credential layouts by source type:
1. HTTP(S) Helm repositories
- username / password keys
- token key
2. OCI registries (oci://)
- username / password
- token
- or standard Docker config (.dockerconfigjson)
Optional: {}

HelmAuth#

HelmAuth references a Secret containing repository credentials.

Appears in: - HelmRepository

Field Description Default Validation
secretRef SecretRef SecretRef references a Secret in the same namespace as the Template. Required: {}

SecretRef#

SecretRef is a reference to a Secret by name.

Appears in: - HelmAuth

Field Description Default Validation
name string Name of the Secret. MinLength: 1
Required: {}

HelmVersion#

Underlying type: string

HelmVersion specifies which Helm SDK to use for rendering.

Validation: - Enum: [v3 v4]

Appears in: - HelmSpec

Field Description
v3
v4

TemplateParameterDefinition#

TemplateParameterDefinition defines a single parameter for the template.

Appears in: - TemplateSpec

Field Description Default Validation
name string Name is the name of the parameter MinLength: 1
Required: {}
value JSON Value provides the parameter's literal default. It may be a scalar
(string, number, bool), a list, or an object, matching the declared type.
Schemaless: {}
Optional: {}
type ParameterType Type declares the expected type for validation of both template
default values and instance overrides.
Enum: [string number bool array object]
Optional: {}
required boolean Required, if true, means the TemplateInstance MUST provide a value
for this parameter, regardless of whether the template has a default.
Optional: {}
exposeInStatus boolean ExposeInStatus controls whether the resolved value appears in
TemplateInstance status resolvedParameters. Defaults to false (hidden).
Optional: {}
disableOverride boolean DisableOverride controls whether a TemplateInstance may supply its own
value for this parameter. Defaults to false (allow override) when omitted.
Optional: {}

ParameterType#

Underlying type: string

ParameterType declares the expected type for validation.

Validation: - Enum: [string number bool array object]

Appears in: - TemplateParameterDefinition

Field Description
string
number
bool
array
object

TargetNamespaces#

TargetNamespaces defines namespace restrictions for Template instantiation

Appears in: - TemplateSpec

Field Description Default Validation
explicit AllowDeny Explicit defines allowed (and in future, denied) consumer namespaces
where this Template may be instantiated.
Optional: {}
selector LabelSelector Selector dynamically selects namespaces via labels. Optional: {}

SyncConfig#

SyncConfig controls drift protection for rendered resources.

Appears in: - TemplateSpec

Field Description Default Validation
mode SyncMode Mode selects the drift protection strategy.
- off (default): create once, then freeze — no Template, instance or
valueFrom source change re-applies, and manual edits survive.
- revert: the controller continuously reconciles rendered resources,
reverting external drift back to the desired state.
- strict: same as revert, plus an admission webhook proactively blocks
unauthorized UPDATE/DELETE on rendered resources.
off Enum: [off revert strict]
Optional: {}
ignoreFields string array IgnoreFields defines field paths that are exempt from enforcement.
Changes to these fields are allowed even when sync is enabled.
Field paths use dot-separated notation and are evaluated per rendered object.
Array wildcards are supported via [] notation.
Examples: "metadata.annotations", "spec.replicas", "spec.template.spec.containers[
].env"
Optional: {}

SyncMode#

Underlying type: string

SyncMode controls the level of drift protection for rendered resources.

Validation: - Enum: [off revert strict]

Appears in: - SyncConfig

Field Description
off SyncModeOff creates the resources once, then freezes the instance: no
Template, instance or valueFrom source change re-applies, and manual
edits survive. A defaultValue used at the first clean apply is kept.
Flip to revert/strict to resume.
revert SyncModeRevert enables reconciliation-based drift correction.
The controller continuously reconciles rendered resources to the
desired state, reverting any drift. No webhook enforcement.
strict SyncModeStrict enables reconciliation and webhook enforcement.
In addition to continuous reconciliation, an admission webhook
proactively blocks unauthorized UPDATE/DELETE on rendered resources.

TemplateOutput#

TemplateOutput declares a named extraction from this Template's rendered resources.

Appears in: - TemplateSpec

Field Description Default Validation
name string Name is the parent identifier for this output entry, unique across outputs[].
It is NOT surfaced in TemplateInstance status; the user-visible status keys
come from each fields[].name below.
MaxLength: 63
MinLength: 1
Pattern: ^[a-zA-Z][a-zA-Z0-9]*$
Required: {}
from OutputSourceRef From selects a single rendered resource. Required for single-resource and
forEach modes; must be absent in fromAll mode.
Optional: {}
fromAll OutputSourceAll FromAll iterates every rendered resource matching the GVK. Mutually exclusive
with from and forEach.
Optional: {}
forEach string ForEach iterates an array OF OBJECTS inside the resource named by from.
JSONPath query wrapped in {...}; "{.__index}" (zero-based position) is
available to keyTemplate. Required for forEach mode; absent otherwise.
MaxLength: 256
MinLength: 1
Optional: {}
keyTemplate string KeyTemplate renders the inner status-map key (JSONPath template, {...}).
Required for forEach. Optional for fromAll (runtime scope-aware default:
namespaced -> "{.metadata.namespace}/{.metadata.name}", cluster-scoped ->
"{.metadata.name}"). Optional for single mode (defaults to "{.metadata.name}").
MaxLength: 256
MinLength: 1
Optional: {}
fields OutputField array Fields are the JSONPath extractions performed against each matched resource
(or, for forEach, each array element).
MaxItems: 50
MinItems: 1
Required: {}

OutputSourceRef#

OutputSourceRef identifies a single rendered resource (from / forEach modes).

Appears in: - TemplateOutput

Field Description Default Validation
apiVersion string APIVersion of the source resource (e.g. "v1", "apps/v1"). MaxLength: 253
Required: {}
kind string Kind of the source resource. Kind: Secret is refused at admission because
TemplateInstance status is broadly readable to anyone with get templateinstance.
MaxLength: 63
Required: {}
name string Name is a JSONPath template ({...}) evaluated against the Template context
({"parameters": {...}, "instance": {name, namespace, labels}}). The rendered
name must exist in status.renderedResources at extraction time.
With sync.mode off, parameters referenced here need exposeInStatus: true —
a frozen instance resolves selectors from status.resolvedParameters, never
from live values.
MaxLength: 256
MinLength: 1
Required: {}
namespace string Namespace is a JSONPath template ({...}); defaults to the TemplateInstance's
namespace when omitted. Ignored for cluster-scoped kinds.
MaxLength: 253
Optional: {}

OutputSourceAll#

OutputSourceAll selects all rendered resources of a GVK (fromAll mode).

Appears in: - TemplateOutput

Field Description Default Validation
apiVersion string APIVersion of the source resources (e.g. "apps/v1"). MaxLength: 253
Required: {}
kind string Kind of the source resources. Kind: Secret is refused at admission. MaxLength: 63
Required: {}
namespace string Namespace is a JSONPath template ({...}) scoping the iteration; when omitted,
iterates across every namespace this instance rendered into.
MaxLength: 253
Optional: {}

OutputField#

OutputField is a single JSONPath extraction mapped to one outer status key.

Appears in: - TemplateOutput

Field Description Default Validation
name string Name is the OUTER key under status.outputs. Must be unique across the
FLATTENED set of all outputs[].fields[].name in this Template (enforced by
the Template reconciler).
MaxLength: 63
MinLength: 1
Pattern: ^[a-zA-Z][a-zA-Z0-9]*$
Required: {}
jsonPath string JSONPath query wrapped in {...}. A scalar result is stored as-is; an
array/object result is JSON-encoded (e.g. "{.foo[*].ip}" -> '["v4","v6"]').
MaxLength: 256
MinLength: 1
Required: {}

TemplateStatus#

TemplateStatus defines the observed state of Template.

Appears in: - Template

Field Description Default Validation
observedGeneration integer observedGeneration is the last generation of the Template
that has been processed by the controller.
Optional: {}
phase TemplatePhase phase summarizes the overall validation state of the Template.
Typical values: Valid, Invalid, Error
Enum: [Valid Invalid Error]
Optional: {}
conditions Condition array conditions describe fine-grained validation and availability states
following standard Kubernetes condition conventions.
Optional: {}

TemplatePhase#

Underlying type: string

TemplatePhase represents the validation state of a Template.

Validation: - Enum: [Valid Invalid Error]

Appears in: - TemplateStatus

Field Description
Valid
Invalid
Error

TemplateInstance#

TemplateInstance represents a consumer's request to instantiate a Template. It creates actual Kubernetes resources in the consumer's namespace by rendering the referenced Template with provided or overridden parameters.

Namespace Scope (Consumer): The TemplateInstance is created in a consumer namespace. Any instance-provided overrides that read from ConfigMaps, Secrets, or other resources are resolved from the namespace specified in the KeyRef or ObjectFieldRef. When a KeyRef omits the namespace, it defaults to the TemplateInstance's namespace.

Field Description Default Validation
apiVersion string templates.v2.stakater.com/v2alpha1
kind string TemplateInstance
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec TemplateInstanceSpec
status TemplateInstanceStatus Optional: {}

TemplateInstanceSpec#

TemplateInstanceSpec defines the desired state of TemplateInstance.

Appears in: - TemplateInstance

Field Description Default Validation
templateRef TemplateReference templateRef points to the provider-scoped Template to instantiate.
This is a cross-namespace reference by design
serviceAccountRef ServiceAccountRef serviceAccountRef names the ServiceAccount, in this TemplateInstance's own
namespace, whose identity is used to resolve valueFrom parameters from the
cluster and to watch their source resources. The ServiceAccount needs RBAC
(get, and list/watch for change detection) on every referenced resource, and
list on namespaces when a parameter uses namespaceSelector.
If the named ServiceAccount does not exist, the instance fails with reason
ServiceAccountNotFound before any parameter is resolved — parameter
defaultValue fallbacks do not apply to a missing identity.
Using this field also requires the cluster to have granted the operator's
own service account the 'impersonate' verb on 'serviceaccounts'; the
operator does not ship with it, because granting it cluster-wide and
unscoped is equivalent to cluster-admin. Without the grant the instance
fails with reason ImpersonationNotPermitted, again before any resolution.
When omitted, parameters resolve with the operator's own service account.
Optional: {}
parameters TemplateParameter array Parameters override the parameters defined in the referenced Template.
Validation:
- A parameter override is only allowed if the corresponding Template parameter has
disableOverride: false set (or omitted, since it defaults to false).
- If a parameter is not overridden here, the Template's default definition is used.
Optional: {}

TemplateReference#

TemplateReference defines the Template to instantiate

Appears in: - TemplateInstanceSpec

Field Description Default Validation
name string Name of the Template resource
namespace string Namespace where the Template resource is located

ServiceAccountRef#

ServiceAccountRef names a ServiceAccount in the TemplateInstance's namespace. It intentionally has no namespace field: the referenced ServiceAccount is always resolved in the TemplateInstance's own namespace, so an instance can never assume an identity from another tenant's namespace.

Appears in: - TemplateInstanceSpec

Field Description Default Validation
name string Name of the ServiceAccount. MaxLength: 253
MinLength: 1
Required: {}

TemplateParameter#

TemplateParameter defines a single parameter for TemplateInstance overrides.

Appears in: - TemplateInstanceSpec

Field Description Default Validation
name string Name is the name of the parameter MinLength: 1
Required: {}
value string Option 1 (literal): string|number|bool
Value provides a literal parameter value (string, number, or bool).
Optional: {}
valueFrom ValueFrom Option 2: read a value dynamically from a cluster resource.
Exactly one of value or valueFrom must be set.
MaxProperties: 1
MinProperties: 1
Optional: {}
defaultValue string DefaultValue is used when valueFrom fails.
Only valid with valueFrom.
With sync.mode off, a fallback at the first clean apply is final: the
instance freezes with the default and does not re-read the source if it is
created, or becomes readable, after the first clean apply.
Optional: {}

ValueFrom#

ValueFrom specifies a dynamic source for a parameter value.

Exactly one sub-field must be set.

Validation: - MaxProperties: 1 - MinProperties: 1

Appears in: - ResolvedParameter - TemplateParameter

Field Description Default Validation
secretKeyRef KeyRef SecretKeyRef reads a key from a Secret. Optional: {}
configMapKeyRef KeyRef ConfigMapKeyRef reads a key from a ConfigMap. Optional: {}
objectFieldRef ObjectFieldRef ObjectFieldRef reads a field via JSONPath from an arbitrary resource. Optional: {}

KeyRef#

KeyRef references a specific key in a Secret or ConfigMap.

Appears in: - ValueFrom

Field Description Default Validation
name string Name of the Secret or ConfigMap. MinLength: 1
Required: {}
key string Key within the Secret or ConfigMap data to read. MinLength: 1
Required: {}
namespace string Namespace of the Secret or ConfigMap.
When omitted, defaults to the TemplateInstance's namespace.
Optional: {}

ObjectFieldRef#

ObjectFieldRef reads a field from an arbitrary Kubernetes resource via JSONPath.

The operator watches the target GVK for change detection. With sync.mode off that watch is released once the instance freezes after its first clean apply, and later changes to the target are ignored. When Name is set, the operator GETs that specific resource. When Name is omitted, the operator LISTs all resources of the given GVK and evaluates JSONPath over the list result. RBAC: requires get, list, and watch on the target resource.

Namespace scoping (mutually exclusive options): - Namespace set: operate in that namespace only. - NamespaceSelector set: LIST/watch across every namespace whose labels match the selector. Only valid in LIST mode (Name empty). - Both empty: for namespaced resources, operates across all namespaces; for cluster-scoped resources (Nodes, PVs, etc.), ignored.

Appears in: - ValueFrom

Field Description Default Validation
apiVersion string APIVersion of the target resource (e.g., "networking.k8s.io/v1"). MinLength: 1
Required: {}
kind string Kind of the target resource (e.g., "Ingress"). MinLength: 1
Required: {}
name string Name of the target resource. When omitted, the operator LISTs all
resources of this GVK and evaluates JSONPath over the list result.
Optional: {}
namespace string Namespace of the target resource.
When empty, namespaced resources are listed across all namespaces;
cluster-scoped resources ignore this field.
Mutually exclusive with NamespaceSelector.
Optional: {}
namespaceSelector LabelSelector NamespaceSelector matches the namespaces in which to LIST/watch the
target GVK. Only meaningful in LIST mode (Name empty). The matched
namespace set is kept current as namespaces are created, deleted, or
relabeled.
A terminating namespace is omitted, even while it still carries the labels.
Mutually exclusive with Namespace. Has no effect on cluster-scoped
target GVKs (operator surfaces an error at resolution time).
RBAC: requires the operator's ServiceAccount to have
namespaces: list, watch.
Optional: {}
jsonPath string JSONPath expression to extract the value (without curly braces).
Must start with a dot (e.g., ".metadata.name", not "{.metadata.name}").
Examples: .status.loadBalancer.ingress[0].ip, .metadata.name, .items[*].metadata.name
MinLength: 1
Required: {}

TemplateInstanceStatus#

TemplateInstanceStatus defines the observed state of TemplateInstance.

Appears in: - TemplateInstance

Field Description Default Validation
observedGeneration integer observedGeneration is the .metadata.generation the controller most recently
reconciled. A frozen sync-off instance advances it without applying the
change; the Synced condition (reason Frozen) reports that.
Optional: {}
phase TemplateInstancePhase phase summarizes the overall validation state of the Template. Enum: [Ready Failed]
Optional: {}
resolvedParameters ResolvedParameter array resolvedParameters exposes the final parameter values used for rendering
AFTER merging Template defaults and Instance overrides.
Optional: {}
renderedResources ResourceReference array renderedResources list the resources created by this TemplateInstance.
IMPORTANT:
This list contains ONLY the minimum identifying information required
to locate the rendered resources (apiVersion, kind, name, namespace).
It MUST NOT be treated as a source of truth for desired or live state,
and MUST NOT embed full object specs or status.
MaxItems: 500
Optional: {}
trackedGVKs string array trackedGVKs is the set of GroupVersionKinds this TemplateInstance has rendered. Optional: {}
matchedNamespaces string array matchedNamespaces lists the namespaces resolved by any parameter whose
objectFieldRef.namespaceSelector matched a non-empty set on the last
reconcile. Populated only when at least one such parameter exists.
Useful for debugging "why does my TI include / exclude this namespace?".
The list is bounded — selectors matching more than 100 namespaces are
truncated and the truncated set is logged.
MaxItems: 100
Optional: {}
resolvedTemplateRef ResolvedTemplateRef resolvedTemplateRef shows the exact Template used for rendering,
including its namespace and resourceVersion.
Optional: {}
conditions Condition array conditions represent the latest available observations of the TemplateInstance's state. Optional: {}
outputs object (keys:string, values:object) outputs maps each Template output field name (outer key) to a map of
rendered keyTemplate (inner key) -> extracted value. Populated from
Template.spec.outputs against this instance's rendered resources.
Optional: {}
outputsObservedAt Time outputsObservedAt is the time the output values (the outputs map) last changed.
It advances only when a resolution produces a different map than the stored one,
not on every check and not when only the OutputsResolved condition message
changes while the values are unchanged. It is a last-value-change marker, not a
liveness probe; condition status transitions are timestamped separately by the
OutputsResolved condition's own lastTransitionTime.
Optional: {}
firstAppliedAt Time firstAppliedAt is set once, at the first clean pass: every rendered
resource applied and no orphan left to dispose. A defaultValue fallback
counts as clean. With sync.mode off the instance is then frozen: no
Template, instance or valueFrom source change re-applies, and manual
edits survive. Flip the mode to revert/strict to resume.
Optional: {}

TemplateInstancePhase#

Underlying type: string

Validation: - Enum: [Ready Failed]

Appears in: - TemplateInstanceStatus

Field Description
Ready
Failed

ResolvedParameter#

ResolvedParameter records the source and optionally the value used for a parameter after merging Template defaults and Instance overrides.

Appears in: - TemplateInstanceStatus

Field Description Default Validation
name string Name of the parameter.
value string Value is the resolved parameter value. Only populated when the
Template parameter has exposeInStatus: true.
Optional: {}
valueFrom ValueFrom ValueFrom records the source that was used to resolve this parameter,
when the value came from a dynamic source (secret, configmap, resource).
MaxProperties: 1
MinProperties: 1
Optional: {}
usedDefault boolean UsedDefault is true when the parameter's valueFrom could not be read
(source missing or access denied) and the value came from defaultValue
instead. The parameters that fell back are also listed in the
ParametersValid condition message.
Optional: {}
fallbackReason FallbackReason FallbackReason categorizes why defaultValue was used. Set only when
UsedDefault is true; empty means the parameter resolved from its source.
Enum: [AccessDenied SourceNotFound ResolutionFailed]
Optional: {}

FallbackReason#

Underlying type: string

FallbackReason labels why a parameter fell back to its defaultValue. The empty value is not one of the reasons below: it means no fallback happened and the parameter resolved from its source.

Validation: - Enum: [AccessDenied SourceNotFound ResolutionFailed]

Appears in: - ResolvedParameter

Field Description
AccessDenied FallbackReasonAccessDenied: the resolving identity lacks RBAC for the
source — typically a missing RoleBinding.
SourceNotFound FallbackReasonSourceNotFound: the referenced source does not exist.
ResolutionFailed FallbackReasonResolutionFailed: any other maskable failure (e.g. a
JSONPath that matched nothing, or a namespaceSelector matching zero
namespaces).

ResourceReference#

Appears in: - TemplateInstanceStatus

Field Description Default Validation
apiVersion string apiVersion of the resource (e.g., "v1", "apps/v1") MinLength: 1
Required: {}
kind string kind of the resource (e.g, "ConfigMap, "Deployment") MinLength: 1
Required: {}
name string name of the resource MaxLength: 253
MinLength: 1
Required: {}
namespace string namespace of the resource MaxLength: 63
Optional: {}
observedGeneration integer observedGeneration is the metadata.generation of this resource
at the time it was last successfully applied by the controller.
Optional: {}
status ResourceReferenceStatus status indicates the health of this resource. Empty means successfully applied. Enum: [ Failed]
Optional: {}

ResourceReferenceStatus#

Underlying type: string

ResourceReferenceStatus indicates the health of a rendered resource.

Validation: - Enum: [ Failed]

Appears in: - ResourceReference

Field Description
``
Failed

ResolvedTemplateRef#

ResolvedTemplateRef shows the exact Template used for rendering, including its namespace and generation.

Appears in: - TemplateInstanceStatus

Field Description Default Validation
name string Name of the Template resource
namespace string Namespace where the Template resource is located
generation integer Generation of the Template which increments on spec changes