297 lines
14 KiB
Go
297 lines
14 KiB
Go
package crds
|
|
|
|
import "github.com/rancher/rancher/pkg/features"
|
|
|
|
// RequiredCRDs returns a list of CRD to install based on enabled features.
|
|
func RequiredCRDs() []string {
|
|
requiredCRDS := BasicCRDs()
|
|
if features.ProvisioningV2.Enabled() {
|
|
requiredCRDS = append(requiredCRDS, ProvisioningV2CRDs()...)
|
|
if features.RKE2.Enabled() {
|
|
requiredCRDS = append(requiredCRDS, RKE2CRDs()...)
|
|
}
|
|
if features.EmbeddedClusterAPI.Enabled() {
|
|
requiredCRDS = append(requiredCRDS, CAPICRDs()...)
|
|
}
|
|
if features.Fleet.Enabled() {
|
|
requiredCRDS = append(requiredCRDS, "managedcharts.management.cattle.io")
|
|
}
|
|
}
|
|
if features.Fleet.Enabled() {
|
|
requiredCRDS = append(requiredCRDS, FleetCRDs()...)
|
|
}
|
|
if features.MCM.Enabled() {
|
|
requiredCRDS = append(requiredCRDS, MCMCRDs()...)
|
|
}
|
|
if features.Auth.Enabled() {
|
|
requiredCRDS = append(requiredCRDS, AuthCRDs()...)
|
|
}
|
|
if features.UIExtension.Enabled() {
|
|
requiredCRDS = append(requiredCRDS, UIPluginsCRD()...)
|
|
}
|
|
return requiredCRDS
|
|
}
|
|
|
|
// BasicCRDs returns a list of CRD names needed to run rancher.
|
|
func BasicCRDs() []string {
|
|
return []string{
|
|
"apps.catalog.cattle.io",
|
|
"clusterrepos.catalog.cattle.io",
|
|
"operations.catalog.cattle.io",
|
|
"apiservices.management.cattle.io",
|
|
"clusters.management.cattle.io",
|
|
"clusterregistrationtokens.management.cattle.io",
|
|
"features.management.cattle.io",
|
|
"podsecurityadmissionconfigurationtemplates.management.cattle.io",
|
|
"preferences.management.cattle.io",
|
|
"settings.management.cattle.io",
|
|
"navlinks.ui.cattle.io",
|
|
}
|
|
}
|
|
|
|
// ProvisioningV2CRDs returns a list of CRD names needed for ProvisioningV2.
|
|
func ProvisioningV2CRDs() []string {
|
|
return []string{
|
|
"clusters.provisioning.cattle.io",
|
|
}
|
|
}
|
|
|
|
// CAPICRDs returns a list of CRD names needed for CAPI.
|
|
func CAPICRDs() []string {
|
|
return []string{
|
|
"machines.cluster.x-k8s.io",
|
|
"machinehealthchecks.cluster.x-k8s.io",
|
|
"machinedeployments.cluster.x-k8s.io",
|
|
"machinesets.cluster.x-k8s.io",
|
|
"clusters.cluster.x-k8s.io",
|
|
}
|
|
}
|
|
|
|
// RKE2CRDs returns a list of CRD names needed for RKE2.
|
|
func RKE2CRDs() []string {
|
|
return []string{
|
|
"clusters.provisioning.cattle.io",
|
|
"custommachines.rke.cattle.io",
|
|
"etcdsnapshots.rke.cattle.io",
|
|
"rkebootstraps.rke.cattle.io",
|
|
"rkebootstraptemplates.rke.cattle.io",
|
|
"rkeclusters.rke.cattle.io",
|
|
"rkecontrolplanes.rke.cattle.io",
|
|
}
|
|
}
|
|
|
|
// FleetCRDs returns a list of CRD names needed for Fleet.
|
|
func FleetCRDs() []string {
|
|
return append(
|
|
bootstrapFleet(),
|
|
"fleetworkspaces.management.cattle.io",
|
|
)
|
|
}
|
|
|
|
func bootstrapFleet() []string {
|
|
return []string{
|
|
"bundles.fleet.cattle.io",
|
|
"clusters.fleet.cattle.io",
|
|
"clustergroups.fleet.cattle.io",
|
|
}
|
|
}
|
|
|
|
// AuthCRDs returns a list of CRD names needed for authentication.
|
|
func AuthCRDs() []string {
|
|
return []string{
|
|
"authconfigs.management.cattle.io",
|
|
"groups.management.cattle.io",
|
|
"groupmembers.management.cattle.io",
|
|
"tokens.management.cattle.io",
|
|
"users.management.cattle.io",
|
|
"userattributes.management.cattle.io",
|
|
"clusterproxyconfigs.management.cattle.io",
|
|
}
|
|
}
|
|
|
|
// ClusterAuthCRDs returns a list of CRD names needed for ACE.
|
|
func ClusterAuthCRDs() []string {
|
|
return []string{
|
|
"clusterauthtokens.cluster.cattle.io",
|
|
"clusteruserattributes.cluster.cattle.io",
|
|
}
|
|
}
|
|
|
|
// MCMCRDs returns a list of CRD names needed for Multi CLuster Management.
|
|
func MCMCRDs() []string {
|
|
return []string{
|
|
"authconfigs.management.cattle.io",
|
|
"catalogs.management.cattle.io",
|
|
"catalogtemplates.management.cattle.io",
|
|
"catalogtemplateversions.management.cattle.io",
|
|
"clusters.management.cattle.io",
|
|
"clusteralerts.management.cattle.io",
|
|
"clusteralertgroups.management.cattle.io",
|
|
"clusteralertrules.management.cattle.io",
|
|
"clustercatalogs.management.cattle.io",
|
|
"clustermonitorgraphs.management.cattle.io",
|
|
"clusterregistrationtokens.management.cattle.io",
|
|
"clusterroletemplatebindings.management.cattle.io",
|
|
"clustertemplates.management.cattle.io",
|
|
"clustertemplaterevisions.management.cattle.io",
|
|
"composeconfigs.management.cattle.io",
|
|
"dynamicschemas.management.cattle.io",
|
|
"etcdbackups.management.cattle.io",
|
|
"features.management.cattle.io",
|
|
"fleetworkspaces.management.cattle.io",
|
|
"globaldnss.management.cattle.io",
|
|
"globaldnsproviders.management.cattle.io",
|
|
"globalroles.management.cattle.io",
|
|
"globalrolebindings.management.cattle.io",
|
|
"groups.management.cattle.io",
|
|
"groupmembers.management.cattle.io",
|
|
"kontainerdrivers.management.cattle.io",
|
|
"monitormetrics.management.cattle.io",
|
|
"multiclusterapps.management.cattle.io",
|
|
"multiclusterapprevisions.management.cattle.io",
|
|
"nodes.management.cattle.io",
|
|
"nodedrivers.management.cattle.io",
|
|
"nodepools.management.cattle.io",
|
|
"nodetemplates.management.cattle.io",
|
|
"notifiers.management.cattle.io",
|
|
"podsecurityadmissionconfigurationtemplates.management.cattle.io",
|
|
"preferences.management.cattle.io",
|
|
"projects.management.cattle.io",
|
|
"projectalerts.management.cattle.io",
|
|
"projectalertgroups.management.cattle.io",
|
|
"projectalertrules.management.cattle.io",
|
|
"projectcatalogs.management.cattle.io",
|
|
"projectmonitorgraphs.management.cattle.io",
|
|
"projectnetworkpolicys.management.cattle.io",
|
|
"projectroletemplatebindings.management.cattle.io",
|
|
"rancherusernotificationtypes.management.cattle.io",
|
|
"rkeaddons.management.cattle.io",
|
|
"rkek8sserviceoptions.management.cattle.io",
|
|
"rkek8ssystemimages.management.cattle.io",
|
|
"roletemplates.management.cattle.io",
|
|
"samltokens.management.cattle.io",
|
|
"settings.management.cattle.io",
|
|
"templates.management.cattle.io",
|
|
"templatecontents.management.cattle.io",
|
|
"templateversions.management.cattle.io",
|
|
"tokens.management.cattle.io",
|
|
"users.management.cattle.io",
|
|
"userattributes.management.cattle.io",
|
|
}
|
|
}
|
|
|
|
// UIPluginsCRD returns a list of CRD names needed to enable UIPlugins
|
|
func UIPluginsCRD() []string {
|
|
return []string{
|
|
"uiplugins.catalog.cattle.io",
|
|
}
|
|
}
|
|
|
|
// MigratedResources map list of resource that have been migrated after all resource have a CRD this can be removed.
|
|
var MigratedResources = map[string]bool{
|
|
"activedirectoryproviders.management.cattle.io": false,
|
|
"apiservices.management.cattle.io": false,
|
|
"apprevisions.project.cattle.io": false,
|
|
"apps.catalog.cattle.io": false,
|
|
"apps.project.cattle.io": false,
|
|
"authconfigs.management.cattle.io": false,
|
|
"authproviders.management.cattle.io": false,
|
|
"authtokens.management.cattle.io": false,
|
|
"azureadproviders.management.cattle.io": false,
|
|
"basicauths.project.cattle.io": false,
|
|
"catalogs.management.cattle.io": false,
|
|
"catalogtemplates.management.cattle.io": false,
|
|
"catalogtemplateversions.management.cattle.io": false,
|
|
"certificates.project.cattle.io": false,
|
|
"cloudcredentials.management.cattle.io": false,
|
|
"clusteralertgroups.management.cattle.io": false,
|
|
"clusteralertrules.management.cattle.io": false,
|
|
"clusteralerts.management.cattle.io": false,
|
|
"clusterauthtokens.cluster.cattle.io": false,
|
|
"clusterclasses.cluster.x-k8s.io": false,
|
|
"clusterloggings.management.cattle.io": false,
|
|
"clustermonitorgraphs.management.cattle.io": false,
|
|
"clusterproxyconfigs.management.cattle.io": true,
|
|
"clusterregistrationtokens.management.cattle.io": false,
|
|
"clusterrepoes.catalog.cattle.io": false,
|
|
"clusterresourcesetbindings.addons.cluster.x-k8s.io": false,
|
|
"clusterroletemplatebindings.management.cattle.io": true,
|
|
"clusters.cluster.x-k8s.io": false,
|
|
"clusters.management.cattle.io": false,
|
|
"clusters.provisioning.cattle.io": false,
|
|
"clustertemplaterevisions.management.cattle.io": false,
|
|
"clustertemplates.management.cattle.io": false,
|
|
"clusteruserattributes.cluster.cattle.io": false,
|
|
"composeconfigs.management.cattle.io": false,
|
|
"custommachines.rke.cattle.io": false,
|
|
"dockercredentials.project.cattle.io": false,
|
|
"dynamicschemas.management.cattle.io": false,
|
|
"etcdbackups.management.cattle.io": false,
|
|
"etcdsnapshots.rke.cattle.io": false,
|
|
"extensionconfigs.runtime.cluster.x-k8s.io": false,
|
|
"features.management.cattle.io": false,
|
|
"fleetworkspaces.management.cattle.io": false,
|
|
"freeipaproviders.management.cattle.io": false,
|
|
"githubproviders.management.cattle.io": false,
|
|
"globaldns.management.cattle.io": false,
|
|
"globaldnsproviders.management.cattle.io": false,
|
|
"globalrolebindings.management.cattle.io": true,
|
|
"globalroles.management.cattle.io": true,
|
|
"googleoauthproviders.management.cattle.io": false,
|
|
"groupmembers.management.cattle.io": false,
|
|
"groups.management.cattle.io": false,
|
|
"ipaddressclaims.ipam.cluster.x-k8s.io": false,
|
|
"kontainerdrivers.management.cattle.io": false,
|
|
"localproviders.management.cattle.io": false,
|
|
"machinedeployments.cluster.x-k8s.io": false,
|
|
"machinepools.cluster.x-k8s.io": false,
|
|
"machines.cluster.x-k8s.io": false,
|
|
"machinesets.cluster.x-k8s.io": false,
|
|
"managedcharts.management.cattle.io": false,
|
|
"monitormetrics.management.cattle.io": false,
|
|
"multiclusterapprevisions.management.cattle.io": false,
|
|
"multiclusterapps.management.cattle.io": false,
|
|
"navlinks.ui.cattle.io": false,
|
|
"nodedrivers.management.cattle.io": false,
|
|
"nodepools.management.cattle.io": false,
|
|
"nodes.management.cattle.io": false,
|
|
"nodetemplates.management.cattle.io": false,
|
|
"notifiers.management.cattle.io": false,
|
|
"oidcproviders.management.cattle.io": false,
|
|
"openldapproviders.management.cattle.io": false,
|
|
"operations.catalog.cattle.io": false,
|
|
"podsecurityadmissionconfigurationtemplates.management.cattle.io": false,
|
|
"preferences.management.cattle.io": false,
|
|
"principals.management.cattle.io": false,
|
|
"projectalertgroups.management.cattle.io": false,
|
|
"projectalertrules.management.cattle.io": false,
|
|
"projectalerts.management.cattle.io": false,
|
|
"projectloggings.management.cattle.io": false,
|
|
"projectmonitorgraphs.management.cattle.io": false,
|
|
"projectnetworkpolicies.management.cattle.io": false,
|
|
"projectroletemplatebindings.management.cattle.io": true,
|
|
"projects.management.cattle.io": true,
|
|
"rancherusernotifications.management.cattle.io": false,
|
|
"rkeaddons.management.cattle.io": false,
|
|
"rkebootstraps.rke.cattle.io": false,
|
|
"rkebootstraptemplates.rke.cattle.io": false,
|
|
"rkeclusters.rke.cattle.io": false,
|
|
"rkecontrolplanes.rke.cattle.io": false,
|
|
"rkek8sserviceoptions.management.cattle.io": false,
|
|
"rkek8ssystemimages.management.cattle.io": false,
|
|
"roletemplates.management.cattle.io": true,
|
|
"samlproviders.management.cattle.io": false,
|
|
"samltokens.management.cattle.io": false,
|
|
"serviceaccounttokens.project.cattle.io": false,
|
|
"settings.management.cattle.io": false,
|
|
"sshauths.project.cattle.io": false,
|
|
"templatecontents.management.cattle.io": false,
|
|
"templates.management.cattle.io": false,
|
|
"templateversions.management.cattle.io": false,
|
|
"tokens.management.cattle.io": false,
|
|
"userattributes.management.cattle.io": false,
|
|
"users.management.cattle.io": false,
|
|
"uiplugins.catalog.cattle.io": true,
|
|
"workloads.project.cattle.io": false,
|
|
}
|