rancher-charts/charts/fleet-crd/104.0.1+up0.10.1/templates/crds.yaml

7070 lines
320 KiB
YAML

---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: bundledeployments.fleet.cattle.io
spec:
group: fleet.cattle.io
names:
kind: BundleDeployment
listKind: BundleDeploymentList
plural: bundledeployments
singular: bundledeployment
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.display.deployed
name: Deployed
type: string
- jsonPath: .status.display.monitored
name: Monitored
type: string
- jsonPath: .status.conditions[?(@.type=="Ready")].message
name: Status
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: 'BundleDeployment is used internally by Fleet and should not
be used directly.
When a Bundle is deployed to a cluster an instance of a Bundle is called
a
BundleDeployment. A BundleDeployment represents the state of that Bundle
on
a specific cluster with its cluster-specific customizations. The Fleet
agent
is only aware of BundleDeployment resources that are created for the cluster
the agent is managing.'
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object.
Servers should convert recognized schemas to the latest internal value,
and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource
this object represents.
Servers may infer this from the endpoint the client submits requests
to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
correctDrift:
description: CorrectDrift specifies how drift correction should
work.
properties:
enabled:
description: Enabled correct drift if true.
type: boolean
force:
description: Force helm rollback with --force option will be
used if true. This will try to recreate all resources in the
release.
type: boolean
keepFailHistory:
description: KeepFailHistory keeps track of failed rollbacks
in the helm history.
type: boolean
type: object
dependsOn:
description: DependsOn refers to the bundles which must be ready
before this bundle can be deployed.
items:
properties:
name:
description: Name of the bundle.
nullable: true
type: string
selector:
description: Selector matching bundle's labels.
nullable: true
properties:
matchExpressions:
description: matchExpressions is a list of label selector
requirements. The requirements are ANDed.
items:
description: 'A label selector requirement is a selector
that contains values, a key, and an operator that
relates the key and values.'
properties:
key:
description: key is the label key that the selector
applies to.
type: string
operator:
description: 'operator represents a key''s relationship
to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.'
type: string
values:
description: 'values is an array of string values.
If the operator is In or NotIn,
the values array must be non-empty. If the operator
is Exists or DoesNotExist,
the values array must be empty. This array is
replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value} pairs.
A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the
operator is "In", and the values array contains only
"value". The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
type: object
nullable: true
type: array
deploymentID:
description: DeploymentID is the ID of the currently applied deployment.
nullable: true
type: string
ociContents:
description: OCIContents is true when this deployment's contents
is stored in an oci registry
type: boolean
options:
description: Options are the deployment options, that are currently
applied.
properties:
correctDrift:
description: CorrectDrift specifies how drift correction should
work.
properties:
enabled:
description: Enabled correct drift if true.
type: boolean
force:
description: Force helm rollback with --force option will
be used if true. This will try to recreate all resources
in the release.
type: boolean
keepFailHistory:
description: KeepFailHistory keeps track of failed rollbacks
in the helm history.
type: boolean
type: object
defaultNamespace:
description: 'DefaultNamespace is the namespace to use for resources
that do not
specify a namespace. This field is not used to enforce or
lock down
the deployment to a specific namespace.'
nullable: true
type: string
deleteCRDResources:
description: DeleteCRDResources deletes CRDs. Warning! this
will also delete all your Custom Resources.
type: boolean
deleteNamespace:
description: DeleteNamespace can be used to delete the deployed
namespace when removing the bundle
type: boolean
diff:
description: Diff can be used to ignore the modified state of
objects which are amended at runtime.
nullable: true
properties:
comparePatches:
description: ComparePatches match a resource and remove
fields from the check for modifications.
items:
description: ComparePatch matches a resource and removes
fields from the check for modifications.
properties:
apiVersion:
description: APIVersion is the apiVersion of the resource
to match.
nullable: true
type: string
jsonPointers:
description: JSONPointers ignore diffs at a certain
JSON path.
items:
type: string
nullable: true
type: array
kind:
description: Kind is the kind of the resource to match.
nullable: true
type: string
name:
description: Name is the name of the resource to match.
nullable: true
type: string
namespace:
description: Namespace is the namespace of the resource
to match.
nullable: true
type: string
operations:
description: Operations remove a JSON path from the
resource.
items:
description: Operation of a ComparePatch, usually
"remove".
properties:
op:
description: Op is usually "remove"
nullable: true
type: string
path:
description: Path is the JSON path to remove.
nullable: true
type: string
value:
description: Value is usually empty.
nullable: true
type: string
type: object
nullable: true
type: array
type: object
nullable: true
type: array
type: object
forceSyncGeneration:
description: ForceSyncGeneration is used to force a redeployment
format: int64
type: integer
helm:
description: Helm options for the deployment, like the chart
name, repo and values.
nullable: true
properties:
atomic:
description: Atomic sets the --atomic flag when Helm is
performing an upgrade
type: boolean
chart:
description: 'Chart can refer to any go-getter URL or OCI
registry based helm
chart URL. The chart will be downloaded.'
nullable: true
type: string
disableDNS:
description: DisableDNS can be used to customize Helm's
EnableDNS option, which Fleet sets to `true` by default.
type: boolean
disableDependencyUpdate:
description: DisableDependencyUpdate allows skipping chart
dependencies update
type: boolean
disablePreProcess:
description: DisablePreProcess disables template processing
in values
type: boolean
force:
description: Force allows to override immutable resources.
This could be dangerous.
type: boolean
maxHistory:
description: MaxHistory limits the maximum number of revisions
saved per release by Helm.
type: integer
releaseName:
description: 'ReleaseName sets a custom release name to
deploy the chart as. If
not specified a release name will be generated by combining
the
invoking GitRepo.name + GitRepo.path.'
maxLength: 53
nullable: true
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
type: string
repo:
description: Repo is the name of the HTTPS helm repo to
download the chart from.
nullable: true
type: string
skipSchemaValidation:
description: SkipSchemaValidation allows skipping schema
validation against the chart values
type: boolean
takeOwnership:
description: TakeOwnership makes helm skip the check for
its own annotations
type: boolean
timeoutSeconds:
description: TimeoutSeconds is the time to wait for Helm
operations.
type: integer
values:
description: 'Values passed to Helm. It is possible to specify
the keys and values
as go template strings.'
nullable: true
type: object
x-kubernetes-preserve-unknown-fields: true
valuesFiles:
description: ValuesFiles is a list of files to load values
from.
items:
type: string
nullable: true
type: array
valuesFrom:
description: ValuesFrom loads the values from configmaps
and secrets.
items:
description: 'Define helm values that can come from configmap,
secret or external. Credit: https://github.com/fluxcd/helm-operator/blob/0cfea875b5d44bea995abe7324819432070dfbdc/pkg/apis/helm.fluxcd.io/v1/types_helmrelease.go#L439'
properties:
configMapKeyRef:
description: The reference to a config map with release
values.
nullable: true
properties:
key:
nullable: true
type: string
name:
description: Name of a resource in the same namespace
as the referent.
nullable: true
type: string
namespace:
nullable: true
type: string
type: object
secretKeyRef:
description: The reference to a secret with release
values.
nullable: true
properties:
key:
nullable: true
type: string
name:
description: Name of a resource in the same namespace
as the referent.
nullable: true
type: string
namespace:
nullable: true
type: string
type: object
type: object
nullable: true
type: array
version:
description: Version of the chart to download
nullable: true
type: string
waitForJobs:
description: 'WaitForJobs if set and timeoutSeconds provided,
will wait until all
Jobs have been completed before marking the GitRepo as
ready. It
will wait for as long as timeoutSeconds'
type: boolean
type: object
ignore:
description: IgnoreOptions can be used to ignore fields when
monitoring the bundle.
properties:
conditions:
description: Conditions is a list of conditions to be ignored
when monitoring the Bundle.
items:
additionalProperties:
type: string
type: object
nullable: true
type: array
type: object
keepResources:
description: KeepResources can be used to keep the deployed
resources when removing the bundle
type: boolean
kustomize:
description: 'Kustomize options for the deployment, like the
dir containing the
kustomization.yaml file.'
nullable: true
properties:
dir:
description: 'Dir points to a custom folder for kustomize
resources. This folder must contain
a kustomization.yaml file.'
nullable: true
type: string
type: object
namespace:
description: 'TargetNamespace if present will assign all resource
to this
namespace and if any cluster scoped resource exists the deployment
will fail.'
nullable: true
type: string
namespaceAnnotations:
additionalProperties:
type: string
description: NamespaceAnnotations are annotations that will
be appended to the namespace created by Fleet.
nullable: true
type: object
namespaceLabels:
additionalProperties:
type: string
description: NamespaceLabels are labels that will be appended
to the namespace created by Fleet.
nullable: true
type: object
serviceAccount:
description: ServiceAccount which will be used to perform this
deployment.
nullable: true
type: string
yaml:
description: 'YAML options, if using raw YAML these are names
that map to
overlays/{name} files that will be used to replace or patch
a resource.'
nullable: true
properties:
overlays:
description: 'Overlays is a list of names that maps to folders
in "overlays/".
If you wish to customize the file ./subdir/resource.yaml
then a file
./overlays/myoverlay/subdir/resource.yaml will replace
the base
file.
A file named ./overlays/myoverlay/subdir/resource_patch.yaml
will patch the base file.'
items:
type: string
nullable: true
type: array
type: object
type: object
paused:
description: 'Paused if set to true, will stop any BundleDeployments
from being
updated. If true, BundleDeployments will be marked as out of sync
when changes are detected.'
type: boolean
stagedDeploymentID:
description: StagedDeploymentID is the ID of the staged deployment.
nullable: true
type: string
stagedOptions:
description: 'StagedOptions are the deployment options, that are
staged for
the next deployment.'
properties:
correctDrift:
description: CorrectDrift specifies how drift correction should
work.
properties:
enabled:
description: Enabled correct drift if true.
type: boolean
force:
description: Force helm rollback with --force option will
be used if true. This will try to recreate all resources
in the release.
type: boolean
keepFailHistory:
description: KeepFailHistory keeps track of failed rollbacks
in the helm history.
type: boolean
type: object
defaultNamespace:
description: 'DefaultNamespace is the namespace to use for resources
that do not
specify a namespace. This field is not used to enforce or
lock down
the deployment to a specific namespace.'
nullable: true
type: string
deleteCRDResources:
description: DeleteCRDResources deletes CRDs. Warning! this
will also delete all your Custom Resources.
type: boolean
deleteNamespace:
description: DeleteNamespace can be used to delete the deployed
namespace when removing the bundle
type: boolean
diff:
description: Diff can be used to ignore the modified state of
objects which are amended at runtime.
nullable: true
properties:
comparePatches:
description: ComparePatches match a resource and remove
fields from the check for modifications.
items:
description: ComparePatch matches a resource and removes
fields from the check for modifications.
properties:
apiVersion:
description: APIVersion is the apiVersion of the resource
to match.
nullable: true
type: string
jsonPointers:
description: JSONPointers ignore diffs at a certain
JSON path.
items:
type: string
nullable: true
type: array
kind:
description: Kind is the kind of the resource to match.
nullable: true
type: string
name:
description: Name is the name of the resource to match.
nullable: true
type: string
namespace:
description: Namespace is the namespace of the resource
to match.
nullable: true
type: string
operations:
description: Operations remove a JSON path from the
resource.
items:
description: Operation of a ComparePatch, usually
"remove".
properties:
op:
description: Op is usually "remove"
nullable: true
type: string
path:
description: Path is the JSON path to remove.
nullable: true
type: string
value:
description: Value is usually empty.
nullable: true
type: string
type: object
nullable: true
type: array
type: object
nullable: true
type: array
type: object
forceSyncGeneration:
description: ForceSyncGeneration is used to force a redeployment
format: int64
type: integer
helm:
description: Helm options for the deployment, like the chart
name, repo and values.
nullable: true
properties:
atomic:
description: Atomic sets the --atomic flag when Helm is
performing an upgrade
type: boolean
chart:
description: 'Chart can refer to any go-getter URL or OCI
registry based helm
chart URL. The chart will be downloaded.'
nullable: true
type: string
disableDNS:
description: DisableDNS can be used to customize Helm's
EnableDNS option, which Fleet sets to `true` by default.
type: boolean
disableDependencyUpdate:
description: DisableDependencyUpdate allows skipping chart
dependencies update
type: boolean
disablePreProcess:
description: DisablePreProcess disables template processing
in values
type: boolean
force:
description: Force allows to override immutable resources.
This could be dangerous.
type: boolean
maxHistory:
description: MaxHistory limits the maximum number of revisions
saved per release by Helm.
type: integer
releaseName:
description: 'ReleaseName sets a custom release name to
deploy the chart as. If
not specified a release name will be generated by combining
the
invoking GitRepo.name + GitRepo.path.'
maxLength: 53
nullable: true
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
type: string
repo:
description: Repo is the name of the HTTPS helm repo to
download the chart from.
nullable: true
type: string
skipSchemaValidation:
description: SkipSchemaValidation allows skipping schema
validation against the chart values
type: boolean
takeOwnership:
description: TakeOwnership makes helm skip the check for
its own annotations
type: boolean
timeoutSeconds:
description: TimeoutSeconds is the time to wait for Helm
operations.
type: integer
values:
description: 'Values passed to Helm. It is possible to specify
the keys and values
as go template strings.'
nullable: true
type: object
x-kubernetes-preserve-unknown-fields: true
valuesFiles:
description: ValuesFiles is a list of files to load values
from.
items:
type: string
nullable: true
type: array
valuesFrom:
description: ValuesFrom loads the values from configmaps
and secrets.
items:
description: 'Define helm values that can come from configmap,
secret or external. Credit: https://github.com/fluxcd/helm-operator/blob/0cfea875b5d44bea995abe7324819432070dfbdc/pkg/apis/helm.fluxcd.io/v1/types_helmrelease.go#L439'
properties:
configMapKeyRef:
description: The reference to a config map with release
values.
nullable: true
properties:
key:
nullable: true
type: string
name:
description: Name of a resource in the same namespace
as the referent.
nullable: true
type: string
namespace:
nullable: true
type: string
type: object
secretKeyRef:
description: The reference to a secret with release
values.
nullable: true
properties:
key:
nullable: true
type: string
name:
description: Name of a resource in the same namespace
as the referent.
nullable: true
type: string
namespace:
nullable: true
type: string
type: object
type: object
nullable: true
type: array
version:
description: Version of the chart to download
nullable: true
type: string
waitForJobs:
description: 'WaitForJobs if set and timeoutSeconds provided,
will wait until all
Jobs have been completed before marking the GitRepo as
ready. It
will wait for as long as timeoutSeconds'
type: boolean
type: object
ignore:
description: IgnoreOptions can be used to ignore fields when
monitoring the bundle.
properties:
conditions:
description: Conditions is a list of conditions to be ignored
when monitoring the Bundle.
items:
additionalProperties:
type: string
type: object
nullable: true
type: array
type: object
keepResources:
description: KeepResources can be used to keep the deployed
resources when removing the bundle
type: boolean
kustomize:
description: 'Kustomize options for the deployment, like the
dir containing the
kustomization.yaml file.'
nullable: true
properties:
dir:
description: 'Dir points to a custom folder for kustomize
resources. This folder must contain
a kustomization.yaml file.'
nullable: true
type: string
type: object
namespace:
description: 'TargetNamespace if present will assign all resource
to this
namespace and if any cluster scoped resource exists the deployment
will fail.'
nullable: true
type: string
namespaceAnnotations:
additionalProperties:
type: string
description: NamespaceAnnotations are annotations that will
be appended to the namespace created by Fleet.
nullable: true
type: object
namespaceLabels:
additionalProperties:
type: string
description: NamespaceLabels are labels that will be appended
to the namespace created by Fleet.
nullable: true
type: object
serviceAccount:
description: ServiceAccount which will be used to perform this
deployment.
nullable: true
type: string
yaml:
description: 'YAML options, if using raw YAML these are names
that map to
overlays/{name} files that will be used to replace or patch
a resource.'
nullable: true
properties:
overlays:
description: 'Overlays is a list of names that maps to folders
in "overlays/".
If you wish to customize the file ./subdir/resource.yaml
then a file
./overlays/myoverlay/subdir/resource.yaml will replace
the base
file.
A file named ./overlays/myoverlay/subdir/resource_patch.yaml
will patch the base file.'
items:
type: string
nullable: true
type: array
type: object
type: object
type: object
status:
properties:
appliedDeploymentID:
nullable: true
type: string
conditions:
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one
status to another.
type: string
lastUpdateTime:
description: The last time this condition was updated.
type: string
message:
description: Human-readable message indicating details about
last transition
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False,
Unknown.
type: string
type:
description: Type of cluster condition.
type: string
required:
- status
- type
type: object
nullable: true
type: array
display:
nullable: true
properties:
deployed:
nullable: true
type: string
monitored:
nullable: true
type: string
state:
nullable: true
type: string
type: object
modifiedStatus:
items:
description: 'ModifiedStatus is used to report the status of a
resource that is modified.
It indicates if the modification was a create, a delete or a
patch.'
properties:
apiVersion:
nullable: true
type: string
delete:
type: boolean
kind:
nullable: true
type: string
missing:
type: boolean
name:
nullable: true
type: string
namespace:
nullable: true
type: string
patch:
nullable: true
type: string
type: object
nullable: true
type: array
nonModified:
type: boolean
nonReadyStatus:
items:
description: NonReadyStatus is used to report the status of a
resource that is not ready. It includes a summary.
properties:
apiVersion:
nullable: true
type: string
kind:
nullable: true
type: string
name:
nullable: true
type: string
namespace:
nullable: true
type: string
summary:
properties:
error:
type: boolean
message:
items:
type: string
type: array
state:
type: string
transitioning:
type: boolean
type: object
uid:
description: 'UID is a type that holds unique ID values, including
UUIDs. Because we
don''t ONLY use UUIDs, this is an alias to string. Being
a type captures
intent and helps make sure that UIDs and names do not get
conflated.'
nullable: true
type: string
type: object
nullable: true
type: array
ready:
type: boolean
release:
nullable: true
type: string
resources:
description: 'Resources lists the metadata of resources that were
deployed
according to the helm release history.'
items:
description: BundleDeploymentResource contains the metadata of
a deployed resource.
properties:
apiVersion:
nullable: true
type: string
createdAt:
format: date-time
nullable: true
type: string
kind:
nullable: true
type: string
name:
nullable: true
type: string
namespace:
nullable: true
type: string
type: object
nullable: true
type: array
syncGeneration:
format: int64
nullable: true
type: integer
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: bundlenamespacemappings.fleet.cattle.io
spec:
group: fleet.cattle.io
names:
kind: BundleNamespaceMapping
listKind: BundleNamespaceMappingList
plural: bundlenamespacemappings
singular: bundlenamespacemapping
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: BundleNamespaceMapping maps bundles to clusters in other namespaces.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object.
Servers should convert recognized schemas to the latest internal value,
and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
bundleSelector:
description: 'A label selector is a label query over a set of resources.
The result of matchLabels and
matchExpressions are ANDed. An empty label selector matches all objects.
A null
label selector matches no objects.'
nullable: true
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: 'A label selector requirement is a selector that
contains values, a key, and an operator that
relates the key and values.'
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: 'operator represents a key''s relationship to
a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.'
type: string
values:
description: 'values is an array of string values. If the
operator is In or NotIn,
the values array must be non-empty. If the operator is Exists
or DoesNotExist,
the values array must be empty. This array is replaced during
a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value} pairs. A single
{key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key
field is "key", the
operator is "In", and the values array contains only "value".
The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
kind:
description: 'Kind is a string value representing the REST resource
this object represents.
Servers may infer this from the endpoint the client submits requests
to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
namespaceSelector:
description: 'A label selector is a label query over a set of resources.
The result of matchLabels and
matchExpressions are ANDed. An empty label selector matches all objects.
A null
label selector matches no objects.'
nullable: true
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: 'A label selector requirement is a selector that
contains values, a key, and an operator that
relates the key and values.'
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: 'operator represents a key''s relationship to
a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.'
type: string
values:
description: 'values is an array of string values. If the
operator is In or NotIn,
the values array must be non-empty. If the operator is Exists
or DoesNotExist,
the values array must be empty. This array is replaced during
a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value} pairs. A single
{key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key
field is "key", the
operator is "In", and the values array contains only "value".
The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: bundles.fleet.cattle.io
spec:
group: fleet.cattle.io
names:
kind: Bundle
listKind: BundleList
plural: bundles
singular: bundle
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.display.readyClusters
name: BundleDeployments-Ready
type: string
- jsonPath: .status.conditions[?(@.type=="Ready")].message
name: Status
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: 'Bundle contains the resources of an application and its deployment
options.
It will be deployed as a Helm chart to target clusters.
When a GitRepo is scanned it will produce one or more bundles. Bundles
are
a collection of resources that get deployed to one or more cluster(s).
Bundle is the
fundamental deployment unit used in Fleet. The contents of a Bundle may
be
Kubernetes manifests, Kustomize configuration, or Helm charts. Regardless
of the source the contents are dynamically rendered into a Helm chart
by
the agent and installed into the downstream cluster as a Helm release.'
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object.
Servers should convert recognized schemas to the latest internal value,
and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource
this object represents.
Servers may infer this from the endpoint the client submits requests
to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
contentsId:
description: ContentsID stores the contents id when deploying contents
using an OCI registry.
nullable: true
type: string
correctDrift:
description: CorrectDrift specifies how drift correction should
work.
properties:
enabled:
description: Enabled correct drift if true.
type: boolean
force:
description: Force helm rollback with --force option will be
used if true. This will try to recreate all resources in the
release.
type: boolean
keepFailHistory:
description: KeepFailHistory keeps track of failed rollbacks
in the helm history.
type: boolean
type: object
defaultNamespace:
description: 'DefaultNamespace is the namespace to use for resources
that do not
specify a namespace. This field is not used to enforce or lock
down
the deployment to a specific namespace.'
nullable: true
type: string
deleteCRDResources:
description: DeleteCRDResources deletes CRDs. Warning! this will
also delete all your Custom Resources.
type: boolean
deleteNamespace:
description: DeleteNamespace can be used to delete the deployed
namespace when removing the bundle
type: boolean
dependsOn:
description: DependsOn refers to the bundles which must be ready
before this bundle can be deployed.
items:
properties:
name:
description: Name of the bundle.
nullable: true
type: string
selector:
description: Selector matching bundle's labels.
nullable: true
properties:
matchExpressions:
description: matchExpressions is a list of label selector
requirements. The requirements are ANDed.
items:
description: 'A label selector requirement is a selector
that contains values, a key, and an operator that
relates the key and values.'
properties:
key:
description: key is the label key that the selector
applies to.
type: string
operator:
description: 'operator represents a key''s relationship
to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.'
type: string
values:
description: 'values is an array of string values.
If the operator is In or NotIn,
the values array must be non-empty. If the operator
is Exists or DoesNotExist,
the values array must be empty. This array is
replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value} pairs.
A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the
operator is "In", and the values array contains only
"value". The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
type: object
nullable: true
type: array
diff:
description: Diff can be used to ignore the modified state of objects
which are amended at runtime.
nullable: true
properties:
comparePatches:
description: ComparePatches match a resource and remove fields
from the check for modifications.
items:
description: ComparePatch matches a resource and removes fields
from the check for modifications.
properties:
apiVersion:
description: APIVersion is the apiVersion of the resource
to match.
nullable: true
type: string
jsonPointers:
description: JSONPointers ignore diffs at a certain JSON
path.
items:
type: string
nullable: true
type: array
kind:
description: Kind is the kind of the resource to match.
nullable: true
type: string
name:
description: Name is the name of the resource to match.
nullable: true
type: string
namespace:
description: Namespace is the namespace of the resource
to match.
nullable: true
type: string
operations:
description: Operations remove a JSON path from the resource.
items:
description: Operation of a ComparePatch, usually "remove".
properties:
op:
description: Op is usually "remove"
nullable: true
type: string
path:
description: Path is the JSON path to remove.
nullable: true
type: string
value:
description: Value is usually empty.
nullable: true
type: string
type: object
nullable: true
type: array
type: object
nullable: true
type: array
type: object
forceSyncGeneration:
description: ForceSyncGeneration is used to force a redeployment
format: int64
type: integer
helm:
description: Helm options for the deployment, like the chart name,
repo and values.
nullable: true
properties:
atomic:
description: Atomic sets the --atomic flag when Helm is performing
an upgrade
type: boolean
chart:
description: 'Chart can refer to any go-getter URL or OCI registry
based helm
chart URL. The chart will be downloaded.'
nullable: true
type: string
disableDNS:
description: DisableDNS can be used to customize Helm's EnableDNS
option, which Fleet sets to `true` by default.
type: boolean
disableDependencyUpdate:
description: DisableDependencyUpdate allows skipping chart dependencies
update
type: boolean
disablePreProcess:
description: DisablePreProcess disables template processing
in values
type: boolean
force:
description: Force allows to override immutable resources. This
could be dangerous.
type: boolean
maxHistory:
description: MaxHistory limits the maximum number of revisions
saved per release by Helm.
type: integer
releaseName:
description: 'ReleaseName sets a custom release name to deploy
the chart as. If
not specified a release name will be generated by combining
the
invoking GitRepo.name + GitRepo.path.'
maxLength: 53
nullable: true
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
type: string
repo:
description: Repo is the name of the HTTPS helm repo to download
the chart from.
nullable: true
type: string
skipSchemaValidation:
description: SkipSchemaValidation allows skipping schema validation
against the chart values
type: boolean
takeOwnership:
description: TakeOwnership makes helm skip the check for its
own annotations
type: boolean
timeoutSeconds:
description: TimeoutSeconds is the time to wait for Helm operations.
type: integer
values:
description: 'Values passed to Helm. It is possible to specify
the keys and values
as go template strings.'
nullable: true
type: object
x-kubernetes-preserve-unknown-fields: true
valuesFiles:
description: ValuesFiles is a list of files to load values from.
items:
type: string
nullable: true
type: array
valuesFrom:
description: ValuesFrom loads the values from configmaps and
secrets.
items:
description: 'Define helm values that can come from configmap,
secret or external. Credit: https://github.com/fluxcd/helm-operator/blob/0cfea875b5d44bea995abe7324819432070dfbdc/pkg/apis/helm.fluxcd.io/v1/types_helmrelease.go#L439'
properties:
configMapKeyRef:
description: The reference to a config map with release
values.
nullable: true
properties:
key:
nullable: true
type: string
name:
description: Name of a resource in the same namespace
as the referent.
nullable: true
type: string
namespace:
nullable: true
type: string
type: object
secretKeyRef:
description: The reference to a secret with release values.
nullable: true
properties:
key:
nullable: true
type: string
name:
description: Name of a resource in the same namespace
as the referent.
nullable: true
type: string
namespace:
nullable: true
type: string
type: object
type: object
nullable: true
type: array
version:
description: Version of the chart to download
nullable: true
type: string
waitForJobs:
description: 'WaitForJobs if set and timeoutSeconds provided,
will wait until all
Jobs have been completed before marking the GitRepo as ready.
It
will wait for as long as timeoutSeconds'
type: boolean
type: object
ignore:
description: IgnoreOptions can be used to ignore fields when monitoring
the bundle.
properties:
conditions:
description: Conditions is a list of conditions to be ignored
when monitoring the Bundle.
items:
additionalProperties:
type: string
type: object
nullable: true
type: array
type: object
keepResources:
description: KeepResources can be used to keep the deployed resources
when removing the bundle
type: boolean
kustomize:
description: 'Kustomize options for the deployment, like the dir
containing the
kustomization.yaml file.'
nullable: true
properties:
dir:
description: 'Dir points to a custom folder for kustomize resources.
This folder must contain
a kustomization.yaml file.'
nullable: true
type: string
type: object
namespace:
description: 'TargetNamespace if present will assign all resource
to this
namespace and if any cluster scoped resource exists the deployment
will fail.'
nullable: true
type: string
namespaceAnnotations:
additionalProperties:
type: string
description: NamespaceAnnotations are annotations that will be appended
to the namespace created by Fleet.
nullable: true
type: object
namespaceLabels:
additionalProperties:
type: string
description: NamespaceLabels are labels that will be appended to
the namespace created by Fleet.
nullable: true
type: object
paused:
description: Paused if set to true, will stop any BundleDeployments
from being updated. It will be marked as out of sync.
type: boolean
resources:
description: 'Resources contains the resources that were read from
the bundle''s
path. This includes the content of downloaded helm charts.'
items:
description: BundleResource represents the content of a single
resource from the bundle, like a YAML manifest.
properties:
content:
description: The content of the resource, can be compressed.
nullable: true
type: string
encoding:
description: Encoding is either empty or "base64+gz".
nullable: true
type: string
name:
description: Name of the resource, can include the bundle's
internal path.
nullable: true
type: string
type: object
nullable: true
type: array
rolloutStrategy:
description: 'RolloutStrategy controls the rollout of bundles, by
defining
partitions, canaries and percentages for cluster availability.'
nullable: true
properties:
autoPartitionSize:
anyOf:
- type: integer
- type: string
description: 'A number or percentage of how to automatically
partition clusters if no
specific partitioning strategy is configured.
default: 25%'
nullable: true
x-kubernetes-int-or-string: true
maxUnavailable:
anyOf:
- type: integer
- type: string
description: 'A number or percentage of clusters that can be
unavailable during an update
of a bundle. This follows the same basic approach as a deployment
rollout
strategy. Once the number of clusters meets unavailable state
update will be
paused. Default value is 100% which doesn''t take effect on
update.
default: 100%'
nullable: true
x-kubernetes-int-or-string: true
maxUnavailablePartitions:
anyOf:
- type: integer
- type: string
description: 'A number or percentage of cluster partitions that
can be unavailable during
an update of a bundle.
default: 0'
nullable: true
x-kubernetes-int-or-string: true
partitions:
description: 'A list of definitions of partitions. If any target
clusters do not match
the configuration they are added to partitions at the end
following the
autoPartitionSize.'
items:
description: Partition defines a separate rollout strategy
for a set of clusters.
properties:
clusterGroup:
description: A cluster group name to include in this partition
type: string
clusterGroupSelector:
description: Selector matching cluster group labels to
include in this partition
nullable: true
properties:
matchExpressions:
description: matchExpressions is a list of label selector
requirements. The requirements are ANDed.
items:
description: 'A label selector requirement is a
selector that contains values, a key, and an operator
that
relates the key and values.'
properties:
key:
description: key is the label key that the selector
applies to.
type: string
operator:
description: 'operator represents a key''s relationship
to a set of values.
Valid operators are In, NotIn, Exists and
DoesNotExist.'
type: string
values:
description: 'values is an array of string values.
If the operator is In or NotIn,
the values array must be non-empty. If the
operator is Exists or DoesNotExist,
the values array must be empty. This array
is replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the
operator is "In", and the values array contains
only "value". The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
clusterName:
description: ClusterName is the name of a cluster to include
in this partition
type: string
clusterSelector:
description: Selector matching cluster labels to include
in this partition
properties:
matchExpressions:
description: matchExpressions is a list of label selector
requirements. The requirements are ANDed.
items:
description: 'A label selector requirement is a
selector that contains values, a key, and an operator
that
relates the key and values.'
properties:
key:
description: key is the label key that the selector
applies to.
type: string
operator:
description: 'operator represents a key''s relationship
to a set of values.
Valid operators are In, NotIn, Exists and
DoesNotExist.'
type: string
values:
description: 'values is an array of string values.
If the operator is In or NotIn,
the values array must be non-empty. If the
operator is Exists or DoesNotExist,
the values array must be empty. This array
is replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the
operator is "In", and the values array contains
only "value". The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
maxUnavailable:
anyOf:
- type: integer
- type: string
description: 'A number or percentage of clusters that
can be unavailable in this
partition before this partition is treated as done.
default: 10%'
x-kubernetes-int-or-string: true
name:
description: A user-friendly name given to the partition
used for Display (optional).
nullable: true
type: string
type: object
nullable: true
type: array
type: object
serviceAccount:
description: ServiceAccount which will be used to perform this deployment.
nullable: true
type: string
targetRestrictions:
description: TargetRestrictions is an allow list, which controls
if a bundledeployment is created for a target.
items:
description: 'BundleTargetRestriction is used internally by Fleet
and should not be modified.
It acts as an allow list, to prevent the creation of BundleDeployments
from
Targets created by TargetCustomizations in fleet.yaml.'
properties:
clusterGroup:
nullable: true
type: string
clusterGroupSelector:
description: 'A label selector is a label query over a set
of resources. The result of matchLabels and
matchExpressions are ANDed. An empty label selector matches
all objects. A null
label selector matches no objects.'
nullable: true
properties:
matchExpressions:
description: matchExpressions is a list of label selector
requirements. The requirements are ANDed.
items:
description: 'A label selector requirement is a selector
that contains values, a key, and an operator that
relates the key and values.'
properties:
key:
description: key is the label key that the selector
applies to.
type: string
operator:
description: 'operator represents a key''s relationship
to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.'
type: string
values:
description: 'values is an array of string values.
If the operator is In or NotIn,
the values array must be non-empty. If the operator
is Exists or DoesNotExist,
the values array must be empty. This array is
replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value} pairs.
A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the
operator is "In", and the values array contains only
"value". The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
clusterName:
nullable: true
type: string
clusterSelector:
description: 'A label selector is a label query over a set
of resources. The result of matchLabels and
matchExpressions are ANDed. An empty label selector matches
all objects. A null
label selector matches no objects.'
nullable: true
properties:
matchExpressions:
description: matchExpressions is a list of label selector
requirements. The requirements are ANDed.
items:
description: 'A label selector requirement is a selector
that contains values, a key, and an operator that
relates the key and values.'
properties:
key:
description: key is the label key that the selector
applies to.
type: string
operator:
description: 'operator represents a key''s relationship
to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.'
type: string
values:
description: 'values is an array of string values.
If the operator is In or NotIn,
the values array must be non-empty. If the operator
is Exists or DoesNotExist,
the values array must be empty. This array is
replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value} pairs.
A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the
operator is "In", and the values array contains only
"value". The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
name:
nullable: true
type: string
type: object
type: array
targets:
description: 'Targets refer to the clusters which will be deployed
to.
Targets are evaluated in order and the first one to match is used.'
items:
description: 'BundleTarget declares clusters to deploy to. Fleet
will merge the
BundleDeploymentOptions from customizations into this struct.'
properties:
clusterGroup:
description: ClusterGroup to match a specific cluster group
by name.
nullable: true
type: string
clusterGroupSelector:
description: ClusterGroupSelector is a selector to match cluster
groups.
nullable: true
properties:
matchExpressions:
description: matchExpressions is a list of label selector
requirements. The requirements are ANDed.
items:
description: 'A label selector requirement is a selector
that contains values, a key, and an operator that
relates the key and values.'
properties:
key:
description: key is the label key that the selector
applies to.
type: string
operator:
description: 'operator represents a key''s relationship
to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.'
type: string
values:
description: 'values is an array of string values.
If the operator is In or NotIn,
the values array must be non-empty. If the operator
is Exists or DoesNotExist,
the values array must be empty. This array is
replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value} pairs.
A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the
operator is "In", and the values array contains only
"value". The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
clusterName:
description: 'ClusterName to match a specific cluster by name
that will be
selected'
nullable: true
type: string
clusterSelector:
description: 'ClusterSelector is a selector to match clusters.
The structure is
the standard metav1.LabelSelector format. If clusterGroupSelector
or
clusterGroup is specified, clusterSelector will be used
only to
further refine the selection after clusterGroupSelector
and
clusterGroup is evaluated.'
nullable: true
properties:
matchExpressions:
description: matchExpressions is a list of label selector
requirements. The requirements are ANDed.
items:
description: 'A label selector requirement is a selector
that contains values, a key, and an operator that
relates the key and values.'
properties:
key:
description: key is the label key that the selector
applies to.
type: string
operator:
description: 'operator represents a key''s relationship
to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.'
type: string
values:
description: 'values is an array of string values.
If the operator is In or NotIn,
the values array must be non-empty. If the operator
is Exists or DoesNotExist,
the values array must be empty. This array is
replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value} pairs.
A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the
operator is "In", and the values array contains only
"value". The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
correctDrift:
description: CorrectDrift specifies how drift correction should
work.
properties:
enabled:
description: Enabled correct drift if true.
type: boolean
force:
description: Force helm rollback with --force option will
be used if true. This will try to recreate all resources
in the release.
type: boolean
keepFailHistory:
description: KeepFailHistory keeps track of failed rollbacks
in the helm history.
type: boolean
type: object
defaultNamespace:
description: 'DefaultNamespace is the namespace to use for
resources that do not
specify a namespace. This field is not used to enforce or
lock down
the deployment to a specific namespace.'
nullable: true
type: string
deleteCRDResources:
description: DeleteCRDResources deletes CRDs. Warning! this
will also delete all your Custom Resources.
type: boolean
deleteNamespace:
description: DeleteNamespace can be used to delete the deployed
namespace when removing the bundle
type: boolean
diff:
description: Diff can be used to ignore the modified state
of objects which are amended at runtime.
nullable: true
properties:
comparePatches:
description: ComparePatches match a resource and remove
fields from the check for modifications.
items:
description: ComparePatch matches a resource and removes
fields from the check for modifications.
properties:
apiVersion:
description: APIVersion is the apiVersion of the
resource to match.
nullable: true
type: string
jsonPointers:
description: JSONPointers ignore diffs at a certain
JSON path.
items:
type: string
nullable: true
type: array
kind:
description: Kind is the kind of the resource to
match.
nullable: true
type: string
name:
description: Name is the name of the resource to
match.
nullable: true
type: string
namespace:
description: Namespace is the namespace of the resource
to match.
nullable: true
type: string
operations:
description: Operations remove a JSON path from
the resource.
items:
description: Operation of a ComparePatch, usually
"remove".
properties:
op:
description: Op is usually "remove"
nullable: true
type: string
path:
description: Path is the JSON path to remove.
nullable: true
type: string
value:
description: Value is usually empty.
nullable: true
type: string
type: object
nullable: true
type: array
type: object
nullable: true
type: array
type: object
doNotDeploy:
description: DoNotDeploy if set to true, will not deploy to
this target.
type: boolean
forceSyncGeneration:
description: ForceSyncGeneration is used to force a redeployment
format: int64
type: integer
helm:
description: Helm options for the deployment, like the chart
name, repo and values.
nullable: true
properties:
atomic:
description: Atomic sets the --atomic flag when Helm is
performing an upgrade
type: boolean
chart:
description: 'Chart can refer to any go-getter URL or
OCI registry based helm
chart URL. The chart will be downloaded.'
nullable: true
type: string
disableDNS:
description: DisableDNS can be used to customize Helm's
EnableDNS option, which Fleet sets to `true` by default.
type: boolean
disableDependencyUpdate:
description: DisableDependencyUpdate allows skipping chart
dependencies update
type: boolean
disablePreProcess:
description: DisablePreProcess disables template processing
in values
type: boolean
force:
description: Force allows to override immutable resources.
This could be dangerous.
type: boolean
maxHistory:
description: MaxHistory limits the maximum number of revisions
saved per release by Helm.
type: integer
releaseName:
description: 'ReleaseName sets a custom release name to
deploy the chart as. If
not specified a release name will be generated by combining
the
invoking GitRepo.name + GitRepo.path.'
maxLength: 53
nullable: true
pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
type: string
repo:
description: Repo is the name of the HTTPS helm repo to
download the chart from.
nullable: true
type: string
skipSchemaValidation:
description: SkipSchemaValidation allows skipping schema
validation against the chart values
type: boolean
takeOwnership:
description: TakeOwnership makes helm skip the check for
its own annotations
type: boolean
timeoutSeconds:
description: TimeoutSeconds is the time to wait for Helm
operations.
type: integer
values:
description: 'Values passed to Helm. It is possible to
specify the keys and values
as go template strings.'
nullable: true
type: object
x-kubernetes-preserve-unknown-fields: true
valuesFiles:
description: ValuesFiles is a list of files to load values
from.
items:
type: string
nullable: true
type: array
valuesFrom:
description: ValuesFrom loads the values from configmaps
and secrets.
items:
description: 'Define helm values that can come from
configmap, secret or external. Credit: https://github.com/fluxcd/helm-operator/blob/0cfea875b5d44bea995abe7324819432070dfbdc/pkg/apis/helm.fluxcd.io/v1/types_helmrelease.go#L439'
properties:
configMapKeyRef:
description: The reference to a config map with
release values.
nullable: true
properties:
key:
nullable: true
type: string
name:
description: Name of a resource in the same
namespace as the referent.
nullable: true
type: string
namespace:
nullable: true
type: string
type: object
secretKeyRef:
description: The reference to a secret with release
values.
nullable: true
properties:
key:
nullable: true
type: string
name:
description: Name of a resource in the same
namespace as the referent.
nullable: true
type: string
namespace:
nullable: true
type: string
type: object
type: object
nullable: true
type: array
version:
description: Version of the chart to download
nullable: true
type: string
waitForJobs:
description: 'WaitForJobs if set and timeoutSeconds provided,
will wait until all
Jobs have been completed before marking the GitRepo
as ready. It
will wait for as long as timeoutSeconds'
type: boolean
type: object
ignore:
description: IgnoreOptions can be used to ignore fields when
monitoring the bundle.
properties:
conditions:
description: Conditions is a list of conditions to be
ignored when monitoring the Bundle.
items:
additionalProperties:
type: string
type: object
nullable: true
type: array
type: object
keepResources:
description: KeepResources can be used to keep the deployed
resources when removing the bundle
type: boolean
kustomize:
description: 'Kustomize options for the deployment, like the
dir containing the
kustomization.yaml file.'
nullable: true
properties:
dir:
description: 'Dir points to a custom folder for kustomize
resources. This folder must contain
a kustomization.yaml file.'
nullable: true
type: string
type: object
name:
description: 'Name of target. This value is largely for display
and logging. If
not specified a default name of the format "target000" will
be used'
type: string
namespace:
description: 'TargetNamespace if present will assign all resource
to this
namespace and if any cluster scoped resource exists the
deployment
will fail.'
nullable: true
type: string
namespaceAnnotations:
additionalProperties:
type: string
description: NamespaceAnnotations are annotations that will
be appended to the namespace created by Fleet.
nullable: true
type: object
namespaceLabels:
additionalProperties:
type: string
description: NamespaceLabels are labels that will be appended
to the namespace created by Fleet.
nullable: true
type: object
serviceAccount:
description: ServiceAccount which will be used to perform
this deployment.
nullable: true
type: string
yaml:
description: 'YAML options, if using raw YAML these are names
that map to
overlays/{name} files that will be used to replace or patch
a resource.'
nullable: true
properties:
overlays:
description: 'Overlays is a list of names that maps to
folders in "overlays/".
If you wish to customize the file ./subdir/resource.yaml
then a file
./overlays/myoverlay/subdir/resource.yaml will replace
the base
file.
A file named ./overlays/myoverlay/subdir/resource_patch.yaml
will patch the base file.'
items:
type: string
nullable: true
type: array
type: object
type: object
type: array
yaml:
description: 'YAML options, if using raw YAML these are names that
map to
overlays/{name} files that will be used to replace or patch a
resource.'
nullable: true
properties:
overlays:
description: 'Overlays is a list of names that maps to folders
in "overlays/".
If you wish to customize the file ./subdir/resource.yaml then
a file
./overlays/myoverlay/subdir/resource.yaml will replace the
base
file.
A file named ./overlays/myoverlay/subdir/resource_patch.yaml
will patch the base file.'
items:
type: string
nullable: true
type: array
type: object
type: object
status:
properties:
conditions:
description: 'Conditions is a list of Wrangler conditions that describe
the state
of the bundle.'
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one
status to another.
type: string
lastUpdateTime:
description: The last time this condition was updated.
type: string
message:
description: Human-readable message indicating details about
last transition
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False,
Unknown.
type: string
type:
description: Type of cluster condition.
type: string
required:
- status
- type
type: object
type: array
display:
description: 'Display contains the number of ready, desiredready
clusters and a
summary state for the bundle''s resources.'
properties:
readyClusters:
description: 'ReadyClusters is a string in the form "%d/%d",
that describes the
number of clusters that are ready vs. the number of clusters
desired
to be ready.'
nullable: true
type: string
state:
description: State is a summary state for the bundle, calculated
over the non-ready resources.
nullable: true
type: string
type: object
maxNew:
description: 'MaxNew is always 50. A bundle change can only stage
50
bundledeployments at a time.'
type: integer
maxUnavailable:
description: 'MaxUnavailable is the maximum number of unavailable
deployments. See
rollout configuration.'
type: integer
maxUnavailablePartitions:
description: 'MaxUnavailablePartitions is the maximum number of
unavailable
partitions. The rollout configuration defines a maximum number
or
percentage of unavailable partitions.'
type: integer
newlyCreated:
description: 'NewlyCreated is the number of bundle deployments that
have been created,
not updated.'
type: integer
observedGeneration:
description: ObservedGeneration is the current generation of the
bundle.
format: int64
type: integer
ociReference:
description: 'OCIReference is the OCI reference used to store contents,
this is
only for informational purposes.'
type: string
partitions:
description: PartitionStatus lists the status of each partition.
items:
description: PartitionStatus is the status of a single rollout
partition.
properties:
count:
description: Count is the number of clusters in the partition.
type: integer
maxUnavailable:
description: MaxUnavailable is the maximum number of unavailable
clusters in the partition.
type: integer
name:
description: Name is the name of the partition.
nullable: true
type: string
summary:
description: Summary is a summary state for the partition,
calculated over its non-ready resources.
properties:
desiredReady:
description: 'DesiredReady is the number of bundle deployments
that should be
ready.'
type: integer
errApplied:
description: 'ErrApplied is the number of bundle deployments
that have been synced
from the Fleet controller and the downstream cluster,
but with some
errors when deploying the bundle.'
type: integer
modified:
description: 'Modified is the number of bundle deployments
that have been deployed
and for which all resources are ready, but where some
changes from the
Git repository have not yet been synced.'
type: integer
nonReadyResources:
description: 'NonReadyClusters is a list of states, which
is filled for a bundle
that is not ready.'
items:
description: 'NonReadyResource contains information
about a bundle that is not ready for a
given state like "ErrApplied". It contains a list
of non-ready or modified
resources and their states.'
properties:
bundleState:
description: State is the state of the resource,
like e.g. "NotReady" or "ErrApplied".
nullable: true
type: string
message:
description: Message contains information why the
bundle is not ready.
nullable: true
type: string
modifiedStatus:
description: ModifiedStatus lists the state for
each modified resource.
items:
description: 'ModifiedStatus is used to report
the status of a resource that is modified.
It indicates if the modification was a create,
a delete or a patch.'
properties:
apiVersion:
nullable: true
type: string
delete:
type: boolean
kind:
nullable: true
type: string
missing:
type: boolean
name:
nullable: true
type: string
namespace:
nullable: true
type: string
patch:
nullable: true
type: string
type: object
nullable: true
type: array
name:
description: Name is the name of the resource.
nullable: true
type: string
nonReadyStatus:
description: NonReadyStatus lists the state for
each non-ready resource.
items:
description: NonReadyStatus is used to report
the status of a resource that is not ready.
It includes a summary.
properties:
apiVersion:
nullable: true
type: string
kind:
nullable: true
type: string
name:
nullable: true
type: string
namespace:
nullable: true
type: string
summary:
properties:
error:
type: boolean
message:
items:
type: string
type: array
state:
type: string
transitioning:
type: boolean
type: object
uid:
description: 'UID is a type that holds unique
ID values, including UUIDs. Because we
don''t ONLY use UUIDs, this is an alias
to string. Being a type captures
intent and helps make sure that UIDs and
names do not get conflated.'
nullable: true
type: string
type: object
nullable: true
type: array
type: object
nullable: true
type: array
notReady:
description: 'NotReady is the number of bundle deployments
that have been deployed
where some resources are not ready.'
type: integer
outOfSync:
description: 'OutOfSync is the number of bundle deployments
that have been synced
from Fleet controller, but not yet by the downstream
agent.'
type: integer
pending:
description: 'Pending is the number of bundle deployments
that are being processed
by Fleet controller.'
type: integer
ready:
description: 'Ready is the number of bundle deployments
that have been deployed
where all resources are ready.'
type: integer
waitApplied:
description: 'WaitApplied is the number of bundle deployments
that have been
synced from Fleet controller and downstream cluster,
but are waiting
to be deployed.'
type: integer
type: object
unavailable:
description: Unavailable is the number of unavailable clusters
in the partition.
type: integer
type: object
type: array
resourceKey:
description: 'ResourceKey lists resources, which will likely be
deployed. The
actual list of resources on a cluster might differ, depending
on the
helm chart, value templating, etc..'
items:
description: ResourceKey lists resources, which will likely be
deployed.
properties:
apiVersion:
description: APIVersion is the k8s api version of the resource.
nullable: true
type: string
kind:
description: Kind is the k8s api kind of the resource.
nullable: true
type: string
name:
description: Name is the name of the resource.
nullable: true
type: string
namespace:
description: Namespace is the namespace of the resource.
nullable: true
type: string
type: object
nullable: true
type: array
resourcesSha256Sum:
description: ResourcesSHA256Sum corresponds to the JSON serialization
of the .Spec.Resources field
type: string
summary:
description: 'Summary contains the number of bundle deployments
in each state and
a list of non-ready resources.'
properties:
desiredReady:
description: 'DesiredReady is the number of bundle deployments
that should be
ready.'
type: integer
errApplied:
description: 'ErrApplied is the number of bundle deployments
that have been synced
from the Fleet controller and the downstream cluster, but
with some
errors when deploying the bundle.'
type: integer
modified:
description: 'Modified is the number of bundle deployments that
have been deployed
and for which all resources are ready, but where some changes
from the
Git repository have not yet been synced.'
type: integer
nonReadyResources:
description: 'NonReadyClusters is a list of states, which is
filled for a bundle
that is not ready.'
items:
description: 'NonReadyResource contains information about
a bundle that is not ready for a
given state like "ErrApplied". It contains a list of non-ready
or modified
resources and their states.'
properties:
bundleState:
description: State is the state of the resource, like
e.g. "NotReady" or "ErrApplied".
nullable: true
type: string
message:
description: Message contains information why the bundle
is not ready.
nullable: true
type: string
modifiedStatus:
description: ModifiedStatus lists the state for each modified
resource.
items:
description: 'ModifiedStatus is used to report the status
of a resource that is modified.
It indicates if the modification was a create, a delete
or a patch.'
properties:
apiVersion:
nullable: true
type: string
delete:
type: boolean
kind:
nullable: true
type: string
missing:
type: boolean
name:
nullable: true
type: string
namespace:
nullable: true
type: string
patch:
nullable: true
type: string
type: object
nullable: true
type: array
name:
description: Name is the name of the resource.
nullable: true
type: string
nonReadyStatus:
description: NonReadyStatus lists the state for each non-ready
resource.
items:
description: NonReadyStatus is used to report the status
of a resource that is not ready. It includes a summary.
properties:
apiVersion:
nullable: true
type: string
kind:
nullable: true
type: string
name:
nullable: true
type: string
namespace:
nullable: true
type: string
summary:
properties:
error:
type: boolean
message:
items:
type: string
type: array
state:
type: string
transitioning:
type: boolean
type: object
uid:
description: 'UID is a type that holds unique ID
values, including UUIDs. Because we
don''t ONLY use UUIDs, this is an alias to string. Being
a type captures
intent and helps make sure that UIDs and names
do not get conflated.'
nullable: true
type: string
type: object
nullable: true
type: array
type: object
nullable: true
type: array
notReady:
description: 'NotReady is the number of bundle deployments that
have been deployed
where some resources are not ready.'
type: integer
outOfSync:
description: 'OutOfSync is the number of bundle deployments
that have been synced
from Fleet controller, but not yet by the downstream agent.'
type: integer
pending:
description: 'Pending is the number of bundle deployments that
are being processed
by Fleet controller.'
type: integer
ready:
description: 'Ready is the number of bundle deployments that
have been deployed
where all resources are ready.'
type: integer
waitApplied:
description: 'WaitApplied is the number of bundle deployments
that have been
synced from Fleet controller and downstream cluster, but are
waiting
to be deployed.'
type: integer
type: object
unavailable:
description: 'Unavailable is the number of bundle deployments that
are not ready or
where the AppliedDeploymentID in the status does not match the
DeploymentID from the spec.'
type: integer
unavailablePartitions:
description: UnavailablePartitions is the number of unavailable
partitions.
type: integer
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: clustergroups.fleet.cattle.io
spec:
group: fleet.cattle.io
names:
categories:
- fleet
kind: ClusterGroup
listKind: ClusterGroupList
plural: clustergroups
singular: clustergroup
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.display.readyClusters
name: Clusters-Ready
type: string
- jsonPath: .status.display.readyBundles
name: Bundles-Ready
type: string
- jsonPath: .status.conditions[?(@.type=="Ready")].message
name: Status
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: ClusterGroup is a re-usable selector to target a group of clusters.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object.
Servers should convert recognized schemas to the latest internal value,
and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource
this object represents.
Servers may infer this from the endpoint the client submits requests
to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
selector:
description: Selector is a label selector, used to select clusters
for this group.
nullable: true
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: 'A label selector requirement is a selector that
contains values, a key, and an operator that
relates the key and values.'
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: 'operator represents a key''s relationship
to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.'
type: string
values:
description: 'values is an array of string values. If
the operator is In or NotIn,
the values array must be non-empty. If the operator
is Exists or DoesNotExist,
the values array must be empty. This array is replaced
during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value} pairs. A single
{key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose
key field is "key", the
operator is "In", and the values array contains only "value".
The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
type: object
status:
properties:
clusterCount:
description: ClusterCount is the number of clusters in the cluster
group.
type: integer
conditions:
description: Conditions is a list of conditions and their statuses
for the cluster group.
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one
status to another.
type: string
lastUpdateTime:
description: The last time this condition was updated.
type: string
message:
description: Human-readable message indicating details about
last transition
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False,
Unknown.
type: string
type:
description: Type of cluster condition.
type: string
required:
- status
- type
type: object
type: array
display:
description: 'Display contains the number of ready, desiredready
clusters and a
summary state for the bundle''s resources.'
properties:
readyBundles:
description: 'ReadyBundles is a string in the form "%d/%d",
that describes the
number of bundles that are ready vs. the number of bundles
desired
to be ready.'
nullable: true
type: string
readyClusters:
description: 'ReadyClusters is a string in the form "%d/%d",
that describes the
number of clusters that are ready vs. the number of clusters
desired
to be ready.'
nullable: true
type: string
state:
description: 'State is a summary state for the cluster group,
showing "NotReady" if
there are non-ready resources.'
nullable: true
type: string
type: object
nonReadyClusterCount:
description: NonReadyClusterCount is the number of clusters that
are not ready.
type: integer
nonReadyClusters:
description: NonReadyClusters is a list of cluster names that are
not ready.
items:
type: string
nullable: true
type: array
resourceCounts:
description: 'ResourceCounts contains the number of resources in
each state over
all bundles in the cluster group.'
properties:
desiredReady:
description: DesiredReady is the number of resources that should
be ready.
type: integer
missing:
description: Missing is the number of missing resources.
type: integer
modified:
description: Modified is the number of resources that have been
modified.
type: integer
notReady:
description: 'NotReady is the number of not ready resources.
Resources are not
ready if they do not match any other state.'
type: integer
orphaned:
description: Orphaned is the number of orphaned resources.
type: integer
ready:
description: Ready is the number of ready resources.
type: integer
unknown:
description: Unknown is the number of resources in an unknown
state.
type: integer
waitApplied:
description: WaitApplied is the number of resources that are
waiting to be applied.
type: integer
type: object
summary:
description: 'Summary is a summary of the bundle deployments and
their resources
in the cluster group.'
properties:
desiredReady:
description: 'DesiredReady is the number of bundle deployments
that should be
ready.'
type: integer
errApplied:
description: 'ErrApplied is the number of bundle deployments
that have been synced
from the Fleet controller and the downstream cluster, but
with some
errors when deploying the bundle.'
type: integer
modified:
description: 'Modified is the number of bundle deployments that
have been deployed
and for which all resources are ready, but where some changes
from the
Git repository have not yet been synced.'
type: integer
nonReadyResources:
description: 'NonReadyClusters is a list of states, which is
filled for a bundle
that is not ready.'
items:
description: 'NonReadyResource contains information about
a bundle that is not ready for a
given state like "ErrApplied". It contains a list of non-ready
or modified
resources and their states.'
properties:
bundleState:
description: State is the state of the resource, like
e.g. "NotReady" or "ErrApplied".
nullable: true
type: string
message:
description: Message contains information why the bundle
is not ready.
nullable: true
type: string
modifiedStatus:
description: ModifiedStatus lists the state for each modified
resource.
items:
description: 'ModifiedStatus is used to report the status
of a resource that is modified.
It indicates if the modification was a create, a delete
or a patch.'
properties:
apiVersion:
nullable: true
type: string
delete:
type: boolean
kind:
nullable: true
type: string
missing:
type: boolean
name:
nullable: true
type: string
namespace:
nullable: true
type: string
patch:
nullable: true
type: string
type: object
nullable: true
type: array
name:
description: Name is the name of the resource.
nullable: true
type: string
nonReadyStatus:
description: NonReadyStatus lists the state for each non-ready
resource.
items:
description: NonReadyStatus is used to report the status
of a resource that is not ready. It includes a summary.
properties:
apiVersion:
nullable: true
type: string
kind:
nullable: true
type: string
name:
nullable: true
type: string
namespace:
nullable: true
type: string
summary:
properties:
error:
type: boolean
message:
items:
type: string
type: array
state:
type: string
transitioning:
type: boolean
type: object
uid:
description: 'UID is a type that holds unique ID
values, including UUIDs. Because we
don''t ONLY use UUIDs, this is an alias to string. Being
a type captures
intent and helps make sure that UIDs and names
do not get conflated.'
nullable: true
type: string
type: object
nullable: true
type: array
type: object
nullable: true
type: array
notReady:
description: 'NotReady is the number of bundle deployments that
have been deployed
where some resources are not ready.'
type: integer
outOfSync:
description: 'OutOfSync is the number of bundle deployments
that have been synced
from Fleet controller, but not yet by the downstream agent.'
type: integer
pending:
description: 'Pending is the number of bundle deployments that
are being processed
by Fleet controller.'
type: integer
ready:
description: 'Ready is the number of bundle deployments that
have been deployed
where all resources are ready.'
type: integer
waitApplied:
description: 'WaitApplied is the number of bundle deployments
that have been
synced from Fleet controller and downstream cluster, but are
waiting
to be deployed.'
type: integer
type: object
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: clusterregistrations.fleet.cattle.io
spec:
group: fleet.cattle.io
names:
kind: ClusterRegistration
listKind: ClusterRegistrationList
plural: clusterregistrations
singular: clusterregistration
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.clusterName
name: Cluster-Name
type: string
- jsonPath: .spec.clusterLabels
name: Labels
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: ClusterRegistration is used internally by Fleet and should
not be used directly.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object.
Servers should convert recognized schemas to the latest internal value,
and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource
this object represents.
Servers may infer this from the endpoint the client submits requests
to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
clientID:
description: 'ClientID is a unique string that will identify the
cluster. The
agent either uses the configured ID or the kubeSystem.UID.'
nullable: true
type: string
clientRandom:
description: 'ClientRandom is a random string that the agent generates.
When
fleet-controller grants a registration, it creates a registration
secret with this string in the name.'
nullable: true
type: string
clusterLabels:
additionalProperties:
type: string
description: ClusterLabels are copied to the cluster resource during
the registration.
nullable: true
type: object
type: object
status:
properties:
clusterName:
description: 'ClusterName is only set after the registration is
being processed by
fleet-controller.'
nullable: true
type: string
granted:
description: 'Granted is set to true, if the request service account
is present
and its token secret exists. This happens directly before creating
the registration secret, roles and rolebindings.'
type: boolean
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: clusterregistrationtokens.fleet.cattle.io
spec:
group: fleet.cattle.io
names:
kind: ClusterRegistrationToken
listKind: ClusterRegistrationTokenList
plural: clusterregistrationtokens
singular: clusterregistrationtoken
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.secretName
name: Secret-Name
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: ClusterRegistrationToken is used by agents to register a new
cluster.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object.
Servers should convert recognized schemas to the latest internal value,
and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource
this object represents.
Servers may infer this from the endpoint the client submits requests
to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
ttl:
description: 'TTL is the time to live for the token. It is used
to calculate the
expiration time. If the token expires, it will be deleted.'
nullable: true
type: string
type: object
status:
properties:
expires:
description: Expires is the time when the token expires.
format: date-time
type: string
secretName:
description: SecretName is the name of the secret containing the
token.
nullable: true
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: clusters.fleet.cattle.io
spec:
group: fleet.cattle.io
names:
kind: Cluster
listKind: ClusterList
plural: clusters
singular: cluster
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.display.readyBundles
name: Bundles-Ready
type: string
- jsonPath: .status.agent.lastSeen
name: Last-Seen
type: string
- jsonPath: .status.conditions[?(@.type=="Ready")].message
name: Status
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: 'Cluster corresponds to a Kubernetes cluster. Fleet deploys
bundles to targeted clusters.
Clusters to which Fleet deploys manifests are referred to as downstream
clusters. In the single cluster use case, the Fleet manager Kubernetes
cluster is both the manager and downstream cluster at the same time.'
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object.
Servers should convert recognized schemas to the latest internal value,
and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource
this object represents.
Servers may infer this from the endpoint the client submits requests
to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
agentAffinity:
description: 'AgentAffinity overrides the default affinity for the
cluster''s agent
deployment. If this value is nil the default affinity is used.'
nullable: true
properties:
nodeAffinity:
description: Describes node affinity scheduling rules for the
pod.
properties:
preferredDuringSchedulingIgnoredDuringExecution:
description: 'The scheduler will prefer to schedule pods
to nodes that satisfy
the affinity expressions specified by this field, but
it may choose
a node that violates one or more of the expressions. The
node that is
most preferred is the one with the greatest sum of weights,
i.e.
for each node that meets all of the scheduling requirements
(resource
request, requiredDuringScheduling affinity expressions,
etc.),
compute a sum by iterating through the elements of this
field and adding
"weight" to the sum if the node matches the corresponding
matchExpressions; the
node(s) with the highest sum are the most preferred.'
items:
description: 'An empty preferred scheduling term matches
all objects with implicit weight 0
(i.e. it''s a no-op). A null preferred scheduling term
matches no objects (i.e. is also a no-op).'
properties:
preference:
description: A node selector term, associated with
the corresponding weight.
properties:
matchExpressions:
description: A list of node selector requirements
by node's labels.
items:
description: 'A node selector requirement is
a selector that contains values, a key, and
an operator
that relates the key and values.'
properties:
key:
description: The label key that the selector
applies to.
type: string
operator:
description: 'Represents a key''s relationship
to a set of values.
Valid operators are In, NotIn, Exists,
DoesNotExist. Gt, and Lt.'
type: string
values:
description: 'An array of string values.
If the operator is In or NotIn,
the values array must be non-empty. If
the operator is Exists or DoesNotExist,
the values array must be empty. If the
operator is Gt or Lt, the values
array must have a single element, which
will be interpreted as an integer.
This array is replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchFields:
description: A list of node selector requirements
by node's fields.
items:
description: 'A node selector requirement is
a selector that contains values, a key, and
an operator
that relates the key and values.'
properties:
key:
description: The label key that the selector
applies to.
type: string
operator:
description: 'Represents a key''s relationship
to a set of values.
Valid operators are In, NotIn, Exists,
DoesNotExist. Gt, and Lt.'
type: string
values:
description: 'An array of string values.
If the operator is In or NotIn,
the values array must be non-empty. If
the operator is Exists or DoesNotExist,
the values array must be empty. If the
operator is Gt or Lt, the values
array must have a single element, which
will be interpreted as an integer.
This array is replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
type: object
x-kubernetes-map-type: atomic
weight:
description: Weight associated with matching the corresponding
nodeSelectorTerm, in the range 1-100.
format: int32
type: integer
required:
- preference
- weight
type: object
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
description: 'If the affinity requirements specified by
this field are not met at
scheduling time, the pod will not be scheduled onto the
node.
If the affinity requirements specified by this field cease
to be met
at some point during pod execution (e.g. due to an update),
the system
may or may not try to eventually evict the pod from its
node.'
properties:
nodeSelectorTerms:
description: Required. A list of node selector terms.
The terms are ORed.
items:
description: 'A null or empty node selector term matches
no objects. The requirements of
them are ANDed.
The TopologySelectorTerm type implements a subset
of the NodeSelectorTerm.'
properties:
matchExpressions:
description: A list of node selector requirements
by node's labels.
items:
description: 'A node selector requirement is
a selector that contains values, a key, and
an operator
that relates the key and values.'
properties:
key:
description: The label key that the selector
applies to.
type: string
operator:
description: 'Represents a key''s relationship
to a set of values.
Valid operators are In, NotIn, Exists,
DoesNotExist. Gt, and Lt.'
type: string
values:
description: 'An array of string values.
If the operator is In or NotIn,
the values array must be non-empty. If
the operator is Exists or DoesNotExist,
the values array must be empty. If the
operator is Gt or Lt, the values
array must have a single element, which
will be interpreted as an integer.
This array is replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchFields:
description: A list of node selector requirements
by node's fields.
items:
description: 'A node selector requirement is
a selector that contains values, a key, and
an operator
that relates the key and values.'
properties:
key:
description: The label key that the selector
applies to.
type: string
operator:
description: 'Represents a key''s relationship
to a set of values.
Valid operators are In, NotIn, Exists,
DoesNotExist. Gt, and Lt.'
type: string
values:
description: 'An array of string values.
If the operator is In or NotIn,
the values array must be non-empty. If
the operator is Exists or DoesNotExist,
the values array must be empty. If the
operator is Gt or Lt, the values
array must have a single element, which
will be interpreted as an integer.
This array is replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
type: object
x-kubernetes-map-type: atomic
type: array
x-kubernetes-list-type: atomic
required:
- nodeSelectorTerms
type: object
x-kubernetes-map-type: atomic
type: object
podAffinity:
description: Describes pod affinity scheduling rules (e.g. co-locate
this pod in the same node, zone, etc. as some other pod(s)).
properties:
preferredDuringSchedulingIgnoredDuringExecution:
description: 'The scheduler will prefer to schedule pods
to nodes that satisfy
the affinity expressions specified by this field, but
it may choose
a node that violates one or more of the expressions. The
node that is
most preferred is the one with the greatest sum of weights,
i.e.
for each node that meets all of the scheduling requirements
(resource
request, requiredDuringScheduling affinity expressions,
etc.),
compute a sum by iterating through the elements of this
field and adding
"weight" to the sum if the node has pods which matches
the corresponding podAffinityTerm; the
node(s) with the highest sum are the most preferred.'
items:
description: The weights of all of the matched WeightedPodAffinityTerm
fields are added per-node to find the most preferred
node(s)
properties:
podAffinityTerm:
description: Required. A pod affinity term, associated
with the corresponding weight.
properties:
labelSelector:
description: 'A label query over a set of resources,
in this case pods.
If it''s null, this PodAffinityTerm matches
with no Pods.'
properties:
matchExpressions:
description: matchExpressions is a list of
label selector requirements. The requirements
are ANDed.
items:
description: 'A label selector requirement
is a selector that contains values, a
key, and an operator that
relates the key and values.'
properties:
key:
description: key is the label key that
the selector applies to.
type: string
operator:
description: 'operator represents a
key''s relationship to a set of values.
Valid operators are In, NotIn, Exists
and DoesNotExist.'
type: string
values:
description: 'values is an array of
string values. If the operator is
In or NotIn,
the values array must be non-empty.
If the operator is Exists or DoesNotExist,
the values array must be empty. This
array is replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the
operator is "In", and the values array contains
only "value". The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
matchLabelKeys:
description: 'MatchLabelKeys is a set of pod label
keys to select which pods will
be taken into consideration. The keys are used
to lookup values from the
incoming pod labels, those key-value labels
are merged with `labelSelector` as `key in (value)`
to select the group of existing pods which pods
will be taken into consideration
for the incoming pod''s pod (anti) affinity.
Keys that don''t exist in the incoming
pod labels will be ignored. The default value
is empty.
The same key is forbidden to exist in both matchLabelKeys
and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector
isn''t set.
This is an alpha field and requires enabling
MatchLabelKeysInPodAffinity feature gate.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
mismatchLabelKeys:
description: 'MismatchLabelKeys is a set of pod
label keys to select which pods will
be taken into consideration. The keys are used
to lookup values from the
incoming pod labels, those key-value labels
are merged with `labelSelector` as `key notin
(value)`
to select the group of existing pods which pods
will be taken into consideration
for the incoming pod''s pod (anti) affinity.
Keys that don''t exist in the incoming
pod labels will be ignored. The default value
is empty.
The same key is forbidden to exist in both mismatchLabelKeys
and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector
isn''t set.
This is an alpha field and requires enabling
MatchLabelKeysInPodAffinity feature gate.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
namespaceSelector:
description: 'A label query over the set of namespaces
that the term applies to.
The term is applied to the union of the namespaces
selected by this field
and the ones listed in the namespaces field.
null selector and null or empty namespaces list
means "this pod''s namespace".
An empty selector ({}) matches all namespaces.'
properties:
matchExpressions:
description: matchExpressions is a list of
label selector requirements. The requirements
are ANDed.
items:
description: 'A label selector requirement
is a selector that contains values, a
key, and an operator that
relates the key and values.'
properties:
key:
description: key is the label key that
the selector applies to.
type: string
operator:
description: 'operator represents a
key''s relationship to a set of values.
Valid operators are In, NotIn, Exists
and DoesNotExist.'
type: string
values:
description: 'values is an array of
string values. If the operator is
In or NotIn,
the values array must be non-empty.
If the operator is Exists or DoesNotExist,
the values array must be empty. This
array is replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the
operator is "In", and the values array contains
only "value". The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
namespaces:
description: 'namespaces specifies a static list
of namespace names that the term applies to.
The term is applied to the union of the namespaces
listed in this field
and the ones selected by namespaceSelector.
null or empty namespaces list and null namespaceSelector
means "this pod''s namespace".'
items:
type: string
type: array
x-kubernetes-list-type: atomic
topologyKey:
description: 'This pod should be co-located (affinity)
or not co-located (anti-affinity) with the pods
matching
the labelSelector in the specified namespaces,
where co-located is defined as running on a
node
whose value of the label with key topologyKey
matches that of any node on which any of the
selected pods is running.
Empty topologyKey is not allowed.'
type: string
required:
- topologyKey
type: object
weight:
description: 'weight associated with matching the
corresponding podAffinityTerm,
in the range 1-100.'
format: int32
type: integer
required:
- podAffinityTerm
- weight
type: object
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
description: 'If the affinity requirements specified by
this field are not met at
scheduling time, the pod will not be scheduled onto the
node.
If the affinity requirements specified by this field cease
to be met
at some point during pod execution (e.g. due to a pod
label update), the
system may or may not try to eventually evict the pod
from its node.
When there are multiple elements, the lists of nodes corresponding
to each
podAffinityTerm are intersected, i.e. all terms must be
satisfied.'
items:
description: 'Defines a set of pods (namely those matching
the labelSelector
relative to the given namespace(s)) that this pod should
be
co-located (affinity) or not co-located (anti-affinity)
with,
where co-located is defined as running on a node whose
value of
the label with key <topologyKey> matches that of any
node on which
a pod of the set of pods is running'
properties:
labelSelector:
description: 'A label query over a set of resources,
in this case pods.
If it''s null, this PodAffinityTerm matches with
no Pods.'
properties:
matchExpressions:
description: matchExpressions is a list of label
selector requirements. The requirements are
ANDed.
items:
description: 'A label selector requirement is
a selector that contains values, a key, and
an operator that
relates the key and values.'
properties:
key:
description: key is the label key that the
selector applies to.
type: string
operator:
description: 'operator represents a key''s
relationship to a set of values.
Valid operators are In, NotIn, Exists
and DoesNotExist.'
type: string
values:
description: 'values is an array of string
values. If the operator is In or NotIn,
the values array must be non-empty. If
the operator is Exists or DoesNotExist,
the values array must be empty. This array
is replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the
operator is "In", and the values array contains
only "value". The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
matchLabelKeys:
description: 'MatchLabelKeys is a set of pod label
keys to select which pods will
be taken into consideration. The keys are used to
lookup values from the
incoming pod labels, those key-value labels are
merged with `labelSelector` as `key in (value)`
to select the group of existing pods which pods
will be taken into consideration
for the incoming pod''s pod (anti) affinity. Keys
that don''t exist in the incoming
pod labels will be ignored. The default value is
empty.
The same key is forbidden to exist in both matchLabelKeys
and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector
isn''t set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity
feature gate.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
mismatchLabelKeys:
description: 'MismatchLabelKeys is a set of pod label
keys to select which pods will
be taken into consideration. The keys are used to
lookup values from the
incoming pod labels, those key-value labels are
merged with `labelSelector` as `key notin (value)`
to select the group of existing pods which pods
will be taken into consideration
for the incoming pod''s pod (anti) affinity. Keys
that don''t exist in the incoming
pod labels will be ignored. The default value is
empty.
The same key is forbidden to exist in both mismatchLabelKeys
and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector
isn''t set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity
feature gate.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
namespaceSelector:
description: 'A label query over the set of namespaces
that the term applies to.
The term is applied to the union of the namespaces
selected by this field
and the ones listed in the namespaces field.
null selector and null or empty namespaces list
means "this pod''s namespace".
An empty selector ({}) matches all namespaces.'
properties:
matchExpressions:
description: matchExpressions is a list of label
selector requirements. The requirements are
ANDed.
items:
description: 'A label selector requirement is
a selector that contains values, a key, and
an operator that
relates the key and values.'
properties:
key:
description: key is the label key that the
selector applies to.
type: string
operator:
description: 'operator represents a key''s
relationship to a set of values.
Valid operators are In, NotIn, Exists
and DoesNotExist.'
type: string
values:
description: 'values is an array of string
values. If the operator is In or NotIn,
the values array must be non-empty. If
the operator is Exists or DoesNotExist,
the values array must be empty. This array
is replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the
operator is "In", and the values array contains
only "value". The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
namespaces:
description: 'namespaces specifies a static list of
namespace names that the term applies to.
The term is applied to the union of the namespaces
listed in this field
and the ones selected by namespaceSelector.
null or empty namespaces list and null namespaceSelector
means "this pod''s namespace".'
items:
type: string
type: array
x-kubernetes-list-type: atomic
topologyKey:
description: 'This pod should be co-located (affinity)
or not co-located (anti-affinity) with the pods
matching
the labelSelector in the specified namespaces, where
co-located is defined as running on a node
whose value of the label with key topologyKey matches
that of any node on which any of the
selected pods is running.
Empty topologyKey is not allowed.'
type: string
required:
- topologyKey
type: object
type: array
x-kubernetes-list-type: atomic
type: object
podAntiAffinity:
description: Describes pod anti-affinity scheduling rules (e.g.
avoid putting this pod in the same node, zone, etc. as some
other pod(s)).
properties:
preferredDuringSchedulingIgnoredDuringExecution:
description: 'The scheduler will prefer to schedule pods
to nodes that satisfy
the anti-affinity expressions specified by this field,
but it may choose
a node that violates one or more of the expressions. The
node that is
most preferred is the one with the greatest sum of weights,
i.e.
for each node that meets all of the scheduling requirements
(resource
request, requiredDuringScheduling anti-affinity expressions,
etc.),
compute a sum by iterating through the elements of this
field and adding
"weight" to the sum if the node has pods which matches
the corresponding podAffinityTerm; the
node(s) with the highest sum are the most preferred.'
items:
description: The weights of all of the matched WeightedPodAffinityTerm
fields are added per-node to find the most preferred
node(s)
properties:
podAffinityTerm:
description: Required. A pod affinity term, associated
with the corresponding weight.
properties:
labelSelector:
description: 'A label query over a set of resources,
in this case pods.
If it''s null, this PodAffinityTerm matches
with no Pods.'
properties:
matchExpressions:
description: matchExpressions is a list of
label selector requirements. The requirements
are ANDed.
items:
description: 'A label selector requirement
is a selector that contains values, a
key, and an operator that
relates the key and values.'
properties:
key:
description: key is the label key that
the selector applies to.
type: string
operator:
description: 'operator represents a
key''s relationship to a set of values.
Valid operators are In, NotIn, Exists
and DoesNotExist.'
type: string
values:
description: 'values is an array of
string values. If the operator is
In or NotIn,
the values array must be non-empty.
If the operator is Exists or DoesNotExist,
the values array must be empty. This
array is replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the
operator is "In", and the values array contains
only "value". The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
matchLabelKeys:
description: 'MatchLabelKeys is a set of pod label
keys to select which pods will
be taken into consideration. The keys are used
to lookup values from the
incoming pod labels, those key-value labels
are merged with `labelSelector` as `key in (value)`
to select the group of existing pods which pods
will be taken into consideration
for the incoming pod''s pod (anti) affinity.
Keys that don''t exist in the incoming
pod labels will be ignored. The default value
is empty.
The same key is forbidden to exist in both matchLabelKeys
and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector
isn''t set.
This is an alpha field and requires enabling
MatchLabelKeysInPodAffinity feature gate.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
mismatchLabelKeys:
description: 'MismatchLabelKeys is a set of pod
label keys to select which pods will
be taken into consideration. The keys are used
to lookup values from the
incoming pod labels, those key-value labels
are merged with `labelSelector` as `key notin
(value)`
to select the group of existing pods which pods
will be taken into consideration
for the incoming pod''s pod (anti) affinity.
Keys that don''t exist in the incoming
pod labels will be ignored. The default value
is empty.
The same key is forbidden to exist in both mismatchLabelKeys
and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector
isn''t set.
This is an alpha field and requires enabling
MatchLabelKeysInPodAffinity feature gate.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
namespaceSelector:
description: 'A label query over the set of namespaces
that the term applies to.
The term is applied to the union of the namespaces
selected by this field
and the ones listed in the namespaces field.
null selector and null or empty namespaces list
means "this pod''s namespace".
An empty selector ({}) matches all namespaces.'
properties:
matchExpressions:
description: matchExpressions is a list of
label selector requirements. The requirements
are ANDed.
items:
description: 'A label selector requirement
is a selector that contains values, a
key, and an operator that
relates the key and values.'
properties:
key:
description: key is the label key that
the selector applies to.
type: string
operator:
description: 'operator represents a
key''s relationship to a set of values.
Valid operators are In, NotIn, Exists
and DoesNotExist.'
type: string
values:
description: 'values is an array of
string values. If the operator is
In or NotIn,
the values array must be non-empty.
If the operator is Exists or DoesNotExist,
the values array must be empty. This
array is replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the
operator is "In", and the values array contains
only "value". The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
namespaces:
description: 'namespaces specifies a static list
of namespace names that the term applies to.
The term is applied to the union of the namespaces
listed in this field
and the ones selected by namespaceSelector.
null or empty namespaces list and null namespaceSelector
means "this pod''s namespace".'
items:
type: string
type: array
x-kubernetes-list-type: atomic
topologyKey:
description: 'This pod should be co-located (affinity)
or not co-located (anti-affinity) with the pods
matching
the labelSelector in the specified namespaces,
where co-located is defined as running on a
node
whose value of the label with key topologyKey
matches that of any node on which any of the
selected pods is running.
Empty topologyKey is not allowed.'
type: string
required:
- topologyKey
type: object
weight:
description: 'weight associated with matching the
corresponding podAffinityTerm,
in the range 1-100.'
format: int32
type: integer
required:
- podAffinityTerm
- weight
type: object
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
description: 'If the anti-affinity requirements specified
by this field are not met at
scheduling time, the pod will not be scheduled onto the
node.
If the anti-affinity requirements specified by this field
cease to be met
at some point during pod execution (e.g. due to a pod
label update), the
system may or may not try to eventually evict the pod
from its node.
When there are multiple elements, the lists of nodes corresponding
to each
podAffinityTerm are intersected, i.e. all terms must be
satisfied.'
items:
description: 'Defines a set of pods (namely those matching
the labelSelector
relative to the given namespace(s)) that this pod should
be
co-located (affinity) or not co-located (anti-affinity)
with,
where co-located is defined as running on a node whose
value of
the label with key <topologyKey> matches that of any
node on which
a pod of the set of pods is running'
properties:
labelSelector:
description: 'A label query over a set of resources,
in this case pods.
If it''s null, this PodAffinityTerm matches with
no Pods.'
properties:
matchExpressions:
description: matchExpressions is a list of label
selector requirements. The requirements are
ANDed.
items:
description: 'A label selector requirement is
a selector that contains values, a key, and
an operator that
relates the key and values.'
properties:
key:
description: key is the label key that the
selector applies to.
type: string
operator:
description: 'operator represents a key''s
relationship to a set of values.
Valid operators are In, NotIn, Exists
and DoesNotExist.'
type: string
values:
description: 'values is an array of string
values. If the operator is In or NotIn,
the values array must be non-empty. If
the operator is Exists or DoesNotExist,
the values array must be empty. This array
is replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the
operator is "In", and the values array contains
only "value". The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
matchLabelKeys:
description: 'MatchLabelKeys is a set of pod label
keys to select which pods will
be taken into consideration. The keys are used to
lookup values from the
incoming pod labels, those key-value labels are
merged with `labelSelector` as `key in (value)`
to select the group of existing pods which pods
will be taken into consideration
for the incoming pod''s pod (anti) affinity. Keys
that don''t exist in the incoming
pod labels will be ignored. The default value is
empty.
The same key is forbidden to exist in both matchLabelKeys
and labelSelector.
Also, matchLabelKeys cannot be set when labelSelector
isn''t set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity
feature gate.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
mismatchLabelKeys:
description: 'MismatchLabelKeys is a set of pod label
keys to select which pods will
be taken into consideration. The keys are used to
lookup values from the
incoming pod labels, those key-value labels are
merged with `labelSelector` as `key notin (value)`
to select the group of existing pods which pods
will be taken into consideration
for the incoming pod''s pod (anti) affinity. Keys
that don''t exist in the incoming
pod labels will be ignored. The default value is
empty.
The same key is forbidden to exist in both mismatchLabelKeys
and labelSelector.
Also, mismatchLabelKeys cannot be set when labelSelector
isn''t set.
This is an alpha field and requires enabling MatchLabelKeysInPodAffinity
feature gate.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
namespaceSelector:
description: 'A label query over the set of namespaces
that the term applies to.
The term is applied to the union of the namespaces
selected by this field
and the ones listed in the namespaces field.
null selector and null or empty namespaces list
means "this pod''s namespace".
An empty selector ({}) matches all namespaces.'
properties:
matchExpressions:
description: matchExpressions is a list of label
selector requirements. The requirements are
ANDed.
items:
description: 'A label selector requirement is
a selector that contains values, a key, and
an operator that
relates the key and values.'
properties:
key:
description: key is the label key that the
selector applies to.
type: string
operator:
description: 'operator represents a key''s
relationship to a set of values.
Valid operators are In, NotIn, Exists
and DoesNotExist.'
type: string
values:
description: 'values is an array of string
values. If the operator is In or NotIn,
the values array must be non-empty. If
the operator is Exists or DoesNotExist,
the values array must be empty. This array
is replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the
operator is "In", and the values array contains
only "value". The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
namespaces:
description: 'namespaces specifies a static list of
namespace names that the term applies to.
The term is applied to the union of the namespaces
listed in this field
and the ones selected by namespaceSelector.
null or empty namespaces list and null namespaceSelector
means "this pod''s namespace".'
items:
type: string
type: array
x-kubernetes-list-type: atomic
topologyKey:
description: 'This pod should be co-located (affinity)
or not co-located (anti-affinity) with the pods
matching
the labelSelector in the specified namespaces, where
co-located is defined as running on a node
whose value of the label with key topologyKey matches
that of any node on which any of the
selected pods is running.
Empty topologyKey is not allowed.'
type: string
required:
- topologyKey
type: object
type: array
x-kubernetes-list-type: atomic
type: object
type: object
agentEnvVars:
description: AgentEnvVars are extra environment variables to be
added to the agent deployment.
items:
description: EnvVar represents an environment variable present
in a Container.
properties:
name:
description: Name of the environment variable. Must be a C_IDENTIFIER.
type: string
value:
description: 'Variable references $(VAR_NAME) are expanded
using the previously defined environment variables in the
container and
any service environment variables. If a variable cannot
be resolved,
the reference in the input string will be unchanged. Double
$$ are reduced
to a single $, which allows for escaping the $(VAR_NAME)
syntax: i.e.
"$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
Escaped references will never be expanded, regardless of
whether the variable
exists or not.
Defaults to "".'
type: string
valueFrom:
description: Source for the environment variable's value.
Cannot be used if value is not empty.
properties:
configMapKeyRef:
description: Selects a key of a ConfigMap.
properties:
key:
description: The key to select.
type: string
name:
default: ''
description: 'Name of the referent.
This field is effectively required, but due to backwards
compatibility is
allowed to be empty. Instances of this type with
an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind,
uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen
doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.'
type: string
optional:
description: Specify whether the ConfigMap or its
key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
fieldRef:
description: 'Selects a field of the pod: supports metadata.name,
metadata.namespace, `metadata.labels[''<KEY>'']`, `metadata.annotations[''<KEY>'']`,
spec.nodeName, spec.serviceAccountName, status.hostIP,
status.podIP, status.podIPs.'
properties:
apiVersion:
description: Version of the schema the FieldPath is
written in terms of, defaults to "v1".
type: string
fieldPath:
description: Path of the field to select in the specified
API version.
type: string
required:
- fieldPath
type: object
x-kubernetes-map-type: atomic
resourceFieldRef:
description: 'Selects a resource of the container: only
resources limits and requests
(limits.cpu, limits.memory, limits.ephemeral-storage,
requests.cpu, requests.memory and requests.ephemeral-storage)
are currently supported.'
properties:
containerName:
description: 'Container name: required for volumes,
optional for env vars'
type: string
divisor:
anyOf:
- type: integer
- type: string
description: Specifies the output format of the exposed
resources, defaults to "1"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
resource:
description: 'Required: resource to select'
type: string
required:
- resource
type: object
x-kubernetes-map-type: atomic
secretKeyRef:
description: Selects a key of a secret in the pod's namespace
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
default: ''
description: 'Name of the referent.
This field is effectively required, but due to backwards
compatibility is
allowed to be empty. Instances of this type with
an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind,
uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen
doesn''t need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.'
type: string
optional:
description: Specify whether the Secret or its key
must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
required:
- name
type: object
nullable: true
type: array
agentNamespace:
description: AgentNamespace defaults to the system namespace, e.g.
cattle-fleet-system.
nullable: true
type: string
agentResources:
description: AgentResources sets the resources for the cluster's
agent deployment.
nullable: true
properties:
claims:
description: 'Claims lists the names of resources, defined in
spec.resourceClaims,
that are used by this container.
This is an alpha field and requires enabling the
DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.'
items:
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
properties:
name:
description: 'Name must match the name of one entry in
pod.spec.resourceClaims of
the Pod where this field is used. It makes that resource
available
inside a container.'
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: 'Limits describes the maximum amount of compute
resources allowed.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: 'Requests describes the minimum amount of compute
resources required.
If Requests is omitted for a container, it defaults to Limits
if that is explicitly specified,
otherwise to an implementation-defined value. Requests cannot
exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
type: object
type: object
agentTolerations:
description: AgentTolerations defines an extra set of Tolerations
to be added to the Agent deployment.
items:
description: 'The pod this Toleration is attached to tolerates
any taint that matches
the triple <key,value,effect> using the matching operator <operator>.'
properties:
effect:
description: 'Effect indicates the taint effect to match.
Empty means match all taint effects.
When specified, allowed values are NoSchedule, PreferNoSchedule
and NoExecute.'
type: string
key:
description: 'Key is the taint key that the toleration applies
to. Empty means match all taint keys.
If the key is empty, operator must be Exists; this combination
means to match all values and all keys.'
type: string
operator:
description: 'Operator represents a key''s relationship to
the value.
Valid operators are Exists and Equal. Defaults to Equal.
Exists is equivalent to wildcard for value, so that a pod
can
tolerate all taints of a particular category.'
type: string
tolerationSeconds:
description: 'TolerationSeconds represents the period of time
the toleration (which must be
of effect NoExecute, otherwise this field is ignored) tolerates
the taint. By default,
it is not set, which means tolerate the taint forever (do
not evict). Zero and
negative values will be treated as 0 (evict immediately)
by the system.'
format: int64
type: integer
value:
description: 'Value is the taint value the toleration matches
to.
If the operator is Exists, the value should be empty, otherwise
just a regular string.'
type: string
type: object
nullable: true
type: array
clientID:
description: 'ClientID is a unique string that will identify the
cluster. It can
either be predefined, or generated when importing the cluster.'
nullable: true
type: string
hostNetwork:
description: 'HostNetwork sets the agent StatefulSet to use hostNetwork:
true setting.
Allows for provisioning of network related bundles (CNI configuration).'
nullable: true
type: boolean
kubeConfigSecret:
description: 'KubeConfigSecret is the name of the secret containing
the kubeconfig for the downstream cluster.
It can optionally contain a APIServerURL and CA to override the
values in the fleet-controller''s configmap.'
nullable: true
type: string
kubeConfigSecretNamespace:
description: 'KubeConfigSecretNamespace is the namespace of the
secret containing the kubeconfig for the downstream cluster.
If unset, it will be assumed the secret can be found in the namespace
that the Cluster object resides within.'
nullable: true
type: string
paused:
description: Paused if set to true, will stop any BundleDeployments
from being updated.
type: boolean
privateRepoURL:
description: PrivateRepoURL prefixes the image name and overrides
a global repo URL from the agents config.
nullable: true
type: string
redeployAgentGeneration:
description: RedeployAgentGeneration can be used to force redeploying
the agent.
format: int64
type: integer
templateValues:
description: TemplateValues defines a cluster specific mapping of
values to be sent to fleet.yaml values templating.
nullable: true
type: object
x-kubernetes-preserve-unknown-fields: true
type: object
status:
properties:
agent:
description: AgentStatus contains information about the agent.
properties:
lastSeen:
description: 'LastSeen is the last time the agent checked in
to update the status
of the cluster resource.'
format: date-time
nullable: true
type: string
namespace:
description: Namespace is the namespace of the agent deployment,
e.g. "cattle-fleet-system".
nullable: true
type: string
type: object
agentAffinityHash:
description: 'AgentAffinityHash is a hash of the agent''s affinity
configuration,
used to detect changes.'
type: string
agentConfigChanged:
description: 'AgentConfigChanged is set to true if any of the agent
configuration
changed, like the API server URL or CA. Setting it to true will
trigger a re-import of the cluster.'
type: boolean
agentDeployedGeneration:
description: AgentDeployedGeneration is the generation of the agent
that is currently deployed.
format: int64
nullable: true
type: integer
agentEnvVarsHash:
description: AgentEnvVarsHash is a hash of the agent's env vars,
used to detect changes.
nullable: true
type: string
agentHostNetwork:
description: AgentHostNetwork defines observed state of spec.hostNetwork
setting that is currently used.
nullable: true
type: boolean
agentMigrated:
description: 'AgentMigrated is always set to true after importing
a cluster. If
false, it will trigger a migration. Old agents don''t have
this in their status.'
type: boolean
agentNamespaceMigrated:
description: 'AgentNamespaceMigrated is always set to true after
importing a
cluster. If false, it will trigger a migration. Old Fleet agents
don''t have this in their status.'
type: boolean
agentPrivateRepoURL:
description: AgentPrivateRepoURL is the private repo URL for the
agent that is currently used.
nullable: true
type: string
agentResourcesHash:
description: 'AgentResourcesHash is a hash of the agent''s resources
configuration,
used to detect changes.'
nullable: true
type: string
agentTLSMode:
description: 'AgentTLSMode supports two values: `system-store` and
`strict`. If set to
`system-store`, instructs the agent to trust CA bundles from the
operating
system''s store. If set to `strict`, then the agent shall only
connect to a
server which uses the exact CA configured when creating/updating
the agent.'
nullable: true
type: string
agentTolerationsHash:
description: 'AgentTolerationsHash is a hash of the agent''s tolerations
configuration, used to detect changes.'
nullable: true
type: string
apiServerCAHash:
description: APIServerCAHash is a hash of the upstream API server
CA, used to detect changes.
nullable: true
type: string
apiServerURL:
description: 'APIServerURL is the currently used URL of the API
server that the
cluster uses to connect to upstream.'
nullable: true
type: string
cattleNamespaceMigrated:
description: 'CattleNamespaceMigrated is always set to true after
importing a
cluster. If false, it will trigger a migration. Old Fleet agents,
don''t have this in their status.'
type: boolean
conditions:
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one
status to another.
type: string
lastUpdateTime:
description: The last time this condition was updated.
type: string
message:
description: Human-readable message indicating details about
last transition
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False,
Unknown.
type: string
type:
description: Type of cluster condition.
type: string
required:
- status
- type
type: object
type: array
desiredReadyGitRepos:
description: 'DesiredReadyGitRepos is the number of gitrepos for
this cluster that
are desired to be ready.'
type: integer
display:
description: Display contains the number of ready bundles, nodes
and a summary state.
properties:
readyBundles:
description: 'ReadyBundles is a string in the form "%d/%d",
that describes the
number of bundles that are ready vs. the number of bundles
desired
to be ready.'
type: string
state:
description: State of the cluster, either one of the bundle
states, or "WaitCheckIn".
nullable: true
type: string
type: object
namespace:
description: 'Namespace is the cluster namespace, it contains the
clusters service
account as well as any bundledeployments. Example:
"cluster-fleet-local-cluster-294db1acfa77-d9ccf852678f"'
type: string
readyGitRepos:
description: ReadyGitRepos is the number of gitrepos for this cluster
that are ready.
type: integer
resourceCounts:
description: ResourceCounts is an aggregate over the GitRepoResourceCounts.
properties:
desiredReady:
description: DesiredReady is the number of resources that should
be ready.
type: integer
missing:
description: Missing is the number of missing resources.
type: integer
modified:
description: Modified is the number of resources that have been
modified.
type: integer
notReady:
description: 'NotReady is the number of not ready resources.
Resources are not
ready if they do not match any other state.'
type: integer
orphaned:
description: Orphaned is the number of orphaned resources.
type: integer
ready:
description: Ready is the number of ready resources.
type: integer
unknown:
description: Unknown is the number of resources in an unknown
state.
type: integer
waitApplied:
description: WaitApplied is the number of resources that are
waiting to be applied.
type: integer
type: object
summary:
description: 'Summary is a summary of the bundledeployments. The
resource counts
are copied from the gitrepo resource.'
properties:
desiredReady:
description: 'DesiredReady is the number of bundle deployments
that should be
ready.'
type: integer
errApplied:
description: 'ErrApplied is the number of bundle deployments
that have been synced
from the Fleet controller and the downstream cluster, but
with some
errors when deploying the bundle.'
type: integer
modified:
description: 'Modified is the number of bundle deployments that
have been deployed
and for which all resources are ready, but where some changes
from the
Git repository have not yet been synced.'
type: integer
nonReadyResources:
description: 'NonReadyClusters is a list of states, which is
filled for a bundle
that is not ready.'
items:
description: 'NonReadyResource contains information about
a bundle that is not ready for a
given state like "ErrApplied". It contains a list of non-ready
or modified
resources and their states.'
properties:
bundleState:
description: State is the state of the resource, like
e.g. "NotReady" or "ErrApplied".
nullable: true
type: string
message:
description: Message contains information why the bundle
is not ready.
nullable: true
type: string
modifiedStatus:
description: ModifiedStatus lists the state for each modified
resource.
items:
description: 'ModifiedStatus is used to report the status
of a resource that is modified.
It indicates if the modification was a create, a delete
or a patch.'
properties:
apiVersion:
nullable: true
type: string
delete:
type: boolean
kind:
nullable: true
type: string
missing:
type: boolean
name:
nullable: true
type: string
namespace:
nullable: true
type: string
patch:
nullable: true
type: string
type: object
nullable: true
type: array
name:
description: Name is the name of the resource.
nullable: true
type: string
nonReadyStatus:
description: NonReadyStatus lists the state for each non-ready
resource.
items:
description: NonReadyStatus is used to report the status
of a resource that is not ready. It includes a summary.
properties:
apiVersion:
nullable: true
type: string
kind:
nullable: true
type: string
name:
nullable: true
type: string
namespace:
nullable: true
type: string
summary:
properties:
error:
type: boolean
message:
items:
type: string
type: array
state:
type: string
transitioning:
type: boolean
type: object
uid:
description: 'UID is a type that holds unique ID
values, including UUIDs. Because we
don''t ONLY use UUIDs, this is an alias to string. Being
a type captures
intent and helps make sure that UIDs and names
do not get conflated.'
nullable: true
type: string
type: object
nullable: true
type: array
type: object
nullable: true
type: array
notReady:
description: 'NotReady is the number of bundle deployments that
have been deployed
where some resources are not ready.'
type: integer
outOfSync:
description: 'OutOfSync is the number of bundle deployments
that have been synced
from Fleet controller, but not yet by the downstream agent.'
type: integer
pending:
description: 'Pending is the number of bundle deployments that
are being processed
by Fleet controller.'
type: integer
ready:
description: 'Ready is the number of bundle deployments that
have been deployed
where all resources are ready.'
type: integer
waitApplied:
description: 'WaitApplied is the number of bundle deployments
that have been
synced from Fleet controller and downstream cluster, but are
waiting
to be deployed.'
type: integer
type: object
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: contents.fleet.cattle.io
spec:
group: fleet.cattle.io
names:
kind: Content
listKind: ContentList
plural: contents
singular: content
scope: Cluster
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: 'Content is used internally by Fleet and should not be used
directly. It
contains the resources from a bundle for a specific target cluster.'
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object.
Servers should convert recognized schemas to the latest internal value,
and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
content:
description: 'Content is a byte array, which contains the manifests
of a bundle.
The bundle resources are copied into the bundledeployment''s content
resource, so the downstream agent can deploy them.'
format: byte
nullable: true
type: string
kind:
description: 'Kind is a string value representing the REST resource
this object represents.
Servers may infer this from the endpoint the client submits requests
to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
sha256sum:
description: SHA256Sum of the Content field
type: string
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: gitreporestrictions.fleet.cattle.io
spec:
group: fleet.cattle.io
names:
kind: GitRepoRestriction
listKind: GitRepoRestrictionList
plural: gitreporestrictions
singular: gitreporestriction
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .defaultServiceAccount
name: Default-ServiceAccount
type: string
- jsonPath: .allowedServiceAccounts
name: Allowed-ServiceAccounts
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: 'GitRepoRestriction is a resource that can optionally be used
to restrict
the options of GitRepos in the same namespace.'
properties:
allowedClientSecretNames:
description: AllowedClientSecretNames is a list of client secret names
that GitRepos are allowed to use.
items:
type: string
nullable: true
type: array
allowedRepoPatterns:
description: 'AllowedRepoPatterns is a list of regex patterns that restrict
the
valid values of the Repo field of a GitRepo.'
items:
type: string
nullable: true
type: array
allowedServiceAccounts:
description: AllowedServiceAccounts is a list of service accounts that
GitRepos are allowed to use.
items:
type: string
nullable: true
type: array
allowedTargetNamespaces:
description: 'AllowedTargetNamespaces restricts TargetNamespace to the
given
namespaces. If AllowedTargetNamespaces is set, TargetNamespace must
be set.'
items:
type: string
nullable: true
type: array
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object.
Servers should convert recognized schemas to the latest internal value,
and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
defaultClientSecretName:
description: DefaultClientSecretName overrides the GitRepo's default
client secret.
nullable: true
type: string
defaultServiceAccount:
description: DefaultServiceAccount overrides the GitRepo's default service
account.
nullable: true
type: string
kind:
description: 'Kind is a string value representing the REST resource
this object represents.
Servers may infer this from the endpoint the client submits requests
to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: gitrepos.fleet.cattle.io
spec:
group: fleet.cattle.io
names:
categories:
- fleet
kind: GitRepo
listKind: GitRepoList
plural: gitrepos
singular: gitrepo
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .spec.repo
name: Repo
type: string
- jsonPath: .status.commit
name: Commit
type: string
- jsonPath: .status.display.readyBundleDeployments
name: BundleDeployments-Ready
type: string
- jsonPath: .status.conditions[?(@.type=="Ready")].message
name: Status
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: 'GitRepo describes a git repository that is watched by Fleet.
The resource contains the necessary information to deploy the repo, or
parts
of it, to target clusters.'
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object.
Servers should convert recognized schemas to the latest internal value,
and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource
this object represents.
Servers may infer this from the endpoint the client submits requests
to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
branch:
description: Branch The git branch to follow.
nullable: true
type: string
caBundle:
description: CABundle is a PEM encoded CA bundle which will be used
to validate the repo's certificate.
format: byte
nullable: true
type: string
clientSecretName:
description: 'ClientSecretName is the name of the client secret
to be used to connect to the repo
It is expected the secret be of type "kubernetes.io/basic-auth"
or "kubernetes.io/ssh-auth".'
nullable: true
type: string
correctDrift:
description: CorrectDrift specifies how drift correction should
work.
properties:
enabled:
description: Enabled correct drift if true.
type: boolean
force:
description: Force helm rollback with --force option will be
used if true. This will try to recreate all resources in the
release.
type: boolean
keepFailHistory:
description: KeepFailHistory keeps track of failed rollbacks
in the helm history.
type: boolean
type: object
deleteNamespace:
description: DeleteNamespace specifies if the namespace created
must be deleted after deleting the GitRepo.
type: boolean
disablePolling:
description: Disables git polling. When enabled only webhooks will
be used.
type: boolean
forceSyncGeneration:
description: Increment this number to force a redeployment of contents
from Git.
format: int64
type: integer
helmRepoURLRegex:
description: 'HelmRepoURLRegex Helm credentials will be used if
the helm repo matches this regex
Credentials will always be used if this is empty or not provided.'
nullable: true
type: string
helmSecretName:
description: HelmSecretName contains the auth secret for a private
Helm repository.
nullable: true
type: string
helmSecretNameForPaths:
description: HelmSecretNameForPaths contains the auth secret for
private Helm repository for each path.
nullable: true
type: string
imageScanCommit:
description: Commit specifies how to commit to the git repo when
a new image is scanned and written back to git repo.
properties:
authorEmail:
description: AuthorEmail gives the email to provide when making
a commit
nullable: true
type: string
authorName:
description: AuthorName gives the name to provide when making
a commit
nullable: true
type: string
messageTemplate:
description: 'MessageTemplate provides a template for the commit
message,
into which will be interpolated the details of the change
made.'
nullable: true
type: string
type: object
imageScanInterval:
description: ImageScanInterval is the interval of syncing scanned
images and writing back to git repo.
type: string
insecureSkipTLSVerify:
description: InsecureSkipTLSverify will use insecure HTTPS to clone
the repo.
type: boolean
keepResources:
description: KeepResources specifies if the resources created must
be kept after deleting the GitRepo.
type: boolean
ociRegistry:
description: OCIRegistry specifies the OCI registry related parameters
properties:
authSecretName:
description: AuthSecretName contains the auth secret where the
OCI regristry credentials are stored.
nullable: true
type: string
basicHTTP:
description: BasicHTTP uses HTTP connections to the OCI registry
when enabled.
nullable: true
type: boolean
insecureSkipTLS:
description: InsecureSkipTLS allows connections to OCI registry
without certs when enabled.
nullable: true
type: boolean
reference:
description: Reference of the OCI Registry
type: string
type: object
paths:
description: 'Paths is the directories relative to the git repo
root that contain resources to be applied.
Path globbing is supported, for example ["charts/*"] will match
all folders as a subdirectory of charts/
If empty, "/" is the default.'
items:
type: string
nullable: true
type: array
paused:
description: 'Paused, when true, causes changes in Git not to be
propagated down to the clusters but instead to mark
resources as OutOfSync.'
type: boolean
pollingInterval:
description: PollingInterval is how often to check git for new updates.
nullable: true
type: string
repo:
description: Repo is a URL to a git repo to clone and index.
nullable: true
type: string
revision:
description: Revision A specific commit or tag to operate on.
nullable: true
type: string
serviceAccount:
description: ServiceAccount used in the downstream cluster for deployment.
nullable: true
type: string
targetNamespace:
description: 'Ensure that all resources are created in this namespace
Any cluster scoped resource will be rejected if this is set
Additionally this namespace will be created on demand.'
nullable: true
type: string
targets:
description: Targets is a list of targets this repo will deploy
to.
items:
description: GitTarget is a cluster or cluster group to deploy
to.
properties:
clusterGroup:
description: ClusterGroup is the name of a cluster group in
the same namespace as the clusters.
nullable: true
type: string
clusterGroupSelector:
description: ClusterGroupSelector is a label selector to select
cluster groups.
nullable: true
properties:
matchExpressions:
description: matchExpressions is a list of label selector
requirements. The requirements are ANDed.
items:
description: 'A label selector requirement is a selector
that contains values, a key, and an operator that
relates the key and values.'
properties:
key:
description: key is the label key that the selector
applies to.
type: string
operator:
description: 'operator represents a key''s relationship
to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.'
type: string
values:
description: 'values is an array of string values.
If the operator is In or NotIn,
the values array must be non-empty. If the operator
is Exists or DoesNotExist,
the values array must be empty. This array is
replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value} pairs.
A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the
operator is "In", and the values array contains only
"value". The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
clusterName:
description: ClusterName is the name of a cluster.
nullable: true
type: string
clusterSelector:
description: ClusterSelector is a label selector to select
clusters.
nullable: true
properties:
matchExpressions:
description: matchExpressions is a list of label selector
requirements. The requirements are ANDed.
items:
description: 'A label selector requirement is a selector
that contains values, a key, and an operator that
relates the key and values.'
properties:
key:
description: key is the label key that the selector
applies to.
type: string
operator:
description: 'operator represents a key''s relationship
to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.'
type: string
values:
description: 'values is an array of string values.
If the operator is In or NotIn,
the values array must be non-empty. If the operator
is Exists or DoesNotExist,
the values array must be empty. This array is
replaced during a strategic
merge patch.'
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
description: 'matchLabels is a map of {key,value} pairs.
A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the
operator is "In", and the values array contains only
"value". The requirements are ANDed.'
type: object
type: object
x-kubernetes-map-type: atomic
name:
description: Name is the name of this target.
nullable: true
type: string
type: object
type: array
type: object
status:
properties:
commit:
description: Commit is the Git commit hash from the last git job
run.
nullable: true
type: string
conditions:
description: 'Conditions is a list of Wrangler conditions that describe
the state
of the GitRepo.'
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one
status to another.
type: string
lastUpdateTime:
description: The last time this condition was updated.
type: string
message:
description: Human-readable message indicating details about
last transition
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False,
Unknown.
type: string
type:
description: Type of cluster condition.
type: string
required:
- status
- type
type: object
type: array
desiredReadyClusters:
description: "DesiredReadyClusters\tis the number of clusters that\
\ should be ready for bundles of this GitRepo."
type: integer
display:
description: Display contains a human readable summary of the status.
properties:
error:
description: Error is true if a message is present.
type: boolean
message:
description: Message contains the relevant message from the
deployment conditions.
type: string
readyBundleDeployments:
description: 'ReadyBundleDeployments is a string in the form
"%d/%d", that describes the
number of ready bundledeployments over the total number of
bundledeployments.'
type: string
state:
description: 'State is the state of the GitRepo, e.g. "GitUpdating"
or the maximal
BundleState according to StateRank.'
type: string
type: object
gitJobStatus:
description: GitJobStatus is the status of the last Git job run,
e.g. "Current" if there was no error.
type: string
lastPollingTriggered:
description: LastPollingTime is the last time the polling check
was triggered
format: date-time
type: string
lastSyncedImageScanTime:
description: LastSyncedImageScanTime is the time of the last image
scan.
format: date-time
type: string
observedGeneration:
description: 'ObservedGeneration is the current generation of the
resource in the cluster. It is copied from k8s
metadata.Generation. The value is incremented for all changes,
except for changes to .metadata or .status.'
format: int64
type: integer
readyClusters:
description: 'ReadyClusters is the lowest number of clusters that
are ready over
all the bundles of this GitRepo.'
type: integer
resourceCounts:
description: ResourceCounts contains the number of resources in
each state over all bundles.
properties:
desiredReady:
description: DesiredReady is the number of resources that should
be ready.
type: integer
missing:
description: Missing is the number of missing resources.
type: integer
modified:
description: Modified is the number of resources that have been
modified.
type: integer
notReady:
description: 'NotReady is the number of not ready resources.
Resources are not
ready if they do not match any other state.'
type: integer
orphaned:
description: Orphaned is the number of orphaned resources.
type: integer
ready:
description: Ready is the number of ready resources.
type: integer
unknown:
description: Unknown is the number of resources in an unknown
state.
type: integer
waitApplied:
description: WaitApplied is the number of resources that are
waiting to be applied.
type: integer
type: object
resourceErrors:
description: ResourceErrors is a sorted list of errors from the
resources.
items:
type: string
type: array
resources:
description: Resources contains metadata about the resources of
each bundle.
items:
description: GitRepoResource contains metadata about the resources
of a bundle.
properties:
apiVersion:
description: APIVersion is the API version of the resource.
nullable: true
type: string
error:
description: Error is true if any Error in the PerClusterState
is true.
type: boolean
id:
description: ID is the name of the resource, e.g. "namespace1/my-config"
or "backingimagemanagers.storage.io".
nullable: true
type: string
incompleteState:
description: 'IncompleteState is true if a bundle summary
has 10 or more non-ready
resources or a non-ready resource has more 10 or more non-ready
or
modified states.'
type: boolean
kind:
description: Kind is the k8s kind of the resource.
nullable: true
type: string
message:
description: Message is the first message from the PerClusterStates.
nullable: true
type: string
name:
description: Name of the resource.
nullable: true
type: string
namespace:
description: Namespace of the resource.
nullable: true
type: string
perClusterState:
description: PerClusterState is a list of states for each
cluster. Derived from the summaries non-ready resources.
items:
description: ResourcePerClusterState is generated for each
non-ready resource of the bundles.
properties:
clusterId:
description: ClusterID is the id of the cluster.
nullable: true
type: string
error:
description: Error is true if the resource is in an
error state, copied from the bundle's summary for
non-ready resources.
type: boolean
message:
description: Message combines the messages from the
bundle's summary. Messages are joined with the delimiter
';'.
nullable: true
type: string
patch:
description: Patch for modified resources.
nullable: true
type: object
x-kubernetes-preserve-unknown-fields: true
state:
description: State is the state of the resource.
nullable: true
type: string
transitioning:
description: 'Transitioning is true if the resource
is in a transitioning state,
copied from the bundle''s summary for non-ready resources.'
type: boolean
type: object
nullable: true
type: array
state:
description: State is the state of the resource, e.g. "Unknown",
"WaitApplied", "ErrApplied" or "Ready".
type: string
transitioning:
description: Transitioning is true if any Transitioning in
the PerClusterState is true.
type: boolean
type:
description: Type is the type of the resource, e.g. "apiextensions.k8s.io.customresourcedefinition"
or "configmap".
type: string
type: object
type: array
summary:
description: Summary contains the number of bundle deployments in
each state and a list of non-ready resources.
properties:
desiredReady:
description: 'DesiredReady is the number of bundle deployments
that should be
ready.'
type: integer
errApplied:
description: 'ErrApplied is the number of bundle deployments
that have been synced
from the Fleet controller and the downstream cluster, but
with some
errors when deploying the bundle.'
type: integer
modified:
description: 'Modified is the number of bundle deployments that
have been deployed
and for which all resources are ready, but where some changes
from the
Git repository have not yet been synced.'
type: integer
nonReadyResources:
description: 'NonReadyClusters is a list of states, which is
filled for a bundle
that is not ready.'
items:
description: 'NonReadyResource contains information about
a bundle that is not ready for a
given state like "ErrApplied". It contains a list of non-ready
or modified
resources and their states.'
properties:
bundleState:
description: State is the state of the resource, like
e.g. "NotReady" or "ErrApplied".
nullable: true
type: string
message:
description: Message contains information why the bundle
is not ready.
nullable: true
type: string
modifiedStatus:
description: ModifiedStatus lists the state for each modified
resource.
items:
description: 'ModifiedStatus is used to report the status
of a resource that is modified.
It indicates if the modification was a create, a delete
or a patch.'
properties:
apiVersion:
nullable: true
type: string
delete:
type: boolean
kind:
nullable: true
type: string
missing:
type: boolean
name:
nullable: true
type: string
namespace:
nullable: true
type: string
patch:
nullable: true
type: string
type: object
nullable: true
type: array
name:
description: Name is the name of the resource.
nullable: true
type: string
nonReadyStatus:
description: NonReadyStatus lists the state for each non-ready
resource.
items:
description: NonReadyStatus is used to report the status
of a resource that is not ready. It includes a summary.
properties:
apiVersion:
nullable: true
type: string
kind:
nullable: true
type: string
name:
nullable: true
type: string
namespace:
nullable: true
type: string
summary:
properties:
error:
type: boolean
message:
items:
type: string
type: array
state:
type: string
transitioning:
type: boolean
type: object
uid:
description: 'UID is a type that holds unique ID
values, including UUIDs. Because we
don''t ONLY use UUIDs, this is an alias to string. Being
a type captures
intent and helps make sure that UIDs and names
do not get conflated.'
nullable: true
type: string
type: object
nullable: true
type: array
type: object
nullable: true
type: array
notReady:
description: 'NotReady is the number of bundle deployments that
have been deployed
where some resources are not ready.'
type: integer
outOfSync:
description: 'OutOfSync is the number of bundle deployments
that have been synced
from Fleet controller, but not yet by the downstream agent.'
type: integer
pending:
description: 'Pending is the number of bundle deployments that
are being processed
by Fleet controller.'
type: integer
ready:
description: 'Ready is the number of bundle deployments that
have been deployed
where all resources are ready.'
type: integer
waitApplied:
description: 'WaitApplied is the number of bundle deployments
that have been
synced from Fleet controller and downstream cluster, but are
waiting
to be deployed.'
type: integer
type: object
updateGeneration:
description: Update generation is the force update generation if
spec.forceSyncGeneration is set
format: int64
type: integer
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: imagescans.fleet.cattle.io
spec:
group: fleet.cattle.io
names:
kind: ImageScan
listKind: ImageScanList
plural: imagescans
singular: imagescan
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .spec.image
name: Repository
type: string
- jsonPath: .status.latestTag
name: Latest
type: string
name: v1alpha1
schema:
openAPIV3Schema:
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object.
Servers should convert recognized schemas to the latest internal value,
and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource
this object represents.
Servers may infer this from the endpoint the client submits requests
to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: API is taken from https://github.com/fluxcd/image-reflector-controller
properties:
gitrepoName:
description: GitRepo reference name
nullable: true
type: string
image:
description: Image is the name of the image repository
nullable: true
type: string
interval:
description: 'Interval is the length of time to wait between
scans of the image repository.'
nullable: true
type: string
policy:
description: 'Policy gives the particulars of the policy to be followed
in
selecting the most recent image'
properties:
alphabetical:
description: Alphabetical set of rules to use for alphabetical
ordering of the tags.
nullable: true
properties:
order:
description: 'Order specifies the sorting order of the tags.
Given the letters of the
alphabet as tags, ascending order would select Z, and
descending order
would select A.'
nullable: true
type: string
type: object
semver:
description: 'SemVer gives a semantic version range to check
against the tags
available.'
nullable: true
properties:
range:
description: 'Range gives a semver range for the image tag;
the highest
version within the range that''s a tag yields the latest
image.'
nullable: true
type: string
type: object
type: object
secretRef:
description: 'SecretRef can be given the name of a secret containing
credentials to use for the image registry. The secret should be
created with `kubectl create secret docker-registry`, or the
equivalent.'
nullable: true
properties:
name:
default: ''
description: 'Name of the referent.
This field is effectively required, but due to backwards compatibility
is
allowed to be empty. Instances of this type with an empty
value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn''t
need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.'
type: string
type: object
x-kubernetes-map-type: atomic
suspend:
description: 'This flag tells the controller to suspend subsequent
image scans.
It does not apply to already started scans. Defaults to false.'
type: boolean
tagName:
description: TagName is the tag ref that needs to be put in manifest
to replace fields
nullable: true
type: string
type: object
status:
properties:
canonicalImageName:
description: 'CanonicalName is the name of the image repository
with all the
implied bits made explicit; e.g., `docker.io/library/alpine`
rather than `alpine`.'
type: string
conditions:
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one
status to another.
type: string
lastUpdateTime:
description: The last time this condition was updated.
type: string
message:
description: Human-readable message indicating details about
last transition
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False,
Unknown.
type: string
type:
description: Type of cluster condition.
type: string
required:
- status
- type
type: object
type: array
lastScanTime:
description: LastScanTime is the last time image was scanned
format: date-time
type: string
latestDigest:
description: LatestDigest is the digest of latest tag
type: string
latestImage:
description: 'LatestImage gives the first in the list of images
scanned by
the image repository, when filtered and ordered according to
the policy.'
type: string
latestTag:
description: Latest tag is the latest tag filtered by the policy
type: string
observedGeneration:
format: int64
type: integer
type: object
type: object
served: true
storage: true
subresources:
status: {}