--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: bundledeployments.fleet.cattle.io spec: group: fleet.cattle.io names: kind: BundleDeployment plural: bundledeployments singular: bundledeployment preserveUnknownFields: false 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. nullable: true 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object type: object nullable: true type: array deploymentID: description: DeploymentID is the ID of the currently applied deployment. nullable: true type: string options: description: Options are the deployment options, that are currently applied. properties: correctDrift: description: CorrectDrift specifies how drift correction should work. nullable: true 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 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: nullable: true 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 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 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: nullable: true 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: nullable: true type: string nullable: true 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: nullable: true type: string description: NamespaceAnnotations are annotations that will be appended to the namespace created by Fleet. nullable: true type: object namespaceLabels: additionalProperties: nullable: true 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: nullable: true 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. nullable: true 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 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: nullable: true 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 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 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. nullable: true 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: nullable: true 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: nullable: true type: string nullable: true 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: nullable: true type: string description: NamespaceAnnotations are annotations that will be appended to the namespace created by Fleet. nullable: true type: object namespaceLabels: additionalProperties: nullable: true 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: nullable: true 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. nullable: true type: string lastUpdateTime: description: The last time this condition was updated. nullable: true type: string message: description: Human-readable message indicating details about last transition nullable: true type: string reason: description: The reason for the condition's last transition. nullable: true type: string status: description: Status of the condition, one of True, False, Unknown. nullable: true type: string type: description: Type of cluster condition. nullable: true type: string type: object nullable: true type: array display: 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: nullable: true type: string nullable: true type: array state: nullable: true 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: 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: nullable: true type: integer type: object type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: bundlenamespacemappings.fleet.cattle.io spec: group: fleet.cattle.io names: kind: BundleNamespaceMapping plural: bundlenamespacemappings singular: bundlenamespacemapping preserveUnknownFields: false 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: bundles.fleet.cattle.io spec: group: fleet.cattle.io names: kind: Bundle plural: bundles singular: bundle preserveUnknownFields: false 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. \n\ \ 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: correctDrift: description: CorrectDrift specifies how drift correction should work. nullable: true 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 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object 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: nullable: true 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 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 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: nullable: true 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: nullable: true type: string nullable: true 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: nullable: true type: string description: NamespaceAnnotations are annotations that will be appended to the namespace created by Fleet. nullable: true type: object namespaceLabels: additionalProperties: nullable: true 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: 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: 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: 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 nullable: true 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object clusterName: description: ClusterName is the name of a cluster to include in this partition nullable: true type: string clusterSelector: description: Selector matching cluster 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object maxUnavailable: description: 'A number or percentage of clusters that can be unavailable in this partition before this partition is treated as done. default: 10%' nullable: true 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object name: nullable: true type: string type: object nullable: true 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object correctDrift: description: CorrectDrift specifies how drift correction should work. nullable: true 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 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: nullable: true 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 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 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. nullable: true 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: nullable: true 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: nullable: true type: string nullable: true 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 nullable: true 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: nullable: true type: string description: NamespaceAnnotations are annotations that will be appended to the namespace created by Fleet. nullable: true type: object namespaceLabels: additionalProperties: nullable: true 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: nullable: true type: string nullable: true type: array type: object type: object nullable: true 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: nullable: true 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. nullable: true type: string lastUpdateTime: description: The last time this condition was updated. nullable: true type: string message: description: Human-readable message indicating details about last transition nullable: true type: string reason: description: The reason for the condition's last transition. nullable: true type: string status: description: Status of the condition, one of True, False, Unknown. nullable: true type: string type: description: Type of cluster condition. nullable: true type: string type: object nullable: true 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. type: integer 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: nullable: true type: string nullable: true type: array state: nullable: true 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 nullable: true 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 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: nullable: true type: string nullable: true type: array state: nullable: true 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: name: clustergroups.fleet.cattle.io spec: group: fleet.cattle.io names: categories: - fleet kind: ClusterGroup plural: clustergroups singular: clustergroup preserveUnknownFields: false 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object 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. nullable: true type: string lastUpdateTime: description: The last time this condition was updated. nullable: true type: string message: description: Human-readable message indicating details about last transition nullable: true type: string reason: description: The reason for the condition's last transition. nullable: true type: string status: description: Status of the condition, one of True, False, Unknown. nullable: true type: string type: description: Type of cluster condition. nullable: true type: string type: object nullable: true 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: nullable: true 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: nullable: true type: string nullable: true type: array state: nullable: true 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: name: clusterregistrations.fleet.cattle.io spec: group: fleet.cattle.io names: kind: ClusterRegistration plural: clusterregistrations singular: clusterregistration preserveUnknownFields: false 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: nullable: true 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: name: clusterregistrationtokens.fleet.cattle.io spec: group: fleet.cattle.io names: kind: ClusterRegistrationToken plural: clusterregistrationtokens singular: clusterregistrationtoken preserveUnknownFields: false 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: properties: name: maxLength: 63 pattern: ^[-a-z0-9]+$ type: string 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. nullable: true 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: name: clusters.fleet.cattle.io spec: group: fleet.cattle.io names: kind: Cluster plural: clusters singular: cluster preserveUnknownFields: false scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .status.display.readyBundles name: Bundles-Ready type: string - jsonPath: .status.display.readyNodes name: Nodes-Ready type: string - jsonPath: .status.display.sampleNode name: Sample-Node 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: properties: name: maxLength: 63 pattern: ^[-a-z0-9]+$ type: string 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. nullable: true 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. nullable: true type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. enum: - In - NotIn - Exists - DoesNotExist - Gt - Lt nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array 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. nullable: true type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. enum: - In - NotIn - Exists - DoesNotExist - Gt - Lt nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array type: object weight: description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100. type: integer type: object nullable: true type: array 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. nullable: true 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. nullable: true type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. enum: - In - NotIn - Exists - DoesNotExist - Gt - Lt nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array 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. nullable: true type: string operator: description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. enum: - In - NotIn - Exists - DoesNotExist - Gt - Lt nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array type: object nullable: true type: array type: object 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)). nullable: true 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. 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. enum: - In - NotIn - Exists - DoesNotExist nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object 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. 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. enum: - In - NotIn - Exists - DoesNotExist nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object 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: nullable: true type: string nullable: true type: array 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. nullable: true type: string type: object weight: description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100. type: integer type: object nullable: true type: array 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 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. 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. enum: - In - NotIn - Exists - DoesNotExist nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object 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. 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. enum: - In - NotIn - Exists - DoesNotExist nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object 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: nullable: true type: string nullable: true type: array 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. nullable: true type: string type: object nullable: true type: array 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)). nullable: true 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. 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. enum: - In - NotIn - Exists - DoesNotExist nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object 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. 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. enum: - In - NotIn - Exists - DoesNotExist nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object 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: nullable: true type: string nullable: true type: array 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. nullable: true type: string type: object weight: description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100. type: integer type: object nullable: true type: array 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 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. 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. enum: - In - NotIn - Exists - DoesNotExist nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object 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. 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. enum: - In - NotIn - Exists - DoesNotExist nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object 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: nullable: true type: string nullable: true type: array 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. nullable: true type: string type: object nullable: true type: array 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. nullable: true 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 "".' nullable: true type: string valueFrom: description: Source for the environment variable's value. Cannot be used if value is not empty. nullable: true properties: configMapKeyRef: description: Selects a key of a ConfigMap. nullable: true properties: key: description: The key to select. nullable: true type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' nullable: true type: string optional: description: Specify whether the ConfigMap or its key must be defined nullable: true type: boolean type: object fieldRef: description: 'Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['''']`, `metadata.annotations['''']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.' nullable: true properties: apiVersion: description: Version of the schema the FieldPath is written in terms of, defaults to "v1". nullable: true type: string fieldPath: description: Path of the field to select in the specified API version. nullable: true type: string type: object 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.' nullable: true properties: containerName: description: 'Container name: required for volumes, optional for env vars' nullable: true type: string divisor: description: Specifies the output format of the exposed resources, defaults to "1" nullable: true type: string resource: description: 'Required: resource to select' nullable: true type: string type: object secretKeyRef: description: Selects a key of a secret in the pod's namespace nullable: true properties: key: description: The key of the secret to select from. Must be a valid secret key. nullable: true type: string name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' nullable: true type: string optional: description: Specify whether the Secret or its key must be defined nullable: true type: boolean type: object type: object 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. \n\ \ This is an alpha field and requires enabling the DynamicResourceAllocation\ \ feature gate. \n 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. nullable: true type: string type: object nullable: true type: array limits: additionalProperties: nullable: true type: string description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' nullable: true type: object requests: additionalProperties: nullable: true type: string 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/' nullable: true 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 using the matching 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. nullable: true 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. nullable: true 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. nullable: true 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. maximum: 86400 nullable: true 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. nullable: true 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 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. 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. nullable: true type: string namespace: description: Namespace is the namespace of the agent deployment, e.g. "cattle-fleet-system". nullable: true type: string nonReadyNodeNames: description: NonReadyNode contains the names of non-ready nodes. The list is limited to at most 3 names. items: nullable: true type: string nullable: true type: array nonReadyNodes: description: NonReadyNodes is the number of nodes that are not ready. type: integer readyNodeNames: description: ReadyNodes contains the names of ready nodes. The list is limited to at most 3 names. items: nullable: true type: string nullable: true type: array readyNodes: description: ReadyNodes is the number of nodes that are ready. type: integer type: object agentAffinityHash: description: AgentAffinityHash is a hash of the agent's affinity configuration, used to detect changes. nullable: true 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. nullable: true type: integer agentEnvVarsHash: description: AgentEnvVarsHash is a hash of the agent's env vars, used to detect changes. nullable: true type: string 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. nullable: true type: string lastUpdateTime: description: The last time this condition was updated. nullable: true type: string message: description: Human-readable message indicating details about last transition nullable: true type: string reason: description: The reason for the condition's last transition. nullable: true type: string status: description: Status of the condition, one of True, False, Unknown. nullable: true type: string type: description: Type of cluster condition. nullable: true type: string type: object nullable: true 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. nullable: true type: string readyNodes: description: ReadyNodes is a string in the form "%d/%d", that describes the number of nodes that are ready vs. the number of expected nodes. nullable: true type: string sampleNode: description: SampleNode is the name of one of the nodes that are ready. If no node is ready, it's the name of a node that is not ready. nullable: true 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"' nullable: true 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: nullable: true type: string nullable: true type: array state: nullable: true 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: name: contents.fleet.cattle.io spec: group: fleet.cattle.io names: kind: Content plural: contents singular: content preserveUnknownFields: false 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. 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 --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: gitreporestrictions.fleet.cattle.io spec: group: fleet.cattle.io names: kind: GitRepoRestriction plural: gitreporestrictions singular: gitreporestriction preserveUnknownFields: false 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: nullable: true 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: nullable: true type: string nullable: true type: array allowedServiceAccounts: description: AllowedServiceAccounts is a list of service accounts that GitRepos are allowed to use. items: nullable: true type: string nullable: true type: array allowedTargetNamespaces: description: AllowedTargetNamespaces restricts TargetNamespace to the given namespaces. If AllowedTargetNamespaces is set, TargetNamespace must be set. items: nullable: true 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: name: gitrepos.fleet.cattle.io spec: group: fleet.cattle.io names: categories: - fleet kind: GitRepo plural: gitrepos singular: gitrepo preserveUnknownFields: false 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. 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. nullable: true 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 forceSyncGeneration: description: Increment this number to force a redeployment of contents from Git. 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. nullable: true 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 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: nullable: true 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object 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. nullable: true type: string operator: description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. nullable: true 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: nullable: true type: string nullable: true type: array type: object nullable: true type: array matchLabels: additionalProperties: nullable: true 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. nullable: true type: object type: object name: description: Name is the name of this target. nullable: true type: string type: object nullable: true type: array type: object status: properties: commit: description: Commit is the Git commit hash from the last gitjob 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. nullable: true type: string lastUpdateTime: description: The last time this condition was updated. nullable: true type: string message: description: Human-readable message indicating details about last transition nullable: true type: string reason: description: The reason for the condition's last transition. nullable: true type: string status: description: Status of the condition, one of True, False, Unknown. nullable: true type: string type: description: Type of cluster condition. nullable: true type: string type: object nullable: true 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. nullable: true 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. nullable: true type: string state: description: State is the state of the GitRepo, e.g. "GitUpdating" or the maximal BundleState according to StateRank. nullable: true type: string type: object gitJobStatus: description: GitJobStatus is the status of the last GitJob run, e.g. "Current" if there was no error. nullable: true type: string lastSyncedImageScanTime: description: LastSyncedImageScanTime is the time of the last image scan. nullable: true 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. 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: nullable: true type: string nullable: true 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". nullable: true 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". nullable: true type: string type: object nullable: true 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: nullable: true type: string nullable: true type: array state: nullable: true 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: name: imagescans.fleet.cattle.io spec: group: fleet.cattle.io names: categories: - fleet kind: ImageScan plural: imagescans singular: imagescan preserveUnknownFields: false 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: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' nullable: true type: string type: object 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`. nullable: true type: string conditions: items: properties: lastTransitionTime: description: Last time the condition transitioned from one status to another. nullable: true type: string lastUpdateTime: description: The last time this condition was updated. nullable: true type: string message: description: Human-readable message indicating details about last transition nullable: true type: string reason: description: The reason for the condition's last transition. nullable: true type: string status: description: Status of the condition, one of True, False, Unknown. nullable: true type: string type: description: Type of cluster condition. nullable: true type: string type: object nullable: true type: array lastScanTime: description: LastScanTime is the last time image was scanned nullable: true type: string latestDigest: description: LatestDigest is the digest of latest tag nullable: true 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. nullable: true type: string latestTag: description: Latest tag is the latest tag filtered by the policy nullable: true type: string observedGeneration: type: integer type: object type: object served: true storage: true subresources: status: {}