shdsbilling/on-premise/main/rancher_v2.9.1/source/rancher-2.9.1/pkg/crds/names.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,
}