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 |