---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.15.0
    operatorframework.io/installed-alongside-f9bfa2fbc1ae23c2: openshift-migration/mtc-operator.v1.8.10
  creationTimestamp: "2025-10-27T12:41:04Z"
  generation: 1
  labels:
    olm.managed: "true"
    operators.coreos.com/mtc-operator.openshift-migration: ""
  managedFields:
  - apiVersion: apiextensions.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .: {}
          f:controller-gen.kubebuilder.io/version: {}
          f:operatorframework.io/installed-alongside-f9bfa2fbc1ae23c2: {}
        f:labels:
          .: {}
          f:olm.managed: {}
      f:spec:
        f:conversion:
          .: {}
          f:strategy: {}
        f:group: {}
        f:names:
          f:kind: {}
          f:listKind: {}
          f:plural: {}
          f:singular: {}
        f:scope: {}
        f:versions: {}
    manager: catalog
    operation: Update
    time: "2025-10-27T12:41:04Z"
  - apiVersion: apiextensions.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:status:
        f:acceptedNames:
          f:kind: {}
          f:listKind: {}
          f:plural: {}
          f:singular: {}
        f:conditions:
          k:{"type":"Established"}:
            .: {}
            f:lastTransitionTime: {}
            f:message: {}
            f:reason: {}
            f:status: {}
            f:type: {}
          k:{"type":"NamesAccepted"}:
            .: {}
            f:lastTransitionTime: {}
            f:message: {}
            f:reason: {}
            f:status: {}
            f:type: {}
    manager: kube-apiserver
    operation: Update
    subresource: status
    time: "2025-10-27T12:41:04Z"
  - apiVersion: apiextensions.k8s.io/v1
    fieldsType: FieldsV1
    fieldsV1:
      f:metadata:
        f:labels:
          f:operators.coreos.com/mtc-operator.openshift-migration: {}
    manager: olm
    operation: Update
    time: "2025-10-27T12:42:13Z"
  name: migplans.migration.openshift.io
  resourceVersion: "54538"
  uid: 259980d0-5dd1-4548-a667-708e0cafe74b
spec:
  conversion:
    strategy: None
  group: migration.openshift.io
  names:
    kind: MigPlan
    listKind: MigPlanList
    plural: migplans
    singular: migplan
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .spec.srcMigClusterRef.name
      name: Source
      type: string
    - jsonPath: .spec.destMigClusterRef.name
      name: Target
      type: string
    - jsonPath: .spec.migStorageRef.name
      name: Storage
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: MigPlan is the Schema for the migplans API
        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: MigPlanSpec defines the desired state of MigPlan
            properties:
              closed:
                description: If the migration was successful for a migplan, this value
                  can be set True indicating that after one successful migration no
                  new migrations can be carried out for this migplan.
                type: boolean
              destMigClusterRef:
                description: |-
                  ObjectReference contains enough information to let you inspect or modify the referred object.
                  ---
                  New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.
                   1. Ignored fields.  It includes many fields which are not generally honored.  For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage.
                   2. Invalid usage help.  It is impossible to add specific help for individual usage.  In most embedded usages, there are particular
                      restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted".
                      Those cannot be well described when embedded.
                   3. Inconsistent validation.  Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.
                   4. The fields are both imprecise and overly precise.  Kind is not a precise mapping to a URL. This can produce ambiguity
                      during interpretation and require a REST mapping.  In most cases, the dependency is on the group,resource tuple
                      and the version of the actual struct is irrelevant.
                   5. We cannot easily change it.  Because this type is embedded in many locations, updates to this type
                      will affect numerous schemas.  Don't make new APIs embed an underspecified API type they do not control.


                  Instead of using this type, create a locally provided and used type that is well-focused on your reference.
                  For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .
                properties:
                  apiVersion:
                    description: API version of the referent.
                    type: string
                  fieldPath:
                    description: |-
                      If referring to a piece of an object instead of an entire object, this string
                      should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
                      For example, if the object reference is to a container within a pod, this would take on a value like:
                      "spec.containers{name}" (where "name" refers to the name of the container that triggered
                      the event) or if no container name is specified "spec.containers[2]" (container with
                      index 2 in this pod). This syntax is chosen only to have some well-defined way of
                      referencing a part of an object.
                      TODO: this design is not final and this field is subject to change in the future.
                    type: string
                  kind:
                    description: |-
                      Kind of the referent.
                      More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
                    type: string
                  name:
                    description: |-
                      Name of the referent.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                    type: string
                  namespace:
                    description: |-
                      Namespace of the referent.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                    type: string
                  resourceVersion:
                    description: |-
                      Specific resourceVersion to which this reference is made, if any.
                      More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
                    type: string
                  uid:
                    description: |-
                      UID of the referent.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
                    type: string
                type: object
                x-kubernetes-map-type: atomic
              hooks:
                description: Holds a reference to a MigHook along with the desired
                  phase to run it in.
                items:
                  description: MigPlanHook hold a reference to a MigHook along with
                    the desired phase to run it in
                  properties:
                    executionNamespace:
                      description: Holds the name of the namespace where hooks should
                        be implemented.
                      type: string
                    phase:
                      description: 'Indicates the phase when the hooks will be executed.
                        Acceptable values are: PreBackup, PostBackup, PreRestore,
                        and PostRestore.'
                      type: string
                    reference:
                      description: |-
                        ObjectReference contains enough information to let you inspect or modify the referred object.
                        ---
                        New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.
                         1. Ignored fields.  It includes many fields which are not generally honored.  For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage.
                         2. Invalid usage help.  It is impossible to add specific help for individual usage.  In most embedded usages, there are particular
                            restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted".
                            Those cannot be well described when embedded.
                         3. Inconsistent validation.  Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.
                         4. The fields are both imprecise and overly precise.  Kind is not a precise mapping to a URL. This can produce ambiguity
                            during interpretation and require a REST mapping.  In most cases, the dependency is on the group,resource tuple
                            and the version of the actual struct is irrelevant.
                         5. We cannot easily change it.  Because this type is embedded in many locations, updates to this type
                            will affect numerous schemas.  Don't make new APIs embed an underspecified API type they do not control.


                        Instead of using this type, create a locally provided and used type that is well-focused on your reference.
                        For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .
                      properties:
                        apiVersion:
                          description: API version of the referent.
                          type: string
                        fieldPath:
                          description: |-
                            If referring to a piece of an object instead of an entire object, this string
                            should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
                            For example, if the object reference is to a container within a pod, this would take on a value like:
                            "spec.containers{name}" (where "name" refers to the name of the container that triggered
                            the event) or if no container name is specified "spec.containers[2]" (container with
                            index 2 in this pod). This syntax is chosen only to have some well-defined way of
                            referencing a part of an object.
                            TODO: this design is not final and this field is subject to change in the future.
                          type: string
                        kind:
                          description: |-
                            Kind of the referent.
                            More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
                          type: string
                        name:
                          description: |-
                            Name of the referent.
                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          type: string
                        namespace:
                          description: |-
                            Namespace of the referent.
                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                          type: string
                        resourceVersion:
                          description: |-
                            Specific resourceVersion to which this reference is made, if any.
                            More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
                          type: string
                        uid:
                          description: |-
                            UID of the referent.
                            More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
                          type: string
                      type: object
                      x-kubernetes-map-type: atomic
                    serviceAccount:
                      description: Holds the name of the service account to be used
                        for running hooks.
                      type: string
                  required:
                  - executionNamespace
                  - phase
                  - reference
                  - serviceAccount
                  type: object
                type: array
              includedResources:
                description: |-
                  IncludedResources optional list of included resources in Velero Backup
                  When not set, all the resources are included in the backup
                items:
                  description: |-
                    GroupKind specifies a Group and a Kind, but does not force a version.  This is useful for identifying
                    concepts during lookup stages without having partially valid types
                  properties:
                    group:
                      type: string
                    kind:
                      type: string
                  required:
                  - group
                  - kind
                  type: object
                type: array
              indirectImageMigration:
                description: If set True, disables direct image migrations.
                type: boolean
              indirectVolumeMigration:
                description: If set True, disables direct volume migrations.
                type: boolean
              labelSelector:
                description: LabelSelector optional label selector on the included
                  resources in Velero Backup
                properties:
                  matchExpressions:
                    description: matchExpressions is a list of label selector requirements.
                      The requirements are ANDed.
                    items:
                      description: |-
                        A label selector requirement is a selector that contains values, a key, and an operator that
                        relates the key and values.
                      properties:
                        key:
                          description: key is the label key that the selector applies
                            to.
                          type: string
                        operator:
                          description: |-
                            operator represents a key's relationship to a set of values.
                            Valid operators are In, NotIn, Exists and DoesNotExist.
                          type: string
                        values:
                          description: |-
                            values is an array of string values. If the operator is In or NotIn,
                            the values array must be non-empty. If the operator is Exists or DoesNotExist,
                            the values array must be empty. This array is replaced during a strategic
                            merge patch.
                          items:
                            type: string
                          type: array
                      required:
                      - key
                      - operator
                      type: object
                    type: array
                  matchLabels:
                    additionalProperties:
                      type: string
                    description: |-
                      matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
                      map is equivalent to an element of matchExpressions, whose key field is "key", the
                      operator is "In", and the values array contains only "value". The requirements are ANDed.
                    type: object
                type: object
                x-kubernetes-map-type: atomic
              liveMigrate:
                description: |-
                  LiveMigrate optional flag to enable live migration of VMs during direct volume migration
                  Only running VMs when the plan is executed will be live migrated
                type: boolean
              migStorageRef:
                description: |-
                  ObjectReference contains enough information to let you inspect or modify the referred object.
                  ---
                  New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.
                   1. Ignored fields.  It includes many fields which are not generally honored.  For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage.
                   2. Invalid usage help.  It is impossible to add specific help for individual usage.  In most embedded usages, there are particular
                      restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted".
                      Those cannot be well described when embedded.
                   3. Inconsistent validation.  Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.
                   4. The fields are both imprecise and overly precise.  Kind is not a precise mapping to a URL. This can produce ambiguity
                      during interpretation and require a REST mapping.  In most cases, the dependency is on the group,resource tuple
                      and the version of the actual struct is irrelevant.
                   5. We cannot easily change it.  Because this type is embedded in many locations, updates to this type
                      will affect numerous schemas.  Don't make new APIs embed an underspecified API type they do not control.


                  Instead of using this type, create a locally provided and used type that is well-focused on your reference.
                  For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .
                properties:
                  apiVersion:
                    description: API version of the referent.
                    type: string
                  fieldPath:
                    description: |-
                      If referring to a piece of an object instead of an entire object, this string
                      should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
                      For example, if the object reference is to a container within a pod, this would take on a value like:
                      "spec.containers{name}" (where "name" refers to the name of the container that triggered
                      the event) or if no container name is specified "spec.containers[2]" (container with
                      index 2 in this pod). This syntax is chosen only to have some well-defined way of
                      referencing a part of an object.
                      TODO: this design is not final and this field is subject to change in the future.
                    type: string
                  kind:
                    description: |-
                      Kind of the referent.
                      More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
                    type: string
                  name:
                    description: |-
                      Name of the referent.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                    type: string
                  namespace:
                    description: |-
                      Namespace of the referent.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                    type: string
                  resourceVersion:
                    description: |-
                      Specific resourceVersion to which this reference is made, if any.
                      More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
                    type: string
                  uid:
                    description: |-
                      UID of the referent.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
                    type: string
                type: object
                x-kubernetes-map-type: atomic
              namespaces:
                description: Holds names of all the namespaces to be included in migration.
                items:
                  type: string
                type: array
              persistentVolumes:
                items:
                  description: |-
                    Name - The PV name.
                    Capacity - The PV storage capacity.
                    StorageClass - The PV storage class name.
                    Supported - Lists of what is supported.
                    Selection - Choices made from supported.
                    PVC - Associated PVC.
                    NFS - NFS properties.
                    staged - A PV has been explicitly added/updated.
                  properties:
                    capacity:
                      anyOf:
                      - type: integer
                      - type: string
                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                      x-kubernetes-int-or-string: true
                    capacityConfirmed:
                      type: boolean
                    name:
                      type: string
                    proposedCapacity:
                      anyOf:
                      - type: integer
                      - type: string
                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                      x-kubernetes-int-or-string: true
                    pvc:
                      description: PVC
                      properties:
                        accessModes:
                          items:
                            type: string
                          type: array
                        hasReference:
                          type: boolean
                        name:
                          type: string
                        namespace:
                          type: string
                        ownerType:
                          type: string
                        volumeMode:
                          description: PersistentVolumeMode describes how a volume
                            is intended to be consumed, either Block or Filesystem.
                          type: string
                      type: object
                    selection:
                      description: |-
                        Selection
                        Action - The PV migration action (move|copy|skip)
                        StorageClass - The PV storage class name to use in the destination cluster.
                        AccessMode   - The PV access mode to use in the destination cluster, if different from src PVC AccessMode
                        CopyMethod   - The PV copy method to use ('filesystem' for restic copy, or 'snapshot' for velero snapshot plugin)
                        Verify       - Whether or not to verify copied volume data if CopyMethod is 'filesystem'
                      properties:
                        accessMode:
                          type: string
                        action:
                          type: string
                        copyMethod:
                          type: string
                        storageClass:
                          type: string
                        verify:
                          type: boolean
                      type: object
                    storageClass:
                      type: string
                    supported:
                      description: |-
                        Supported
                        Actions     - The list of supported actions
                        CopyMethods - The list of supported copy methods
                      properties:
                        actions:
                          items:
                            type: string
                          type: array
                        copyMethods:
                          items:
                            type: string
                          type: array
                      required:
                      - actions
                      - copyMethods
                      type: object
                  required:
                  - selection
                  - supported
                  type: object
                type: array
              refresh:
                description: If set True, the controller is forced to check if the
                  migplan is in Ready state or not.
                type: boolean
              srcMigClusterRef:
                description: |-
                  ObjectReference contains enough information to let you inspect or modify the referred object.
                  ---
                  New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.
                   1. Ignored fields.  It includes many fields which are not generally honored.  For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage.
                   2. Invalid usage help.  It is impossible to add specific help for individual usage.  In most embedded usages, there are particular
                      restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted".
                      Those cannot be well described when embedded.
                   3. Inconsistent validation.  Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.
                   4. The fields are both imprecise and overly precise.  Kind is not a precise mapping to a URL. This can produce ambiguity
                      during interpretation and require a REST mapping.  In most cases, the dependency is on the group,resource tuple
                      and the version of the actual struct is irrelevant.
                   5. We cannot easily change it.  Because this type is embedded in many locations, updates to this type
                      will affect numerous schemas.  Don't make new APIs embed an underspecified API type they do not control.


                  Instead of using this type, create a locally provided and used type that is well-focused on your reference.
                  For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .
                properties:
                  apiVersion:
                    description: API version of the referent.
                    type: string
                  fieldPath:
                    description: |-
                      If referring to a piece of an object instead of an entire object, this string
                      should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
                      For example, if the object reference is to a container within a pod, this would take on a value like:
                      "spec.containers{name}" (where "name" refers to the name of the container that triggered
                      the event) or if no container name is specified "spec.containers[2]" (container with
                      index 2 in this pod). This syntax is chosen only to have some well-defined way of
                      referencing a part of an object.
                      TODO: this design is not final and this field is subject to change in the future.
                    type: string
                  kind:
                    description: |-
                      Kind of the referent.
                      More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
                    type: string
                  name:
                    description: |-
                      Name of the referent.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                    type: string
                  namespace:
                    description: |-
                      Namespace of the referent.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
                    type: string
                  resourceVersion:
                    description: |-
                      Specific resourceVersion to which this reference is made, if any.
                      More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
                    type: string
                  uid:
                    description: |-
                      UID of the referent.
                      More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
                    type: string
                type: object
                x-kubernetes-map-type: atomic
            type: object
          status:
            description: MigPlanStatus defines the observed state of MigPlan
            properties:
              conditions:
                items:
                  description: |-
                    Condition
                    Type - The condition type.
                    Status - The condition status.
                    Reason - The reason for the condition.
                    Message - The human readable description of the condition.
                    Durable - The condition is not un-staged.
                    Items - A list of `items` associated with the condition used to replace [] in `Message`.
                    staging - A condition has been explicitly set/updated.
                  properties:
                    category:
                      type: string
                    durable:
                      type: boolean
                    lastTransitionTime:
                      format: date-time
                      type: string
                    message:
                      type: string
                    reason:
                      type: string
                    status:
                      type: string
                    type:
                      type: string
                  required:
                  - category
                  - lastTransitionTime
                  - status
                  - type
                  type: object
                type: array
              destStorageClasses:
                items:
                  description: |-
                    StorageClass is an available storage class in the cluster
                    Name - the storage class name
                    Provisioner - the dynamic provisioner for the storage class
                    Default - whether or not this storage class is the default
                    AccessModes - access modes supported by the dynamic provisioner
                  properties:
                    default:
                      type: boolean
                    name:
                      type: string
                    provisioner:
                      type: string
                    volumeAccessModes:
                      items:
                        properties:
                          accessModes:
                            items:
                              type: string
                            type: array
                          volumeMode:
                            description: PersistentVolumeMode describes how a volume
                              is intended to be consumed, either Block or Filesystem.
                            type: string
                        type: object
                      type: array
                  type: object
                type: array
              excludedResources:
                items:
                  type: string
                type: array
              incompatibleNamespaces:
                items:
                  description: |-
                    IncompatibleNamespace - namespace, which is noticed
                    to contain resources incompatible by the migration
                  properties:
                    gvks:
                      items:
                        description: IncompatibleGVK - custom structure for printing
                          GVKs lowercase
                        properties:
                          group:
                            type: string
                          kind:
                            type: string
                          version:
                            type: string
                        required:
                        - group
                        - kind
                        - version
                        type: object
                      type: array
                    name:
                      type: string
                  required:
                  - gvks
                  - name
                  type: object
                type: array
              namespaces:
                items:
                  description: UnhealthyNamespace is a store for unhealthy resources
                    in a namespace
                  properties:
                    name:
                      type: string
                    workloads:
                      items:
                        description: Workload is a store for unhealthy resource and
                          it's dependents
                        properties:
                          name:
                            type: string
                          resources:
                            items:
                              type: string
                            type: array
                        required:
                        - name
                        type: object
                      type: array
                  required:
                  - name
                  - workloads
                  type: object
                type: array
              observedDigest:
                type: string
              srcStorageClasses:
                items:
                  description: |-
                    StorageClass is an available storage class in the cluster
                    Name - the storage class name
                    Provisioner - the dynamic provisioner for the storage class
                    Default - whether or not this storage class is the default
                    AccessModes - access modes supported by the dynamic provisioner
                  properties:
                    default:
                      type: boolean
                    name:
                      type: string
                    provisioner:
                      type: string
                    volumeAccessModes:
                      items:
                        properties:
                          accessModes:
                            items:
                              type: string
                            type: array
                          volumeMode:
                            description: PersistentVolumeMode describes how a volume
                              is intended to be consumed, either Block or Filesystem.
                            type: string
                        type: object
                      type: array
                  type: object
                type: array
              suffix:
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources: {}
status:
  acceptedNames:
    kind: MigPlan
    listKind: MigPlanList
    plural: migplans
    singular: migplan
  conditions:
  - lastTransitionTime: "2025-10-27T12:41:04Z"
    message: no conflicts found
    reason: NoConflicts
    status: "True"
    type: NamesAccepted
  - lastTransitionTime: "2025-10-27T12:41:04Z"
    message: the initial names have been accepted
    reason: InitialNamesAccepted
    status: "True"
    type: Established
  storedVersions:
  - v1alpha1
