Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions docs/crd_schema_summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Fleet CRD Schema Summary

This table summarizes the Custom Resource Definitions (CRDs) used in **Fleet**, including their purpose and top-level schema properties.
Each CRD defines how Fleet manages applications, deployments, and cluster configurations.

| CRD | Description | Top-level Properties | Reference|
| :-- | :----------- | :------------------- | ---|
| **Bundle v1alpha1** | Bundle contains the resources of an application and its deployment options. It will be deployed as a Helm chart to target clusters. When a GitRepo is scanned it will produce one or more bundles. Bundles are a collection of resources that get deployed to one or more cluster(s). Bundle is the fundamental deployment unit used in Fleet. The contents of a Bundle may be Kubernetes manifests, Kustomize configuration, or Helm charts. Regardless of the source the contents are dynamically rendered into a Helm chart by the agent and installed into the downstream cluster as a Helm release. | `apiVersion, kind, metadata, spec, status` | For more information, refer to [Bundle V1alpha1](./crds/bundle_v1alpha1.json).|
| **BundleDeployment v1alpha1** | 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. | `apiVersion, kind, metadata, spec, status` | For more information, refer to [BundleDeployment v1alpha1](./crds/bundledeployment_v1alpha1.json).|
| **BundleNamespaceMapping v1alpha1** | BundleNamespaceMapping maps bundles to clusters in other namespaces. | `apiVersion, bundleSelector, kind, metadata, namespaceSelector` | For more information, refer to [BundleNamespaceMapping V1alpha1](./crds/bundlenamespacemapping_v1alpha1.json).|
| **Cluster v1alpha1** | 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 Kubernetes cluster is both the manager and downstream cluster at the same time. | `apiVersion, kind, metadata, spec, status` | For more information, refer to [Cluster V1alpha1](./crds/cluster_v1alpha1.json).|
| **ClusterGroup v1alpha1** | ClusterGroup is a re-usable selector to target a group of clusters. | `apiVersion, kind, metadata, spec, status` | For more information, refer to [ClusterGroup V1alpha1](./crds/clustergroup_v1alpha1.json).|
| **ClusterRegistration v1alpha1** | ClusterRegistration is used internally by Fleet and should not be used directly. | `apiVersion, kind, metadata, spec, status` | For more information, refer to [ClusterRegistration V1alpha1](./crds/clusterregistration_v1alpha1.json).|
| **ClusterRegistrationToken v1alpha1** | ClusterRegistrationToken is used by agents to register a new cluster. | `apiVersion, kind, metadata, spec, status` | For more information, refer to [ClusterRegistrationToken V1alpha1](./crds/clusterregistrationtoken_v1alpha1.json).|
| **Content v1alpha1** | Content is used internally by Fleet and should not be used directly. It contains the resources from a bundle for a specific target cluster. | `apiVersion, content, kind, metadata, sha256sum` | For more information, refer to [Content V1alpha1](./crds/content_v1alpha1.json).|
| **GitRepo v1alpha1** | 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. | `apiVersion, kind, metadata, spec, status` | For more information, refer to [GitRepo V1alpha1](./crds/gitreporestriction_v1alpha1.json).|
| **GitRepoRestriction v1alpha1** | GitRepoRestriction is a resource that can optionally be used to restrict the options of GitRepos in the same namespace. | `allowedClientSecretNames, allowedRepoPatterns, allowedServiceAccounts, allowedTargetNamespaces, apiVersion, defaultClientSecretName, defaultServiceAccount, kind, metadata` | For more information, refer to [GitRepoRestriction V1alpha1](./crds/gitreporestriction_v1alpha1.json).|
| **HelmOp v1alpha1** | HelmOp describes a helm chart information. The resource contains the necessary information to deploy the chart to target clusters. | `apiVersion, kind, metadata, spec, status` | For more information, refer to [HelmOp V1alpha1](./crds/helmop_v1alpha1.json).|
| **ImageScan v1alpha1** | JSON Schema for ImageScan (v1alpha1) in group fleet.cattle.io. | `apiVersion, kind, metadata, spec, status` | For more information, refer to [ImageScan V1alpha1](./crds/imagescan_v1alpha1.json).|
| **Schedule v1alpha1** | Schedule represents a schedule in which deployments are allowed or not, depending on its definition. | `apiVersion, kind, metadata, spec, status` | For more information, refer to [Schedule V1alpha1](./crds/schedule_v1alpha1.json).|

For more information, refer to [fleet-crds yaml](https://github.com/rancher/fleet/blob/main/charts/fleet-crd/templates/crds.yaml).
Loading