From 1fe88517ca0d6c7ed78b5ceda1db2b4f87f2c6b1 Mon Sep 17 00:00:00 2001 From: OmkarDeshpande7 Date: Tue, 15 Sep 2026 22:49:26 +0530 Subject: [PATCH] Add release v0.4.2 --- deploy/00crds.yaml | 268 +++++++++++++++++++++++++- deploy/05controller-deployment.yaml | 2 +- deploy/06vpwned-deployment.yaml | 2 +- deploy/07ui-deployment.yaml | 12 +- deploy/installer.yaml | 283 +++++++++++++++++++++++++++- releases/v0.4.2.md | 47 +++++ 6 files changed, 601 insertions(+), 13 deletions(-) create mode 100644 releases/v0.4.2.md diff --git a/deploy/00crds.yaml b/deploy/00crds.yaml index ab5b7c1..e1b460d 100644 --- a/deploy/00crds.yaml +++ b/deploy/00crds.yaml @@ -1691,6 +1691,10 @@ spec: type: string type: object x-kubernetes-map-type: atomic + vjbinstanceid: + description: VJBInstanceID is the ID of current vjailbreak instance + (needed if metadata service is not available) + type: string type: object status: description: OpenstackCredsStatus defines the observed state of OpenstackCreds @@ -1704,7 +1708,19 @@ spec: type: object networks: items: - type: string + description: PCDNetworkInfo is struct to hold network information + for PCD + properties: + name: + type: string + tags: + items: + type: string + type: array + required: + - name + - tags + type: object type: array securityGroups: items: @@ -3104,7 +3120,9 @@ spec: machine. properties: ipAddress: - type: string + items: + type: string + type: array mac: type: string network: @@ -4413,4 +4431,250 @@ spec: number: 80 path: /dev-api/sdk/(.*) pathType: ImplementationSpecific + +--- +apiVersion: v1 +kind: Service +metadata: + name: vjailbreak-ui-service + namespace: migration-system +spec: + selector: + app: vjailbreak-ui + type: ClusterIP + ports: + - protocol: TCP + port: 80 + targetPort: 80 +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: vjailbreak-ui-ingress + namespace: migration-system + annotations: + nginx.ingress.kubernetes.io/backend-protocol: "HTTP" + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + nginx.ingress.kubernetes.io/ssl-redirect: "true" +spec: + ingressClassName: nginx + rules: + - http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: vjailbreak-ui-service + port: + number: 80 +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: vjailbreak-api-ingress + namespace: default + annotations: + nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" + nginx.ingress.kubernetes.io/rewrite-target: /$1 + nginx.ingress.kubernetes.io/use-regex: "true" + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + nginx.ingress.kubernetes.io/ssl-redirect: "true" +spec: + ingressClassName: nginx + rules: + - http: + paths: + - path: /(apis.*) + pathType: ImplementationSpecific + backend: + service: + name: kubernetes + port: + number: 443 + - path: /(api.*) + pathType: ImplementationSpecific + backend: + service: + name: kubernetes + port: + number: 443 +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: grafana-api-ingress + namespace: monitoring + annotations: + nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" +spec: + ingressClassName: nginx + rules: + - http: + paths: + - path: /grafana + pathType: Prefix + backend: + service: + name: grafana + port: + number: 3000 +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: ui-manager-sa + namespace: migration-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: ui-manager-role +rules: +- apiGroups: + - "" + resources: + - secrets + verbs: + - create + - get +- apiGroups: + - "" + resources: + - configmaps + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - patch +- apiGroups: + - "" + resources: + - configmaps/status + - pods/status + verbs: + - get +- apiGroups: + - "" + resources: + - events + verbs: + - get + - list + - watch +- apiGroups: + - "" + resources: + - pods/log + verbs: + - get + - list +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - arraycreds + - bmconfigs + - esxisshcreds + - clustermigrations + - esximigrations + - migrationplans + - migrations + - migrationtemplates + - networkmappings + - openstackcreds + - pcdclusters + - pcdhosts + - rdmdisks + - rollingmigrationplans + - storagemappings + - vjailbreaknodes + - vmwareclusters + - vmwarecreds + - vmwarehosts + - vmwaremachines + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - arraycreds/finalizers + - bmconfigs/finalizers + - esxisshcreds/finalizers + - clustermigrations/finalizers + - esximigrations/finalizers + - migrationplans/finalizers + - migrationtemplates/finalizers + - networkmappings/finalizers + - openstackcreds/finalizers + - pcdclusters/finalizers + - pcdhosts/finalizers + - rdmdisks/finalizers + - rollingmigrationplans/finalizers + - storagemappings/finalizers + - vjailbreaknodes/finalizers + - vmwarecreds/finalizers + verbs: + - update +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - arraycreds/status + - bmconfigs/status + - esxisshcreds/status + - clustermigrations/status + - esximigrations/status + - migrationplans/status + - migrations/status + - migrationtemplates/status + - networkmappings/status + - openstackcreds/status + - pcdclusters/status + - pcdhosts/status + - rdmdisks/status + - rollingmigrationplans/status + - storagemappings/status + - vjailbreaknodes/status + - vmwarecreds/status + - vmwaremachines/status + verbs: + - get + - patch + - update +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: ui-manager-rolebinding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: ui-manager-role +subjects: +- kind: ServiceAccount + name: ui-manager-sa + namespace: migration-system --- \ No newline at end of file diff --git a/deploy/05controller-deployment.yaml b/deploy/05controller-deployment.yaml index 2d3a9fb..b939f50 100644 --- a/deploy/05controller-deployment.yaml +++ b/deploy/05controller-deployment.yaml @@ -41,7 +41,7 @@ spec: envFrom: - configMapRef: name: pf9-env - image: quay.io/platform9/vjailbreak-controller:v0.4.1 + image: quay.io/platform9/vjailbreak-controller:v0.4.2 imagePullPolicy: IfNotPresent lifecycle: preStop: diff --git a/deploy/06vpwned-deployment.yaml b/deploy/06vpwned-deployment.yaml index 215ad15..8225c3c 100644 --- a/deploy/06vpwned-deployment.yaml +++ b/deploy/06vpwned-deployment.yaml @@ -27,7 +27,7 @@ spec: - envFrom: - configMapRef: name: pf9-env - image: quay.io/platform9/vjailbreak-vpwned:v0.4.1 + image: quay.io/platform9/vjailbreak-vpwned:v0.4.2 imagePullPolicy: IfNotPresent name: vpwned ports: diff --git a/deploy/07ui-deployment.yaml b/deploy/07ui-deployment.yaml index 78e3da5..58e0a74 100644 --- a/deploy/07ui-deployment.yaml +++ b/deploy/07ui-deployment.yaml @@ -1,3 +1,4 @@ + apiVersion: apps/v1 kind: Deployment metadata: @@ -13,10 +14,17 @@ spec: labels: app: vjailbreak-ui spec: - serviceAccountName: migration-controller-manager + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: node-role.kubernetes.io/control-plane + operator: Exists + serviceAccountName: ui-manager-sa containers: - name: vjailbreak-ui-container - image: quay.io/platform9/vjailbreak-ui:v0.4.1 + image: quay.io/platform9/vjailbreak-ui:v0.4.2 imagePullPolicy: IfNotPresent ports: - containerPort: 80 diff --git a/deploy/installer.yaml b/deploy/installer.yaml index bc7630e..693ff78 100644 --- a/deploy/installer.yaml +++ b/deploy/installer.yaml @@ -1691,6 +1691,10 @@ spec: type: string type: object x-kubernetes-map-type: atomic + vjbinstanceid: + description: VJBInstanceID is the ID of current vjailbreak instance + (needed if metadata service is not available) + type: string type: object status: description: OpenstackCredsStatus defines the observed state of OpenstackCreds @@ -1704,7 +1708,19 @@ spec: type: object networks: items: - type: string + description: PCDNetworkInfo is struct to hold network information + for PCD + properties: + name: + type: string + tags: + items: + type: string + type: array + required: + - name + - tags + type: object type: array securityGroups: items: @@ -3104,7 +3120,9 @@ spec: machine. properties: ipAddress: - type: string + items: + type: string + type: array mac: type: string network: @@ -4428,7 +4446,7 @@ spec: envFrom: - configMapRef: name: pf9-env - image: quay.io/platform9/vjailbreak-controller:v0.4.1 + image: quay.io/platform9/vjailbreak-controller:v0.4.2 imagePullPolicy: IfNotPresent lifecycle: preStop: @@ -4511,7 +4529,7 @@ spec: - envFrom: - configMapRef: name: pf9-env - image: quay.io/platform9/vjailbreak-vpwned:v0.4.1 + image: quay.io/platform9/vjailbreak-vpwned:v0.4.2 imagePullPolicy: IfNotPresent name: vpwned ports: @@ -4586,10 +4604,17 @@ spec: labels: app: vjailbreak-ui spec: - serviceAccountName: migration-controller-manager + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: node-role.kubernetes.io/control-plane + operator: Exists + serviceAccountName: ui-manager-sa containers: - name: vjailbreak-ui-container - image: quay.io/platform9/vjailbreak-ui:v0.4.1 + image: quay.io/platform9/vjailbreak-ui:v0.4.2 imagePullPolicy: IfNotPresent ports: - containerPort: 80 @@ -4608,4 +4633,248 @@ spec: hostPath: path: /var/log/pf9 type: DirectoryOrCreate ---- \ No newline at end of file +--- +apiVersion: v1 +kind: Service +metadata: + name: vjailbreak-ui-service + namespace: migration-system +spec: + selector: + app: vjailbreak-ui + type: ClusterIP + ports: + - protocol: TCP + port: 80 + targetPort: 80 +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: vjailbreak-ui-ingress + namespace: migration-system + annotations: + nginx.ingress.kubernetes.io/backend-protocol: "HTTP" + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + nginx.ingress.kubernetes.io/ssl-redirect: "true" +spec: + ingressClassName: nginx + rules: + - http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: vjailbreak-ui-service + port: + number: 80 +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: vjailbreak-api-ingress + namespace: default + annotations: + nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" + nginx.ingress.kubernetes.io/rewrite-target: /$1 + nginx.ingress.kubernetes.io/use-regex: "true" + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + nginx.ingress.kubernetes.io/ssl-redirect: "true" +spec: + ingressClassName: nginx + rules: + - http: + paths: + - path: /(apis.*) + pathType: ImplementationSpecific + backend: + service: + name: kubernetes + port: + number: 443 + - path: /(api.*) + pathType: ImplementationSpecific + backend: + service: + name: kubernetes + port: + number: 443 +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: grafana-api-ingress + namespace: monitoring + annotations: + nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" +spec: + ingressClassName: nginx + rules: + - http: + paths: + - path: /grafana + pathType: Prefix + backend: + service: + name: grafana + port: + number: 3000 +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: ui-manager-sa + namespace: migration-system +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: ui-manager-role +rules: +- apiGroups: + - "" + resources: + - secrets + verbs: + - create + - get +- apiGroups: + - "" + resources: + - configmaps + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - list + - watch + - patch +- apiGroups: + - "" + resources: + - configmaps/status + - pods/status + verbs: + - get +- apiGroups: + - "" + resources: + - events + verbs: + - get + - list + - watch +- apiGroups: + - "" + resources: + - pods/log + verbs: + - get + - list +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - arraycreds + - bmconfigs + - esxisshcreds + - clustermigrations + - esximigrations + - migrationplans + - migrations + - migrationtemplates + - networkmappings + - openstackcreds + - pcdclusters + - pcdhosts + - rdmdisks + - rollingmigrationplans + - storagemappings + - vjailbreaknodes + - vmwareclusters + - vmwarecreds + - vmwarehosts + - vmwaremachines + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - arraycreds/finalizers + - bmconfigs/finalizers + - esxisshcreds/finalizers + - clustermigrations/finalizers + - esximigrations/finalizers + - migrationplans/finalizers + - migrationtemplates/finalizers + - networkmappings/finalizers + - openstackcreds/finalizers + - pcdclusters/finalizers + - pcdhosts/finalizers + - rdmdisks/finalizers + - rollingmigrationplans/finalizers + - storagemappings/finalizers + - vjailbreaknodes/finalizers + - vmwarecreds/finalizers + verbs: + - update +- apiGroups: + - vjailbreak.k8s.pf9.io + resources: + - arraycreds/status + - bmconfigs/status + - esxisshcreds/status + - clustermigrations/status + - esximigrations/status + - migrationplans/status + - migrations/status + - migrationtemplates/status + - networkmappings/status + - openstackcreds/status + - pcdclusters/status + - pcdhosts/status + - rdmdisks/status + - rollingmigrationplans/status + - storagemappings/status + - vjailbreaknodes/status + - vmwarecreds/status + - vmwaremachines/status + verbs: + - get + - patch + - update +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: migration + name: ui-manager-rolebinding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: ui-manager-role +subjects: +- kind: ServiceAccount + name: ui-manager-sa + namespace: migration-system diff --git a/releases/v0.4.2.md b/releases/v0.4.2.md new file mode 100644 index 0000000..35bca56 --- /dev/null +++ b/releases/v0.4.2.md @@ -0,0 +1,47 @@ +# v0.4.2 + +- **Tag:** `v0.4.2` +- **Published:** 2026-03-18T18:50:07Z +- **Source release:** https://github.com/platform9/vjailbreak/releases/tag/v0.4.2 + +## Release Notes + +## What's Changed +* UI access control by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1629 +* refactor for a cleaner code: consolidate go modules and constants by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1560 +* Simplify S3 QCOW2 upload paths by removing date folders by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1631 +* fix - Static network interface name is not getting preserved for Rocky9 by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1634 +* Refactor: move commonly used functions to common package by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1633 +* fix: Wait for network IP and default route before installing K3s master and worker by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1644 +* metadata as input by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1639 +* Implement independent post-migration script execution for mixed OS plans by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1638 +* #1607 : Cancel button is not working during vddk upload by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1635 +* #1575, #1577 : Start Migration is not getting disabled by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1637 +* Added checks for failure in user management vjbctl by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1659 +* Add exponential backoff auto-reconnect for migration pod log streams by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1657 +* Fix UI RBAC permissions for pod operations by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1661 +* fix: Scale up agents on L2 network by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1654 +* Detect if target is L2 network if so ignore ip by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1666 +* Added failure checks in vjbctl by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1672 +* create seperate CI to create base image, use this base image to generate qcow2 by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1677 +* Revert "create seperate CI to create base image, use this base image to generate qcow2" by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1684 +* #1543 : VM selection filter is not working properly by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1682 +* fix: Version lock ingress version by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1686 +* fix - Migrations failing with - failed to reserve ports for VM by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1688 +* #1694 : Extract only first IPv4 address when displaying and editing VM IP addresses by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1695 +* Fix: VJailbreakNode CR status was stuck at "CreatingVM" for L2 networks even after the VM joined the K8s cluster. by @spai-p9 in https://github.com/platform9/vjailbreak/pull/1693 +* Ability to reuse ports in case of l2 network by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1700 +* #1692 : Support multiple IP addresses per network interface by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1697 +* API change: multiple ips for single nic in vmwaremachines by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1696 +* Disabled Fallbacktodhcp and Securitygrp for L2 by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1705 +* #1694 : Preserve IP for a powered on VM is getting wrong IPs for no IP interfaces by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1704 +* fix agents migration for L3 by @OmkarDeshpande7 in https://github.com/platform9/vjailbreak/pull/1706 +* #1710 : Remove no ip validation in assign IP box for no ip interfaces by @AbhijeetThakur in https://github.com/platform9/vjailbreak/pull/1712 +* Mount persist debug log by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1711 +* Disabled assigned ip box for multiple ips by @sarika-pf9 in https://github.com/platform9/vjailbreak/pull/1713 +* Defining refresh ui function for vjbctl by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1715 +* chore: Pre-release CRD generation for v0.4.2 by @github-actions[bot] in https://github.com/platform9/vjailbreak/pull/1716 +* Added a check to preserve ip by @meghansh-pf9 in https://github.com/platform9/vjailbreak/pull/1718 + + +**Full Changelog**: https://github.com/platform9/vjailbreak/compare/v0.4.1...v0.4.2