Add release v0.4.1

This commit is contained in:
OmkarDeshpande7
2026-09-15 22:49:17 +05:30
parent 47983006c0
commit 4e92311606
8 changed files with 914 additions and 5 deletions
+318 -3
View File
@@ -680,6 +680,156 @@ spec:
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.1
name: esxisshcreds.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
names:
kind: ESXiSSHCreds
listKind: ESXiSSHCredsList
plural: esxisshcreds
singular: esxisshcreds
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .status.validationStatus
name: Status
type: string
- jsonPath: .status.successfulHosts
name: Successful
type: integer
- jsonPath: .status.failedHosts
name: Failed
type: integer
- jsonPath: .status.totalHosts
name: Total
type: integer
name: v1alpha1
schema:
openAPIV3Schema:
description: |-
ESXiSSHCreds is the Schema for the esxisshcreds API that defines SSH credentials
for connecting to ESXi hosts. It validates SSH connectivity to ESXi hosts either
discovered from vCenter via VMwareCreds or explicitly specified in the hosts list.
The controller validates connections in parallel with throttling to avoid overwhelming
the network, and reports per-host validation results in the status.
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: ESXiSSHCredsSpec defines the desired state of ESXiSSHCreds
properties:
forceReconcileToken:
description: |-
ForceReconcileToken is an opaque token that can be updated to force a reconciliation.
Updating this field will increment metadata.generation and trigger the controller.
type: string
secretRef:
description: |-
SecretRef is the reference to the Kubernetes secret holding the SSH private key
The secret should contain a key named "privateKey" with the SSH private key in PEM format
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
username:
default: root
description: 'Username is the SSH username to use for connecting to
ESXi hosts (default: "root")'
type: string
required:
- secretRef
type: object
status:
description: ESXiSSHCredsStatus defines the observed state of ESXiSSHCreds
properties:
failedHosts:
description: FailedHosts is the number of ESXi hosts that failed validation
type: integer
lastValidationTime:
description: LastValidationTime is the timestamp of the last validation
run
format: date-time
type: string
successfulHosts:
description: SuccessfulHosts is the number of ESXi hosts that passed
validation
type: integer
totalHosts:
description: TotalHosts is the total number of ESXi hosts to validate
type: integer
validationMessage:
description: ValidationMessage is the message associated with the
overall validation
type: string
validationStatus:
description: |-
ValidationStatus is the overall status of the ESXi SSH validation
Possible values: Pending, Validating, Succeeded, PartiallySucceeded, Failed
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
@@ -697,6 +847,12 @@ spec:
- jsonPath: .status.migrationStatus
name: Status
type: string
- jsonPath: .spec.migrationTemplate
name: Migration Template
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
@@ -732,6 +888,11 @@ spec:
description: AdvancedOptions is a list of advanced options for the
migration
properties:
acknowledgeNetworkConflictRisk:
description: AcknowledgeNetworkConflictRisk indicates that the
user acknowledges the risk of network conflicts when doing live
migration
type: boolean
granularNetworks:
description: GranularNetworks is a list of networks to be migrated
items:
@@ -760,6 +921,10 @@ spec:
description: PeriodicSyncInterval is the interval at which the
migration plan should be synced
type: string
removeVMwareTools:
description: RemoveVMwareTools instructs the migration helper
to remove VMware Tools post migration
type: boolean
type: object
assignedIPsPerVM:
additionalProperties:
@@ -799,6 +964,7 @@ spec:
enum:
- hot
- cold
- mock
type: string
vmCutoverEnd:
format: date-time
@@ -813,6 +979,34 @@ spec:
description: MigrationTemplate is the template to be used for the
migration
type: string
networkOverridesPerVM:
additionalProperties:
items:
description: NICOverride defines per-NIC overrides for IP and
MAC preservation during migration
properties:
interfaceIndex:
description: InterfaceIndex is the zero-based index of the
NIC
type: integer
preserveIP:
description: |-
PreserveIP indicates whether to preserve the source VM's IP address for this NIC.
When nil the migration default (preserve) is used.
type: boolean
preserveMAC:
description: |-
PreserveMAC indicates whether to preserve the source VM's MAC address for this NIC.
When nil the migration default (preserve) is used.
type: boolean
required:
- interfaceIndex
type: object
type: array
description: |-
NetworkOverridesPerVM is a map of VM names to per-NIC network overrides
Only NICs with non-default settings (i.e., preserve=false) need to be listed
type: object
postMigrationAction:
description: PostMigrationAction defines the post migration action
for the virtual machine
@@ -889,6 +1083,9 @@ spec:
- jsonPath: .status.agentName
name: Agent Name
type: string
- jsonPath: .spec.migrationPlan
name: MigrationPlan
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
@@ -945,6 +1142,11 @@ spec:
enum:
- hot
- cold
- mock
type: string
networkOverrides:
description: NetworkOverrides is the JSON-serialized per-NIC overrides
for IP and MAC preservation
type: string
podRef:
description: PodRef is the name of the pod
@@ -1046,6 +1248,11 @@ spec:
Set to false for VMs with RDM (Raw Device Mapping) disks that share storage,
as RDM disk migration state prevents automatic retry.
type: boolean
syncWarningMessage:
description: |-
SyncWarningMessage contains the warning message when periodic sync is in a warning state.
If non-empty, indicates the sync failed but will auto-retry on next interval.
type: string
totalDisks:
description: TotalDisks is the total number of disks to be migrated
type: integer
@@ -1292,6 +1499,12 @@ spec:
- jsonPath: .status.openstackValidationStatus
name: Status
type: string
- jsonPath: .spec.secretRef.name
name: Secret Name
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
@@ -1389,8 +1602,12 @@ spec:
type: string
osDomainName:
type: string
osIdentityApiVersion:
type: string
osInsecure:
type: boolean
osInterface:
type: string
osPassword:
type: string
osRegionName:
@@ -1481,6 +1698,10 @@ spec:
openstack:
description: Openstack is the OpenStack configuration for the openstackcreds
properties:
backendVolumeTypeMap:
additionalProperties:
type: string
type: object
networks:
items:
type: string
@@ -1935,6 +2156,11 @@ spec:
description: AdvancedOptions is a list of advanced options for the
migration
properties:
acknowledgeNetworkConflictRisk:
description: AcknowledgeNetworkConflictRisk indicates that the
user acknowledges the risk of network conflicts when doing live
migration
type: boolean
granularNetworks:
description: GranularNetworks is a list of networks to be migrated
items:
@@ -1963,6 +2189,10 @@ spec:
description: PeriodicSyncInterval is the interval at which the
migration plan should be synced
type: string
removeVMwareTools:
description: RemoveVMwareTools instructs the migration helper
to remove VMware Tools post migration
type: boolean
type: object
bmConfigRef:
description: BMConfigRef is the reference to the BMC credentials
@@ -2088,6 +2318,7 @@ spec:
enum:
- hot
- cold
- mock
type: string
vmCutoverEnd:
format: date-time
@@ -2528,6 +2759,12 @@ spec:
- jsonPath: .status.vmwareValidationStatus
name: Status
type: string
- jsonPath: .spec.secretRef.name
name: Secret Name
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
@@ -2682,9 +2919,33 @@ spec:
name:
description: Name of the host
type: string
state:
description: State is the connection state of the host
type: string
vmCount:
description: VMCount is the number of VMs on the host
type: integer
type: object
status:
description: VMwareHostStatus defines the observed state of VMwareHost
properties:
esxiVersion:
description: ESXiVersion is the ESXi version retrieved via SSH if
connection succeeded
type: string
sshLastChecked:
description: SSHLastChecked is the timestamp of the last SSH validation
attempt
format: date-time
type: string
sshMessage:
description: SSHMessage contains details about the SSH validation
result or error
type: string
sshStatus:
description: SSHStatus is the SSH validation status for this host
(Succeeded, Failed, Pending)
type: string
type: object
type: object
served: true
@@ -2707,7 +2968,17 @@ spec:
singular: vmwaremachine
scope: Namespaced
versions:
- name: v1alpha1
- additionalPrinterColumns:
- jsonPath: .status.powerState
name: PowerState
type: string
- jsonPath: .spec.migrated
name: Migrated
type: boolean
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: |-
@@ -3208,6 +3479,7 @@ rules:
- bmconfigs
- clustermigrations
- esximigrations
- esxisshcreds
- migrationplans
- migrations
- migrationtemplates
@@ -3238,6 +3510,7 @@ rules:
- bmconfigs/finalizers
- clustermigrations/finalizers
- esximigrations/finalizers
- esxisshcreds/finalizers
- migrationplans/finalizers
- migrationtemplates/finalizers
- networkmappings/finalizers
@@ -3258,6 +3531,7 @@ rules:
- bmconfigs/status
- clustermigrations/status
- esximigrations/status
- esxisshcreds/status
- migrationplans/status
- migrations/status
- migrationtemplates/status
@@ -3270,6 +3544,7 @@ rules:
- storagemappings/status
- vjailbreaknodes/status
- vmwarecreds/status
- vmwarehosts/status
- vmwaremachines/status
verbs:
- get
@@ -4153,7 +4428,7 @@ spec:
envFrom:
- configMapRef:
name: pf9-env
image: quay.io/platform9/vjailbreak-controller:v0.3.8
image: quay.io/platform9/vjailbreak-controller:v0.4.1
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
@@ -4236,7 +4511,7 @@ spec:
- envFrom:
- configMapRef:
name: pf9-env
image: quay.io/platform9/vjailbreak-vpwned:v0.3.8
image: quay.io/platform9/vjailbreak-vpwned:v0.4.1
imagePullPolicy: IfNotPresent
name: vpwned
ports:
@@ -4294,3 +4569,43 @@ spec:
number: 80
path: /dev-api/sdk/(.*)
pathType: ImplementationSpecific
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: vjailbreak-ui
namespace: migration-system
spec:
replicas: 1
selector:
matchLabels:
app: vjailbreak-ui
template:
metadata:
labels:
app: vjailbreak-ui
spec:
serviceAccountName: migration-controller-manager
containers:
- name: vjailbreak-ui-container
image: quay.io/platform9/vjailbreak-ui:v0.4.1
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
volumeMounts:
- name: nginx-shadow-htpasswd
mountPath: /etc/nginx/shadow
- name: pf9-logs
mountPath: /var/log/pf9
readOnly: true
volumes:
- name: nginx-shadow-htpasswd
hostPath:
path: /etc/htpasswd
type: FileOrCreate
- name: pf9-logs
hostPath:
path: /var/log/pf9
type: DirectoryOrCreate
---