CRDs are infra API definitions, this is a temporary app at the moment. In the future when different components get decoupled, the CRD deployment should go with the corresponding controller deployment.

For example: gardener-provider, eks-provider, gke-provider should merge into one app (might be called cluster-controller or cluster-provider), and the cluster related CRDs should be deployed alongside with the controller itself.

cdc-controller, br-controller, import-controller, tiflow-controller should split from the cluster-controller and their corresponding CRDs are deployed alongside with themselves.


The CRD files are synced from:
* https://github.com/tidbcloud/infra-provider/tree/main/infra-api/config/crd
* https://github.com/tidbcloud/infra-provider/tree/main/cluster-controller/config/crd

Sync dev environment CRDs

``` shell
./sync-crd.sh main dev # Sync main branch CRDs to dev environment
```

Sync staging environment CRDs

``` shell
./sync-crd.sh gardener-arch/release-0.xx staging # Sync release branch CRDs to staging environment
```

Sync prod environment CRDs

``` shell
./sync-crd.sh gardener-arch/v0.xx prod # Sync release tag CRDs to prod environment
```

In the future, the upstream CRD files might be moved to the [api directory](https://github.com/tidbcloud/infra-provider/tree/main/api). Each component just copies its CRD files from this directory to the corresponding ArgoCD deployment directory.

**NOTE: Please DO NOT edit files in `env` directly, as they'll be override by the `sync-crd.sh` script**
