diff --git a/operators/registry-operator/0.3.0/bundle.Dockerfile b/operators/registry-operator/0.3.0/bundle.Dockerfile
new file mode 100644
index 00000000000..97dd2208bd6
--- /dev/null
+++ b/operators/registry-operator/0.3.0/bundle.Dockerfile
@@ -0,0 +1,20 @@
+FROM scratch
+
+# Core bundle labels.
+LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1
+LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/
+LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/
+LABEL operators.operatorframework.io.bundle.package.v1=registry-operator
+LABEL operators.operatorframework.io.bundle.channels.v1=beta
+LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.36.0
+LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1
+LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v3
+
+# Labels for testing.
+LABEL operators.operatorframework.io.test.mediatype.v1=scorecard+v1
+LABEL operators.operatorframework.io.test.config.v1=tests/scorecard/
+
+# Copy files to locations specified by labels.
+COPY bundle/manifests /manifests/
+COPY bundle/metadata /metadata/
+COPY bundle/tests/scorecard /tests/scorecard/
diff --git a/operators/registry-operator/0.3.0/manifests/registry-operator-controller-manager-metrics-service_v1_service.yaml b/operators/registry-operator/0.3.0/manifests/registry-operator-controller-manager-metrics-service_v1_service.yaml
new file mode 100644
index 00000000000..7bce52e6f83
--- /dev/null
+++ b/operators/registry-operator/0.3.0/manifests/registry-operator-controller-manager-metrics-service_v1_service.yaml
@@ -0,0 +1,23 @@
+apiVersion: v1
+kind: Service
+metadata:
+  creationTimestamp: null
+  labels:
+    app.kubernetes.io/component: kube-rbac-proxy
+    app.kubernetes.io/created-by: devfileregistry-operator
+    app.kubernetes.io/instance: controller-manager-metrics-service
+    app.kubernetes.io/managed-by: kustomize
+    app.kubernetes.io/name: service
+    app.kubernetes.io/part-of: devfileregistry-operator
+    control-plane: controller-manager
+  name: registry-operator-controller-manager-metrics-service
+spec:
+  ports:
+  - name: https
+    port: 8443
+    protocol: TCP
+    targetPort: https
+  selector:
+    control-plane: controller-manager
+status:
+  loadBalancer: {}
diff --git a/operators/registry-operator/0.3.0/manifests/registry-operator-manager-config_v1_configmap.yaml b/operators/registry-operator/0.3.0/manifests/registry-operator-manager-config_v1_configmap.yaml
new file mode 100644
index 00000000000..c4a19fa9e0b
--- /dev/null
+++ b/operators/registry-operator/0.3.0/manifests/registry-operator-manager-config_v1_configmap.yaml
@@ -0,0 +1,17 @@
+apiVersion: v1
+data:
+  controller_manager_config.yaml: |
+    apiVersion: controller-runtime.sigs.k8s.io/v1alpha1
+    kind: ControllerManagerConfig
+    health:
+      healthProbeBindAddress: :8081
+    metrics:
+      bindAddress: 127.0.0.1:8080
+    webhook:
+      port: 9443
+    leaderElection:
+      leaderElect: true
+      resourceName: 1984829e.devfile.io
+kind: ConfigMap
+metadata:
+  name: registry-operator-manager-config
diff --git a/operators/registry-operator/0.3.0/manifests/registry-operator-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml b/operators/registry-operator/0.3.0/manifests/registry-operator-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml
new file mode 100644
index 00000000000..76f067eff7d
--- /dev/null
+++ b/operators/registry-operator/0.3.0/manifests/registry-operator-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml
@@ -0,0 +1,17 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  creationTimestamp: null
+  labels:
+    app.kubernetes.io/component: kube-rbac-proxy
+    app.kubernetes.io/created-by: devfileregistry-operator
+    app.kubernetes.io/instance: metrics-reader
+    app.kubernetes.io/managed-by: kustomize
+    app.kubernetes.io/name: clusterrole
+    app.kubernetes.io/part-of: devfileregistry-operator
+  name: registry-operator-metrics-reader
+rules:
+- nonResourceURLs:
+  - /metrics
+  verbs:
+  - get
diff --git a/operators/registry-operator/0.3.0/manifests/registry-operator-webhook-service_v1_service.yaml b/operators/registry-operator/0.3.0/manifests/registry-operator-webhook-service_v1_service.yaml
new file mode 100644
index 00000000000..1de304c2e14
--- /dev/null
+++ b/operators/registry-operator/0.3.0/manifests/registry-operator-webhook-service_v1_service.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: Service
+metadata:
+  creationTimestamp: null
+  name: registry-operator-webhook-service
+spec:
+  ports:
+  - port: 443
+    targetPort: 9443
+  selector:
+    control-plane: controller-manager
+status:
+  loadBalancer: {}
diff --git a/operators/registry-operator/0.3.0/manifests/registry-operator.clusterserviceversion.yaml b/operators/registry-operator/0.3.0/manifests/registry-operator.clusterserviceversion.yaml
new file mode 100644
index 00000000000..67ae764e6b3
--- /dev/null
+++ b/operators/registry-operator/0.3.0/manifests/registry-operator.clusterserviceversion.yaml
@@ -0,0 +1,717 @@
+apiVersion: operators.coreos.com/v1alpha1
+kind: ClusterServiceVersion
+metadata:
+  annotations:
+    alm-examples: |-
+      [
+        {
+          "apiVersion": "registry.devfile.io/v1alpha1",
+          "kind": "DevfileRegistry",
+          "metadata": {
+            "name": "sample-devfileregistry"
+          },
+          "spec": {
+            "devfileIndex": {
+              "image": "quay.io/devfile/devfile-index:next"
+            }
+          }
+        },
+        {
+          "apiVersion": "registry.devfile.io/v1alpha1",
+          "kind": "DevfileRegistriesList",
+          "metadata": {
+            "name": "sample-devfileregistrieslist"
+          },
+          "spec": {
+            "devfileRegistries": [
+              {
+                "name": "devfile-staging",
+                "url": "https://registry.stage.devfile.io"
+              }
+            ]
+          }
+        },
+        {
+          "apiVersion": "registry.devfile.io/v1alpha1",
+          "kind": "ClusterDevfileRegistriesList",
+          "metadata": {
+            "name": "sample-clusterdevfileregistrieslist"
+          },
+          "spec": {
+            "devfileRegistries": [
+              {
+                "name": "devfile-staging",
+                "url": "https://registry.stage.devfile.io"
+              }
+            ]
+          }
+        }
+      ]
+    capabilities: Basic Install
+    categories: OpenShift Optional,Developer Tools
+    containerImage: quay.io/devfile/registry-operator:v0.3.0
+    createdAt: "2024-08-20T09:11:27Z"
+    description: Deploy and manage Devfile Registries on Kubernetes and OpenShift
+      with the Devfile Registry operator.
+    operators.operatorframework.io/builder: operator-sdk-v1.36.0
+    operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
+    repository: https://github.com/devfile/registry-operator
+    support: Red Hat
+  name: registry-operator.v0.3.0
+  namespace: placeholder
+spec:
+  apiservicedefinitions: {}
+  customresourcedefinitions:
+    owned:
+    - description: |-
+        ClusterDevfileRegistriesList is a custom resource where cluster admins can add a list of Devfile Registries to allow devfiles to be visible
+        at the cluster level.  In order to be added to the list, the Devfile Registries must be reachable, supports the Devfile v2.0 spec and above,
+        and is not using the default namespace.
+      displayName: Cluster Devfile Registries List
+      kind: ClusterDevfileRegistriesList
+      name: clusterdevfileregistrieslists.registry.devfile.io
+      resources:
+      - kind: Deployment
+        name: clusterdevfileregistrieslist-deployment
+        version: v1
+      specDescriptors:
+      - description: DevfileRegistries is a list of devfile registry services
+        displayName: Devfile Registries
+        path: devfileRegistries
+      - description: Name is the unique Name of the devfile registry.
+        displayName: Name
+        path: devfileRegistries[0].name
+      - description: SkipTLSVerify defaults to false.  Set to true in a non-production
+          environment to bypass certificate checking
+        displayName: Skip TLSVerify
+        path: devfileRegistries[0].skipTLSVerify
+      - description: URL is the unique URL of the devfile registry.
+        displayName: URL
+        path: devfileRegistries[0].url
+      statusDescriptors:
+      - description: Conditions shows the state of this CR's devfile registry list.  If
+          registries are no longer reachable, they will be listed here
+        displayName: Conditions
+        path: conditions
+      version: v1alpha1
+    - description: |-
+        DevfileRegistry is a custom resource allows you to create and manage your own index server and registry viewer.
+        In order to be added, the Devfile Registry must be reachable, supports the Devfile v2.0 spec and above, and is
+        not using the default namespace.
+      displayName: Devfile Registry
+      kind: DevfileRegistry
+      name: devfileregistries.registry.devfile.io
+      resources:
+      - kind: Deployment
+        name: devfileregistry-deployment
+        version: v1
+      specDescriptors:
+      - description: Sets the devfile index container spec to be deployed on the Devfile
+          Registry
+        displayName: Devfile Index
+        path: devfileIndex
+      - description: Sets the container image
+        displayName: Image
+        path: devfileIndex.image
+      - description: Sets the image pull policy for the container
+        displayName: Image Pull Policy
+        path: devfileIndex.imagePullPolicy
+      - description: Sets the memory limit for the container
+        displayName: Memory Limit
+        path: devfileIndex.memoryLimit
+      - description: Sets the container image containing devfile stacks to be deployed
+          on the Devfile Registry
+        displayName: Devfile Index Image
+        path: devfileIndexImage
+      - description: Overrides the fully qualified app name of the devfile registry
+        displayName: Fullname Override
+        path: fullnameOverride
+      - description: Sets the registry server deployment to run under headless mode
+        displayName: Headless
+        path: headless
+      - description: Overrides the entire hostname and domain of the devfile registry
+          ingress
+        displayName: Hostname Override
+        path: hostnameOverride
+      - displayName: K8s
+        path: k8s
+      - description: Ingress class for a Kubernetes cluster. Defaults to nginx.
+        displayName: Ingress Class
+        path: k8s.ingressClass
+      - description: Ingress domain for a Kubernetes cluster. This MUST be explicitly
+          specified on Kubernetes. There are no defaults
+        displayName: Ingress Domain
+        path: k8s.ingressDomain
+      - description: Overrides the app name of the devfile registry
+        displayName: Name Override
+        path: nameOverride
+      - description: Sets the OCI registry container spec to be deployed on the Devfile
+          Registry
+        displayName: Oci Registry
+        path: ociRegistry
+      - description: Sets the container image
+        displayName: Image
+        path: ociRegistry.image
+      - description: Sets the image pull policy for the container
+        displayName: Image Pull Policy
+        path: ociRegistry.imagePullPolicy
+      - description: Sets the memory limit for the container
+        displayName: Memory Limit
+        path: ociRegistry.memoryLimit
+      - description: |-
+          Overrides the container image used for the OCI registry.
+          Recommended to leave blank and default to the image specified by the operator.
+        displayName: Oci Registry Image
+        path: ociRegistryImage
+      - description: Sets the registry viewer container spec to be deployed on the
+          Devfile Registry
+        displayName: Registry Viewer
+        path: registryViewer
+      - description: Sets the container image
+        displayName: Image
+        path: registryViewer.image
+      - description: Sets the image pull policy for the container
+        displayName: Image Pull Policy
+        path: registryViewer.imagePullPolicy
+      - description: Sets the memory limit for the container
+        displayName: Memory Limit
+        path: registryViewer.memoryLimit
+      - description: Overrides the container image used for the registry viewer.
+        displayName: Registry Viewer Image
+        path: registryViewerImage
+      - displayName: Storage
+        path: storage
+      - description: |-
+          Instructs the operator to deploy the DevfileRegistry with persistent storage
+          Disabled by default.
+        displayName: Enabled
+        path: storage.enabled
+      - description: |-
+          Configures the size of the devfile registry's persistent volume, if enabled.
+          Defaults to 1Gi.
+        displayName: Registry Volume Size
+        path: storage.registryVolumeSize
+      - displayName: Telemetry
+        path: telemetry
+      - description: |-
+          Specify a telemetry key to allow devfile specific data to be sent to a client's own Segment analytics source.
+          If the write key is specified then telemetry will be enabled
+        displayName: Key
+        path: telemetry.key
+      - description: The registry name (can be any string) that is used as identifier
+          for devfile telemetry.
+        displayName: Registry Name
+        path: telemetry.registryName
+      - description: |-
+          Specify a telemetry write key for the registry viewer component to allow data to be sent to a client's own Segment analytics source.
+          If the write key is specified then telemetry for the registry viewer component will be enabled
+        displayName: Registry Viewer Write Key
+        path: telemetry.registryViewerWriteKey
+      - displayName: TLS
+        path: tls
+      - description: |-
+          Instructs the operator to deploy the DevfileRegistry with TLS enabled.
+          Enabled by default. Disabling is only recommended for development or test.
+        displayName: Enabled
+        path: tls.enabled
+      - description: Name of an optional, pre-existing TLS secret to use for TLS termination
+          on ingress/route resources.
+        displayName: Secret Name
+        path: tls.secretName
+      statusDescriptors:
+      - description: Conditions shows the state devfile registries.
+        displayName: Conditions
+        path: conditions
+      - description: URL is the exposed URL for the Devfile Registry, and is set in
+          the status after the registry has become available.
+        displayName: URL
+        path: url
+      version: v1alpha1
+    - description: |-
+        DevfileRegistriesList is a custom resource where namespace users can add a list of Devfile Registries to allow devfiles to be visible
+        at the namespace level.  In order to be added to the list, the Devfile Registries must be reachable, supports the Devfile v2.0 spec
+        and above, and is not using the default namespace.
+      displayName: Devfile Registries List
+      kind: DevfileRegistriesList
+      name: devfileregistrieslists.registry.devfile.io
+      resources:
+      - kind: Deployment
+        name: devfileregistrieslist-deployment
+        version: v1
+      specDescriptors:
+      - description: DevfileRegistries is a list of devfile registry services
+        displayName: Devfile Registries
+        path: devfileRegistries
+      - description: Name is the unique Name of the devfile registry.
+        displayName: Name
+        path: devfileRegistries[0].name
+      - description: SkipTLSVerify defaults to false.  Set to true in a non-production
+          environment to bypass certificate checking
+        displayName: Skip TLSVerify
+        path: devfileRegistries[0].skipTLSVerify
+      - description: URL is the unique URL of the devfile registry.
+        displayName: URL
+        path: devfileRegistries[0].url
+      statusDescriptors:
+      - description: Conditions shows the state of this CR's devfile registry list.  If
+          registries are no longer reachable, they will be listed here
+        displayName: Conditions
+        path: conditions
+      version: v1alpha1
+  description: "A devfile registry is a service that stores and provides devfile stacks
+    to Kubernetes developer tools like `odo`, Eclipse Che, and the OpenShift Developer
+    Console. Using this\noperator you can deploy and manage devfile registries on
+    Kubernetes and OpenShift.\n\nBasic usage:\n```\napiVersion: registry.devfile.io/v1alpha1\n
+    \ kind: DevfileRegistry\nmetadata:\n  name: sample-devfileregistry\nspec:\n  devfileIndex:
+    \n    image: quay.io/devfile/devfile-index:next\n```\n\nFor more on setup and
+    usage see our [README](https://github.com/devfile/registry-operator/blob/main/README.md)."
+  displayName: Devfile Registry Operator
+  icon:
+  - base64data: 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
+    mediatype: image/png
+  install:
+    spec:
+      clusterPermissions:
+      - rules:
+        - apiGroups:
+          - apps
+          resources:
+          - deployments
+          verbs:
+          - create
+          - delete
+          - get
+          - list
+          - patch
+          - update
+          - watch
+        - apiGroups:
+          - ""
+          resources:
+          - configmaps
+          - persistentvolumeclaims
+          - services
+          verbs:
+          - create
+          - delete
+          - get
+          - list
+          - patch
+          - update
+          - watch
+        - apiGroups:
+          - ""
+          resources:
+          - pods
+          verbs:
+          - get
+          - list
+        - apiGroups:
+          - networking.k8s.io
+          resources:
+          - ingresses
+          verbs:
+          - create
+          - delete
+          - get
+          - list
+          - patch
+          - update
+          - watch
+        - apiGroups:
+          - registry.devfile.io
+          resources:
+          - clusterdevfileregistrieslists
+          verbs:
+          - create
+          - delete
+          - get
+          - list
+          - patch
+          - update
+          - watch
+        - apiGroups:
+          - registry.devfile.io
+          resources:
+          - clusterdevfileregistrieslists/finalizers
+          verbs:
+          - update
+        - apiGroups:
+          - registry.devfile.io
+          resources:
+          - clusterdevfileregistrieslists/status
+          verbs:
+          - get
+          - patch
+          - update
+        - apiGroups:
+          - registry.devfile.io
+          resources:
+          - devfileregistries
+          verbs:
+          - create
+          - delete
+          - get
+          - list
+          - patch
+          - update
+          - watch
+        - apiGroups:
+          - registry.devfile.io
+          resources:
+          - devfileregistries/finalizers
+          - devfileregistries/status
+          verbs:
+          - get
+          - patch
+          - update
+        - apiGroups:
+          - registry.devfile.io
+          resources:
+          - devfileregistrieslists
+          verbs:
+          - create
+          - delete
+          - get
+          - list
+          - patch
+          - update
+          - watch
+        - apiGroups:
+          - registry.devfile.io
+          resources:
+          - devfileregistrieslists/finalizers
+          verbs:
+          - update
+        - apiGroups:
+          - registry.devfile.io
+          resources:
+          - devfileregistrieslists/status
+          verbs:
+          - get
+          - patch
+          - update
+        - apiGroups:
+          - route.openshift.io
+          resources:
+          - routes
+          - routes/custom-host
+          verbs:
+          - create
+          - delete
+          - get
+          - list
+          - patch
+          - update
+          - watch
+        - apiGroups:
+          - authentication.k8s.io
+          resources:
+          - tokenreviews
+          verbs:
+          - create
+        - apiGroups:
+          - authorization.k8s.io
+          resources:
+          - subjectaccessreviews
+          verbs:
+          - create
+        serviceAccountName: registry-operator-service-account
+      deployments:
+      - label:
+          app.kubernetes.io/name: devfileregistry-operator
+          control-plane: controller-manager
+        name: registry-operator-controller-manager
+        spec:
+          replicas: 1
+          selector:
+            matchLabels:
+              app.kubernetes.io/name: devfileregistry-operator
+              control-plane: controller-manager
+          strategy: {}
+          template:
+            metadata:
+              annotations:
+                kubectl.kubernetes.io/default-container: manager
+              labels:
+                app.kubernetes.io/name: devfileregistry-operator
+                control-plane: controller-manager
+            spec:
+              containers:
+              - args:
+                - --secure-listen-address=0.0.0.0:8443
+                - --upstream=http://127.0.0.1:8080/
+                - --logtostderr=true
+                - --v=10
+                - --http2-disable=true
+                image: gcr.io/kubebuilder/kube-rbac-proxy:v0.15.0
+                name: kube-rbac-proxy
+                ports:
+                - containerPort: 8443
+                  name: https
+                  protocol: TCP
+                resources:
+                  limits:
+                    cpu: 500m
+                    memory: 128Mi
+                  requests:
+                    cpu: 5m
+                    memory: 64Mi
+                securityContext:
+                  allowPrivilegeEscalation: false
+                  capabilities:
+                    drop:
+                    - ALL
+                  seccompProfile:
+                    type: RuntimeDefault
+              - args:
+                - --health-probe-bind-address=:8081
+                - --metrics-bind-address=127.0.0.1:8080
+                - --leader-elect
+                command:
+                - /manager
+                image: quay.io/devfile/registry-operator:v0.3.0
+                imagePullPolicy: Always
+                livenessProbe:
+                  httpGet:
+                    path: /healthz
+                    port: 8081
+                  initialDelaySeconds: 15
+                  periodSeconds: 20
+                name: manager
+                ports:
+                - containerPort: 9443
+                  name: webhook-server
+                  protocol: TCP
+                readinessProbe:
+                  httpGet:
+                    path: /readyz
+                    port: 8081
+                  initialDelaySeconds: 5
+                  periodSeconds: 10
+                resources:
+                  limits:
+                    cpu: 100m
+                    memory: 100Mi
+                  requests:
+                    cpu: 100m
+                    memory: 20Mi
+                securityContext:
+                  allowPrivilegeEscalation: false
+                  capabilities:
+                    drop:
+                    - ALL
+                volumeMounts:
+                - mountPath: /tmp/k8s-webhook-server/serving-certs
+                  name: cert
+                  readOnly: true
+              securityContext:
+                runAsNonRoot: true
+                seccompProfile:
+                  type: RuntimeDefault
+              serviceAccountName: registry-operator-service-account
+              terminationGracePeriodSeconds: 10
+              volumes:
+              - name: cert
+                secret:
+                  defaultMode: 420
+                  secretName: webhook-server-cert
+      permissions:
+      - rules:
+        - apiGroups:
+          - ""
+          resources:
+          - configmaps
+          verbs:
+          - get
+          - list
+          - watch
+          - create
+          - update
+          - patch
+          - delete
+        - apiGroups:
+          - coordination.k8s.io
+          resources:
+          - leases
+          verbs:
+          - get
+          - list
+          - watch
+          - create
+          - update
+          - patch
+          - delete
+        - apiGroups:
+          - ""
+          resources:
+          - events
+          verbs:
+          - create
+          - patch
+        serviceAccountName: registry-operator-service-account
+    strategy: deployment
+  installModes:
+  - supported: false
+    type: OwnNamespace
+  - supported: false
+    type: SingleNamespace
+  - supported: false
+    type: MultiNamespace
+  - supported: true
+    type: AllNamespaces
+  keywords:
+  - devfile
+  - devfiles
+  - registry
+  - cloud-native
+  - stack
+  - odo
+  - che
+  - openshift
+  - microservice
+  links:
+  - name: Devfile
+    url: https://devfile.io
+  - name: Devfile Registry Operator GitHub
+    url: https://github.com/devfile/registry-operator
+  - name: Devfile Registry Support Services GitHub
+    url: https://github.com/devfile/registry-support
+  - name: Devfile Community Registry GitHub
+    url: https://github.com/devfile/registry
+  maintainers:
+  - email: mvaldron@redhat.com
+    name: Michael Valdron
+  - email: jcollier@redhat.com
+    name: John Collier
+  - email: tpetkos@redhat.com
+    name: Theofanis Petkos
+  - email: jdubrick@redhat.com
+    name: Jordan Dubrick
+  maturity: beta
+  minKubeVersion: 1.25.0
+  provider:
+    name: Red Hat
+    url: https://redhat.com
+  version: 0.3.0
+  webhookdefinitions:
+  - admissionReviewVersions:
+    - v1
+    containerPort: 443
+    deploymentName: registry-operator-controller-manager
+    failurePolicy: Fail
+    generateName: mclusterdevfileregistrieslist.kb.io
+    rules:
+    - apiGroups:
+      - registry.devfile.io
+      apiVersions:
+      - v1alpha1
+      operations:
+      - CREATE
+      - UPDATE
+      resources:
+      - clusterdevfileregistrieslists
+    sideEffects: None
+    targetPort: 9443
+    type: MutatingAdmissionWebhook
+    webhookPath: /mutate-registry-devfile-io-v1alpha1-clusterdevfileregistrieslist
+  - admissionReviewVersions:
+    - v1
+    containerPort: 443
+    deploymentName: registry-operator-controller-manager
+    failurePolicy: Fail
+    generateName: mdevfileregistrieslist.kb.io
+    rules:
+    - apiGroups:
+      - registry.devfile.io
+      apiVersions:
+      - v1alpha1
+      operations:
+      - CREATE
+      - UPDATE
+      resources:
+      - devfileregistrieslists
+    sideEffects: None
+    targetPort: 9443
+    type: MutatingAdmissionWebhook
+    webhookPath: /mutate-registry-devfile-io-v1alpha1-devfileregistrieslist
+  - admissionReviewVersions:
+    - v1
+    containerPort: 443
+    deploymentName: registry-operator-controller-manager
+    failurePolicy: Fail
+    generateName: mdevfileregistry.kb.io
+    rules:
+    - apiGroups:
+      - registry.devfile.io
+      apiVersions:
+      - v1alpha1
+      operations:
+      - CREATE
+      - UPDATE
+      resources:
+      - devfileregistries
+    sideEffects: None
+    targetPort: 9443
+    type: MutatingAdmissionWebhook
+    webhookPath: /mutate-registry-devfile-io-v1alpha1-devfileregistry
+  - admissionReviewVersions:
+    - v1
+    containerPort: 443
+    deploymentName: registry-operator-controller-manager
+    failurePolicy: Fail
+    generateName: vclusterdevfileregistrieslist.kb.io
+    rules:
+    - apiGroups:
+      - registry.devfile.io
+      apiVersions:
+      - v1alpha1
+      operations:
+      - CREATE
+      - UPDATE
+      resources:
+      - clusterdevfileregistrieslists
+    sideEffects: None
+    targetPort: 9443
+    type: ValidatingAdmissionWebhook
+    webhookPath: /validate-registry-devfile-io-v1alpha1-clusterdevfileregistrieslist
+  - admissionReviewVersions:
+    - v1
+    containerPort: 443
+    deploymentName: registry-operator-controller-manager
+    failurePolicy: Fail
+    generateName: vdevfileregistrieslist.kb.io
+    rules:
+    - apiGroups:
+      - registry.devfile.io
+      apiVersions:
+      - v1alpha1
+      operations:
+      - CREATE
+      - UPDATE
+      resources:
+      - devfileregistrieslists
+    sideEffects: None
+    targetPort: 9443
+    type: ValidatingAdmissionWebhook
+    webhookPath: /validate-registry-devfile-io-v1alpha1-devfileregistrieslist
+  - admissionReviewVersions:
+    - v1
+    containerPort: 443
+    deploymentName: registry-operator-controller-manager
+    failurePolicy: Fail
+    generateName: vdevfileregistry.kb.io
+    rules:
+    - apiGroups:
+      - registry.devfile.io
+      apiVersions:
+      - v1alpha1
+      operations:
+      - CREATE
+      - UPDATE
+      resources:
+      - devfileregistries
+    sideEffects: None
+    targetPort: 9443
+    type: ValidatingAdmissionWebhook
+    webhookPath: /validate-registry-devfile-io-v1alpha1-devfileregistry
diff --git a/operators/registry-operator/0.3.0/manifests/registry.devfile.io_clusterdevfileregistrieslists.yaml b/operators/registry-operator/0.3.0/manifests/registry.devfile.io_clusterdevfileregistrieslists.yaml
new file mode 100644
index 00000000000..b86c06ef428
--- /dev/null
+++ b/operators/registry-operator/0.3.0/manifests/registry.devfile.io_clusterdevfileregistrieslists.yaml
@@ -0,0 +1,166 @@
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+  annotations:
+    cert-manager.io/inject-ca-from: registry-operator-system/registry-operator-serving-cert
+    controller-gen.kubebuilder.io/version: v0.9.2
+  creationTimestamp: null
+  name: clusterdevfileregistrieslists.registry.devfile.io
+spec:
+  conversion:
+    strategy: Webhook
+    webhook:
+      clientConfig:
+        service:
+          name: webhook-service
+          namespace: system
+          path: /convert
+          port: 443
+      conversionReviewVersions:
+      - v1
+  group: registry.devfile.io
+  names:
+    kind: ClusterDevfileRegistriesList
+    listKind: ClusterDevfileRegistriesListList
+    plural: clusterdevfileregistrieslists
+    singular: clusterdevfileregistrieslist
+  scope: Cluster
+  versions:
+  - additionalPrinterColumns:
+    - description: The status for the Cluster Devfile Registries List
+      jsonPath: .status.status
+      name: Status
+      type: string
+    name: v1alpha1
+    schema:
+      openAPIV3Schema:
+        description: ClusterDevfileRegistriesList is a custom resource where cluster
+          admins can add a list of Devfile Registries to allow devfiles to be visible
+          at the cluster level.  In order to be added to the list, the Devfile Registries
+          must be reachable, supports the Devfile v2.0 spec and above, and is not
+          using the default namespace.
+        properties:
+          apiVersion:
+            description: 'APIVersion defines the versioned schema of this representation
+              of an object. Servers should convert recognized schemas to the latest
+              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+            type: string
+          kind:
+            description: 'Kind is a string value representing the REST resource this
+              object represents. Servers may infer this from the endpoint the client
+              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+            type: string
+          metadata:
+            type: object
+          spec:
+            description: DevfileRegistriesListSpec defines the desired state of DevfileRegistriesList
+            properties:
+              devfileRegistries:
+                description: DevfileRegistries is a list of devfile registry services
+                items:
+                  description: DevfileRegistryService represents the properties used
+                    to identify a devfile registry service.
+                  properties:
+                    name:
+                      description: Name is the unique Name of the devfile registry.
+                      type: string
+                    skipTLSVerify:
+                      description: SkipTLSVerify defaults to false.  Set to true in
+                        a non-production environment to bypass certificate checking
+                      type: boolean
+                    url:
+                      description: URL is the unique URL of the devfile registry.
+                      type: string
+                  required:
+                  - name
+                  - url
+                  type: object
+                type: array
+            type: object
+          status:
+            description: DevfileRegistriesListStatus defines the observed state of
+              DevfileRegistriesList
+            properties:
+              conditions:
+                description: Conditions shows the state of this CR's devfile registry
+                  list.  If registries are no longer reachable, they will be listed
+                  here
+                items:
+                  description: "Condition contains details for one aspect of the current
+                    state of this API Resource. --- This struct is intended for direct
+                    use as an array at the field path .status.conditions.  For example,
+                    \n type FooStatus struct{ // Represents the observations of a
+                    foo's current state. // Known .status.conditions.type are: \"Available\",
+                    \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
+                    // +listType=map // +listMapKey=type Conditions []metav1.Condition
+                    `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
+                    protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
+                  properties:
+                    lastTransitionTime:
+                      description: lastTransitionTime is the last time the condition
+                        transitioned from one status to another. This should be when
+                        the underlying condition changed.  If that is not known, then
+                        using the time when the API field changed is acceptable.
+                      format: date-time
+                      type: string
+                    message:
+                      description: message is a human readable message indicating
+                        details about the transition. This may be an empty string.
+                      maxLength: 32768
+                      type: string
+                    observedGeneration:
+                      description: observedGeneration represents the .metadata.generation
+                        that the condition was set based upon. For instance, if .metadata.generation
+                        is currently 12, but the .status.conditions[x].observedGeneration
+                        is 9, the condition is out of date with respect to the current
+                        state of the instance.
+                      format: int64
+                      minimum: 0
+                      type: integer
+                    reason:
+                      description: reason contains a programmatic identifier indicating
+                        the reason for the condition's last transition. Producers
+                        of specific condition types may define expected values and
+                        meanings for this field, and whether the values are considered
+                        a guaranteed API. The value should be a CamelCase string.
+                        This field may not be empty.
+                      maxLength: 1024
+                      minLength: 1
+                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
+                      type: string
+                    status:
+                      description: status of the condition, one of True, False, Unknown.
+                      enum:
+                      - "True"
+                      - "False"
+                      - Unknown
+                      type: string
+                    type:
+                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
+                        --- Many .condition.type values are consistent across resources
+                        like Available, but because arbitrary conditions can be useful
+                        (see .node.status.conditions), the ability to deconflict is
+                        important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
+                      maxLength: 316
+                      pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
+                      type: string
+                  required:
+                  - lastTransitionTime
+                  - message
+                  - reason
+                  - status
+                  - type
+                  type: object
+                type: array
+            type: object
+        type: object
+    served: true
+    storage: true
+    subresources:
+      status: {}
+status:
+  acceptedNames:
+    kind: ""
+    plural: ""
+  conditions: null
+  storedVersions: null
diff --git a/operators/registry-operator/0.3.0/manifests/registry.devfile.io_devfileregistries.yaml b/operators/registry-operator/0.3.0/manifests/registry.devfile.io_devfileregistries.yaml
new file mode 100644
index 00000000000..1a81267dbd4
--- /dev/null
+++ b/operators/registry-operator/0.3.0/manifests/registry.devfile.io_devfileregistries.yaml
@@ -0,0 +1,267 @@
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+  annotations:
+    controller-gen.kubebuilder.io/version: v0.9.2
+  creationTimestamp: null
+  name: devfileregistries.registry.devfile.io
+spec:
+  group: registry.devfile.io
+  names:
+    kind: DevfileRegistry
+    listKind: DevfileRegistryList
+    plural: devfileregistries
+    shortNames:
+    - devreg
+    - dr
+    singular: devfileregistry
+  scope: Namespaced
+  versions:
+  - additionalPrinterColumns:
+    - description: The URL for the Devfile Registry
+      jsonPath: .status.url
+      name: URL
+      type: string
+    name: v1alpha1
+    schema:
+      openAPIV3Schema:
+        description: DevfileRegistry is a custom resource allows you to create and
+          manage your own index server and registry viewer. In order to be added,
+          the Devfile Registry must be reachable, supports the Devfile v2.0 spec and
+          above, and is not using the default namespace.
+        properties:
+          apiVersion:
+            description: 'APIVersion defines the versioned schema of this representation
+              of an object. Servers should convert recognized schemas to the latest
+              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+            type: string
+          kind:
+            description: 'Kind is a string value representing the REST resource this
+              object represents. Servers may infer this from the endpoint the client
+              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+            type: string
+          metadata:
+            type: object
+          spec:
+            description: DevfileRegistrySpec defines the desired state of DevfileRegistry
+            properties:
+              devfileIndex:
+                description: Sets the devfile index container spec to be deployed
+                  on the Devfile Registry
+                properties:
+                  image:
+                    description: Sets the container image
+                    type: string
+                  imagePullPolicy:
+                    description: Sets the image pull policy for the container
+                    type: string
+                  memoryLimit:
+                    description: Sets the memory limit for the container
+                    type: string
+                type: object
+              devfileIndexImage:
+                description: Sets the container image containing devfile stacks to
+                  be deployed on the Devfile Registry
+                type: string
+              fullnameOverride:
+                description: Overrides the fully qualified app name of the devfile
+                  registry
+                type: string
+              headless:
+                description: Sets the registry server deployment to run under headless
+                  mode
+                type: boolean
+              hostnameOverride:
+                description: Overrides the entire hostname and domain of the devfile
+                  registry ingress
+                type: string
+              k8s:
+                description: DevfileRegistrySpecK8sOnly defines the desired state
+                  of the kubernetes-only fields of the DevfileRegistry
+                properties:
+                  ingressClass:
+                    description: Ingress class for a Kubernetes cluster. Defaults
+                      to nginx.
+                    type: string
+                  ingressDomain:
+                    description: Ingress domain for a Kubernetes cluster. This MUST
+                      be explicitly specified on Kubernetes. There are no defaults
+                    type: string
+                type: object
+              nameOverride:
+                description: Overrides the app name of the devfile registry
+                type: string
+              ociRegistry:
+                description: Sets the OCI registry container spec to be deployed on
+                  the Devfile Registry
+                properties:
+                  image:
+                    description: Sets the container image
+                    type: string
+                  imagePullPolicy:
+                    description: Sets the image pull policy for the container
+                    type: string
+                  memoryLimit:
+                    description: Sets the memory limit for the container
+                    type: string
+                type: object
+              ociRegistryImage:
+                description: Overrides the container image used for the OCI registry.
+                  Recommended to leave blank and default to the image specified by
+                  the operator.
+                type: string
+              registryViewer:
+                description: Sets the registry viewer container spec to be deployed
+                  on the Devfile Registry
+                properties:
+                  image:
+                    description: Sets the container image
+                    type: string
+                  imagePullPolicy:
+                    description: Sets the image pull policy for the container
+                    type: string
+                  memoryLimit:
+                    description: Sets the memory limit for the container
+                    type: string
+                type: object
+              registryViewerImage:
+                description: Overrides the container image used for the registry viewer.
+                type: string
+              storage:
+                description: DevfileRegistrySpecStorage defines the desired state
+                  of the storage for the DevfileRegistry
+                properties:
+                  enabled:
+                    description: Instructs the operator to deploy the DevfileRegistry
+                      with persistent storage Disabled by default.
+                    type: boolean
+                  registryVolumeSize:
+                    description: Configures the size of the devfile registry's persistent
+                      volume, if enabled. Defaults to 1Gi.
+                    type: string
+                type: object
+              telemetry:
+                description: Telemetry defines the desired state for telemetry in
+                  the DevfileRegistry
+                properties:
+                  key:
+                    description: Specify a telemetry key to allow devfile specific
+                      data to be sent to a client's own Segment analytics source.
+                      If the write key is specified then telemetry will be enabled
+                    type: string
+                  registryName:
+                    description: The registry name (can be any string) that is used
+                      as identifier for devfile telemetry.
+                    type: string
+                  registryViewerWriteKey:
+                    description: Specify a telemetry write key for the registry viewer
+                      component to allow data to be sent to a client's own Segment
+                      analytics source. If the write key is specified then telemetry
+                      for the registry viewer component will be enabled
+                    type: string
+                type: object
+              tls:
+                description: DevfileRegistrySpecTLS defines the desired state for
+                  TLS in the DevfileRegistry
+                properties:
+                  enabled:
+                    description: Instructs the operator to deploy the DevfileRegistry
+                      with TLS enabled. Enabled by default. Disabling is only recommended
+                      for development or test.
+                    type: boolean
+                  secretName:
+                    description: Name of an optional, pre-existing TLS secret to use
+                      for TLS termination on ingress/route resources.
+                    type: string
+                type: object
+            type: object
+          status:
+            description: DevfileRegistryStatus defines the observed state of DevfileRegistry
+            properties:
+              conditions:
+                description: Conditions shows the state devfile registries.
+                items:
+                  description: "Condition contains details for one aspect of the current
+                    state of this API Resource. --- This struct is intended for direct
+                    use as an array at the field path .status.conditions.  For example,
+                    \n type FooStatus struct{ // Represents the observations of a
+                    foo's current state. // Known .status.conditions.type are: \"Available\",
+                    \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
+                    // +listType=map // +listMapKey=type Conditions []metav1.Condition
+                    `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
+                    protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
+                  properties:
+                    lastTransitionTime:
+                      description: lastTransitionTime is the last time the condition
+                        transitioned from one status to another. This should be when
+                        the underlying condition changed.  If that is not known, then
+                        using the time when the API field changed is acceptable.
+                      format: date-time
+                      type: string
+                    message:
+                      description: message is a human readable message indicating
+                        details about the transition. This may be an empty string.
+                      maxLength: 32768
+                      type: string
+                    observedGeneration:
+                      description: observedGeneration represents the .metadata.generation
+                        that the condition was set based upon. For instance, if .metadata.generation
+                        is currently 12, but the .status.conditions[x].observedGeneration
+                        is 9, the condition is out of date with respect to the current
+                        state of the instance.
+                      format: int64
+                      minimum: 0
+                      type: integer
+                    reason:
+                      description: reason contains a programmatic identifier indicating
+                        the reason for the condition's last transition. Producers
+                        of specific condition types may define expected values and
+                        meanings for this field, and whether the values are considered
+                        a guaranteed API. The value should be a CamelCase string.
+                        This field may not be empty.
+                      maxLength: 1024
+                      minLength: 1
+                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
+                      type: string
+                    status:
+                      description: status of the condition, one of True, False, Unknown.
+                      enum:
+                      - "True"
+                      - "False"
+                      - Unknown
+                      type: string
+                    type:
+                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
+                        --- Many .condition.type values are consistent across resources
+                        like Available, but because arbitrary conditions can be useful
+                        (see .node.status.conditions), the ability to deconflict is
+                        important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
+                      maxLength: 316
+                      pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
+                      type: string
+                  required:
+                  - lastTransitionTime
+                  - message
+                  - reason
+                  - status
+                  - type
+                  type: object
+                type: array
+              url:
+                description: URL is the exposed URL for the Devfile Registry, and
+                  is set in the status after the registry has become available.
+                type: string
+            required:
+            - url
+            type: object
+        type: object
+    served: true
+    storage: true
+    subresources:
+      status: {}
+status:
+  acceptedNames:
+    kind: ""
+    plural: ""
+  conditions: null
+  storedVersions: null
diff --git a/operators/registry-operator/0.3.0/manifests/registry.devfile.io_devfileregistrieslists.yaml b/operators/registry-operator/0.3.0/manifests/registry.devfile.io_devfileregistrieslists.yaml
new file mode 100644
index 00000000000..c5ae6c51055
--- /dev/null
+++ b/operators/registry-operator/0.3.0/manifests/registry.devfile.io_devfileregistrieslists.yaml
@@ -0,0 +1,166 @@
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+  annotations:
+    cert-manager.io/inject-ca-from: registry-operator-system/registry-operator-serving-cert
+    controller-gen.kubebuilder.io/version: v0.9.2
+  creationTimestamp: null
+  name: devfileregistrieslists.registry.devfile.io
+spec:
+  conversion:
+    strategy: Webhook
+    webhook:
+      clientConfig:
+        service:
+          name: webhook-service
+          namespace: system
+          path: /convert
+          port: 443
+      conversionReviewVersions:
+      - v1
+  group: registry.devfile.io
+  names:
+    kind: DevfileRegistriesList
+    listKind: DevfileRegistriesListList
+    plural: devfileregistrieslists
+    singular: devfileregistrieslist
+  scope: Namespaced
+  versions:
+  - additionalPrinterColumns:
+    - description: The status for the Devfile Registries List
+      jsonPath: .status.status
+      name: Status
+      type: string
+    name: v1alpha1
+    schema:
+      openAPIV3Schema:
+        description: DevfileRegistriesList is a custom resource where namespace users
+          can add a list of Devfile Registries to allow devfiles to be visible at
+          the namespace level.  In order to be added to the list, the Devfile Registries
+          must be reachable, supports the Devfile v2.0 spec and above, and is not
+          using the default namespace.
+        properties:
+          apiVersion:
+            description: 'APIVersion defines the versioned schema of this representation
+              of an object. Servers should convert recognized schemas to the latest
+              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+            type: string
+          kind:
+            description: 'Kind is a string value representing the REST resource this
+              object represents. Servers may infer this from the endpoint the client
+              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+            type: string
+          metadata:
+            type: object
+          spec:
+            description: DevfileRegistriesListSpec defines the desired state of DevfileRegistriesList
+            properties:
+              devfileRegistries:
+                description: DevfileRegistries is a list of devfile registry services
+                items:
+                  description: DevfileRegistryService represents the properties used
+                    to identify a devfile registry service.
+                  properties:
+                    name:
+                      description: Name is the unique Name of the devfile registry.
+                      type: string
+                    skipTLSVerify:
+                      description: SkipTLSVerify defaults to false.  Set to true in
+                        a non-production environment to bypass certificate checking
+                      type: boolean
+                    url:
+                      description: URL is the unique URL of the devfile registry.
+                      type: string
+                  required:
+                  - name
+                  - url
+                  type: object
+                type: array
+            type: object
+          status:
+            description: DevfileRegistriesListStatus defines the observed state of
+              DevfileRegistriesList
+            properties:
+              conditions:
+                description: Conditions shows the state of this CR's devfile registry
+                  list.  If registries are no longer reachable, they will be listed
+                  here
+                items:
+                  description: "Condition contains details for one aspect of the current
+                    state of this API Resource. --- This struct is intended for direct
+                    use as an array at the field path .status.conditions.  For example,
+                    \n type FooStatus struct{ // Represents the observations of a
+                    foo's current state. // Known .status.conditions.type are: \"Available\",
+                    \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
+                    // +listType=map // +listMapKey=type Conditions []metav1.Condition
+                    `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
+                    protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
+                  properties:
+                    lastTransitionTime:
+                      description: lastTransitionTime is the last time the condition
+                        transitioned from one status to another. This should be when
+                        the underlying condition changed.  If that is not known, then
+                        using the time when the API field changed is acceptable.
+                      format: date-time
+                      type: string
+                    message:
+                      description: message is a human readable message indicating
+                        details about the transition. This may be an empty string.
+                      maxLength: 32768
+                      type: string
+                    observedGeneration:
+                      description: observedGeneration represents the .metadata.generation
+                        that the condition was set based upon. For instance, if .metadata.generation
+                        is currently 12, but the .status.conditions[x].observedGeneration
+                        is 9, the condition is out of date with respect to the current
+                        state of the instance.
+                      format: int64
+                      minimum: 0
+                      type: integer
+                    reason:
+                      description: reason contains a programmatic identifier indicating
+                        the reason for the condition's last transition. Producers
+                        of specific condition types may define expected values and
+                        meanings for this field, and whether the values are considered
+                        a guaranteed API. The value should be a CamelCase string.
+                        This field may not be empty.
+                      maxLength: 1024
+                      minLength: 1
+                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
+                      type: string
+                    status:
+                      description: status of the condition, one of True, False, Unknown.
+                      enum:
+                      - "True"
+                      - "False"
+                      - Unknown
+                      type: string
+                    type:
+                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
+                        --- Many .condition.type values are consistent across resources
+                        like Available, but because arbitrary conditions can be useful
+                        (see .node.status.conditions), the ability to deconflict is
+                        important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
+                      maxLength: 316
+                      pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
+                      type: string
+                  required:
+                  - lastTransitionTime
+                  - message
+                  - reason
+                  - status
+                  - type
+                  type: object
+                type: array
+            type: object
+        type: object
+    served: true
+    storage: true
+    subresources:
+      status: {}
+status:
+  acceptedNames:
+    kind: ""
+    plural: ""
+  conditions: null
+  storedVersions: null
diff --git a/operators/registry-operator/0.3.0/metadata/annotations.yaml b/operators/registry-operator/0.3.0/metadata/annotations.yaml
new file mode 100644
index 00000000000..ca8dbd5fd60
--- /dev/null
+++ b/operators/registry-operator/0.3.0/metadata/annotations.yaml
@@ -0,0 +1,14 @@
+annotations:
+  # Core bundle annotations.
+  operators.operatorframework.io.bundle.mediatype.v1: registry+v1
+  operators.operatorframework.io.bundle.manifests.v1: manifests/
+  operators.operatorframework.io.bundle.metadata.v1: metadata/
+  operators.operatorframework.io.bundle.package.v1: registry-operator
+  operators.operatorframework.io.bundle.channels.v1: beta
+  operators.operatorframework.io.metrics.builder: operator-sdk-v1.36.0
+  operators.operatorframework.io.metrics.mediatype.v1: metrics+v1
+  operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v3
+
+  # Annotations for testing.
+  operators.operatorframework.io.test.mediatype.v1: scorecard+v1
+  operators.operatorframework.io.test.config.v1: tests/scorecard/
diff --git a/operators/registry-operator/0.3.0/tests/scorecard/config.yaml b/operators/registry-operator/0.3.0/tests/scorecard/config.yaml
new file mode 100644
index 00000000000..c0ffb5abfff
--- /dev/null
+++ b/operators/registry-operator/0.3.0/tests/scorecard/config.yaml
@@ -0,0 +1,70 @@
+apiVersion: scorecard.operatorframework.io/v1alpha3
+kind: Configuration
+metadata:
+  name: config
+stages:
+- parallel: true
+  tests:
+  - entrypoint:
+    - scorecard-test
+    - basic-check-spec
+    image: quay.io/operator-framework/scorecard-test:v1.28.0
+    labels:
+      suite: basic
+      test: basic-check-spec-test
+    storage:
+      spec:
+        mountPath: {}
+  - entrypoint:
+    - scorecard-test
+    - olm-bundle-validation
+    image: quay.io/operator-framework/scorecard-test:v1.28.0
+    labels:
+      suite: olm
+      test: olm-bundle-validation-test
+    storage:
+      spec:
+        mountPath: {}
+  - entrypoint:
+    - scorecard-test
+    - olm-crds-have-validation
+    image: quay.io/operator-framework/scorecard-test:v1.28.0
+    labels:
+      suite: olm
+      test: olm-crds-have-validation-test
+    storage:
+      spec:
+        mountPath: {}
+  - entrypoint:
+    - scorecard-test
+    - olm-crds-have-resources
+    image: quay.io/operator-framework/scorecard-test:v1.28.0
+    labels:
+      suite: olm
+      test: olm-crds-have-resources-test
+    storage:
+      spec:
+        mountPath: {}
+  - entrypoint:
+    - scorecard-test
+    - olm-spec-descriptors
+    image: quay.io/operator-framework/scorecard-test:v1.28.0
+    labels:
+      suite: olm
+      test: olm-spec-descriptors-test
+    storage:
+      spec:
+        mountPath: {}
+  - entrypoint:
+    - scorecard-test
+    - olm-status-descriptors
+    image: quay.io/operator-framework/scorecard-test:v1.28.0
+    labels:
+      suite: olm
+      test: olm-status-descriptors-test
+    storage:
+      spec:
+        mountPath: {}
+storage:
+  spec:
+    mountPath: {}