diff --git a/docs/images/powervs-multiple-workspace.excalidraw b/docs/images/powervs-multiple-workspace.excalidraw new file mode 100644 index 000000000..9fd5043b1 --- /dev/null +++ b/docs/images/powervs-multiple-workspace.excalidraw @@ -0,0 +1,1737 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "6SlYzNL-vL4TBFXPaTb-Z", + "type": "rectangle", + "x": 243, + "y": -82, + "width": 282, + "height": 222, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1729333, + "version": 377, + "versionNonce": 1744921947, + "isDeleted": false, + "boundElements": [ + { + "id": "VyTf54auuOiQWfirPQeM0", + "type": "arrow" + } + ], + "updated": 1737443939687, + "link": null, + "locked": false, + "index": "a0" + }, + { + "type": "rectangle", + "version": 606, + "versionNonce": 2103122389, + "isDeleted": false, + "id": "cVnue7esrAyYkgqPivFQF", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 890, + "y": -91, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 320, + "height": 282, + "seed": 414677691, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "boundElements": [ + { + "id": "SlUcWleuNmeOldbGWGrIy", + "type": "arrow" + } + ], + "updated": 1737444284362, + "link": null, + "locked": false, + "index": "a1" + }, + { + "id": "1xv2JVFND5O7ygKnxsnAz", + "type": "rectangle", + "x": 640, + "y": -25, + "width": 159, + "height": 122, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1752730389, + "version": 275, + "versionNonce": 1687559605, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "zrXtHmugAjAWLAFmPHK3e" + }, + { + "id": "VyTf54auuOiQWfirPQeM0", + "type": "arrow" + }, + { + "id": "SlUcWleuNmeOldbGWGrIy", + "type": "arrow" + }, + { + "id": "xpDPKVJvzRf2VW2lQ10dX", + "type": "arrow" + }, + { + "id": "MvQAaLOqtGQyswQXFTdcB", + "type": "arrow" + } + ], + "updated": 1737444249994, + "link": null, + "locked": false, + "index": "a2" + }, + { + "id": "zrXtHmugAjAWLAFmPHK3e", + "type": "text", + "x": 661.5666656494141, + "y": 26.799999999999997, + "width": 115.86666870117188, + "height": 18.4, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 341479477, + "version": 195, + "versionNonce": 936550165, + "isDeleted": false, + "boundElements": [], + "updated": 1737444249994, + "link": null, + "locked": false, + "text": "Transit Gateway", + "fontSize": 16, + "fontFamily": 2, + "textAlign": "center", + "verticalAlign": "middle", + "baseline": 13, + "containerId": "1xv2JVFND5O7ygKnxsnAz", + "originalText": "Transit Gateway", + "lineHeight": 1.15, + "index": "a3", + "autoResize": true + }, + { + "id": "ZbIV6Rl63VygLp8Ivce2Y", + "type": "ellipse", + "x": 1332, + "y": -53, + "width": 130, + "height": 116, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1750300891, + "version": 277, + "versionNonce": 208596981, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "IVAUhHkPn_ob4L0-Tr7Jr" + }, + { + "id": "LN6dnWiXvSFdQtEnDCVBC", + "type": "arrow" + } + ], + "updated": 1737444327334, + "link": null, + "locked": false, + "index": "a4" + }, + { + "id": "IVAUhHkPn_ob4L0-Tr7Jr", + "type": "text", + "x": 1380.138059604344, + "y": -4.212193308819735, + "width": 33.79999923706055, + "height": 18.4, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1517811797, + "version": 237, + "versionNonce": 156707157, + "isDeleted": false, + "boundElements": [], + "updated": 1737444327334, + "link": null, + "locked": false, + "text": "User", + "fontSize": 16, + "fontFamily": 2, + "textAlign": "center", + "verticalAlign": "middle", + "baseline": 13, + "containerId": "ZbIV6Rl63VygLp8Ivce2Y", + "originalText": "User", + "lineHeight": 1.15, + "index": "a5", + "autoResize": true + }, + { + "id": "VyTf54auuOiQWfirPQeM0", + "type": "arrow", + "x": 527, + "y": 32.99667654719852, + "width": 111, + "height": 4.136478137609032, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1466848731, + "version": 876, + "versionNonce": 290409525, + "isDeleted": false, + "boundElements": [], + "updated": 1737444253945, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 111, + 4.136478137609032 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "6SlYzNL-vL4TBFXPaTb-Z", + "focus": -0.011460205155430924, + "gap": 2, + "fixedPoint": null + }, + "endBinding": { + "elementId": "1xv2JVFND5O7ygKnxsnAz", + "focus": -0.06519900243671395, + "gap": 2, + "fixedPoint": null + }, + "startArrowhead": "arrow", + "endArrowhead": "arrow", + "index": "a6" + }, + { + "type": "arrow", + "version": 1179, + "versionNonce": 943997339, + "isDeleted": false, + "id": "SlUcWleuNmeOldbGWGrIy", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 806.8718014556542, + "y": 35.09000458971924, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "width": 77.99999999999989, + "height": 2.6876938753137267, + "seed": 1714927099, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "boundElements": [], + "updated": 1737444287503, + "link": null, + "locked": false, + "startBinding": { + "elementId": "1xv2JVFND5O7ygKnxsnAz", + "focus": -0.06151015561222303, + "gap": 7.871801455654236, + "fixedPoint": null + }, + "endBinding": { + "elementId": "cVnue7esrAyYkgqPivFQF", + "focus": 0.04458558705031956, + "gap": 5.128198544345878, + "fixedPoint": null + }, + "lastCommittedPoint": null, + "startArrowhead": "arrow", + "endArrowhead": "arrow", + "points": [ + [ + 0, + 0 + ], + [ + 77.99999999999989, + 2.6876938753137267 + ] + ], + "index": "a7" + }, + { + "id": "KwINiTduKpGkn80uCF1ia", + "type": "rectangle", + "x": 929, + "y": -32, + "width": 221, + "height": 71, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 426561749, + "version": 324, + "versionNonce": 1270159579, + "isDeleted": false, + "boundElements": [ + { + "id": "2ix6hY5g5PAR7X8Sd3WXK", + "type": "arrow" + }, + { + "id": "LN6dnWiXvSFdQtEnDCVBC", + "type": "arrow" + } + ], + "updated": 1737444324640, + "link": null, + "locked": false, + "index": "a8" + }, + { + "id": "PcwxtKDxNdQWpSyZ8M9-b", + "type": "text", + "x": 972.6666717529297, + "y": -5.700000000000003, + "width": 134.3333282470703, + "height": 18.4, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1451587573, + "version": 283, + "versionNonce": 1976474587, + "isDeleted": false, + "boundElements": [], + "updated": 1737444297419, + "link": null, + "locked": false, + "text": "VPC Loadbalancer", + "fontSize": 16, + "fontFamily": 2, + "textAlign": "right", + "verticalAlign": "top", + "baseline": 13, + "containerId": null, + "originalText": "VPC Loadbalancer", + "lineHeight": 1.15, + "index": "a9", + "autoResize": true + }, + { + "id": "amkyXkOtaLHx8P8bOBq1F", + "type": "rectangle", + "x": 938, + "y": 108, + "width": 223, + "height": 28.4, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 192252245, + "version": 406, + "versionNonce": 1163600053, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "wdxWLycrazaTzd-UGfJp_" + }, + { + "id": "2ix6hY5g5PAR7X8Sd3WXK", + "type": "arrow" + } + ], + "updated": 1737444335693, + "link": null, + "locked": false, + "index": "aA" + }, + { + "id": "wdxWLycrazaTzd-UGfJp_", + "type": "text", + "x": 1010.0411458333333, + "y": 113, + "width": 78.91770833333334, + "height": 18.4, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1728576597, + "version": 351, + "versionNonce": 763568187, + "isDeleted": false, + "boundElements": [], + "updated": 1737444336378, + "link": null, + "locked": false, + "text": "vpc subnet", + "fontSize": 16, + "fontFamily": 2, + "textAlign": "center", + "verticalAlign": "middle", + "baseline": 13, + "containerId": "amkyXkOtaLHx8P8bOBq1F", + "originalText": "vpc subnet", + "lineHeight": 1.15, + "index": "aB", + "autoResize": true + }, + { + "id": "2ix6hY5g5PAR7X8Sd3WXK", + "type": "arrow", + "x": 1043.0123756241992, + "y": 41, + "width": 0.341106763204607, + "height": 62, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 324703669, + "version": 1638, + "versionNonce": 1116642869, + "isDeleted": false, + "boundElements": [], + "updated": 1737444335936, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -0.341106763204607, + 62 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "KwINiTduKpGkn80uCF1ia", + "focus": -0.0300326371894792, + "gap": 2, + "fixedPoint": null + }, + "endBinding": { + "elementId": "amkyXkOtaLHx8P8bOBq1F", + "focus": -0.06214806204354772, + "gap": 4.999999999999986, + "fixedPoint": null + }, + "startArrowhead": "arrow", + "endArrowhead": "arrow", + "index": "aC" + }, + { + "id": "LWATnWFLx4F2Z4e-ZcKtH", + "type": "text", + "x": 1226.3946854010862, + "y": -16.86824369858647, + "width": 89.98301147615624, + "height": 13.69468478300118, + "angle": 6.267247510884736, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1362150907, + "version": 643, + "versionNonce": 1867009819, + "isDeleted": false, + "boundElements": [], + "updated": 1737444329970, + "link": null, + "locked": false, + "text": "Access to cluster", + "fontSize": 11.908421550435813, + "fontFamily": 2, + "textAlign": "right", + "verticalAlign": "top", + "baseline": 13, + "containerId": null, + "originalText": "Access to cluster", + "lineHeight": 1.15, + "index": "aE", + "autoResize": true + }, + { + "id": "nCcL51EBwySVRLHyj53Zb", + "type": "text", + "x": 1021.0999984741211, + "y": -65, + "width": 32.900001525878906, + "height": 18.4, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1182982939, + "version": 142, + "versionNonce": 940907061, + "isDeleted": false, + "boundElements": [], + "updated": 1737444300105, + "link": null, + "locked": false, + "text": "VPC", + "fontSize": 16, + "fontFamily": 2, + "textAlign": "right", + "verticalAlign": "top", + "baseline": 13, + "containerId": null, + "originalText": "VPC", + "lineHeight": 1.15, + "index": "aF", + "autoResize": true + }, + { + "id": "NpqcfvMAJiVu2-AoeQkEf", + "type": "rectangle", + "x": 312, + "y": -23, + "width": 131, + "height": 47, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1873755099, + "version": 350, + "versionNonce": 269037179, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "tOTfGTkeECtD6dmzs8tXb" + }, + { + "id": "tf49teX_Sptbe_fQzQdlP", + "type": "arrow" + } + ], + "updated": 1737443931817, + "link": null, + "locked": false, + "index": "aG" + }, + { + "id": "tOTfGTkeECtD6dmzs8tXb", + "type": "text", + "x": 343.83880208333335, + "y": -17.9, + "width": 67.32239583333333, + "height": 36.8, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 481271259, + "version": 196, + "versionNonce": 860048053, + "isDeleted": false, + "boundElements": [], + "updated": 1737443931817, + "link": null, + "locked": false, + "text": "PowerVS\nMachine", + "fontSize": 16, + "fontFamily": 2, + "textAlign": "center", + "verticalAlign": "middle", + "baseline": 32, + "containerId": "NpqcfvMAJiVu2-AoeQkEf", + "originalText": "PowerVS\nMachine", + "lineHeight": 1.15, + "index": "aH", + "autoResize": true + }, + { + "id": "KW-Y3Y1WUGJaGRKhfhYX2", + "type": "rectangle", + "x": 284, + "y": 87, + "width": 203, + "height": 39, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1571208469, + "version": 209, + "versionNonce": 1113402037, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "wuJTFztLkN1xbx0jSOggd" + }, + { + "id": "tf49teX_Sptbe_fQzQdlP", + "type": "arrow" + } + ], + "updated": 1737443865788, + "link": null, + "locked": false, + "index": "aK" + }, + { + "id": "wuJTFztLkN1xbx0jSOggd", + "type": "text", + "x": 334.7869791666667, + "y": 97.3, + "width": 101.42604166666666, + "height": 18.4, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1957486357, + "version": 180, + "versionNonce": 1127222293, + "isDeleted": false, + "boundElements": [], + "updated": 1737443865788, + "link": null, + "locked": false, + "text": "DHCP Subnet", + "fontSize": 16, + "fontFamily": 2, + "textAlign": "center", + "verticalAlign": "middle", + "baseline": 13, + "containerId": "KW-Y3Y1WUGJaGRKhfhYX2", + "originalText": "DHCP Subnet", + "lineHeight": 1.15, + "index": "aL", + "autoResize": true + }, + { + "id": "tbKVzpzcSlR8I8C6P7L6C", + "type": "text", + "x": 303.99635416666666, + "y": -50, + "width": 156.00364583333334, + "height": 18.4, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 184622139, + "version": 73, + "versionNonce": 1788602293, + "isDeleted": false, + "boundElements": [], + "updated": 1737443954065, + "link": null, + "locked": false, + "text": "Power VS Workspace", + "fontSize": 16, + "fontFamily": 2, + "textAlign": "right", + "verticalAlign": "top", + "baseline": 13, + "containerId": null, + "originalText": "Power VS Workspace", + "lineHeight": 1.15, + "index": "aO", + "autoResize": true + }, + { + "id": "tf49teX_Sptbe_fQzQdlP", + "type": "arrow", + "x": 376.8718014556541, + "y": 28.685280457828206, + "width": 1.2865052192169628, + "height": 54.62943908434361, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1113214715, + "version": 470, + "versionNonce": 1917987861, + "isDeleted": false, + "boundElements": [], + "updated": 1737443931819, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.2865052192169628, + 54.62943908434361 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "NpqcfvMAJiVu2-AoeQkEf", + "focus": 0.0195592087403097, + "gap": 4.685280457828199, + "fixedPoint": null + }, + "endBinding": { + "elementId": "KW-Y3Y1WUGJaGRKhfhYX2", + "focus": -0.0666510369207668, + "gap": 3.685280457828185, + "fixedPoint": null + }, + "startArrowhead": "arrow", + "endArrowhead": "arrow", + "index": "aR" + }, + { + "id": "x-LxTKyhqhgwmdXxEEHaR", + "type": "text", + "x": 355, + "y": -76.25, + "width": 53.04533398946126, + "height": 21.6, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aT", + "roundness": null, + "seed": 2090670939, + "version": 99, + "versionNonce": 340818709, + "isDeleted": false, + "boundElements": null, + "updated": 1737443982221, + "link": null, + "locked": false, + "text": "Zone-2", + "fontSize": 16, + "fontFamily": 6, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Zone-2", + "autoResize": true, + "lineHeight": 1.35 + }, + { + "id": "_bTsbw9g8CiQ4-yFGZEwG", + "type": "rectangle", + "x": 245, + "y": 171.75, + "width": 282, + "height": 222, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1662825403, + "version": 475, + "versionNonce": 756487957, + "isDeleted": false, + "boundElements": [ + { + "id": "xpDPKVJvzRf2VW2lQ10dX", + "type": "arrow" + } + ], + "updated": 1737444159358, + "link": null, + "locked": false, + "index": "aV" + }, + { + "id": "Ri2jnNMzlt71jwVB369ms", + "type": "rectangle", + "x": 314, + "y": 230.75, + "width": 131, + "height": 47, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1449428059, + "version": 445, + "versionNonce": 1092341883, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "5MOha6awTpl1G1Ss1u8QE" + }, + { + "id": "9zL8nstZ1vTMZ7KZxKjBV", + "type": "arrow" + } + ], + "updated": 1737443970878, + "link": null, + "locked": false, + "index": "aW" + }, + { + "id": "5MOha6awTpl1G1Ss1u8QE", + "type": "text", + "x": 345.83880208333335, + "y": 235.85, + "width": 67.32239583333333, + "height": 36.8, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 2108244219, + "version": 291, + "versionNonce": 132253979, + "isDeleted": false, + "boundElements": [], + "updated": 1737443970878, + "link": null, + "locked": false, + "text": "PowerVS\nMachine", + "fontSize": 16, + "fontFamily": 2, + "textAlign": "center", + "verticalAlign": "middle", + "baseline": 32, + "containerId": "Ri2jnNMzlt71jwVB369ms", + "originalText": "PowerVS\nMachine", + "lineHeight": 1.15, + "index": "aX", + "autoResize": true + }, + { + "id": "8hBJyAxD398h_D5T0uo64", + "type": "rectangle", + "x": 286, + "y": 340.75, + "width": 203, + "height": 39, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 577595803, + "version": 304, + "versionNonce": 6340187, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "VpFg-x3pIbR6UcFkofRL1" + }, + { + "id": "9zL8nstZ1vTMZ7KZxKjBV", + "type": "arrow" + } + ], + "updated": 1737443970878, + "link": null, + "locked": false, + "index": "aY" + }, + { + "id": "VpFg-x3pIbR6UcFkofRL1", + "type": "text", + "x": 336.7869791666667, + "y": 351.05, + "width": 101.42604166666666, + "height": 18.4, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 971210299, + "version": 275, + "versionNonce": 1343109883, + "isDeleted": false, + "boundElements": [], + "updated": 1737443970878, + "link": null, + "locked": false, + "text": "DHCP Subnet", + "fontSize": 16, + "fontFamily": 2, + "textAlign": "center", + "verticalAlign": "middle", + "baseline": 13, + "containerId": "8hBJyAxD398h_D5T0uo64", + "originalText": "DHCP Subnet", + "lineHeight": 1.15, + "index": "aZ", + "autoResize": true + }, + { + "id": "-ThKFVwAmanMhGGCJzeJ7", + "type": "text", + "x": 305.9963541666666, + "y": 203.75, + "width": 156.00364583333334, + "height": 18.4, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1861091035, + "version": 168, + "versionNonce": 1590818875, + "isDeleted": false, + "boundElements": [], + "updated": 1737443970878, + "link": null, + "locked": false, + "text": "Power VS Workspace", + "fontSize": 16, + "fontFamily": 2, + "textAlign": "right", + "verticalAlign": "top", + "baseline": 13, + "containerId": null, + "originalText": "Power VS Workspace", + "lineHeight": 1.15, + "index": "aa", + "autoResize": true + }, + { + "id": "9zL8nstZ1vTMZ7KZxKjBV", + "type": "arrow", + "x": 378.8718014556541, + "y": 282.4352804578282, + "width": 1.2865052192169628, + "height": 54.62943908434361, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1813998459, + "version": 997, + "versionNonce": 1019279349, + "isDeleted": false, + "boundElements": [], + "updated": 1737443971284, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.2865052192169628, + 54.62943908434361 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "Ri2jnNMzlt71jwVB369ms", + "focus": 0.01955920874030969, + "gap": 4.685280457828185, + "fixedPoint": null + }, + "endBinding": { + "elementId": "8hBJyAxD398h_D5T0uo64", + "focus": -0.0666510369207668, + "gap": 3.685280457828185, + "fixedPoint": null + }, + "startArrowhead": "arrow", + "endArrowhead": "arrow", + "index": "ab" + }, + { + "id": "LrFP0Qgj9kBI5pKhekmvq", + "type": "text", + "x": 357, + "y": 177.5, + "width": 52.78933391571045, + "height": 21.6, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ac", + "roundness": null, + "seed": 1706705947, + "version": 194, + "versionNonce": 1444572565, + "isDeleted": false, + "boundElements": [], + "updated": 1737443979099, + "link": null, + "locked": false, + "text": "Zone-3", + "fontSize": 16, + "fontFamily": 6, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Zone-3", + "autoResize": true, + "lineHeight": 1.35 + }, + { + "id": "M37UdBt_Z3VURvEuu8bF3", + "type": "rectangle", + "x": 239, + "y": -337.25, + "width": 282, + "height": 222, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1215527099, + "version": 479, + "versionNonce": 1656882453, + "isDeleted": false, + "boundElements": [ + { + "id": "MvQAaLOqtGQyswQXFTdcB", + "type": "arrow" + } + ], + "updated": 1737444187991, + "link": null, + "locked": false, + "index": "ae" + }, + { + "id": "veY7eHW8RA5Oub4kT8vxT", + "type": "rectangle", + "x": 308, + "y": -278.25, + "width": 131, + "height": 47, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1318758747, + "version": 449, + "versionNonce": 13733659, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "y3BLgb3d8oHFcDRdRCYCG" + }, + { + "id": "_E9MhJcIz6Izdp_7BP3YU", + "type": "arrow" + } + ], + "updated": 1737444013314, + "link": null, + "locked": false, + "index": "af" + }, + { + "id": "y3BLgb3d8oHFcDRdRCYCG", + "type": "text", + "x": 339.83880208333335, + "y": -273.15, + "width": 67.32239583333333, + "height": 36.8, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 903005691, + "version": 296, + "versionNonce": 1403450299, + "isDeleted": false, + "boundElements": [], + "updated": 1737444013314, + "link": null, + "locked": false, + "text": "PowerVS\nMachine", + "fontSize": 16, + "fontFamily": 2, + "textAlign": "center", + "verticalAlign": "middle", + "baseline": 32, + "containerId": "veY7eHW8RA5Oub4kT8vxT", + "originalText": "PowerVS\nMachine", + "lineHeight": 1.15, + "index": "ag", + "autoResize": true + }, + { + "id": "ZclHMLXDgHD7QgcqUB3bm", + "type": "rectangle", + "x": 280, + "y": -168.25, + "width": 203, + "height": 39, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 85872283, + "version": 308, + "versionNonce": 10715387, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "HUmVrOY_z2_b0qZoRW5y1" + }, + { + "id": "_E9MhJcIz6Izdp_7BP3YU", + "type": "arrow" + } + ], + "updated": 1737444013314, + "link": null, + "locked": false, + "index": "ah" + }, + { + "id": "HUmVrOY_z2_b0qZoRW5y1", + "type": "text", + "x": 330.7869791666667, + "y": -157.95, + "width": 101.42604166666666, + "height": 18.4, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1060094779, + "version": 279, + "versionNonce": 1277143451, + "isDeleted": false, + "boundElements": [], + "updated": 1737444013314, + "link": null, + "locked": false, + "text": "DHCP Subnet", + "fontSize": 16, + "fontFamily": 2, + "textAlign": "center", + "verticalAlign": "middle", + "baseline": 13, + "containerId": "ZclHMLXDgHD7QgcqUB3bm", + "originalText": "DHCP Subnet", + "lineHeight": 1.15, + "index": "ai", + "autoResize": true + }, + { + "id": "5lHyQcw2a9R-3V8hkCSS8", + "type": "text", + "x": 299.9963541666666, + "y": -305.25, + "width": 156.00364583333334, + "height": 18.4, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1818862555, + "version": 172, + "versionNonce": 17841883, + "isDeleted": false, + "boundElements": [], + "updated": 1737444013314, + "link": null, + "locked": false, + "text": "Power VS Workspace", + "fontSize": 16, + "fontFamily": 2, + "textAlign": "right", + "verticalAlign": "top", + "baseline": 13, + "containerId": null, + "originalText": "Power VS Workspace", + "lineHeight": 1.15, + "index": "aj", + "autoResize": true + }, + { + "id": "_E9MhJcIz6Izdp_7BP3YU", + "type": "arrow", + "x": 372.8718014556541, + "y": -226.5647195421718, + "width": 1.2865052192169628, + "height": 54.62943908434361, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1692299387, + "version": 945, + "versionNonce": 1991674709, + "isDeleted": false, + "boundElements": [], + "updated": 1737444013923, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.2865052192169628, + 54.62943908434361 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "veY7eHW8RA5Oub4kT8vxT", + "focus": 0.01955920874030971, + "gap": 4.685280457828213, + "fixedPoint": null + }, + "endBinding": { + "elementId": "ZclHMLXDgHD7QgcqUB3bm", + "focus": -0.0666510369207668, + "gap": 3.685280457828185, + "fixedPoint": null + }, + "startArrowhead": "arrow", + "endArrowhead": "arrow", + "index": "ak" + }, + { + "id": "OjN5aXi7jhwF4ybTQQRFc", + "type": "text", + "x": 351, + "y": -331.5, + "width": 52.77333348592122, + "height": 21.6, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "al", + "roundness": null, + "seed": 1515235611, + "version": 200, + "versionNonce": 1242544341, + "isDeleted": false, + "boundElements": [], + "updated": 1737444017207, + "link": null, + "locked": false, + "text": "Zone-1", + "fontSize": 16, + "fontFamily": 6, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "Zone-1", + "autoResize": true, + "lineHeight": 1.35 + }, + { + "id": "xpDPKVJvzRf2VW2lQ10dX", + "type": "arrow", + "x": 637, + "y": 38.20410750064369, + "width": 106, + "height": 252.5458924993561, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "an", + "roundness": null, + "seed": 774132411, + "version": 634, + "versionNonce": 611151605, + "isDeleted": false, + "boundElements": null, + "updated": 1737444258950, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -35, + 165.5458924993563 + ], + [ + -106, + 252.5458924993561 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "1xv2JVFND5O7ygKnxsnAz", + "focus": 0.8878453534313561, + "gap": 3, + "fixedPoint": null + }, + "endBinding": { + "elementId": "_bTsbw9g8CiQ4-yFGZEwG", + "focus": 0.6543081199126449, + "gap": 4, + "fixedPoint": null + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "MvQAaLOqtGQyswQXFTdcB", + "type": "arrow", + "x": 637, + "y": 34.3328811482655, + "width": 112.99999999999994, + "height": 259.08288114826536, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ao", + "roundness": null, + "seed": 1626114901, + "version": 1183, + "versionNonce": 1724129141, + "isDeleted": false, + "boundElements": [], + "updated": 1737444265328, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -39.84313725490198, + -201.06493508787392 + ], + [ + -112.99999999999994, + -259.08288114826536 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "1xv2JVFND5O7ygKnxsnAz", + "focus": -0.8971680599552035, + "gap": 3, + "fixedPoint": null + }, + "endBinding": { + "elementId": "M37UdBt_Z3VURvEuu8bF3", + "focus": -0.5057897180449036, + "gap": 3, + "fixedPoint": null + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "LN6dnWiXvSFdQtEnDCVBC", + "type": "arrow", + "x": 1327.7540621710928, + "y": 7.35742402123112, + "width": 176.75406217109276, + "height": 1.60742402123112, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ap", + "roundness": null, + "seed": 371650939, + "version": 102, + "versionNonce": 1981978645, + "isDeleted": false, + "boundElements": null, + "updated": 1737444327345, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -176.75406217109276, + -1.60742402123112 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "ZbIV6Rl63VygLp8Ivce2Y", + "focus": -0.05150000515570373, + "gap": 4.295573294392057, + "fixedPoint": null + }, + "endBinding": { + "elementId": "KwINiTduKpGkn80uCF1ia", + "focus": 0.16808617234468937, + "gap": 1, + "fixedPoint": null + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/docs/images/powervs-multiple-workspace.png b/docs/images/powervs-multiple-workspace.png new file mode 100644 index 000000000..3dc94084d Binary files /dev/null and b/docs/images/powervs-multiple-workspace.png differ diff --git a/docs/proposal/20250107-multiple-powervs-workspace-support.md b/docs/proposal/20250107-multiple-powervs-workspace-support.md new file mode 100644 index 000000000..ea30e8d22 --- /dev/null +++ b/docs/proposal/20250107-multiple-powervs-workspace-support.md @@ -0,0 +1,78 @@ +# Multiple PowerVS workspace support + +## Motivation +Currently, When a CAPIBM PowerVS cluster is created the cluster nodes are created in a single PowerVS workspace (service instance). +Though its cost effective and easier to maintain, having support for multiple workspace will increase the availability, improve the performance and helps in +isolating the faults. + +## Goal +Support for multiple workspaces while creating PowerVS cluster + +## Proposal + +### PowerVS cluster with multiple workspace + +![powervs-cluster-multiple-workspace.png](../images/powervs-multiple-workspace.png) + +PowerVS cluster nodes are spread across multiple workspaces across different zones +which are connected to IBM Cloud VPC with the help of IBM Cloud TransitGateway. + +### Proposed API changes + +```shell +// IBMPowerVSClusterSpec defines the desired state of IBMPowerVSCluster. +type IBMPowerVSClusterSpec struct { +. +. +Workspaces []PowerVSWorkspace +. +. +} + +// IBMPowerVSClusterStatus defines the observed state of IBMPowerVSCluster. +type IBMPowerVSClusterStatus struct { +. +. +// failureDomains specifies a list fo available availability zones that can be used. +FailureDomains clusterv1.FailureDomains `json:"failureDomains,omitempty"` +. +. +} + +// IBMPowerVSClusterSpec defines the desired state of IBMPowerVSCluster. +type IBMPowerVSClusterSpec struct { +. +. +Workspaces []PowerVSWorkspace +. +. +} + +//PowerVSWorkspace represent details of PowerVS Workspace(Service Instance) +type PowerVSWorkspace struct { + // name of resource. + // +kubebuilder:validation:MinLength=1 + // +kubebuilder:validation:MaxLength:=63 + // +kubebuilder:validation:Pattern=`^([a-zA-Z]|[a-zA-Z][-_a-zA-Z0-9]*[a-zA-Z0-9])$` + // +optional + Name *string `json:"name,omitempty"` + // id of resource. + // +optional + ID *string `json:"id,omitempty"` + // zone is the name of Power VS zone of the workspace + // possible values can be found here https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-creating-power-virtual-server. + // the zone should have PER capabilities, or else system will give error. + // +optional + Zone *string `json:"zone,omitempty"` +} +``` + +### Changes required in other projects +* cloud-provider-powervs + +It only supports single PowerVS workspace, zone and region. This configuration is passed via [cloud-config](https://github.com/openshift/cloud-provider-powervs/blob/main/ibm/ibm.go#L121-L127). +It has to be updated to support multiple workspaces. + +### Limitations + +1. IBM Cloud TransitGateway supports only 5 Power Virtual Server connections \ No newline at end of file