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: 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 properties: apiVersion: description: |- APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: description: |- Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: description: MigrationPlanSpec defines the desired state of MigrationPlan properties: advancedOptions: properties: granularNetworks: items: type: string type: array granularPorts: items: type: string type: array granularVolumeTypes: items: type: string type: array type: object firstBootScript: default: echo "Add your startup script here!" type: string migrationStrategy: 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: type: string retry: type: boolean virtualMachines: items: items: type: string type: array type: array required: - migrationStrategy - migrationTemplate - virtualMachines type: object status: description: MigrationPlanStatus defines the observed state of MigrationPlan properties: migrationMessage: type: string migrationStatus: type: string required: - migrationMessage - migrationStatus type: object type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.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: AgentName type: string name: v1alpha1 schema: openAPIV3Schema: description: Migration is the Schema for the migrations API properties: apiVersion: description: |- APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: description: |- Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: description: 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 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 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 properties: apiVersion: description: |- APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: description: |- Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: description: MigrationTemplateSpec defines the desired state of MigrationTemplate properties: destination: description: MigrationTemplateDestination defines the destination details for the migrationtemplate properties: openstackRef: type: string required: - openstackRef type: object networkMapping: type: string osType: enum: - windows - linux type: string source: description: MigrationTemplateSource defines the source details for the migrationtemplate properties: datacenter: type: string vmwareRef: type: string required: - datacenter - vmwareRef type: object storageMapping: type: string virtioWinDriver: type: string required: - destination - networkMapping - source - storageMapping type: object status: description: MigrationTemplateStatus defines the observed state of MigrationTemplate properties: openstack: properties: networks: items: type: string type: array volumeTypes: items: type: string type: array type: object vmware: description: |- INSERT ADDITIONAL STATUS FIELD - define observed state of cluster Important: Run "make" to regenerate code after modifying this file items: properties: datastores: items: type: string type: array disks: items: type: string type: array ipAddress: type: string name: type: string networks: items: type: string type: array osType: type: string vmState: type: string required: - name type: object 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: 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 name: v1alpha1 schema: openAPIV3Schema: description: NetworkMapping is the Schema for the networkmappings API properties: apiVersion: description: |- APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: description: |- Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: description: NetworkMappingSpec defines the desired state of NetworkMapping properties: networks: description: Networks is the list of networks items: properties: source: type: string target: type: string required: - source - target type: object type: array required: - networks type: object status: description: NetworkMappingStatus defines the observed state of NetworkMapping properties: networkMappingValidationMessage: type: string networkMappingValidationStatus: type: string type: object type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.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 openstackcreds API properties: apiVersion: description: |- APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: description: |- Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: description: OpenstackCredsSpec defines the desired state of OpenstackCreds properties: 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: openstackValidationMessage: type: string openstackValidationStatus: 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 name: v1alpha1 schema: openAPIV3Schema: description: StorageMapping is the Schema for the storagemappings API properties: apiVersion: description: |- APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: description: |- Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: description: StorageMappingSpec defines the desired state of StorageMapping properties: storages: description: Storages is a list of storage mappings items: properties: source: type: string target: type: string required: - source - target type: object type: array required: - storages type: object status: description: StorageMappingStatus defines the observed state of StorageMapping properties: storageMappingValidationMessage: type: string storageMappingValidationStatus: type: string type: object type: object served: true storage: true subresources: status: {} --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.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 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: availableFlavors: description: AvailableFlavors 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 nodeRole: description: NodeRole is the role assigned to the node type: string openstackCreds: description: OpenstackCreds is the credentials for Openstack Environment 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 happening on the node items: type: string type: array openstackUUID: description: OpenstackUUID is the UUID of the VM in OpenStack type: string phase: description: Phase is the current phase of the node 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: 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 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: secretRef: description: |- INSERT ADDITIONAL SPEC FIELDS - desired state of cluster Important: Run "make" to regenerate code after modifying this file 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: VMwareCredsStatus defines the observed state of VMwareCreds properties: vmwareValidationMessage: type: string vmwareValidationStatus: description: |- INSERT ADDITIONAL STATUS FIELD - define observed state of cluster Important: Run "make" to regenerate code after modifying this file type: string type: object type: object served: true storage: true subresources: status: {} --- apiVersion: v1 kind: ServiceAccount metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration name: migration-controller-manager namespace: migration-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration name: migration-leader-election-role namespace: migration-system rules: - apiGroups: - "" resources: - configmaps verbs: - get - list - watch - create - update - patch - delete - apiGroups: - coordination.k8s.io resources: - leases verbs: - get - list - watch - create - update - patch - delete - apiGroups: - "" resources: - events verbs: - create - patch --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: migration-manager-role rules: - apiGroups: - "" resources: - configmaps - 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: - migrationplans - migrations - migrationtemplates - networkmappings - openstackcreds - storagemappings - vjailbreaknodes - vmwarecreds verbs: - create - delete - get - list - patch - update - watch - apiGroups: - vjailbreak.k8s.pf9.io resources: - migrationplans/finalizers - migrationtemplates/finalizers - networkmappings/finalizers - openstackcreds/finalizers - storagemappings/finalizers - vjailbreaknodes/finalizers - vmwarecreds/finalizers verbs: - update - apiGroups: - vjailbreak.k8s.pf9.io resources: - migrationplans/status - migrations/status - migrationtemplates/status - networkmappings/status - openstackcreds/status - storagemappings/status - vjailbreaknodes/status - vmwarecreds/status verbs: - get - patch - update --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration name: migration-migration-editor-role rules: - apiGroups: - vjailbreak.k8s.pf9.io resources: - migrations verbs: - create - delete - get - list - patch - update - watch - apiGroups: - vjailbreak.k8s.pf9.io resources: - migrations/status verbs: - get --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration name: migration-migration-viewer-role rules: - apiGroups: - vjailbreak.k8s.pf9.io resources: - migrations verbs: - get - list - watch - apiGroups: - vjailbreak.k8s.pf9.io resources: - migrations/status verbs: - get --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration name: migration-migrationplan-editor-role rules: - apiGroups: - vjailbreak.k8s.pf9.io resources: - migrationplans verbs: - create - delete - get - list - patch - update - watch - apiGroups: - vjailbreak.k8s.pf9.io resources: - migrationplans/status verbs: - get --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration name: migration-migrationplan-viewer-role rules: - apiGroups: - vjailbreak.k8s.pf9.io resources: - migrationplans verbs: - get - list - watch - apiGroups: - vjailbreak.k8s.pf9.io resources: - migrationplans/status verbs: - get --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration name: migration-migrationtemplate-editor-role rules: - apiGroups: - vjailbreak.k8s.pf9.io resources: - migrationtemplates verbs: - create - delete - get - list - patch - update - watch - apiGroups: - vjailbreak.k8s.pf9.io resources: - migrationtemplates/status verbs: - get --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration name: migration-migrationtemplate-viewer-role rules: - apiGroups: - vjailbreak.k8s.pf9.io resources: - migrationtemplates verbs: - get - list - watch - apiGroups: - vjailbreak.k8s.pf9.io resources: - migrationtemplates/status verbs: - get --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration name: migration-networkmapping-editor-role rules: - apiGroups: - vjailbreak.k8s.pf9.io resources: - networkmappings verbs: - create - delete - get - list - patch - update - watch - apiGroups: - vjailbreak.k8s.pf9.io resources: - networkmappings/status verbs: - get --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration name: migration-networkmapping-viewer-role rules: - apiGroups: - vjailbreak.k8s.pf9.io resources: - networkmappings verbs: - get - list - watch - apiGroups: - vjailbreak.k8s.pf9.io resources: - networkmappings/status verbs: - get --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration name: migration-openstackcreds-editor-role rules: - apiGroups: - vjailbreak.k8s.pf9.io resources: - openstackcreds verbs: - create - delete - get - list - patch - update - watch - apiGroups: - vjailbreak.k8s.pf9.io resources: - openstackcreds/status verbs: - get --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration name: migration-openstackcreds-viewer-role rules: - apiGroups: - vjailbreak.k8s.pf9.io resources: - openstackcreds verbs: - get - list - watch - apiGroups: - vjailbreak.k8s.pf9.io resources: - openstackcreds/status verbs: - get --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration name: migration-storagemapping-editor-role rules: - apiGroups: - vjailbreak.k8s.pf9.io resources: - storagemappings verbs: - create - delete - get - list - patch - update - watch - apiGroups: - vjailbreak.k8s.pf9.io resources: - storagemappings/status verbs: - get --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration name: migration-storagemapping-viewer-role rules: - apiGroups: - vjailbreak.k8s.pf9.io resources: - storagemappings verbs: - get - list - watch - apiGroups: - vjailbreak.k8s.pf9.io resources: - storagemappings/status verbs: - get --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration name: migration-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-vmwarecreds-editor-role rules: - apiGroups: - vjailbreak.k8s.pf9.io resources: - vmwarecreds verbs: - create - delete - get - list - patch - update - watch - apiGroups: - vjailbreak.k8s.pf9.io resources: - vmwarecreds/status verbs: - get --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration name: migration-vmwarecreds-viewer-role rules: - apiGroups: - vjailbreak.k8s.pf9.io resources: - vmwarecreds verbs: - get - list - watch - apiGroups: - vjailbreak.k8s.pf9.io resources: - vmwarecreds/status verbs: - get --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration name: migration-leader-election-rolebinding namespace: migration-system roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: migration-leader-election-role subjects: - kind: ServiceAccount name: migration-controller-manager namespace: migration-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration name: migration-manager-rolebinding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: migration-manager-role subjects: - kind: ServiceAccount name: migration-controller-manager namespace: migration-system --- apiVersion: apps/v1 kind: Deployment metadata: labels: app.kubernetes.io/managed-by: kustomize app.kubernetes.io/name: migration control-plane: controller-manager name: migration-controller-manager namespace: migration-system spec: replicas: 1 selector: matchLabels: control-plane: controller-manager template: metadata: annotations: kubectl.kubernetes.io/default-container: manager labels: control-plane: controller-manager spec: 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.1.7 imagePullPolicy: IfNotPresent livenessProbe: httpGet: path: /healthz port: 8081 initialDelaySeconds: 15 periodSeconds: 20 name: manager readinessProbe: httpGet: path: /readyz port: 8081 initialDelaySeconds: 5 periodSeconds: 10 resources: requests: cpu: 200m memory: 256Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL volumeMounts: - mountPath: /etc/pf9/k3s name: master-token hostNetwork: true securityContext: runAsGroup: 0 runAsUser: 0 serviceAccountName: migration-controller-manager terminationGracePeriodSeconds: 10 volumes: - hostPath: path: /var/lib/rancher/k3s/server type: Directory name: master-token