3494 lines
115 KiB
YAML
3494 lines
115 KiB
YAML
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.17.1
|
|
name: bmconfigs.vjailbreak.k8s.pf9.io
|
|
spec:
|
|
group: vjailbreak.k8s.pf9.io
|
|
names:
|
|
kind: BMConfig
|
|
listKind: BMConfigList
|
|
plural: bmconfigs
|
|
singular: bmconfig
|
|
scope: Namespaced
|
|
versions:
|
|
- name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
BMConfig is the Schema for the bmconfigs API that defines authentication and configuration
|
|
details for Bare Metal Controller (BMC) providers such as MAAS. It contains credentials,
|
|
connection information, and boot source configurations needed to provision physical hosts
|
|
for use during the ESXi to PCD migration process. BMConfig enables the automatic
|
|
provisioning of PCD hosts as replacement infrastructure for migrated ESXi hosts.
|
|
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: BMConfigSpec defines the desired state of BMConfig
|
|
properties:
|
|
apiKey:
|
|
description: APIKey is the API key for the BM server
|
|
type: string
|
|
apiUrl:
|
|
description: APIUrl is the API URL for the BM server
|
|
type: string
|
|
bootSource:
|
|
description: BootSource is the boot source for the BMC
|
|
properties:
|
|
release:
|
|
default: jammy
|
|
description: Release is the OS release version to be used (e.g.,
|
|
"jammy" for Ubuntu 22.04)
|
|
type: string
|
|
required:
|
|
- release
|
|
type: object
|
|
insecure:
|
|
default: false
|
|
description: Insecure is a boolean indicating whether to use insecure
|
|
connection
|
|
type: boolean
|
|
password:
|
|
description: Password is the password for the BM server
|
|
type: string
|
|
providerType:
|
|
default: MAAS
|
|
description: ProviderType is the BMC provider type
|
|
type: string
|
|
userDataSecretRef:
|
|
description: UserDataSecretRef is the reference to the secret containing
|
|
user data for the BMC
|
|
properties:
|
|
name:
|
|
description: name is unique within a namespace to reference a
|
|
secret resource.
|
|
type: string
|
|
namespace:
|
|
description: namespace defines the space within which the secret
|
|
name must be unique.
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
userName:
|
|
description: UserName is the username for the BM server
|
|
type: string
|
|
required:
|
|
- apiKey
|
|
- apiUrl
|
|
- providerType
|
|
type: object
|
|
status:
|
|
description: BMConfigStatus defines the observed state of BMConfig
|
|
properties:
|
|
validationMessage:
|
|
description: ValidationMessage is the message associated with the
|
|
validation
|
|
type: string
|
|
validationStatus:
|
|
description: ValidationStatus is the status of the validation
|
|
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.17.1
|
|
name: clustermigrations.vjailbreak.k8s.pf9.io
|
|
spec:
|
|
group: vjailbreak.k8s.pf9.io
|
|
names:
|
|
kind: ClusterMigration
|
|
listKind: ClusterMigrationList
|
|
plural: clustermigrations
|
|
singular: clustermigration
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .status.phase
|
|
name: Phase
|
|
type: string
|
|
- jsonPath: .status.currentESXI
|
|
name: Current ESXI
|
|
type: string
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
ClusterMigration is the Schema for the clustermigrations API that orchestrates the migration
|
|
of an entire VMware vCenter cluster to Platform9 Distributed Cloud (PCD).
|
|
It manages the ordered migration of ESXi hosts within a cluster, tracking progress
|
|
and maintaining references to required credentials and migration plans.
|
|
ClusterMigration resources coordinate with ESXIMigration resources to ensure
|
|
hosts are migrated in the correct sequence with proper dependency management.
|
|
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: ClusterMigrationSpec defines the desired state of ClusterMigration
|
|
properties:
|
|
clusterName:
|
|
description: ClusterName is the name of the vCenter cluster to be
|
|
migrated
|
|
type: string
|
|
esxiMigrationSequence:
|
|
description: ESXIMigrationSequence is the sequence of ESXi hosts to
|
|
be migrated
|
|
items:
|
|
type: string
|
|
type: array
|
|
openstackCredsRef:
|
|
description: OpenstackCredsRef is the reference to the OpenStack credentials
|
|
properties:
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
rollingMigrationPlanRef:
|
|
description: RollingMigrationPlanRef is the reference to the RollingMigrationPlan
|
|
properties:
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
vmwareCredsRef:
|
|
description: VMwareCredsRef is the reference to the VMware credentials
|
|
properties:
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
required:
|
|
- clusterName
|
|
- esxiMigrationSequence
|
|
- openstackCredsRef
|
|
- rollingMigrationPlanRef
|
|
- vmwareCredsRef
|
|
type: object
|
|
status:
|
|
description: ClusterMigrationStatus defines the observed state of ClusterMigration
|
|
properties:
|
|
currentESXi:
|
|
description: CurrentESXi is the name of the current ESXi host being
|
|
migrated
|
|
type: string
|
|
message:
|
|
description: Message is the message associated with the current state
|
|
of the migration
|
|
type: string
|
|
phase:
|
|
description: Phase is the current phase of the migration
|
|
enum:
|
|
- Pending
|
|
- Running
|
|
- Succeeded
|
|
- Failed
|
|
- Paused
|
|
type: string
|
|
required:
|
|
- currentESXi
|
|
- message
|
|
- 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.17.1
|
|
name: esximigrations.vjailbreak.k8s.pf9.io
|
|
spec:
|
|
group: vjailbreak.k8s.pf9.io
|
|
names:
|
|
kind: ESXIMigration
|
|
listKind: ESXIMigrationList
|
|
plural: esximigrations
|
|
singular: esximigration
|
|
scope: Namespaced
|
|
versions:
|
|
- name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
ESXIMigration is the Schema for the esximigrations API that defines
|
|
the process of migrating an ESXi host to PCD, including putting it in maintenance mode,
|
|
migrating all VMs, and finally removing it from vCenter inventory after completion
|
|
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: |-
|
|
ESXIMigrationSpec defines the desired state of ESXIMigration including
|
|
the ESXi host to migrate and the references to credentials and migration plan
|
|
properties:
|
|
esxiName:
|
|
description: ESXiName is the name of the ESXi host to be migrated
|
|
type: string
|
|
openstackCredsRef:
|
|
description: OpenstackCredsRef is the reference to the OpenStack credentials
|
|
properties:
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
rollingMigrationPlanRef:
|
|
description: RollingMigrationPlanRef is the reference to the RollingMigrationPlan
|
|
properties:
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
vmwareCredsRef:
|
|
description: VMwareCredsRef is the reference to the VMware credentials
|
|
properties:
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
required:
|
|
- esxiName
|
|
- openstackCredsRef
|
|
- rollingMigrationPlanRef
|
|
- vmwareCredsRef
|
|
type: object
|
|
status:
|
|
description: |-
|
|
ESXIMigrationStatus defines the observed state of ESXIMigration including
|
|
the list of VMs on the host, current phase, and status messages
|
|
properties:
|
|
message:
|
|
description: Message is the message associated with the current state
|
|
of the migration
|
|
type: string
|
|
phase:
|
|
description: |-
|
|
Phase is the current phase of the migration lifecycle
|
|
The final phases include 'Succeeded' when the ESXi host has been successfully
|
|
removed from vCenter inventory after migration is complete
|
|
type: string
|
|
vms:
|
|
description: VMs is the list of VMs present on the ESXi host
|
|
items:
|
|
type: string
|
|
type: array
|
|
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.17.1
|
|
name: migrationplans.vjailbreak.k8s.pf9.io
|
|
spec:
|
|
group: vjailbreak.k8s.pf9.io
|
|
names:
|
|
kind: MigrationPlan
|
|
listKind: MigrationPlanList
|
|
plural: migrationplans
|
|
singular: migrationplan
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .status.migrationStatus
|
|
name: Status
|
|
type: string
|
|
name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
MigrationPlan is the Schema for the migrationplans API that defines
|
|
how to migrate virtual machines from VMware to OpenStack including migration strategy and scheduling.
|
|
It allows administrators to configure migration parameters such as timing, health checks,
|
|
and VM-specific settings for bulk VM migration operations between environments.
|
|
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 including
|
|
the migration template, strategy, and the list of virtual machines to migrate
|
|
properties:
|
|
advancedOptions:
|
|
description: AdvancedOptions is a list of advanced options for the
|
|
migration
|
|
properties:
|
|
granularNetworks:
|
|
description: GranularNetworks is a list of networks to be migrated
|
|
items:
|
|
type: string
|
|
type: array
|
|
granularPorts:
|
|
description: GranularPorts is a list of ports to be migrated
|
|
items:
|
|
type: string
|
|
type: array
|
|
granularVolumeTypes:
|
|
description: GranularVolumeTypes is a list of volume types to
|
|
be migrated
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
firstBootScript:
|
|
default: echo "Add your startup script here!"
|
|
type: string
|
|
migrationStrategy:
|
|
description: MigrationStrategy is the strategy to be used for the
|
|
migration
|
|
properties:
|
|
adminInitiatedCutOver:
|
|
default: false
|
|
type: boolean
|
|
dataCopyStart:
|
|
format: date-time
|
|
type: string
|
|
healthCheckPort:
|
|
default: "443"
|
|
type: string
|
|
performHealthChecks:
|
|
default: false
|
|
type: boolean
|
|
type:
|
|
enum:
|
|
- hot
|
|
- cold
|
|
type: string
|
|
vmCutoverEnd:
|
|
format: date-time
|
|
type: string
|
|
vmCutoverStart:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- type
|
|
type: object
|
|
migrationTemplate:
|
|
description: MigrationTemplate is the template to be used for the
|
|
migration
|
|
type: string
|
|
postMigrationAction:
|
|
description: PostMigrationAction defines the post migration action
|
|
for the virtual machine
|
|
properties:
|
|
folderName:
|
|
type: string
|
|
moveToFolder:
|
|
type: boolean
|
|
renameVm:
|
|
type: boolean
|
|
suffix:
|
|
type: string
|
|
type: object
|
|
retry:
|
|
description: Retry the migration if it fails
|
|
type: boolean
|
|
virtualMachines:
|
|
description: VirtualMachines is a list of virtual machines to be migrated
|
|
items:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: array
|
|
required:
|
|
- migrationStrategy
|
|
- migrationTemplate
|
|
- virtualMachines
|
|
type: object
|
|
status:
|
|
description: |-
|
|
MigrationPlanStatus defines the observed state of MigrationPlan including
|
|
the current status and progress of the migration
|
|
properties:
|
|
migrationMessage:
|
|
description: MigrationMessage is the message associated with the migration
|
|
type: string
|
|
migrationStatus:
|
|
description: |-
|
|
MigrationStatus is the status of the migration using Kubernetes PodPhase states
|
|
(Pending, Running, Succeeded, Failed, Unknown)
|
|
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.17.1
|
|
name: migrations.vjailbreak.k8s.pf9.io
|
|
spec:
|
|
group: vjailbreak.k8s.pf9.io
|
|
names:
|
|
kind: Migration
|
|
listKind: MigrationList
|
|
plural: migrations
|
|
singular: migration
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .status.phase
|
|
name: Phase
|
|
type: string
|
|
- jsonPath: .status.agentName
|
|
name: Agent Name
|
|
type: string
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
Migration is the Schema for the migrations API that represents a single virtual machine
|
|
migration job from VMware to OpenStack. It tracks the complete migration lifecycle
|
|
including validation, data transfer, disk conversion, and cutover phases. Migration resources
|
|
provide detailed status monitoring, error handling, and manual intervention points like
|
|
cutover initiation. Each Migration is associated with a MigrationPlan and executes on a specific
|
|
VjailbreakNode agent, tracking progress via status updates and condition changes.
|
|
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: Spec defines the desired state of Migration
|
|
properties:
|
|
initiateCutover:
|
|
description: InitiateCutover is the flag to initiate cutover
|
|
type: boolean
|
|
migrationPlan:
|
|
description: MigrationPlan is the name of the migration plan
|
|
type: string
|
|
podRef:
|
|
description: PodRef is the name of the pod
|
|
type: string
|
|
vmName:
|
|
description: VMName is the name of the VM getting migrated from VMWare
|
|
to Openstack
|
|
type: string
|
|
required:
|
|
- initiateCutover
|
|
- migrationPlan
|
|
- podRef
|
|
- vmName
|
|
type: object
|
|
status:
|
|
description: Status defines the observed state of Migration
|
|
properties:
|
|
agentName:
|
|
description: AgentName is the name of the agent where migration is
|
|
running
|
|
type: string
|
|
conditions:
|
|
description: Conditions is the list of conditions of the migration
|
|
object pod
|
|
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
|
|
observedGeneration:
|
|
description: |-
|
|
If set, this represents the .metadata.generation that the pod condition was set based upon.
|
|
This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field.
|
|
format: int64
|
|
type: integer
|
|
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:
|
|
description: Phase is the current phase of the migration
|
|
enum:
|
|
- Pending
|
|
- Validating
|
|
- AwaitingDataCopyStart
|
|
- CopyingBlocks
|
|
- CopyingChangedBlocks
|
|
- ConvertingDisk
|
|
- AwaitingCutOverStartTime
|
|
- AwaitingAdminCutOver
|
|
- Succeeded
|
|
- Failed
|
|
- Unknown
|
|
type: string
|
|
required:
|
|
- 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.17.1
|
|
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 that defines how VMs should be migrated
|
|
from VMware to OpenStack including network and storage mappings. It serves as a reusable template
|
|
that can be referenced by multiple migration plans, providing configuration for source and destination
|
|
environments, OS-specific settings, and network/storage mappings. Migration templates enable consistent
|
|
configuration across multiple VM migrations and simplify the definition of migration plans.
|
|
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
|
|
including source/destination environments and mappings
|
|
properties:
|
|
destination:
|
|
description: Destination is the destination details for the virtual
|
|
machine
|
|
properties:
|
|
openstackRef:
|
|
description: OpenstackRef is the reference to the OpenStack credentials
|
|
to be used as the destination environment
|
|
type: string
|
|
required:
|
|
- openstackRef
|
|
type: object
|
|
networkMapping:
|
|
description: NetworkMapping is the reference to the NetworkMapping
|
|
resource that defines source to destination network mappings
|
|
type: string
|
|
osFamily:
|
|
description: OSFamily is the OS type of the virtual machine
|
|
enum:
|
|
- windowsGuest
|
|
- linuxGuest
|
|
type: string
|
|
source:
|
|
description: Source is the source details for the virtual machine
|
|
properties:
|
|
vmwareRef:
|
|
description: VMwareRef is the reference to the VMware credentials
|
|
to be used as the source environment
|
|
type: string
|
|
required:
|
|
- vmwareRef
|
|
type: object
|
|
storageMapping:
|
|
description: StorageMapping is the reference to the StorageMapping
|
|
resource that defines source to destination storage mappings
|
|
type: string
|
|
targetPCDClusterName:
|
|
description: TargetPCDClusterName is the name of the PCD cluster where
|
|
the virtual machine will be migrated
|
|
type: string
|
|
virtioWinDriver:
|
|
description: VirtioWinDriver is the driver to be used for the virtual
|
|
machine
|
|
type: string
|
|
required:
|
|
- destination
|
|
- networkMapping
|
|
- source
|
|
- storageMapping
|
|
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.17.1
|
|
name: networkmappings.vjailbreak.k8s.pf9.io
|
|
spec:
|
|
group: vjailbreak.k8s.pf9.io
|
|
names:
|
|
kind: NetworkMapping
|
|
listKind: NetworkMappingList
|
|
plural: networkmappings
|
|
singular: networkmapping
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .status.networkMappingValidationStatus
|
|
name: Status
|
|
type: string
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
NetworkMapping is the Schema for the networkmappings API that defines
|
|
mappings between VMware and OpenStack networks to be used during migration
|
|
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 including
|
|
mappings between VMware and OpenStack networks
|
|
properties:
|
|
networks:
|
|
description: Networks is the list of network mappings between source
|
|
(VMware) and target (OpenStack) environments
|
|
items:
|
|
description: Network represents a mapping between source and target
|
|
networks
|
|
properties:
|
|
source:
|
|
description: Source is the name of the source network in VMware
|
|
type: string
|
|
target:
|
|
description: Target is the name of the target network in OpenStack
|
|
type: string
|
|
required:
|
|
- source
|
|
- target
|
|
type: object
|
|
type: array
|
|
required:
|
|
- networks
|
|
type: object
|
|
status:
|
|
description: NetworkMappingStatus defines the observed state of NetworkMapping
|
|
properties:
|
|
networkMappingValidationMessage:
|
|
description: |-
|
|
NetworkmappingValidationMessage provides detailed validation information including
|
|
information about available networks and any validation errors
|
|
type: string
|
|
networkMappingValidationStatus:
|
|
description: |-
|
|
NetworkmappingValidationStatus indicates the validation status of the network mapping
|
|
Valid states include: "Valid", "Invalid", "Pending", "ValidationFailed"
|
|
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.17.1
|
|
name: openstackcreds.vjailbreak.k8s.pf9.io
|
|
spec:
|
|
group: vjailbreak.k8s.pf9.io
|
|
names:
|
|
kind: OpenstackCreds
|
|
listKind: OpenstackCredsList
|
|
plural: openstackcreds
|
|
singular: openstackcreds
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .status.openstackValidationStatus
|
|
name: Status
|
|
type: string
|
|
name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
OpenstackCreds is the Schema for the OpenStack credentials API that defines authentication
|
|
and connection details for OpenStack environments. It provides a secure way to store and validate
|
|
OpenStack credentials for use in migration operations, including authentication information,
|
|
available compute flavors, volume types, networks, and Platform9 Distributed Cloud host configurations.
|
|
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:
|
|
flavors:
|
|
description: Flavors is the list of available flavors in openstack
|
|
items:
|
|
description: |-
|
|
Flavor represent (virtual) hardware configurations for server resources
|
|
in a region.
|
|
properties:
|
|
OS-FLV-EXT-DATA:ephemeral:
|
|
description: Ephemeral is the amount of ephemeral disk space,
|
|
measured in GB.
|
|
type: integer
|
|
description:
|
|
description: |-
|
|
Description is a free form description of the flavor. Limited to
|
|
65535 characters in length. Only printable characters are allowed.
|
|
New in version 2.55
|
|
type: string
|
|
disk:
|
|
description: Disk is the amount of root disk, measured in GB.
|
|
type: integer
|
|
id:
|
|
description: ID is the flavor's unique ID.
|
|
type: string
|
|
name:
|
|
description: Name is the name of the flavor.
|
|
type: string
|
|
os-flavor-access:is_public:
|
|
description: IsPublic indicates whether the flavor is public.
|
|
type: boolean
|
|
ram:
|
|
description: RAM is the amount of memory, measured in MB.
|
|
type: integer
|
|
rxtx_factor:
|
|
description: RxTxFactor describes bandwidth alterations of the
|
|
flavor.
|
|
type: number
|
|
vcpus:
|
|
description: VCPUs indicates how many (virtual) CPUs are available
|
|
for this flavor.
|
|
type: integer
|
|
required:
|
|
- OS-FLV-EXT-DATA:ephemeral
|
|
- description
|
|
- disk
|
|
- id
|
|
- name
|
|
- os-flavor-access:is_public
|
|
- ram
|
|
- rxtx_factor
|
|
- vcpus
|
|
type: object
|
|
type: array
|
|
pcdHostConfig:
|
|
description: PCDHostConfig is the list of available clusters in openstack
|
|
items:
|
|
description: HostConfig defines the configuration for a Platform9
|
|
Distributed Cloud host
|
|
properties:
|
|
clusterName:
|
|
type: string
|
|
hostLivenessInterface:
|
|
type: string
|
|
id:
|
|
type: string
|
|
imagelibInterface:
|
|
type: string
|
|
mgmtInterface:
|
|
type: string
|
|
name:
|
|
type: string
|
|
networkLabels:
|
|
additionalProperties:
|
|
type: string
|
|
type: object
|
|
tunnelingInterface:
|
|
type: string
|
|
vmConsoleInterface:
|
|
type: string
|
|
type: object
|
|
type: array
|
|
secretRef:
|
|
description: SecretRef is the reference to the Kubernetes secret holding
|
|
OpenStack credentials
|
|
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.
|
|
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: OpenstackCredsStatus defines the observed state of OpenstackCreds
|
|
properties:
|
|
openstack:
|
|
description: Openstack is the OpenStack configuration for the openstackcreds
|
|
properties:
|
|
networks:
|
|
items:
|
|
type: string
|
|
type: array
|
|
volumeTypes:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
openstackValidationMessage:
|
|
description: OpenStackValidationMessage is the message associated
|
|
with the OpenStack validation
|
|
type: string
|
|
openstackValidationStatus:
|
|
description: OpenStackValidationStatus is the status of the OpenStack
|
|
validation
|
|
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.17.1
|
|
name: pcdclusters.vjailbreak.k8s.pf9.io
|
|
spec:
|
|
group: vjailbreak.k8s.pf9.io
|
|
names:
|
|
kind: PCDCluster
|
|
listKind: PCDClusterList
|
|
plural: pcdclusters
|
|
singular: pcdcluster
|
|
scope: Namespaced
|
|
versions:
|
|
- name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
PCDCluster is the Schema for the pcdclusters API that represents a Platform9 Distributed Cloud
|
|
cluster in the migration system. It defines cluster configuration including host membership,
|
|
high availability settings, and resource rebalancing policies. PCDCluster resources track both
|
|
the desired state of clusters as part of migration planning and the observed state of actual
|
|
PCD clusters in the target environment. They serve as destination targets for VM migrations
|
|
from VMware ESXi environments.
|
|
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: PCDClusterSpec defines the desired state of PCDCluster
|
|
properties:
|
|
clusterName:
|
|
description: ClusterName is the name of the PCD cluster
|
|
type: string
|
|
description:
|
|
description: Description is the description of the PCD cluster
|
|
type: string
|
|
enableAutoResourceRebalancing:
|
|
description: EnableAutoResourceRebalancing indicates if auto resource
|
|
rebalancing is enabled
|
|
type: boolean
|
|
hosts:
|
|
description: Hosts is the list of hosts in the PCD cluster
|
|
items:
|
|
type: string
|
|
type: array
|
|
rebalancingFrequencyMins:
|
|
description: RebalancingFrequencyMins defines how often rebalancing
|
|
occurs in minutes
|
|
type: integer
|
|
vmHighAvailability:
|
|
description: VMHighAvailability indicates if VM high availability
|
|
is enabled
|
|
type: boolean
|
|
type: object
|
|
status:
|
|
description: PCDClusterStatus defines the observed state of PCDCluster
|
|
properties:
|
|
aggregateID:
|
|
description: AggregateID is the aggregate ID in the PCD cluster
|
|
type: integer
|
|
clusterID:
|
|
description: ClusterID is the ID of the PCD cluster
|
|
type: string
|
|
createdAt:
|
|
description: CreatedAt indicates when the cluster was created
|
|
type: string
|
|
updatedAt:
|
|
description: UpdatedAt indicates when the cluster was last updated
|
|
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.17.1
|
|
name: pcdhosts.vjailbreak.k8s.pf9.io
|
|
spec:
|
|
group: vjailbreak.k8s.pf9.io
|
|
names:
|
|
kind: PCDHost
|
|
listKind: PCDHostList
|
|
plural: pcdhosts
|
|
singular: pcdhost
|
|
scope: Namespaced
|
|
versions:
|
|
- name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
PCDHost is the Schema for the pcdhosts API that represents a physical or virtual host
|
|
in a Platform9 Distributed Cloud environment. It tracks the host's configuration,
|
|
network interfaces, assigned roles, and operational status. PCDHost resources are created
|
|
as part of the migration process when converting ESXi hosts to PCD hosts or when provisioning
|
|
new infrastructure to replace migrated VMware hosts.
|
|
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: PCDHostSpec defines the desired state of PCDHost
|
|
properties:
|
|
arch:
|
|
type: string
|
|
hostID:
|
|
description: HostID is the ID of the host
|
|
type: string
|
|
hostName:
|
|
description: HostName is the name of the host
|
|
type: string
|
|
hostState:
|
|
description: HostState is the state of the host
|
|
type: string
|
|
interfaces:
|
|
items:
|
|
description: |-
|
|
PCDHostInterface defines the network interface configuration for a Platform9 Distributed Cloud host,
|
|
including IP addresses, MAC address, and interface name. It's used to configure proper network
|
|
connectivity for PCD hosts created during the migration process.
|
|
properties:
|
|
ipAddresses:
|
|
items:
|
|
type: string
|
|
type: array
|
|
macAddress:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type: object
|
|
type: array
|
|
osFamily:
|
|
type: string
|
|
osInfo:
|
|
type: string
|
|
rolesAssigned:
|
|
description: RolesAssigned is the list of roles assigned to the host
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
status:
|
|
description: PCDHostStatus defines the observed state of PCDHost
|
|
properties:
|
|
responding:
|
|
type: boolean
|
|
roleStatus:
|
|
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.17.1
|
|
name: rollingmigrationplans.vjailbreak.k8s.pf9.io
|
|
spec:
|
|
group: vjailbreak.k8s.pf9.io
|
|
names:
|
|
kind: RollingMigrationPlan
|
|
listKind: RollingMigrationPlanList
|
|
plural: rollingmigrationplans
|
|
singular: rollingmigrationplan
|
|
scope: Namespaced
|
|
versions:
|
|
- name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
RollingMigrationPlan is the Schema for the rollingmigrationplans API that defines a coordinated
|
|
migration of multiple VMware clusters and ESXi hosts to Platform9 Distributed Cloud (PCD).
|
|
It supports sequenced migration of VMs across clusters with configurable batch sizes,
|
|
cluster-to-cluster mapping, and tracking of migration progress across the entire datacenter migration.
|
|
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: RollingMigrationPlanSpec defines the desired state of RollingMigrationPlan
|
|
properties:
|
|
advancedOptions:
|
|
description: AdvancedOptions is a list of advanced options for the
|
|
migration
|
|
properties:
|
|
granularNetworks:
|
|
description: GranularNetworks is a list of networks to be migrated
|
|
items:
|
|
type: string
|
|
type: array
|
|
granularPorts:
|
|
description: GranularPorts is a list of ports to be migrated
|
|
items:
|
|
type: string
|
|
type: array
|
|
granularVolumeTypes:
|
|
description: GranularVolumeTypes is a list of volume types to
|
|
be migrated
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
bmConfigRef:
|
|
description: BMConfigRef is the reference to the BMC credentials
|
|
properties:
|
|
name:
|
|
default: ""
|
|
description: |-
|
|
Name of the referent.
|
|
This field is effectively required, but due to backwards compatibility is
|
|
allowed to be empty. Instances of this type with an empty value here are
|
|
almost certainly wrong.
|
|
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
cloudInitConfigRef:
|
|
description: CloudInitConfigRef is the reference to the cloud-init
|
|
configuration
|
|
properties:
|
|
name:
|
|
description: name is unique within a namespace to reference a
|
|
secret resource.
|
|
type: string
|
|
namespace:
|
|
description: namespace defines the space within which the secret
|
|
name must be unique.
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
clusterMapping:
|
|
description: ClusterMapping is the mapping of vCenter clusters to
|
|
PCD clusters
|
|
items:
|
|
description: |-
|
|
ClusterMapping defines the relationship between a VMware vCenter cluster and its corresponding
|
|
Platform9 Distributed Cloud (PCD) cluster for migration operations. This mapping ensures that
|
|
virtual machines are properly migrated to the appropriate target infrastructure.
|
|
properties:
|
|
pcdClusterName:
|
|
description: PCDClusterName is the name of the PCD cluster
|
|
type: string
|
|
vmwareClusterName:
|
|
description: VMwareClusterName is the name of the vCenter cluster
|
|
type: string
|
|
required:
|
|
- pcdClusterName
|
|
- vmwareClusterName
|
|
type: object
|
|
type: array
|
|
clusterSequence:
|
|
description: ClusterSequence is the sequence of vCenter clusters to
|
|
be migrated
|
|
items:
|
|
description: |-
|
|
ClusterMigrationInfo defines information about a VMware vCenter cluster migration,
|
|
including the cluster name and the sequence of virtual machines to be migrated.
|
|
This structure allows for coordinated migration of multiple related VMs within a cluster.
|
|
properties:
|
|
clusterName:
|
|
description: ClusterName is the name of the vCenter cluster
|
|
to be migrated
|
|
type: string
|
|
vmMigrationBatchSize:
|
|
default: 10
|
|
description: |-
|
|
VMMigrationBatchSize is the number of VMs in one batch for migration
|
|
batches will be processed sequentially, but all VMs in a batch
|
|
will be migrated in parallel. Default is 10
|
|
minimum: 1
|
|
type: integer
|
|
vmSequence:
|
|
description: VMSequence is the sequence of virtual machines
|
|
to be migrated
|
|
items:
|
|
description: |-
|
|
VMSequenceInfo defines information about a virtual machine in the migration sequence,
|
|
including its name and the ESXi host where it is located. This information is used to
|
|
establish the proper order and grouping of VMs during the migration process.
|
|
properties:
|
|
esxiName:
|
|
description: ESXiName is the name of the ESXi host where
|
|
the virtual machine is located
|
|
type: string
|
|
vmName:
|
|
description: VMName is the name of the virtual machine
|
|
to be migrated
|
|
type: string
|
|
required:
|
|
- vmName
|
|
type: object
|
|
type: array
|
|
required:
|
|
- clusterName
|
|
- vmSequence
|
|
type: object
|
|
type: array
|
|
firstBootScript:
|
|
default: echo "Add your startup script here!"
|
|
type: string
|
|
migrationStrategy:
|
|
description: MigrationStrategy is the strategy to be used for the
|
|
migration
|
|
properties:
|
|
adminInitiatedCutOver:
|
|
default: false
|
|
type: boolean
|
|
dataCopyStart:
|
|
format: date-time
|
|
type: string
|
|
healthCheckPort:
|
|
default: "443"
|
|
type: string
|
|
performHealthChecks:
|
|
default: false
|
|
type: boolean
|
|
type:
|
|
enum:
|
|
- hot
|
|
- cold
|
|
type: string
|
|
vmCutoverEnd:
|
|
format: date-time
|
|
type: string
|
|
vmCutoverStart:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- type
|
|
type: object
|
|
migrationTemplate:
|
|
description: MigrationTemplate is the template to be used for the
|
|
migration
|
|
type: string
|
|
postMigrationAction:
|
|
description: PostMigrationAction defines the post migration action
|
|
for the virtual machine
|
|
properties:
|
|
folderName:
|
|
type: string
|
|
moveToFolder:
|
|
type: boolean
|
|
renameVm:
|
|
type: boolean
|
|
suffix:
|
|
type: string
|
|
type: object
|
|
retry:
|
|
description: Retry the migration if it fails
|
|
type: boolean
|
|
vmMigrationPlans:
|
|
description: VMMigrationPlans is the reference to the VM migration
|
|
plan
|
|
items:
|
|
type: string
|
|
type: array
|
|
required:
|
|
- bmConfigRef
|
|
- clusterSequence
|
|
- migrationStrategy
|
|
- migrationTemplate
|
|
type: object
|
|
status:
|
|
description: RollingMigrationPlanStatus defines the observed state of
|
|
RollingMigrationPlan
|
|
properties:
|
|
currentCluster:
|
|
description: CurrentCluster is the name of the current vCenter cluster
|
|
being migrated
|
|
type: string
|
|
currentESXi:
|
|
description: CurrentESXi is the name of the current ESXi host being
|
|
migrated
|
|
type: string
|
|
currentVM:
|
|
description: CurrentVM is the name of the current virtual machine
|
|
being migrated
|
|
type: string
|
|
failedClusters:
|
|
description: FailedClusters is the list of vCenter clusters that have
|
|
failed to migrate
|
|
items:
|
|
type: string
|
|
type: array
|
|
failedESXi:
|
|
description: FailedESXi is the list of ESXi hosts that have failed
|
|
to migrate
|
|
items:
|
|
type: string
|
|
type: array
|
|
failedVMs:
|
|
description: FailedVMs is the list of virtual machines that have failed
|
|
to migrate
|
|
items:
|
|
type: string
|
|
type: array
|
|
message:
|
|
description: Message is the message associated with the current state
|
|
of the migration
|
|
type: string
|
|
migratedClusters:
|
|
description: MigratedClusters is the list of vCenter clusters that
|
|
have been migrated
|
|
items:
|
|
type: string
|
|
type: array
|
|
migratedESXi:
|
|
description: MigratedESXi is the list of ESXi hosts that have been
|
|
migrated
|
|
items:
|
|
type: string
|
|
type: array
|
|
migratedVMs:
|
|
description: MigratedVMs is the list of virtual machines that have
|
|
been migrated
|
|
items:
|
|
type: string
|
|
type: array
|
|
phase:
|
|
description: Phase is the current phase of the migration
|
|
type: string
|
|
vmMigrationPhase:
|
|
description: VMMigrationsPhase is the list of VM migration plans
|
|
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.17.1
|
|
name: storagemappings.vjailbreak.k8s.pf9.io
|
|
spec:
|
|
group: vjailbreak.k8s.pf9.io
|
|
names:
|
|
kind: StorageMapping
|
|
listKind: StorageMappingList
|
|
plural: storagemappings
|
|
singular: storagemapping
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .status.storageMappingValidationStatus
|
|
name: Status
|
|
type: string
|
|
- jsonPath: .metadata.creationTimestamp
|
|
name: Age
|
|
type: date
|
|
name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
StorageMapping is the Schema for the storagemappings API that defines
|
|
mappings between VMware and OpenStack storage types to be used during migration
|
|
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 including
|
|
mappings between VMware and OpenStack storage types
|
|
properties:
|
|
storages:
|
|
description: Storages is a list of storage mappings between source
|
|
(VMware) and target (OpenStack) environments
|
|
items:
|
|
description: Storage represents a mapping between source and target
|
|
storage types
|
|
properties:
|
|
source:
|
|
description: Source is the name of the source storage type in
|
|
VMware
|
|
type: string
|
|
target:
|
|
description: Target is the name of the target storage type in
|
|
OpenStack
|
|
type: string
|
|
required:
|
|
- source
|
|
- target
|
|
type: object
|
|
type: array
|
|
required:
|
|
- storages
|
|
type: object
|
|
status:
|
|
description: StorageMappingStatus defines the observed state of StorageMapping
|
|
properties:
|
|
storageMappingValidationMessage:
|
|
description: |-
|
|
StoragemappingValidationMessage provides detailed validation information including
|
|
information about available storage types and any validation errors
|
|
type: string
|
|
storageMappingValidationStatus:
|
|
description: |-
|
|
StoragemappingValidationStatus indicates the validation status of the storage mapping
|
|
Valid states include: "Valid", "Invalid", "Pending", "ValidationFailed"
|
|
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.17.1
|
|
name: vjailbreaknodes.vjailbreak.k8s.pf9.io
|
|
spec:
|
|
group: vjailbreak.k8s.pf9.io
|
|
names:
|
|
kind: VjailbreakNode
|
|
listKind: VjailbreakNodeList
|
|
plural: vjailbreaknodes
|
|
singular: vjailbreaknode
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .status.phase
|
|
name: Phase
|
|
type: string
|
|
- jsonPath: .status.vmIP
|
|
name: VMIP
|
|
type: string
|
|
name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
VjailbreakNode is the Schema for the vjailbreaknodes API that represents
|
|
a node in the migration infrastructure with configuration, resource limits,
|
|
and statistics for monitoring migration progress
|
|
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: Spec defines the desired state of VjailbreakNode
|
|
properties:
|
|
nodeRole:
|
|
description: NodeRole is the role assigned to the node (e.g., "worker",
|
|
"controller")
|
|
type: string
|
|
openstackCreds:
|
|
description: |-
|
|
OpenstackCreds is the reference to the credentials for the OpenStack environment
|
|
where the node will be provisioned
|
|
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.
|
|
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
|
|
openstackFlavorID:
|
|
description: OpenstackFlavorID is the flavor of the VM
|
|
type: string
|
|
openstackImageID:
|
|
description: OpenstackImageID is the image of the VM
|
|
type: string
|
|
required:
|
|
- nodeRole
|
|
- openstackCreds
|
|
- openstackFlavorID
|
|
- openstackImageID
|
|
type: object
|
|
status:
|
|
description: Status defines the observed state of VjailbreakNode
|
|
properties:
|
|
activeMigrations:
|
|
description: |-
|
|
ActiveMigrations is the list of active migrations currently being processed on this node,
|
|
containing references to MigrationPlan resources
|
|
items:
|
|
type: string
|
|
type: array
|
|
openstackUUID:
|
|
description: OpenstackUUID is the UUID of the VM in OpenStack
|
|
type: string
|
|
phase:
|
|
description: |-
|
|
Phase is the current lifecycle phase of the node
|
|
(e.g., Provisioning, Ready, Error, Decommissioning)
|
|
type: string
|
|
vmIP:
|
|
description: VMIP is the IP address of the VM
|
|
type: string
|
|
required:
|
|
- vmIP
|
|
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.17.1
|
|
name: vmwareclusters.vjailbreak.k8s.pf9.io
|
|
spec:
|
|
group: vjailbreak.k8s.pf9.io
|
|
names:
|
|
kind: VMwareCluster
|
|
listKind: VMwareClusterList
|
|
plural: vmwareclusters
|
|
singular: vmwarecluster
|
|
scope: Namespaced
|
|
versions:
|
|
- name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
VMwareCluster is the Schema for the vmwareclusters API that represents a VMware vSphere cluster
|
|
in the source environment. It tracks cluster configuration, member hosts, and migration status
|
|
as part of the VMware to Platform9 Distributed Cloud migration process. VMwareCluster resources
|
|
serve as source components that are migrated to corresponding PCDCluster resources in the target environment.
|
|
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: VMwareClusterSpec defines the desired state of VMwareCluster
|
|
properties:
|
|
hosts:
|
|
description: Hosts is the list of hosts in the VMware cluster
|
|
items:
|
|
type: string
|
|
type: array
|
|
name:
|
|
description: Name is the name of the VMware cluster
|
|
type: string
|
|
type: object
|
|
status:
|
|
description: VMwareClusterStatus defines the observed state of VMwareCluster
|
|
properties:
|
|
phase:
|
|
description: Phase is the current phase of the VMwareCluster
|
|
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.17.1
|
|
name: vmwarecreds.vjailbreak.k8s.pf9.io
|
|
spec:
|
|
group: vjailbreak.k8s.pf9.io
|
|
names:
|
|
kind: VMwareCreds
|
|
listKind: VMwareCredsList
|
|
plural: vmwarecreds
|
|
singular: vmwarecreds
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .status.vmwareValidationStatus
|
|
name: Status
|
|
type: string
|
|
name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
VMwareCreds is the Schema for the vmwarecreds API that defines authentication
|
|
and connection details for VMware vSphere environments. It provides a secure way to
|
|
store and validate vCenter credentials for use in migration operations, including
|
|
connection parameters, authentication information, and datacenter configuration.
|
|
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:
|
|
datacenter:
|
|
description: DataCenter is the datacenter for the virtual machine
|
|
type: string
|
|
secretRef:
|
|
description: SecretRef is the reference to the Kubernetes secret holding
|
|
VMware credentials
|
|
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.
|
|
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
|
|
required:
|
|
- datacenter
|
|
type: object
|
|
status:
|
|
description: VMwareCredsStatus defines the observed state of VMwareCreds
|
|
properties:
|
|
vmwareValidationMessage:
|
|
description: VMwareValidationMessage is the message associated with
|
|
the VMware validation
|
|
type: string
|
|
vmwareValidationStatus:
|
|
description: VMwareValidationStatus is the status of the VMware validation
|
|
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.17.1
|
|
name: vmwarehosts.vjailbreak.k8s.pf9.io
|
|
spec:
|
|
group: vjailbreak.k8s.pf9.io
|
|
names:
|
|
kind: VMwareHost
|
|
listKind: VMwareHostList
|
|
plural: vmwarehosts
|
|
singular: vmwarehost
|
|
scope: Namespaced
|
|
versions:
|
|
- name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
VMwareHost is the Schema for the vmwarehosts API that represents a VMware ESXi host
|
|
in the source environment. It tracks host configuration, hardware identification, and cluster membership
|
|
as part of the VMware to Platform9 Distributed Cloud migration process. VMwareHost resources are
|
|
source components that are migrated to PCDHost resources in the target environment and are automatically
|
|
removed from vCenter inventory after all VMs have been migrated off and the host is in maintenance mode.
|
|
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: VMwareHostSpec defines the desired state of VMwareHost
|
|
properties:
|
|
clusterName:
|
|
description: Cluster name of the host
|
|
type: string
|
|
hardwareUuid:
|
|
description: Hardware UUID of the host
|
|
type: string
|
|
hostConfigId:
|
|
description: Host config ID of the host
|
|
type: string
|
|
name:
|
|
description: Name of the host
|
|
type: string
|
|
type: object
|
|
status:
|
|
description: VMwareHostStatus defines the observed state of VMwareHost
|
|
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.17.1
|
|
name: vmwaremachines.vjailbreak.k8s.pf9.io
|
|
spec:
|
|
group: vjailbreak.k8s.pf9.io
|
|
names:
|
|
kind: VMwareMachine
|
|
listKind: VMwareMachineList
|
|
plural: vmwaremachines
|
|
singular: vmwaremachine
|
|
scope: Namespaced
|
|
versions:
|
|
- name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
VMwareMachine is the Schema for the vmwaremachines API that represents a virtual machine
|
|
in the VMware source environment targeted for migration. It tracks VM configuration,
|
|
resource allocation, migration status, and target environment specifications.
|
|
VMwareMachine resources are the primary workloads migrated from VMware to OpenStack
|
|
as part of the migration process and contain all necessary information to recreate
|
|
equivalent virtual machines in the target environment.
|
|
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: VMwareMachineSpec defines the desired state of VMwareMachine
|
|
properties:
|
|
targetFlavorId:
|
|
description: TargetFlavorId is the flavor to be used to create the
|
|
target VM on openstack
|
|
type: string
|
|
vms:
|
|
description: VMInfo is the info of the VMs in the VMwareMachine
|
|
properties:
|
|
assignedIp:
|
|
description: AssignedIp is the IP address assigned to the VM
|
|
type: string
|
|
clusterName:
|
|
description: ClusterName is the name of the cluster
|
|
type: string
|
|
cpu:
|
|
description: CPU is the number of CPUs in the virtual machine
|
|
type: integer
|
|
datastores:
|
|
description: Datastores is the list of datastores for the virtual
|
|
machine
|
|
items:
|
|
type: string
|
|
type: array
|
|
disks:
|
|
description: Disks is the list of disks for the virtual machine
|
|
items:
|
|
type: string
|
|
type: array
|
|
esxiName:
|
|
description: ESXiName is the name of the ESXi host
|
|
type: string
|
|
guestNetworks:
|
|
description: GuestNetworks is the list of network interfaces for
|
|
the virtual machine as reported by the guest
|
|
items:
|
|
description: GuestNetwork represents a network interface as
|
|
reported by the guest.
|
|
properties:
|
|
device:
|
|
type: string
|
|
dns:
|
|
items:
|
|
type: string
|
|
type: array
|
|
ip:
|
|
type: string
|
|
mac:
|
|
type: string
|
|
origin:
|
|
type: string
|
|
prefixLength:
|
|
format: int32
|
|
type: integer
|
|
type: object
|
|
type: array
|
|
ipAddress:
|
|
description: IPAddress is the IP address of the virtual machine
|
|
type: string
|
|
memory:
|
|
description: Memory is the amount of memory in the virtual machine
|
|
type: integer
|
|
name:
|
|
description: Name is the name of the virtual machine
|
|
type: string
|
|
networkInterfaces:
|
|
description: NetworkInterfaces is the list of network interfaces
|
|
for the virtual machine expect the lo device
|
|
items:
|
|
description: NIC represents a Virtual ethernet card in the virtual
|
|
machine.
|
|
properties:
|
|
mac:
|
|
type: string
|
|
network:
|
|
type: string
|
|
order:
|
|
type: integer
|
|
type: object
|
|
type: array
|
|
networks:
|
|
description: Networks is the list of networks for the virtual
|
|
machine
|
|
items:
|
|
type: string
|
|
type: array
|
|
osFamily:
|
|
description: OSFamily is the OS family of the virtual machine
|
|
type: string
|
|
rdmDisks:
|
|
description: RDMDisks is the list of RDM disks for the virtual
|
|
machine
|
|
items:
|
|
description: RDMDiskInfo contains information about a Raw Device
|
|
Mapping (RDM) disk
|
|
properties:
|
|
diskName:
|
|
description: DiskName is the name of the disk
|
|
type: string
|
|
diskSize:
|
|
description: DiskSize is the size of the disk in GB
|
|
format: int64
|
|
type: integer
|
|
displayName:
|
|
description: DisplayName is the display name of the disk
|
|
type: string
|
|
openstackVolumeRef:
|
|
description: OpenstackVolumeRef contains OpenStack volume
|
|
reference information
|
|
properties:
|
|
cinderBackendPool:
|
|
description: CinderBackendPool is the cinder backend
|
|
pool of the disk
|
|
type: string
|
|
volumeRef:
|
|
additionalProperties:
|
|
type: string
|
|
description: VolumeRef is the reference to the OpenStack
|
|
volume
|
|
type: object
|
|
volumeType:
|
|
description: VolumeType is the volume type of the disk
|
|
type: string
|
|
type: object
|
|
uuid:
|
|
description: UUID (VML id) is the unique identifier of the
|
|
disk
|
|
type: string
|
|
type: object
|
|
type: array
|
|
vmState:
|
|
description: VMState is the state of the virtual machine
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type: object
|
|
status:
|
|
description: VMwareMachineStatus defines the observed state of VMwareMachine
|
|
properties:
|
|
migrated:
|
|
default: false
|
|
description: Migrated flag to indicate if the VMs have been migrated
|
|
type: boolean
|
|
powerState:
|
|
description: PowerState is the state of the VMs in the VMware
|
|
type: string
|
|
required:
|
|
- migrated
|
|
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:
|
|
labels:
|
|
app.kubernetes.io/managed-by: kustomize
|
|
app.kubernetes.io/name: migration
|
|
name: migration-bmconfig-editor-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- bmconfigs
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- bmconfigs/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-bmconfig-viewer-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- bmconfigs
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- bmconfigs/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-clustermigration-editor-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- clustermigrations
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- clustermigrations/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-clustermigration-viewer-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- clustermigrations
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- clustermigrations/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-esximigration-editor-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- esximigrations
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- esximigrations/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-esximigration-viewer-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- esximigrations
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- esximigrations/status
|
|
verbs:
|
|
- get
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: migration-manager-role
|
|
rules:
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- configmaps
|
|
- pods
|
|
- secrets
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- events
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- nodes
|
|
verbs:
|
|
- delete
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- pods/status
|
|
verbs:
|
|
- get
|
|
- patch
|
|
- update
|
|
- apiGroups:
|
|
- batch
|
|
resources:
|
|
- jobs
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- bmconfigs
|
|
- clustermigrations
|
|
- esximigrations
|
|
- migrationplans
|
|
- migrations
|
|
- migrationtemplates
|
|
- networkmappings
|
|
- openstackcreds
|
|
- pcdclusters
|
|
- pcdhosts
|
|
- rollingmigrationplans
|
|
- storagemappings
|
|
- vjailbreaknodes
|
|
- vmwareclusters
|
|
- vmwarecreds
|
|
- vmwarehosts
|
|
- vmwaremachines
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- bmconfigs/finalizers
|
|
- clustermigrations/finalizers
|
|
- esximigrations/finalizers
|
|
- migrationplans/finalizers
|
|
- migrationtemplates/finalizers
|
|
- networkmappings/finalizers
|
|
- openstackcreds/finalizers
|
|
- pcdclusters/finalizers
|
|
- pcdhosts/finalizers
|
|
- rollingmigrationplans/finalizers
|
|
- storagemappings/finalizers
|
|
- vjailbreaknodes/finalizers
|
|
- vmwarecreds/finalizers
|
|
verbs:
|
|
- update
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- bmconfigs/status
|
|
- clustermigrations/status
|
|
- esximigrations/status
|
|
- migrationplans/status
|
|
- migrations/status
|
|
- migrationtemplates/status
|
|
- networkmappings/status
|
|
- openstackcreds/status
|
|
- pcdclusters/status
|
|
- pcdhosts/status
|
|
- rollingmigrationplans/status
|
|
- storagemappings/status
|
|
- vjailbreaknodes/status
|
|
- vmwarecreds/status
|
|
- vmwaremachines/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-pcdcluster-editor-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- pcdclusters
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- pcdclusters/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-pcdcluster-viewer-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- pcdclusters
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- pcdclusters/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-pcdhost-editor-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- pcdhosts
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- pcdhosts/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-pcdhost-viewer-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- pcdhosts
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- pcdhosts/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-rollingmigrationplan-editor-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- rollingmigrationplans
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- rollingmigrationplans/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-rollingmigrationplan-viewer-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- rollingmigrationplans
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- rollingmigrationplans/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-vjailbreaknode-editor-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- vjailbreaknodes
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- vjailbreaknodes/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-vjailbreaknode-viewer-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- vjailbreaknodes
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- vjailbreaknodes/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-vmwarecluster-editor-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- vmwareclusters
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- vmwareclusters/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-vmwarecluster-viewer-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- vmwareclusters
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- vmwareclusters/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: ClusterRole
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/managed-by: kustomize
|
|
app.kubernetes.io/name: migration
|
|
name: migration-vmwarehost-editor-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- vmwarehosts
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- vmwarehosts/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-vmwarehost-viewer-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- vmwarehosts
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- vmwarehosts/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-vmwaremachine-editor-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- vmwaremachines
|
|
verbs:
|
|
- create
|
|
- delete
|
|
- get
|
|
- list
|
|
- patch
|
|
- update
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- vmwaremachines/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-vmwaremachine-viewer-role
|
|
rules:
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- vmwaremachines
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- vjailbreak.k8s.pf9.io
|
|
resources:
|
|
- vmwaremachines/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: v1
|
|
kind: Service
|
|
metadata:
|
|
name: migration-vpwned-service
|
|
namespace: migration-system
|
|
spec:
|
|
ports:
|
|
- port: 80
|
|
protocol: TCP
|
|
targetPort: 3001
|
|
selector:
|
|
app: vpwned-sdk
|
|
type: ClusterIP
|
|
---
|
|
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:
|
|
affinity:
|
|
nodeAffinity:
|
|
requiredDuringSchedulingIgnoredDuringExecution:
|
|
nodeSelectorTerms:
|
|
- matchExpressions:
|
|
- key: node-role.kubernetes.io/control-plane
|
|
operator: Exists
|
|
containers:
|
|
- args:
|
|
- --leader-elect=false
|
|
- --health-probe-bind-address=:8081
|
|
command:
|
|
- /manager
|
|
image: quay.io/platform9/vjailbreak-controller:v0.2.0
|
|
imagePullPolicy: IfNotPresent
|
|
lifecycle:
|
|
preStop:
|
|
exec:
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
- sleep 5
|
|
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
|
|
volumeMounts:
|
|
- mountPath: /etc/pf9/k3s
|
|
name: master-token
|
|
- mountPath: /home/ubuntu
|
|
name: vddk
|
|
- mountPath: /etc/hosts
|
|
name: hosts-file
|
|
hostNetwork: true
|
|
securityContext:
|
|
runAsGroup: 0
|
|
runAsUser: 0
|
|
serviceAccountName: migration-controller-manager
|
|
terminationGracePeriodSeconds: 30
|
|
volumes:
|
|
- hostPath:
|
|
path: /var/lib/rancher/k3s/server
|
|
type: Directory
|
|
name: master-token
|
|
- hostPath:
|
|
path: /home/ubuntu
|
|
type: Directory
|
|
name: vddk
|
|
- hostPath:
|
|
path: /etc/hosts
|
|
type: File
|
|
name: hosts-file
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: vpwned-sdk
|
|
name: migration-vpwned-sdk
|
|
namespace: migration-system
|
|
spec:
|
|
progressDeadlineSeconds: 600
|
|
replicas: 1
|
|
revisionHistoryLimit: 10
|
|
selector:
|
|
matchLabels:
|
|
app: vpwned-sdk
|
|
strategy:
|
|
rollingUpdate:
|
|
maxSurge: 25%
|
|
maxUnavailable: 25%
|
|
type: RollingUpdate
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: vpwned-sdk
|
|
spec:
|
|
containers:
|
|
- image: quay.io/platform9/vjailbreak-vpwned:v0.2.0
|
|
imagePullPolicy: IfNotPresent
|
|
name: vpwned
|
|
ports:
|
|
- containerPort: 3001
|
|
protocol: TCP
|
|
resources: {}
|
|
terminationMessagePath: /dev/termination-log
|
|
terminationMessagePolicy: File
|
|
volumeMounts:
|
|
- mountPath: /etc/hosts
|
|
name: hosts-file
|
|
readOnly: true
|
|
dnsPolicy: ClusterFirst
|
|
restartPolicy: Always
|
|
schedulerName: default-scheduler
|
|
securityContext: {}
|
|
terminationGracePeriodSeconds: 30
|
|
volumes:
|
|
- hostPath:
|
|
path: /etc/hosts
|
|
type: File
|
|
name: hosts-file
|
|
---
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata:
|
|
annotations:
|
|
nginx.ingress.kubernetes.io/backend-protocol: HTTP
|
|
nginx.ingress.kubernetes.io/rewrite-target: /$1
|
|
nginx.ingress.kubernetes.io/use-regex: "true"
|
|
name: migration-vpwned-ingress
|
|
namespace: migration-system
|
|
spec:
|
|
ingressClassName: nginx
|
|
rules:
|
|
- http:
|
|
paths:
|
|
- backend:
|
|
service:
|
|
name: migration-vpwned-service
|
|
port:
|
|
number: 80
|
|
path: /dev-api/sdk/(.*)
|
|
pathType: ImplementationSpecific
|