diff --git a/deploy/00crds.yaml b/deploy/00crds.yaml new file mode 100644 index 0000000..9bed0ef --- /dev/null +++ b/deploy/00crds.yaml @@ -0,0 +1,1837 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: migrationplans.vjailbreak.k8s.pf9.io +spec: + group: vjailbreak.k8s.pf9.io + names: + kind: MigrationPlan + listKind: MigrationPlanList + plural: migrationplans + singular: migrationplan + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: MigrationPlan is the Schema for the migrationplans 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: MigrationPlanSpec defines the desired state of MigrationPlan + properties: + migrationStrategy: + properties: + dataCopyStart: + format: date-time + type: string + type: + enum: + - hot + - cold + type: string + vmCutoverEnd: + format: date-time + type: string + vmCutoverStart: + format: date-time + type: string + required: + - type + type: object + migrationTemplate: + type: string + retry: + type: boolean + virtualmachines: + items: + items: + type: string + type: array + type: array + required: + - migrationStrategy + - migrationTemplate + - virtualmachines + type: object + status: + description: MigrationPlanStatus defines the observed state of MigrationPlan + properties: + migrationMessage: + type: string + migrationStatus: + type: string + required: + - migrationMessage + - migrationStatus + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: migrations.vjailbreak.k8s.pf9.io +spec: + group: vjailbreak.k8s.pf9.io + names: + kind: Migration + listKind: MigrationList + plural: migrations + singular: migration + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: Migration is the Schema for the migrations 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: MigrationSpec defines the desired state of Migration + properties: + migrationPlan: + type: string + podRef: + type: string + vmName: + type: string + required: + - migrationPlan + - podRef + - vmName + type: object + status: + description: MigrationStatus defines the observed state of Migration + properties: + conditions: + items: + description: PodCondition contains details for the current condition + of this pod. + properties: + lastProbeTime: + description: Last time we probed the condition. + format: date-time + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: |- + Status is the status of the condition. + Can be True, False, Unknown. + More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions + type: string + type: + description: |- + Type is the type of the condition. + More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions + type: string + required: + - status + - type + type: object + type: array + phase: + type: string + required: + - conditions + - phase + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: migrationtemplates.vjailbreak.k8s.pf9.io +spec: + group: vjailbreak.k8s.pf9.io + names: + kind: MigrationTemplate + listKind: MigrationTemplateList + plural: migrationtemplates + singular: migrationtemplate + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: MigrationTemplate is the Schema for the migrationtemplates 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: MigrationTemplateSpec defines the desired state of MigrationTemplate + properties: + destination: + description: MigrationTemplateDestination defines the destination + details for the migrationtemplate + properties: + openstackRef: + type: string + required: + - openstackRef + type: object + networkMapping: + type: string + osType: + enum: + - windows + - linux + type: string + source: + description: MigrationTemplateSource defines the source details for + the migrationtemplate + properties: + datacenter: + type: string + vmwareRef: + type: string + required: + - datacenter + - vmwareRef + type: object + storageMapping: + type: string + virtioWinDriver: + type: string + required: + - destination + - networkMapping + - source + - storageMapping + type: object + status: + description: MigrationTemplateStatus defines the observed state of MigrationTemplate + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: networkmappings.vjailbreak.k8s.pf9.io +spec: + group: vjailbreak.k8s.pf9.io + names: + kind: NetworkMapping + listKind: NetworkMappingList + plural: networkmappings + singular: networkmapping + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: NetworkMapping is the Schema for the networkmappings 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: NetworkMappingSpec defines the desired state of NetworkMapping + properties: + networks: + description: Networks is the list of networks + items: + properties: + source: + type: string + target: + type: string + required: + - source + - target + type: object + type: array + required: + - networks + type: object + status: + description: NetworkMappingStatus defines the observed state of NetworkMapping + properties: + networkMappingValidationMessage: + type: string + networkMappingValidationStatus: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: openstackcreds.vjailbreak.k8s.pf9.io +spec: + group: vjailbreak.k8s.pf9.io + names: + kind: OpenstackCreds + listKind: OpenstackCredsList + plural: openstackcreds + singular: openstackcreds + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: OpenstackCreds is the Schema for the openstackcreds 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: OpenstackCredsSpec defines the desired state of OpenstackCreds + properties: + OS_AUTH_URL: + description: OsAuthURL is the OpenStack authentication URL + type: string + OS_DOMAIN_NAME: + description: OsDomainName is the OpenStack domain name + type: string + OS_PASSWORD: + description: OsPassword is the OpenStack password + type: string + OS_REGION_NAME: + description: OsRegionName is the OpenStack region name + type: string + OS_TENANT_NAME: + description: OsTenantName is the OpenStack tenant name + type: string + OS_USERNAME: + description: OsUsername is the OpenStack username + type: string + type: object + status: + description: OpenstackCredsStatus defines the observed state of OpenstackCreds + properties: + openstackValidationMessage: + type: string + openstackValidationStatus: + description: |- + INSERT ADDITIONAL STATUS FIELD - define observed state of cluster + Important: Run "make" to regenerate code after modifying this file + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: storagemappings.vjailbreak.k8s.pf9.io +spec: + group: vjailbreak.k8s.pf9.io + names: + kind: StorageMapping + listKind: StorageMappingList + plural: storagemappings + singular: storagemapping + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: StorageMapping is the Schema for the storagemappings 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: StorageMappingSpec defines the desired state of StorageMapping + properties: + storages: + items: + properties: + source: + type: string + target: + type: string + required: + - source + - target + type: object + type: array + required: + - storages + type: object + status: + description: StorageMappingStatus defines the observed state of StorageMapping + properties: + storageMappingValidationMessage: + type: string + storageMappingValidationStatus: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: vmwarecreds.vjailbreak.k8s.pf9.io +spec: + group: vjailbreak.k8s.pf9.io + names: + kind: VMwareCreds + listKind: VMwareCredsList + plural: vmwarecreds + singular: vmwarecreds + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: VMwareCreds is the Schema for the vmwarecreds 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: VMwareCredsSpec defines the desired state of VMwareCreds + properties: + VCENTER_HOST: + type: string + VCENTER_INSECURE: + type: boolean + VCENTER_PASSWORD: + type: string + VCENTER_USERNAME: + type: string + required: + - VCENTER_HOST + - VCENTER_INSECURE + - VCENTER_PASSWORD + - VCENTER_USERNAME + type: object + status: + description: VMwareCredsStatus defines the observed state of VMwareCreds + properties: + vmwareValidationMessage: + type: string + vmwareValidationStatus: + description: |- + INSERT ADDITIONAL STATUS FIELD - define observed state of cluster + Important: Run "make" to regenerate code after modifying this file + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: v1 +kind: Namespace +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + control-plane: controller-manager + name: migration-system +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: migrationplans.vjailbreak.k8s.pf9.io +spec: + group: vjailbreak.k8s.pf9.io + names: + kind: MigrationPlan + listKind: MigrationPlanList + plural: migrationplans + singular: migrationplan + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: MigrationPlan is the Schema for the migrationplans 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: MigrationPlanSpec defines the desired state of MigrationPlan + properties: + migrationStrategy: + properties: + dataCopyStart: + format: date-time + type: string + type: + enum: + - hot + - cold + type: string + vmCutoverEnd: + format: date-time + type: string + vmCutoverStart: + format: date-time + type: string + required: + - type + type: object + migrationTemplate: + type: string + retry: + type: boolean + virtualmachines: + items: + items: + type: string + type: array + type: array + required: + - migrationStrategy + - migrationTemplate + - virtualmachines + type: object + status: + description: MigrationPlanStatus defines the observed state of MigrationPlan + properties: + migrationMessage: + type: string + migrationStatus: + type: string + required: + - migrationMessage + - migrationStatus + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: migrations.vjailbreak.k8s.pf9.io +spec: + group: vjailbreak.k8s.pf9.io + names: + kind: Migration + listKind: MigrationList + plural: migrations + singular: migration + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: Migration is the Schema for the migrations 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: MigrationSpec defines the desired state of Migration + properties: + migrationPlan: + type: string + podRef: + type: string + vmName: + type: string + required: + - migrationPlan + - podRef + - vmName + type: object + status: + description: MigrationStatus defines the observed state of Migration + properties: + conditions: + items: + description: PodCondition contains details for the current condition + of this pod. + properties: + lastProbeTime: + description: Last time we probed the condition. + format: date-time + type: string + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: |- + Status is the status of the condition. + Can be True, False, Unknown. + More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions + type: string + type: + description: |- + Type is the type of the condition. + More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions + type: string + required: + - status + - type + type: object + type: array + phase: + type: string + required: + - conditions + - phase + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: migrationtemplates.vjailbreak.k8s.pf9.io +spec: + group: vjailbreak.k8s.pf9.io + names: + kind: MigrationTemplate + listKind: MigrationTemplateList + plural: migrationtemplates + singular: migrationtemplate + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: MigrationTemplate is the Schema for the migrationtemplates 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: MigrationTemplateSpec defines the desired state of MigrationTemplate + properties: + destination: + description: MigrationTemplateDestination defines the destination + details for the migrationtemplate + properties: + openstackRef: + type: string + required: + - openstackRef + type: object + networkMapping: + type: string + osType: + enum: + - windows + - linux + type: string + source: + description: MigrationTemplateSource defines the source details for + the migrationtemplate + properties: + datacenter: + type: string + vmwareRef: + type: string + required: + - datacenter + - vmwareRef + type: object + storageMapping: + type: string + virtioWinDriver: + type: string + required: + - destination + - networkMapping + - source + - storageMapping + type: object + status: + description: MigrationTemplateStatus defines the observed state of MigrationTemplate + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: networkmappings.vjailbreak.k8s.pf9.io +spec: + group: vjailbreak.k8s.pf9.io + names: + kind: NetworkMapping + listKind: NetworkMappingList + plural: networkmappings + singular: networkmapping + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: NetworkMapping is the Schema for the networkmappings 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: NetworkMappingSpec defines the desired state of NetworkMapping + properties: + networks: + description: Networks is the list of networks + items: + properties: + source: + type: string + target: + type: string + required: + - source + - target + type: object + type: array + required: + - networks + type: object + status: + description: NetworkMappingStatus defines the observed state of NetworkMapping + properties: + networkMappingValidationMessage: + type: string + networkMappingValidationStatus: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: openstackcreds.vjailbreak.k8s.pf9.io +spec: + group: vjailbreak.k8s.pf9.io + names: + kind: OpenstackCreds + listKind: OpenstackCredsList + plural: openstackcreds + singular: openstackcreds + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: OpenstackCreds is the Schema for the openstackcreds 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: OpenstackCredsSpec defines the desired state of OpenstackCreds + properties: + OS_AUTH_URL: + description: OsAuthURL is the OpenStack authentication URL + type: string + OS_DOMAIN_NAME: + description: OsDomainName is the OpenStack domain name + type: string + OS_PASSWORD: + description: OsPassword is the OpenStack password + type: string + OS_REGION_NAME: + description: OsRegionName is the OpenStack region name + type: string + OS_TENANT_NAME: + description: OsTenantName is the OpenStack tenant name + type: string + OS_USERNAME: + description: OsUsername is the OpenStack username + type: string + type: object + status: + description: OpenstackCredsStatus defines the observed state of OpenstackCreds + properties: + openstackValidationMessage: + type: string + openstackValidationStatus: + description: |- + INSERT ADDITIONAL STATUS FIELD - define observed state of cluster + Important: Run "make" to regenerate code after modifying this file + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: storagemappings.vjailbreak.k8s.pf9.io +spec: + group: vjailbreak.k8s.pf9.io + names: + kind: StorageMapping + listKind: StorageMappingList + plural: storagemappings + singular: storagemapping + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: StorageMapping is the Schema for the storagemappings 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: StorageMappingSpec defines the desired state of StorageMapping + properties: + storages: + items: + properties: + source: + type: string + target: + type: string + required: + - source + - target + type: object + type: array + required: + - storages + type: object + status: + description: StorageMappingStatus defines the observed state of StorageMapping + properties: + storageMappingValidationMessage: + type: string + storageMappingValidationStatus: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 + name: vmwarecreds.vjailbreak.k8s.pf9.io +spec: + group: vjailbreak.k8s.pf9.io + names: + kind: VMwareCreds + listKind: VMwareCredsList + plural: vmwarecreds + singular: vmwarecreds + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: VMwareCreds is the Schema for the vmwarecreds 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: VMwareCredsSpec defines the desired state of VMwareCreds + properties: + VCENTER_HOST: + type: string + VCENTER_INSECURE: + type: boolean + VCENTER_PASSWORD: + type: string + VCENTER_USERNAME: + type: string + required: + - VCENTER_HOST + - VCENTER_INSECURE + - VCENTER_PASSWORD + - VCENTER_USERNAME + type: object + status: + description: VMwareCredsStatus defines the observed state of VMwareCreds + properties: + vmwareValidationMessage: + type: string + vmwareValidationStatus: + description: |- + INSERT ADDITIONAL STATUS FIELD - define observed state of cluster + Important: Run "make" to regenerate code after modifying this file + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: migration-controller-manager + namespace: migration-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: migration-leader-election-role + namespace: migration-system +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 +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: migration-manager-role +rules: +- apiGroups: + - "" + resources: + - configmaps + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - events + verbs: + - get + - list + - watch +- apiGroups: + - "" + resources: + - pods + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - pods/status + verbs: + - get + - patch + - update +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrationplans + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrationplans/finalizers + verbs: + - update +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrationplans/status + verbs: + - get + - patch + - update +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrations + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrations/status + verbs: + - get + - patch + - update +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrationtemplates + verbs: + - get + - list + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - networkmappings + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - networkmappings/finalizers + verbs: + - update +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - networkmappings/status + verbs: + - get + - patch + - update +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - openstackcreds + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - openstackcreds/finalizers + verbs: + - update +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - openstackcreds/status + verbs: + - get + - patch + - update +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - storagemappings + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - storagemappings/finalizers + verbs: + - update +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - storagemappings/status + verbs: + - get + - patch + - update +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - vmwarecreds + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - vmwarecreds/finalizers + verbs: + - update +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - vmwarecreds/status + verbs: + - get + - patch + - update +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: migration-migration-editor-role +rules: +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrations + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrations/status + verbs: + - get +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: migration-migration-viewer-role +rules: +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrations + verbs: + - get + - list + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrations/status + verbs: + - get +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: migration-migrationplan-editor-role +rules: +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrationplans + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrationplans/status + verbs: + - get +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: migration-migrationplan-viewer-role +rules: +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrationplans + verbs: + - get + - list + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrationplans/status + verbs: + - get +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: migration-migrationtemplate-editor-role +rules: +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrationtemplates + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrationtemplates/status + verbs: + - get +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: migration-migrationtemplate-viewer-role +rules: +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrationtemplates + verbs: + - get + - list + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - migrationtemplates/status + verbs: + - get +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: migration-networkmapping-editor-role +rules: +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - networkmappings + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - networkmappings/status + verbs: + - get +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: migration-networkmapping-viewer-role +rules: +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - networkmappings + verbs: + - get + - list + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - networkmappings/status + verbs: + - get +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: migration-openstackcreds-editor-role +rules: +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - openstackcreds + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - openstackcreds/status + verbs: + - get +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: migration-openstackcreds-viewer-role +rules: +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - openstackcreds + verbs: + - get + - list + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - openstackcreds/status + verbs: + - get +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: migration-storagemapping-editor-role +rules: +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - storagemappings + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - storagemappings/status + verbs: + - get +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: migration-storagemapping-viewer-role +rules: +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - storagemappings + verbs: + - get + - list + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - storagemappings/status + verbs: + - get +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: migration-vmwarecreds-editor-role +rules: +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - vmwarecreds + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - vmwarecreds/status + verbs: + - get +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: migration-vmwarecreds-viewer-role +rules: +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - vmwarecreds + verbs: + - get + - list + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - vmwarecreds/status + verbs: + - get +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: migration-leader-election-rolebinding + namespace: migration-system +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: migration-leader-election-role +subjects: +- kind: ServiceAccount + name: migration-controller-manager + namespace: migration-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: migration-manager-rolebinding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: migration-manager-role +subjects: +- kind: ServiceAccount + name: migration-controller-manager + namespace: migration-system +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + control-plane: controller-manager + name: migration-controller-manager + namespace: migration-system +spec: + replicas: 1 + selector: + matchLabels: + control-plane: controller-manager + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: manager + labels: + control-plane: controller-manager + spec: + containers: + - args: + - --leader-elect + - --health-probe-bind-address=:8081 + command: + - /manager + image: platform9/vjailbreak-controller:v0.1 + imagePullPolicy: IfNotPresent + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + name: manager + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: + requests: + cpu: 200m + memory: 256Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + securityContext: + runAsNonRoot: true + serviceAccountName: migration-controller-manager + terminationGracePeriodSeconds: 10 diff --git a/deploy/01openstackcreds.yaml b/deploy/01openstackcreds.yaml new file mode 100644 index 0000000..85ba829 --- /dev/null +++ b/deploy/01openstackcreds.yaml @@ -0,0 +1,12 @@ +apiVersion: vjailbreak.k8s.pf9.io/v1alpha1 +kind: OpenstackCreds +metadata: + name: openstackcreds + namespace: migration-system +spec: + OS_AUTH_URL: + OS_DOMAIN_NAME: + OS_USERNAME: + OS_PASSWORD: + OS_REGION_NAME: + OS_TENANT_NAME: \ No newline at end of file diff --git a/deploy/01vmwarecreds.yaml b/deploy/01vmwarecreds.yaml new file mode 100644 index 0000000..e499315 --- /dev/null +++ b/deploy/01vmwarecreds.yaml @@ -0,0 +1,10 @@ +apiVersion: vjailbreak.k8s.pf9.io/v1alpha1 +kind: VMwareCreds +metadata: + name: vmwarecreds + namespace: migration-system +spec: + VCENTER_HOST: + VCENTER_INSECURE: true + VCENTER_PASSWORD: + VCENTER_USERNAME: \ No newline at end of file diff --git a/deploy/02networkmapping.yaml b/deploy/02networkmapping.yaml new file mode 100644 index 0000000..d7441b5 --- /dev/null +++ b/deploy/02networkmapping.yaml @@ -0,0 +1,11 @@ +apiVersion: vjailbreak.k8s.pf9.io/v1alpha1 +kind: NetworkMapping +metadata: + name: networkmapping + namespace: migration-system +spec: + networks: + - source: VM Network + target: vlan1 + - source: VM Network 2 + target: vlan2 diff --git a/deploy/02storagemapping.yaml b/deploy/02storagemapping.yaml new file mode 100644 index 0000000..52b5133 --- /dev/null +++ b/deploy/02storagemapping.yaml @@ -0,0 +1,9 @@ +apiVersion: vjailbreak.k8s.pf9.io/v1alpha1 +kind: StorageMapping +metadata: + name: storagemapping + namespace: migration-system +spec: + storages: + - source: vcenter-datastore-1 + target: lvm \ No newline at end of file diff --git a/deploy/03migrationtemplate.yaml b/deploy/03migrationtemplate.yaml new file mode 100644 index 0000000..bfb2763 --- /dev/null +++ b/deploy/03migrationtemplate.yaml @@ -0,0 +1,14 @@ +apiVersion: vjailbreak.k8s.pf9.io/v1alpha1 +kind: MigrationTemplate +metadata: + name: migrationtemplate-windows + namespace: migration-system +spec: + networkMapping: networkmapping + storageMapping: storagemapping + osType: windows + source: + datacenter: Datacenter Name + vmwareRef: vmwarecreds + destination: + openstackRef: openstackcreds \ No newline at end of file diff --git a/deploy/04migrationplan.yaml b/deploy/04migrationplan.yaml new file mode 100644 index 0000000..8f086b5 --- /dev/null +++ b/deploy/04migrationplan.yaml @@ -0,0 +1,18 @@ +apiVersion: vjailbreak.k8s.pf9.io/v1alpha1 +kind: MigrationPlan +metadata: + name: vm-migration-windows-app + namespace: migration-system +spec: + migrationTemplate: migrationtemplate-windows + retry: true + migrationStrategy: + type: hot + dataCopyStart: 2024-08-2717:30:25.230Z + vmCutoverStart: 2024-08-27T17:30:25.230Z + vmCutoverEnd: 2024-08-28T17:30:25.230Z + virtualmachines: + - - winserver2k12 + - winserver2k26 + - - winserver2k16 + - winserver2k19 \ No newline at end of file diff --git a/deploy/04ui.yaml b/deploy/04ui.yaml new file mode 100644 index 0000000..2e03ac2 --- /dev/null +++ b/deploy/04ui.yaml @@ -0,0 +1,76 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: vjailbreak-ui + namespace: migration-system +spec: + replicas: 1 + selector: + matchLabels: + app: vjailbreak-ui + template: + metadata: + labels: + app: vjailbreak-ui + spec: + serviceAccountName: migration-controller-manager + containers: + - name: vjailbreak-ui-container + image: platform9/vjailbreak-ui:v0.1 + imagePullPolicy: Always + ports: + - containerPort: 80 +--- +apiVersion: v1 +kind: Service +metadata: + name: vjailbreak-ui-service + namespace: migration-system +spec: + selector: + app: vjailbreak-ui + type: ClusterIP + ports: + - protocol: TCP + port: 80 + targetPort: 80 +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: vjailbreak-ui-ingress + namespace: migration-system + annotations: + nginx.ingress.kubernetes.io/backend-protocol: "HTTP" +spec: + ingressClassName: nginx + rules: + - http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: vjailbreak-ui-service + port: + number: 80 +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: vjailbreak-api-ingress + namespace: default + annotations: + nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" +spec: + ingressClassName: nginx + rules: + - http: + paths: + - path: /apis + pathType: Prefix + backend: + service: + name: kubernetes + port: + number: 443 \ No newline at end of file diff --git a/releases/v0.1.1.md b/releases/v0.1.1.md new file mode 100644 index 0000000..02a4a79 --- /dev/null +++ b/releases/v0.1.1.md @@ -0,0 +1,21 @@ +# v0.1.1 + +- **Tag:** `v0.1.1` +- **Published:** 2024-11-19T18:36:35Z +- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.1.1 + +## Release Notes + +## Release Notes +Initial release of vJailbreak. + +vJailbreak qcow2 image: `quay.io/platform9/vjailbreak:0.1.1-refs-tags-v0.1.1` +Download it with [oras](https://oras.land/docs/installation) +`oras pull quay.io/platform9/vjailbreak:0.1.1-refs-tags-v0.1.1` + +## vJailbreak Components +vjailbreak-controller: `quay.io/platform9/vjailbreak-controller:0.1.1-refs-tags-v0.1.1` +vjailbreak-ui: `quay.io/platform9/vjailbreak-ui:0.1.1-refs-tags-v0.1.1` +vjailbreak-v2v-helper: `quay.io/platform9/vjailbreak-v2v-helper:0.1.1-refs-tags-v0.1.1` + +virt-v2v version: `virt-v2v 2.6.0fedora=40,release=1.fc40`