Wednesday, February 22, 2023

OpenShift to MicroShift Resource Mapping

Recently I was approached with the task of understanding what were the resource differences between OpenShift and MicroShift. This is especially important if one is interested in applying governance policies and rules across a fleet of systems that might be a mix of both OpenShift and MicroShift. Knowing the availability of specific resource definitions that might be common or disparate between the two Kubernetes experience can help an administrator know if they can use the same policy across both instances or if they need to specifically craft a policy for one or the other. Given that this information might be important for administrators I decided to map it out.

Below is a table that shows the resource definition and then if defined in OpenShift 4.12, MicroShift 4.12 or both, the corresponding API version.

Resource OpenShift  Microshift  API Version
alertmanagerconfigs Yes No monitoring.coreos.com/v1alpha1, monitoring.coreos.com/v1beta1
alertmanagers Yes No monitoring.coreos.com/v1
apirequestcounts Yes No apiserver.openshift.io/v1
apiservers Yes No config.openshift.io/v1
apiservices Yes Yes apiregistration.k8s.io/v1
appliedclusterresourcequotas Yes No quota.openshift.io/v1
authentications Yes No config.openshift.io/v1, operator.openshift.io/v1
baremetalhosts Yes No metal3.io/v1alpha1
bmceventsubscriptions Yes No metal3.io/v1alpha1
brokertemplateinstances Yes No template.openshift.io/v1
buildconfigs Yes No build.openshift.io/v1
builds Yes No build.openshift.io/v1, config.openshift.io/v1
catalogsources Yes No operators.coreos.com/v1alpha1
certificatesigningrequests Yes Yes certificates.k8s.io/v1
cloudcredentials Yes No operator.openshift.io/v1
clusterautoscalers Yes No autoscaling.openshift.io/v1
clustercsidrivers Yes No operator.openshift.io/v1
clusteroperators Yes No config.openshift.io/v1
clusterresourcequotas Yes No quota.openshift.io/v1
clusterrolebindings Yes Yes authorization.openshift.io/v1, rbac.authorization.k8s.io/v1
clusterroles Yes Yes authorization.openshift.io/v1, rbac.authorization.k8s.io/v1
clusterserviceversions Yes No operators.coreos.com/v1alpha1
clusterversions Yes No config.openshift.io/v1
componentstatuses Yes Yes v1
configmaps Yes Yes v1
configs Yes No imageregistry.operator.openshift.io/v1, operator.openshift.io/v1, samples.operator.openshift.io/v1
consoleclidownloads Yes No console.openshift.io/v1
consoleexternalloglinks Yes No console.openshift.io/v1
consolelinks Yes No console.openshift.io/v1
consolenotifications Yes No console.openshift.io/v1
consoleplugins Yes No console.openshift.io/v1, console.openshift.io/v1alpha1
consolequickstarts Yes No console.openshift.io/v1
consoles Yes No config.openshift.io/v1, operator.openshift.io/v1
consoleyamlsamples Yes No console.openshift.io/v1
containerruntimeconfigs Yes No machineconfiguration.openshift.io/v1
controllerconfigs Yes No machineconfiguration.openshift.io/v1
controllerrevisions Yes Yes apps/v1
controlplanemachinesets Yes No machine.openshift.io/v1
credentialsrequests Yes No cloudcredential.openshift.io/v1
cronjobs Yes Yes batch/v1
csidrivers Yes Yes storage.k8s.io/v1
csinodes Yes Yes storage.k8s.io/v1
csisnapshotcontrollers Yes No operator.openshift.io/v1
csistoragecapacities Yes Yes storage.k8s.io/v1, storage.k8s.io/v1beta1
customresourcedefinitions Yes Yes apiextensions.k8s.io/v1
daemonsets Yes Yes apps/v1
deploymentconfigs Yes No apps.openshift.io/v1
deployments Yes Yes apps/v1
dnses Yes No config.openshift.io/v1, operator.openshift.io/v1
dnsrecords Yes No ingress.operator.openshift.io/v1
egressfirewalls Yes No k8s.ovn.org/v1
egressips Yes No k8s.ovn.org/v1
egressqoses Yes No k8s.ovn.org/v1
egressrouters Yes No network.operator.openshift.io/v1
endpoints Yes Yes v1
endpointslices Yes Yes discovery.k8s.io/v1
etcds Yes No operator.openshift.io/v1
events Yes Yes v1, events.k8s.io/v1
featuregates Yes No config.openshift.io/v1
firmwareschemas Yes No metal3.io/v1alpha1
flowschemas Yes Yes flowcontrol.apiserver.k8s.io/v1beta1, flowcontrol.apiserver.k8s.io/v1beta2
groups Yes No user.openshift.io/v1
hardwaredata Yes No metal3.io/v1alpha1
helmchartrepositories Yes No helm.openshift.io/v1beta1
horizontalpodautoscalers Yes Yes autoscaling/v1, autoscaling/v2, autoscaling/v2beta2
hostfirmwaresettings Yes No metal3.io/v1alpha1
identities Yes No user.openshift.io/v1
imagecontentpolicies Yes No config.openshift.io/v1
imagecontentsourcepolicies Yes No operator.openshift.io/v1alpha1
imagepruners Yes No imageregistry.operator.openshift.io/v1
images Yes No config.openshift.io/v1, image.openshift.io/v1
imagesignatures Yes No image.openshift.io/v1
imagestreams Yes No image.openshift.io/v1
imagestreamtags Yes No image.openshift.io/v1
imagetags Yes No image.openshift.io/v1
infrastructures Yes No config.openshift.io/v1
ingressclasses Yes Yes networking.k8s.io/v1
ingresscontrollers Yes No operator.openshift.io/v1
ingresses Yes Yes config.openshift.io/v1, networking.k8s.io/v1
insightsoperators Yes No operator.openshift.io/v1
installplans Yes No operators.coreos.com/v1alpha1
ippools Yes No whereabouts.cni.cncf.io/v1alpha1
jobs Yes Yes batch/v1
kubeapiservers Yes No operator.openshift.io/v1
kubecontrollermanagers Yes No operator.openshift.io/v1
kubeletconfigs Yes No machineconfiguration.openshift.io/v1
kubeschedulers Yes No operator.openshift.io/v1
kubestorageversionmigrators Yes No operator.openshift.io/v1
leases Yes Yes coordination.k8s.io/v1
limitranges Yes Yes v1
machineautoscalers Yes No autoscaling.openshift.io/v1beta1
machineconfigpools Yes No machineconfiguration.openshift.io/v1
machineconfigs Yes No machineconfiguration.openshift.io/v1
machinehealthchecks Yes No machine.openshift.io/v1beta1
machines Yes No machine.openshift.io/v1beta1
machinesets Yes No machine.openshift.io/v1beta1
mutatingwebhookconfigurations Yes Yes admissionregistration.k8s.io/v1
namespaces Yes Yes v1
network-attachment-definitions Yes No k8s.cni.cncf.io/v1
networkpolicies Yes Yes networking.k8s.io/v1
networks Yes No config.openshift.io/v1, operator.openshift.io/v1
nodes Yes Yes v1, config.openshift.io/v1, metrics.k8s.io/v1beta1
oauthaccesstokens Yes No oauth.openshift.io/v1
oauthauthorizetokens Yes No oauth.openshift.io/v1
oauthclientauthorizations Yes No oauth.openshift.io/v1
oauthclients Yes No oauth.openshift.io/v1
oauths Yes No config.openshift.io/v1
olmconfigs Yes No operators.coreos.com/v1
openshiftapiservers Yes No operator.openshift.io/v1
openshiftcontrollermanagers Yes No operator.openshift.io/v1
operatorconditions Yes No operators.coreos.com/v1, operators.coreos.com/v2
operatorgroups Yes No operators.coreos.com/v1, operators.coreos.com/v1alpha2
operatorhubs Yes No config.openshift.io/v1
operatorpkis Yes No network.operator.openshift.io/v1
operators Yes No operators.coreos.com/v1
overlappingrangeipreservations Yes No whereabouts.cni.cncf.io/v1alpha1
packagemanifests Yes No packages.operators.coreos.com/v1
performanceprofiles Yes No performance.openshift.io/v1, performance.openshift.io/v1alpha1, performance.openshift.io/v2
persistentvolumeclaims Yes Yes v1
persistentvolumes Yes Yes v1
poddisruptionbudgets Yes Yes policy/v1
podmonitors Yes No monitoring.coreos.com/v1
podnetworkconnectivitychecks Yes No controlplane.operator.openshift.io/v1alpha1
pods Yes Yes v1, metrics.k8s.io/v1beta1
podtemplates Yes Yes v1
preprovisioningimages Yes No metal3.io/v1alpha1
priorityclasses Yes Yes scheduling.k8s.io/v1
prioritylevelconfigurations Yes Yes flowcontrol.apiserver.k8s.io/v1beta1, flowcontrol.apiserver.k8s.io/v1beta2
probes Yes No monitoring.coreos.com/v1
profiles Yes No tuned.openshift.io/v1
projecthelmchartrepositories Yes No helm.openshift.io/v1beta1
projectrequests Yes No project.openshift.io/v1
projects Yes No config.openshift.io/v1, project.openshift.io/v1
prometheuses Yes No monitoring.coreos.com/v1
prometheusrules Yes No monitoring.coreos.com/v1
provisionings Yes No metal3.io/v1alpha1
proxies Yes No config.openshift.io/v1
rangeallocations Yes Yes security.internal.openshift.io/v1, security.openshift.io/v1
replicasets Yes Yes apps/v1
replicationcontrollers Yes Yes v1
resourceaccessreviews Yes No authorization.openshift.io/v1
resourcequotas Yes Yes v1
rolebindingrestrictions Yes No authorization.openshift.io/v1
rolebindings Yes Yes authorization.openshift.io/v1, rbac.authorization.k8s.io/v1
roles Yes Yes authorization.openshift.io/v1, rbac.authorization.k8s.io/v1
routes Yes Yes route.openshift.io/v1
runtimeclasses Yes Yes node.k8s.io/v1
schedulers Yes No config.openshift.io/v1
secrets Yes Yes v1
securitycontextconstraints Yes Yes security.openshift.io/v1
selfsubjectaccessreviews Yes Yes authorization.k8s.io/v1
selfsubjectrulesreviews Yes Yes authorization.k8s.io/v1
serviceaccounts Yes Yes v1
servicecas Yes No operator.openshift.io/v1
servicemonitors Yes No monitoring.coreos.com/v1
services Yes Yes v1
statefulsets Yes Yes apps/v1
storageclasses Yes Yes storage.k8s.io/v1
storages Yes No operator.openshift.io/v1
storagestates Yes No migration.k8s.io/v1alpha1
storageversionmigrations Yes No migration.k8s.io/v1alpha1
subjectaccessreviews Yes Yes authorization.k8s.io/v1, authorization.openshift.io/v1
subscriptions Yes No operators.coreos.com/v1alpha1
templateinstances Yes No template.openshift.io/v1
templates Yes No template.openshift.io/v1
thanosrulers Yes No monitoring.coreos.com/v1
tokenreviews Yes Yes authentication.k8s.io/v1, oauth.openshift.io/v1
tuneds Yes No tuned.openshift.io/v1
useridentitymappings Yes No user.openshift.io/v1
useroauthaccesstokens Yes No oauth.openshift.io/v1
users Yes No user.openshift.io/v1
validatingwebhookconfigurations Yes Yes admissionregistration.k8s.io/v1
volumeattachments Yes Yes storage.k8s.io/v1
volumesnapshotclasses Yes No snapshot.storage.k8s.io/v1
volumesnapshotcontents Yes No snapshot.storage.k8s.io/v1
volumesnapshots Yes No snapshot.storage.k8s.io/v1