Compare commits

..
2 Commits
Author SHA1 Message Date
OmkarDeshpande7 1faa3a5f45 Add release v0.1.5 2026-09-15 22:44:45 +05:30
OmkarDeshpande7 cccd90c9ff Add release v0.1.4 2026-09-15 22:44:37 +05:30
5 changed files with 447 additions and 202 deletions
+367 -191
View File
@@ -11,7 +11,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
controller-gen.kubebuilder.io/version: v0.17.1
name: migrationplans.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
@@ -129,7 +129,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
controller-gen.kubebuilder.io/version: v0.17.1
name: migrations.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
@@ -163,15 +163,20 @@ spec:
metadata:
type: object
spec:
description: MigrationSpec defines the desired state of Migration
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
@@ -180,9 +185,15 @@ spec:
- vmName
type: object
status:
description: MigrationStatus defines the observed state of Migration
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.
@@ -221,9 +232,9 @@ spec:
type: object
type: array
phase:
description: Phase is the current phase of the migration
type: string
required:
- conditions
- phase
type: object
type: object
@@ -236,7 +247,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
controller-gen.kubebuilder.io/version: v0.17.1
name: migrationtemplates.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
@@ -334,6 +345,10 @@ spec:
items:
type: string
type: array
disks:
items:
type: string
type: array
ipAddress:
type: string
name:
@@ -361,7 +376,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
controller-gen.kubebuilder.io/version: v0.17.1
name: networkmappings.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
@@ -431,7 +446,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
controller-gen.kubebuilder.io/version: v0.17.1
name: openstackcreds.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
@@ -467,29 +482,50 @@ spec:
spec:
description: OpenstackCredsSpec defines the desired state of OpenstackCreds
properties:
OS_AUTH_URL:
description: OsAuthURL is the OpenStack authentication URL
secretRef:
description: SecretRef is the reference to the Kubernetes secret holding
OpenStack credentials
properties:
apiVersion:
description: API version of the referent.
type: string
OS_DOMAIN_NAME:
description: OsDomainName is the OpenStack domain name
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
OS_INSECURE:
default: false
description: OsInsecure is the flag to skip verification of the OpenStack
TLS Certificate
type: boolean
OS_PASSWORD:
description: OsPassword is the OpenStack password
kind:
description: |-
Kind of the referent.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
OS_REGION_NAME:
description: OsRegionName is the OpenStack region name
name:
description: |-
Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
OS_TENANT_NAME:
description: OsTenantName is the OpenStack tenant name
namespace:
description: |-
Namespace of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
type: string
OS_USERNAME:
description: OsUsername is the OpenStack username
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
@@ -497,9 +533,6 @@ spec:
openstackValidationMessage:
type: string
openstackValidationStatus:
description: |-
INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
Important: Run "make" to regenerate code after modifying this file
type: string
type: object
type: object
@@ -512,7 +545,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
controller-gen.kubebuilder.io/version: v0.17.1
name: storagemappings.vjailbreak.k8s.pf9.io
spec:
group: vjailbreak.k8s.pf9.io
@@ -581,7 +614,184 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
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:
- 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
imageid:
description: OpenstackImageID is the image of the VM
type: string
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
required:
- noderole
- openstackcreds
- openstackflavorid
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
@@ -617,19 +827,51 @@ spec:
spec:
description: VMwareCredsSpec defines the desired state of VMwareCreds
properties:
VCENTER_HOST:
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
VCENTER_INSECURE:
type: boolean
VCENTER_PASSWORD:
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
VCENTER_USERNAME:
kind:
description: |-
Kind of the referent.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
required:
- VCENTER_HOST
- VCENTER_INSECURE
- VCENTER_PASSWORD
- VCENTER_USERNAME
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
@@ -707,6 +949,8 @@ rules:
- ""
resources:
- configmaps
- pods
- secrets
verbs:
- create
- delete
@@ -726,14 +970,11 @@ rules:
- apiGroups:
- ""
resources:
- pods
- nodes
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- ""
@@ -747,155 +988,12 @@ rules:
- vjailbreak.k8s.pf9.io
resources:
- migrationplans
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- migrationplans/finalizers
verbs:
- update
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- migrationplans/status
verbs:
- get
- patch
- update
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- migrations
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- migrations/status
verbs:
- get
- patch
- update
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- migrationtemplates
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- migrationtemplates/finalizers
verbs:
- update
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- migrationtemplates/status
verbs:
- get
- patch
- update
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- networkmappings
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- networkmappings/finalizers
verbs:
- update
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- networkmappings/status
verbs:
- get
- patch
- update
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- openstackcreds
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- openstackcreds/finalizers
verbs:
- update
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- openstackcreds/status
verbs:
- get
- patch
- update
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- storagemappings
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- storagemappings/finalizers
verbs:
- update
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- storagemappings/status
verbs:
- get
- patch
- update
- apiGroups:
- vjailbreak.k8s.pf9.io
resources:
- vjailbreaknodes
- vmwarecreds
verbs:
- create
@@ -908,12 +1006,25 @@ rules:
- 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
@@ -1222,6 +1333,56 @@ rules:
---
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
@@ -1324,13 +1485,20 @@ spec:
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: platform9/vjailbreak-controller:v0.1
image: quay.io/platform9/vjailbreak-controller:v0.1.5
imagePullPolicy: IfNotPresent
livenessProbe:
httpGet:
@@ -1354,9 +1522,17 @@ spec:
capabilities:
drop:
- ALL
dnsPolicy: ClusterFirstWithHostNet
volumeMounts:
- mountPath: /etc/pf9/k3s
name: master-token
hostNetwork: true
securityContext:
runAsNonRoot: true
runAsGroup: 0
runAsUser: 0
serviceAccountName: migration-controller-manager
terminationGracePeriodSeconds: 10
volumes:
- hostPath:
path: /var/lib/rancher/k3s/server
type: Directory
name: master-token
+11 -2
View File
@@ -62,13 +62,22 @@ metadata:
namespace: default
annotations:
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /apis
pathType: Prefix
- path: /(apis.*)
pathType: ImplementationSpecific
backend:
service:
name: kubernetes
port:
number: 443
- path: /(api.*)
pathType: ImplementationSpecific
backend:
service:
name: kubernetes
+3
View File
@@ -0,0 +1,3 @@
export IS_MASTER=true
export MASTER_IP=
export K3S_TOKEN=
+28
View File
@@ -0,0 +1,28 @@
# v0.1.4
- **Tag:** `v0.1.4`
- **Published:** 2025-02-21T13:51:39Z
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.1.4
## Release Notes
## What's Changed
* Fix GH workflow runs on release event by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/147
* workflow dispatch manual by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/148
* Update README.md by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/149
* Update model.ts by @markp93 in https://github.com/platform9/vjailbreak/pull/152
* Added delete migration functionality to the migration table by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/155
* Adding workers nodes to the vjailbreak by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/161
* update package.json by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/172
* Update issue templates by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/158
* Update bug_report.yaml by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/175
* Migration data copy progress % and migration phases by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/167
* Nit: consistent referring to company VMware by @ericwb in https://github.com/platform9/vjailbreak/pull/164
* Update README.md by @markp93 in https://github.com/platform9/vjailbreak/pull/170
* release version v0.1.4 (release) by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/196
## New Contributors
* @markp93 made their first contribution in https://github.com/platform9/vjailbreak/pull/152
* @ericwb made their first contribution in https://github.com/platform9/vjailbreak/pull/164
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.1.3...v0.1.4
+29
View File
@@ -0,0 +1,29 @@
# v0.1.5
- **Tag:** `v0.1.5`
- **Published:** 2025-03-04T18:18:51Z
- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.1.5
## Release Notes
## What's Changed
* Accept vmware and openstack creds via secert by @spai-p9 in https://github.com/platform9/vjailbreak/pull/228
* Create and Reuse existing open stack and vmware creds with other mino… by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/237
* Support OS installed on LV by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/227
* Adding templates for github wiki by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/226
* resolving lint issues by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/239
* resolving lint issues by @patil-pratik-87 in https://github.com/platform9/vjailbreak/pull/240
* update image tag to v0.1.5 by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/242
* Base documentation update for vJailbreak by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/243
* Update checkout action to generate release notes by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/249
* Update checkout action to generate release notes by @sharma-tapas in https://github.com/platform9/vjailbreak/pull/250
* Ingress changes to call k8s apis by @spai-p9 in https://github.com/platform9/vjailbreak/pull/252
* Reformatted readme by @damian-pf9 in https://github.com/platform9/vjailbreak/pull/206
## New Contributors
* @damian-pf9 made their first contribution in https://github.com/platform9/vjailbreak/pull/206
* @bhavin192 made their first contribution
* @anmolsachan made their first contribution
**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.1.4...v0.1.5