EnvironmentGroup
gitops.nyl/v1
Orchestration Resources · Download JSON Schema · Usage guide
Environments that belong together, with configuration they share.
A group selects declared Environments by their literal labels, the labels
-l matches, and names them for -g. Its fields are defaults beneath each
member’s own.
When needed
To reconcile several environments with -g <group>, or to share state,
protected refs, or values among them.
If omitted
Each Environment carries all of its own configuration.
Example
apiVersion: gitops.nyl/v1
kind: EnvironmentGroup
metadata:
name: production
spec:
driftRepair: manual
environmentSelector:
matchLabels:
stage: production
values:
cluster: prod-1
Fields
Required means required within the containing object. Optional and nullable are distinct; contextual defaults and requirements are explained with each field.
Unknown fields are rejected.
apiVersion
Required · string
API group and version defining this resource.
const: "gitops.nyl/v1"
kind
Required · string
Resource kind within the API group.
const: "EnvironmentGroup"
metadata
Required · object
Resource identity and metadata.
Unknown fields are rejected.
metadata.labels
Optional · object
Literal labels used for organization and target selection.
metadata.labels[key]
Optional · string
metadata.name
Required · string
Project-local identity, validated by the resource kind; remains static during discovery.
spec
Required · object
Configuration for this resource.
Unknown fields are rejected.
spec.admission
Optional · string or null
Default admission of the members.
Allowed values: "off" · "required" · null
spec.allowUnprotectedSource
Optional · boolean or null
Default allowUnprotectedSource of the members.
spec.driftRepair
Optional · string or null
Default driftRepair of the members.
Allowed values:
| Value | Meaning |
|---|---|
"converge" | The next reconcile executes drifted units whose recovery policy isconverge again; a drifted unit that is not safe to re-run awaitsapproval. |
"manual" | Reconcile repairs no drift by itself: drifted units stay drifteduntil nyl reconcile --unit <unit> --reapply --reason <text>. |
null |
spec.environmentSelector
Required · object
Matches literal Environment metadata.labels. Must not be empty.
Unknown fields are rejected.
spec.environmentSelector.matchLabels
Optional · object
Exact label matches, combined with AND. An empty map selects every ApplicationGroup.
spec.environmentSelector.matchLabels[key]
Optional · string
spec.protectedRefs
Optional · array or null
Default protectedRefs of the members.
spec.protectedRefs[]
Required · string
spec.state
Optional · object
Default state repository of the members.
default: {}
Unknown fields are rejected.
spec.state.repository
Optional · object or null
Inline repository coordinates holding the members’ state. Mutually exclusive with repositoryRef.
Unknown fields are rejected.
spec.state.repository.publishURL
Optional · string or null
Optional Git write URL. Publication uses repoURL when omitted.
spec.state.repository.repoURL
Required · string
Credential-free Git read URL used by renderers and generated Applications.
spec.state.repositoryRef
Optional · object or null
GitRepository holding the members’ state. Mutually exclusive with repository.
Unknown fields are rejected.
spec.state.repositoryRef.name
Required · string
Project-local name of the referenced resource; its kind and API group are determined by the containing field.
spec.values
Optional · object
Defaults beneath each member’s values; the member wins.
Additional keys may contain any value.