diff --git a/.docs/images/powervs-poc-arch.png b/.docs/images/powervs-poc-arch.png index e4702ac5..0a27e924 100644 Binary files a/.docs/images/powervs-poc-arch.png and b/.docs/images/powervs-poc-arch.png differ diff --git a/.docs/powervs-poc.md b/.docs/powervs-poc.md index 7967a501..6fc7de43 100644 --- a/.docs/powervs-poc.md +++ b/.docs/powervs-poc.md @@ -47,7 +47,15 @@ To set the public SSH key value for the VPC VSI, click on the red `VPC Deploymen To set the public SSH key value for the Power VS VSIs, click on the red `Power VS` item on the left navigation bar, then click on the key icon. Click on the key icon, expand the SSH Keys section, fill in the public key value, and click the Save button. ### On-premises network CIDRS and Peer Address -To set network CIDRs that are being used by the on-prem environment, click on `VPC Deployments` on the left navigation bar. Scroll down and click on the gateway icon in the `vpn-zone-1` network. Expand the connection section and update the network CIDR in the `Additional Address Prefixes` and `Peer CIDRs` fields. Set VPN connection Peer Address, the address for the on-prem connection, in the `Peer Address` field. Click on both blue Save buttons when finished. +To set network CIDRs that are being used by the on-prem environment the VPN Gateway and a routing table must be updated. + +To update the VPN Gateway, click on `VPC Deployments` on the left navigation bar. Scroll down and click on the gateway icon in the `vpn-zone-1` network. Expand the connection section and update the network CIDR in the `Additional Address Prefixes` and `Peer CIDRs` fields. Set VPN connection Peer Address, the address for the on-prem connection, in the `Peer Address` field. Click on both blue Save buttons when finished. + +To update the VPN Gateway, click on `VPC Deployments` on the left navigation bar then click on the `poweringress` routing table icon. Change the on-prem CIDR in the `Destination` field and click the blue Save button. + +#### On-premises network CIDR outside of 10.0.0.0/8 +If you are using an on-premises network CIDR outside of the `10.0.0.0/8` range in addition to the changes above you will need to add inbound and outbound rules to the `transit-vsi` and `transit-vpe` security groups. These security groups can be found by clicking on `VPC Deployments` on the left navigation bar and then clicking on each security group icon. + ### Activity Tracker By default the template will create an IBM Cloud Activity Tracker in the us-south region. Since only one activity tracker is allowed per region in an account the project will fail to deploy if the account already has an Activity Tracker instance in the region. If the target account already has an Activity Tracker instance the project must be modified to not create an instance. Navigate to the the Activity Tracker by choosing `Cloud Services` from the left navigation bar and click on the `Activity Tracker` icon. Set `Create Activity Tracker Instance` to `False` and click the Save button. @@ -83,6 +91,8 @@ To change the CIDR of a Power VS network, click on the `Power VS`icon in the lef The CIDR must also be changed in the VPN Gateway. Click on `VPC Deployments` on the left navigation bar. Scroll down and click on the gateway icon in the `vpn-zone-1` network. Expand the connection section and update the network CIDR in the `Local CIDRs` field. +The CIDR must be changed on both the `transit-vpe` and `transit-vsi` security groups. To modify a security group, click on `VPC Deployments` on the left navigation bar and click on the icon for the security group you want to modify. To modify the security group rules, click the `Manage Rules` button above the table. Expand the rule you want to modify, modify the rule, and click the Save button. Modify the CIDR in the `powervs-inbound` rule in both security groups. + ### Power Virtual Server VSIs / LPARs The template comes with an AIX and an IBM i VSI. These VSIs are using stock images provided by Power Virtual Server for their boot disk (rootvg or *SYSBAS). The VSIs also have additional storage volumes which will be blank and unformatted when the VSI is provisioned. Specifications such as CPU, memory, storage, image version, and more can be customized in CRAIG before deployment. The VSIs can also be remove and additional VSIs can be added. @@ -125,6 +135,24 @@ IBM Cloud Schematics provides a cost estimation for the project resources after ## Post-deployment configuration +### Update Power VS route to VPN Gateway +After deploying the PoC resources the routing table for traffic from Power VS to the VPN Gateway for on-premises must be updated. + +First, find the VPN Gateway for VPC's active private address. +> * You can find this address from [IBM cloud console](https://cloud.ibm.com/). +> * From left menu click on `VPC Infrastructures > VPNs`. +> * Select the region where VPN has been deployed and all VPNs in that region will be listed. +> * Select the VPN that was deployed. +> * Copy or write down the Private IP of the active gateway member + +Update the routing table: +> * From left menu click on `VPC Infrastructures > Routing Tables`. +> * Select the VPC that was deployed. +> * Select the routing table with `poweringress` in its name. +> Modify the route by clicking the 3 vertical dot icon and choosing Edit. +> Set the Next hop IP address to the private IP address of the active VPN gateway member + +### Virtual server configuration After deploying the PoC resources additional configuration in the VSI operating systems is usually required. IBM i VSIs deployed using the stock images have [required post-deployment configuration](https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-configuring-ibmi). Any additional non-boot disk (rootvg, *SYSBAS, etc) volumes will be blank and require formatting, volume group restores, mount point configuration, ASP configuration, etc depending on the operating system and intended use case. diff --git a/.tekton/ci/ci-pipeline.yml b/.tekton/ci/ci-pipeline.yml index e5ab718c..dad8029f 100644 --- a/.tekton/ci/ci-pipeline.yml +++ b/.tekton/ci/ci-pipeline.yml @@ -224,71 +224,71 @@ spec: workspaces: - name: output workspace: pipeline-ws - - name: code-risk-analyzer - runAfter: - - git-clone - taskRef: - name: cra-v2-cra - params: - - name: pipeline-debug - value: $(params.pipeline-debug) - - name: ibmcloud-region - value: $(params.ibmcloud-region) - - name: registry-region - value: $(params.registry-region) - - name: env-props - value: $(params.env-props) - - name: fileignore - value: $(params.fileignore) - - name: ibmcloud-trace - value: $(params.ibmcloud-trace) - - name: output - value: $(params.output) - - name: path - value: $(params.path) - - name: strict - value: $(params.strict) - - name: toolchainid - value: $(params.toolchainid) - - name: verbose - value: $(params.verbose) - - name: asset-type - value: $(params.asset-type) - - name: bom-report - value: $(params.bom-report) - - name: docker-build-flags - value: $(params.docker-build-flags) - - name: docker-build-context - value: $(params.docker-build-context) - - name: dockerfile-pattern - value: $(params.dockerfile-pattern) - - name: docker-registry-url - value: $(params.docker-registry-url) - - name: docker-registry-username - value: $(params.docker-registry-username) - - name: gradle-exclude-configs - value: $(params.gradle-exclude-configs) - - name: maven-exclude-scopes - value: $(params.maven-exclude-scopes) - - name: nodejs-create-package-lock - value: $(params.nodejs-create-package-lock) - - name: prev-report - value: $(params.prev-report) - - name: deploy-report - value: $(params.deploy-report) - - name: cveignore - value: $(params.cveignore) - - name: exclude-dev - value: $(params.exclude-dev) - - name: vulnerability-report - value: $(params.vulnerability-report) - - name: cra-scan-image - value: $(params.cra-scan-image) - - name: custom-script - value: $(params.custom-script) - workspaces: - - name: artifacts - workspace: pipeline-ws + # - name: code-risk-analyzer + # runAfter: + # - git-clone + # taskRef: + # name: cra-v2-cra + # params: + # - name: pipeline-debug + # value: $(params.pipeline-debug) + # - name: ibmcloud-region + # value: $(params.ibmcloud-region) + # - name: registry-region + # value: $(params.registry-region) + # - name: env-props + # value: $(params.env-props) + # - name: fileignore + # value: $(params.fileignore) + # - name: ibmcloud-trace + # value: $(params.ibmcloud-trace) + # - name: output + # value: $(params.output) + # - name: path + # value: $(params.path) + # - name: strict + # value: $(params.strict) + # - name: toolchainid + # value: $(params.toolchainid) + # - name: verbose + # value: $(params.verbose) + # - name: asset-type + # value: $(params.asset-type) + # - name: bom-report + # value: $(params.bom-report) + # - name: docker-build-flags + # value: $(params.docker-build-flags) + # - name: docker-build-context + # value: $(params.docker-build-context) + # - name: dockerfile-pattern + # value: $(params.dockerfile-pattern) + # - name: docker-registry-url + # value: $(params.docker-registry-url) + # - name: docker-registry-username + # value: $(params.docker-registry-username) + # - name: gradle-exclude-configs + # value: $(params.gradle-exclude-configs) + # - name: maven-exclude-scopes + # value: $(params.maven-exclude-scopes) + # - name: nodejs-create-package-lock + # value: $(params.nodejs-create-package-lock) + # - name: prev-report + # value: $(params.prev-report) + # - name: deploy-report + # value: $(params.deploy-report) + # - name: cveignore + # value: $(params.cveignore) + # - name: exclude-dev + # value: $(params.exclude-dev) + # - name: vulnerability-report + # value: $(params.vulnerability-report) + # - name: cra-scan-image + # value: $(params.cra-scan-image) + # - name: custom-script + # value: $(params.custom-script) + # workspaces: + # - name: artifacts + # workspace: pipeline-ws - name: extract-doi-enablement taskRef: name: toolchain-extract-value diff --git a/CHANGELOG.md b/CHANGELOG.md index b4c867e0..c5bc0ec2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ All notable changes to this project will be documented in this file. -## 1.11.0 +## 1.11.1 ### Upgrade Notes diff --git a/client/src/lib/docs/release-notes.json b/client/src/lib/docs/release-notes.json index 21d109a4..99a6e4b4 100644 --- a/client/src/lib/docs/release-notes.json +++ b/client/src/lib/docs/release-notes.json @@ -1,6 +1,6 @@ [ { - "version": "1.11.0", + "version": "1.11.1", "features": [ "Users can now view Power VS Resources with no selected workspace on the CRAIG V2 Power VS page", "Users can now view Power VS Resources with no selected subnets on the CRAIG V2 Power VS page", diff --git a/client/src/lib/docs/templates/from-scratch.json b/client/src/lib/docs/templates/from-scratch.json index 6d3f6140..64b6c4c0 100644 --- a/client/src/lib/docs/templates/from-scratch.json +++ b/client/src/lib/docs/templates/from-scratch.json @@ -10,7 +10,7 @@ "enable_classic": false, "dynamic_subnets": true, "enable_power_vs": false, - "craig_version": "1.11.0", + "craig_version": "1.11.1", "power_vs_zones": [], "power_vs_high_availability": false }, diff --git a/client/src/lib/docs/templates/oracle-si.json b/client/src/lib/docs/templates/oracle-si.json index bfbf8c49..a75439c1 100644 --- a/client/src/lib/docs/templates/oracle-si.json +++ b/client/src/lib/docs/templates/oracle-si.json @@ -10,7 +10,7 @@ "dynamic_subnets": false, "enable_power_vs": true, "power_vs_zones": ["dal12", "dal10", "us-south"], - "craig_version": "1.11.0", + "craig_version": "1.11.1", "power_vs_high_availability": false }, "access_groups": [], diff --git a/client/src/lib/docs/templates/power-poc-quick-start.json b/client/src/lib/docs/templates/power-poc-quick-start.json index c414238f..07dfcdb1 100644 --- a/client/src/lib/docs/templates/power-poc-quick-start.json +++ b/client/src/lib/docs/templates/power-poc-quick-start.json @@ -10,7 +10,7 @@ "enable_power_vs": true, "enable_classic": false, "power_vs_zones": ["dal10"], - "craig_version": "1.11.0", + "craig_version": "1.11.1", "power_vs_high_availability": false, "template": "Power VS POC", "fs_cloud": false @@ -144,7 +144,8 @@ "storage_class": "standard", "kms_key": "atracker-key", "force_delete": false, - "use_random_suffix": false + "use_random_suffix": false, + "endpoint": null } ], "keys": [ @@ -535,11 +536,21 @@ ], "routing_tables": [ { - "routes": [], + "routes": [ + { + "name": "on-prem", + "zone": "1", + "destination": "10.40.0.0/16", + "action": "deliver", + "next_hop": "10.250.0.1", + "routing_table": "poweringress", + "vpc": "transit" + } + ], "name": "poweringress", "vpc": "transit", "internet_ingress": false, - "transit_gateway_ingress": false, + "transit_gateway_ingress": true, "vpc_zone_ingress": true, "direct_link_ingress": false, "route_direct_link_ingress": false, @@ -573,47 +584,23 @@ "resource_group": "transit-rg", "rules": [ { - "vpc": "transit", - "sg": "transit-vpe", + "name": "general-inbound", "direction": "inbound", - "name": "allow-ibm-inbound", - "source": "161.26.0.0/16", - "tcp": { - "port_max": null, - "port_min": null - }, - "udp": { - "port_max": null, - "port_min": null - }, "icmp": { "type": null, "code": null }, - "ruleProtocol": "all", - "port_min": null, - "port_max": null, - "type": null, - "code": null - }, - { - "vpc": "transit", - "sg": "transit-vpe", - "direction": "inbound", - "name": "allow-vpc-inbound", - "source": "10.0.0.0/8", "tcp": { - "port_max": null, - "port_min": null + "port_min": null, + "port_max": null }, "udp": { - "port_max": null, - "port_min": null - }, - "icmp": { - "type": null, - "code": null + "port_min": null, + "port_max": null }, + "source": "10.0.0.0/8", + "vpc": "transit", + "sg": "transit-vpe", "ruleProtocol": "all", "port_min": null, "port_max": null, @@ -621,96 +608,48 @@ "code": null }, { - "vpc": "transit", - "sg": "transit-vpe", - "direction": "outbound", - "name": "allow-vpc-outbound", - "source": "10.0.0.0/8", - "tcp": { - "port_max": null, - "port_min": null - }, - "udp": { - "port_max": null, - "port_min": null - }, + "name": "powervs-inbound", + "direction": "inbound", "icmp": { "type": null, "code": null }, - "ruleProtocol": "all", - "port_min": null, - "port_max": null, - "type": null, - "code": null - }, - { - "vpc": "transit", - "sg": "transit-vpe", - "direction": "outbound", - "name": "allow-ibm-tcp-53-outbound", - "source": "161.26.0.0/16", "tcp": { - "port_max": 53, - "port_min": 53 + "port_min": null, + "port_max": null }, "udp": { - "port_max": null, - "port_min": null - }, - "icmp": { - "type": null, - "code": null + "port_min": null, + "port_max": null }, - "ruleProtocol": "tcp", + "source": "192.168.0.0/24", + "vpc": "transit", + "sg": "transit-vpe", + "ruleProtocol": "all", "port_min": null, "port_max": null, "type": null, "code": null }, { - "vpc": "transit", - "sg": "transit-vpe", + "name": "general-outbound", "direction": "outbound", - "name": "allow-ibm-tcp-80-outbound", - "source": "161.26.0.0/16", - "tcp": { - "port_max": 80, - "port_min": 80 - }, - "udp": { - "port_max": null, - "port_min": null - }, "icmp": { "type": null, "code": null }, - "ruleProtocol": "tcp", - "port_min": null, - "port_max": null, - "type": null, - "code": null - }, - { - "vpc": "transit", - "sg": "transit-vpe", - "direction": "outbound", - "name": "allow-ibm-tcp-443-outbound", - "source": "161.26.0.0/16", "tcp": { - "port_max": 443, - "port_min": 443 + "port_min": null, + "port_max": null }, "udp": { - "port_max": null, - "port_min": null + "port_min": null, + "port_max": null }, - "icmp": { - "type": null, - "code": null - }, - "ruleProtocol": "tcp", + "source": "10.0.0.0/8", + "vpc": "transit", + "sg": "transit-vpe", + "ruleProtocol": "all", "port_min": null, "port_max": null, "type": null, @@ -724,23 +663,23 @@ "resource_group": "transit-rg", "rules": [ { - "vpc": "transit", - "sg": "transit-vsi", + "name": "general-inbound", "direction": "inbound", - "name": "allow-ibm-inbound", - "source": "161.26.0.0/16", - "tcp": { - "port_max": null, - "port_min": null - }, - "udp": { - "port_max": null, - "port_min": null - }, "icmp": { "type": null, "code": null }, + "tcp": { + "port_min": null, + "port_max": null + }, + "udp": { + "port_min": null, + "port_max": null + }, + "source": "10.0.0.0/8", + "vpc": "transit", + "sg": "transit-vsi", "ruleProtocol": "all", "port_min": null, "port_max": null, @@ -748,47 +687,23 @@ "code": null }, { - "vpc": "transit", - "sg": "transit-vsi", + "name": "ibm-inbound", "direction": "inbound", - "name": "allow-vpc-inbound", - "source": "10.0.0.0/8", - "tcp": { - "port_max": null, - "port_min": null - }, - "udp": { - "port_max": null, - "port_min": null - }, "icmp": { "type": null, "code": null }, - "ruleProtocol": "all", - "port_min": null, - "port_max": null, - "type": null, - "code": null - }, - { - "vpc": "transit", - "sg": "transit-vsi", - "direction": "outbound", - "name": "allow-vpc-outbound", - "source": "10.0.0.0/8", "tcp": { - "port_max": null, - "port_min": null + "port_min": null, + "port_max": null }, "udp": { - "port_max": null, - "port_min": null - }, - "icmp": { - "type": null, - "code": null + "port_min": null, + "port_max": null }, + "source": "161.26.0.0/16", + "vpc": "transit", + "sg": "transit-vsi", "ruleProtocol": "all", "port_min": null, "port_max": null, @@ -796,72 +711,48 @@ "code": null }, { - "vpc": "transit", - "sg": "transit-vsi", - "direction": "outbound", - "name": "allow-ibm-tcp-53-outbound", - "source": "161.26.0.0/16", - "tcp": { - "port_max": 53, - "port_min": 53 - }, - "udp": { - "port_max": null, - "port_min": null - }, + "name": "powervs-inbound", + "direction": "inbound", "icmp": { "type": null, "code": null }, - "ruleProtocol": "tcp", - "port_min": null, - "port_max": null, - "type": null, - "code": null - }, - { - "vpc": "transit", - "sg": "transit-vsi", - "direction": "outbound", - "name": "allow-ibm-tcp-80-outbound", - "source": "161.26.0.0/16", "tcp": { - "port_max": 80, - "port_min": 80 + "port_min": null, + "port_max": null }, "udp": { - "port_max": null, - "port_min": null + "port_min": null, + "port_max": null }, - "icmp": { - "type": null, - "code": null - }, - "ruleProtocol": "tcp", + "source": "192.168.0.0/24", + "vpc": "transit", + "sg": "transit-vsi", + "ruleProtocol": "all", "port_min": null, "port_max": null, "type": null, "code": null }, { - "vpc": "transit", - "sg": "transit-vsi", + "name": "all-outbound", "direction": "outbound", - "name": "allow-ibm-tcp-443-outbound", - "source": "161.26.0.0/16", - "tcp": { - "port_max": 443, - "port_min": 443 - }, - "udp": { - "port_max": null, - "port_min": null - }, "icmp": { "type": null, "code": null }, - "ruleProtocol": "tcp", + "tcp": { + "port_min": null, + "port_max": null + }, + "udp": { + "port_min": null, + "port_max": null + }, + "source": "0.0.0.0/0", + "vpc": "transit", + "sg": "transit-vsi", + "ruleProtocol": "all", "port_min": null, "port_max": null, "type": null, @@ -984,13 +875,9 @@ "vpc": "transit", "rules": [ { + "name": "all-inbound", "action": "allow", - "destination": "10.0.0.0/8", "direction": "inbound", - "name": "allow-ibm-inbound", - "source": "161.26.0.0/16", - "acl": "transit", - "vpc": "transit", "icmp": { "type": null, "code": null @@ -1007,38 +894,10 @@ "source_port_min": null, "source_port_max": null }, - "ruleProtocol": "all", - "port_min": null, - "port_max": null, - "type": null, - "code": null, - "source_port_min": null, - "source_port_max": null - }, - { - "action": "allow", - "source": "10.0.0.0/8", - "direction": "outbound", - "name": "allow-ibm-outbound", - "destination": "161.26.0.0/16", + "source": "0.0.0.0/0", + "destination": "10.0.0.0/8", "acl": "transit", "vpc": "transit", - "icmp": { - "type": null, - "code": null - }, - "tcp": { - "port_min": null, - "port_max": null, - "source_port_min": null, - "source_port_max": null - }, - "udp": { - "port_min": null, - "port_max": null, - "source_port_min": null, - "source_port_max": null - }, "ruleProtocol": "all", "port_min": null, "port_max": null, @@ -1048,13 +907,9 @@ "source_port_max": null }, { + "name": "all-outbound", "action": "allow", - "destination": "10.0.0.0/8", - "direction": "inbound", - "name": "allow-all-network-inbound", - "source": "10.0.0.0/8", - "acl": "transit", - "vpc": "transit", + "direction": "outbound", "icmp": { "type": null, "code": null @@ -1071,38 +926,10 @@ "source_port_min": null, "source_port_max": null }, - "ruleProtocol": "all", - "port_min": null, - "port_max": null, - "type": null, - "code": null, - "source_port_min": null, - "source_port_max": null - }, - { - "action": "allow", - "destination": "10.0.0.0/8", - "direction": "outbound", - "name": "allow-all-network-outbound", "source": "10.0.0.0/8", + "destination": "0.0.0.0/0", "acl": "transit", "vpc": "transit", - "icmp": { - "type": null, - "code": null - }, - "tcp": { - "port_min": null, - "port_max": null, - "source_port_min": null, - "source_port_max": null - }, - "udp": { - "port_min": null, - "port_max": null, - "source_port_min": null, - "source_port_max": null - }, "ruleProtocol": "all", "port_min": null, "port_max": null, @@ -1147,7 +974,8 @@ "10.10.0.128/29", "10.10.0.144/28" ], - "vpn": "dal10gw" + "vpn": "dal10gw", + "peer_address": "" } ], "additional_prefixes": ["10.40.0.0/16"] diff --git a/client/src/lib/docs/templates/power-sap-hana.json b/client/src/lib/docs/templates/power-sap-hana.json index 78062fb2..1192b87e 100644 --- a/client/src/lib/docs/templates/power-sap-hana.json +++ b/client/src/lib/docs/templates/power-sap-hana.json @@ -11,7 +11,7 @@ "dynamic_subnets": false, "enable_power_vs": true, "power_vs_zones": ["us-south"], - "craig_version": "1.11.0", + "craig_version": "1.11.1", "power_vs_high_availability": false, "template": "Power VS SAP Hana" }, diff --git a/client/src/lib/docs/templates/quick-start-power.json b/client/src/lib/docs/templates/quick-start-power.json index 2c993a35..6da1178c 100644 --- a/client/src/lib/docs/templates/quick-start-power.json +++ b/client/src/lib/docs/templates/quick-start-power.json @@ -10,7 +10,7 @@ "enable_power_vs": true, "enable_classic": false, "power_vs_zones": ["dal12"], - "craig_version": "1.11.0", + "craig_version": "1.11.1", "power_vs_high_availability": false, "fs_cloud": false }, diff --git a/client/src/lib/docs/templates/slz-mixed.json b/client/src/lib/docs/templates/slz-mixed.json index 63bb0d4c..c3b5c6d8 100644 --- a/client/src/lib/docs/templates/slz-mixed.json +++ b/client/src/lib/docs/templates/slz-mixed.json @@ -11,7 +11,7 @@ "dynamic_subnets": true, "enable_power_vs": false, "power_vs_zones": [], - "craig_version": "1.11.0", + "craig_version": "1.11.1", "power_vs_high_availability": false }, "access_groups": [], diff --git a/client/src/lib/docs/templates/slz-vsi-edge.json b/client/src/lib/docs/templates/slz-vsi-edge.json index 4043c979..c0f1c729 100644 --- a/client/src/lib/docs/templates/slz-vsi-edge.json +++ b/client/src/lib/docs/templates/slz-vsi-edge.json @@ -1,6 +1,6 @@ { "_options": { - "craig_version": "1.11.0", + "craig_version": "1.11.1", "prefix": "slz", "region": "us-south", "tags": ["slz", "landing-zone"], diff --git a/client/src/lib/docs/templates/slz-vsi.json b/client/src/lib/docs/templates/slz-vsi.json index ee69e536..1c300388 100644 --- a/client/src/lib/docs/templates/slz-vsi.json +++ b/client/src/lib/docs/templates/slz-vsi.json @@ -1,6 +1,6 @@ { "_options": { - "craig_version": "1.11.0", + "craig_version": "1.11.1", "prefix": "iac", "region": "us-south", "tags": ["hello", "world"], diff --git a/client/src/lib/docs/templates/vpn-as-a-service.json b/client/src/lib/docs/templates/vpn-as-a-service.json index 541b85ce..88138558 100644 --- a/client/src/lib/docs/templates/vpn-as-a-service.json +++ b/client/src/lib/docs/templates/vpn-as-a-service.json @@ -9,7 +9,7 @@ "fs_cloud": false, "dynamic_subnets": false, "enable_power_vs": true, - "craig_version": "1.11.0", + "craig_version": "1.11.1", "power_vs_zones": ["dal12", "dal10", "us-south"], "advanced_subnets": true, "power_vs_high_availability": false diff --git a/client/src/lib/json-to-iac/power-vs-instances.js b/client/src/lib/json-to-iac/power-vs-instances.js index 7d5e3d04..27ab05b1 100644 --- a/client/src/lib/json-to-iac/power-vs-instances.js +++ b/client/src/lib/json-to-iac/power-vs-instances.js @@ -159,6 +159,7 @@ function powerVsInstanceData(instance, config) { } delete data.sap; delete data.sap_profile; + delete data.primary_subnet; delete data.pi_user_data; if (!isNullOrEmptyString(instance.pi_user_data, true)) { data.pi_user_data = `\${< { }, { name: "craig/craig.json", - data: '{\n "_options": {\n "prefix": "iac",\n "region": "us-south",\n "tags": [\n "hello",\n "world"\n ],\n "zones": 3,\n "endpoints": "private",\n "account_id": null,\n "fs_cloud": false,\n "enable_classic": false,\n "dynamic_subnets": true,\n "enable_power_vs": false,\n "power_vs_zones": [],\n "craig_version": "1.11.0",\n "power_vs_high_availability": false\n },\n "access_groups": [],\n "appid": [],\n "atracker": {\n "enabled": true,\n "type": "cos",\n "name": "atracker",\n "target_name": "atracker-cos",\n "bucket": "atracker-bucket",\n "add_route": true,\n "cos_key": "cos-bind-key",\n "locations": [\n "global",\n "us-south"\n ],\n "instance": false,\n "plan": "lite",\n "resource_group": null\n },\n "cbr_rules": [],\n "cbr_zones": [],\n "clusters": [\n {\n "kms": "kms",\n "cos": "cos",\n "entitlement": "cloud_pak",\n "kube_type": "openshift",\n "kube_version": "4.12.26_openshift",\n "flavor": "bx2.16x64",\n "name": "workload-cluster",\n "resource_group": "workload-rg",\n "encryption_key": "roks-key",\n "subnets": [\n "vsi-zone-1",\n "vsi-zone-2",\n "vsi-zone-3"\n ],\n "update_all_workers": false,\n "vpc": "workload",\n "worker_pools": [\n {\n "entitlement": "cloud_pak",\n "cluster": "workload-cluster",\n "flavor": "bx2.16x64",\n "name": "logging-worker-pool",\n "resource_group": "workload-rg",\n "subnets": [\n "vsi-zone-1",\n "vsi-zone-2",\n "vsi-zone-3"\n ],\n "vpc": "workload",\n "workers_per_subnet": 2\n }\n ],\n "opaque_secrets": [],\n "workers_per_subnet": 2,\n "private_endpoint": true\n }\n ],\n "dns": [],\n "event_streams": [],\n "f5_vsi": [],\n "iam_account_settings": {\n "enable": false,\n "mfa": null,\n "allowed_ip_addresses": null,\n "include_history": false,\n "if_match": null,\n "max_sessions_per_identity": null,\n "restrict_create_service_id": null,\n "restrict_create_platform_apikey": null,\n "session_expiration_in_seconds": null,\n "session_invalidation_in_seconds": null\n },\n "icd": [],\n "key_management": [\n {\n "name": "kms",\n "resource_group": "service-rg",\n "use_hs_crypto": false,\n "authorize_vpc_reader_role": true,\n "use_data": false,\n "keys": [\n {\n "key_ring": "ring",\n "name": "key",\n "root_key": true,\n "force_delete": true,\n "endpoint": "public",\n "rotation": 1,\n "dual_auth_delete": false\n },\n {\n "key_ring": "ring",\n "name": "atracker-key",\n "root_key": true,\n "force_delete": true,\n "endpoint": "public",\n "rotation": 1,\n "dual_auth_delete": false\n },\n {\n "key_ring": "ring",\n "name": "vsi-volume-key",\n "root_key": true,\n "force_delete": true,\n "endpoint": "public",\n "rotation": 1,\n "dual_auth_delete": false\n },\n {\n "key_ring": "ring",\n "name": "roks-key",\n "root_key": true,\n "force_delete": null,\n "endpoint": null,\n "rotation": 1,\n "dual_auth_delete": false\n }\n ]\n }\n ],\n "load_balancers": [],\n "logdna": {\n "name": "logdna",\n "archive": false,\n "enabled": false,\n "plan": "lite",\n "endpoints": "private",\n "platform_logs": false,\n "resource_group": "service-rg",\n "cos": "atracker-cos",\n "bucket": "atracker-bucket"\n },\n "object_storage": [\n {\n "buckets": [\n {\n "endpoint": "public",\n "force_delete": true,\n "kms_key": "atracker-key",\n "name": "atracker-bucket",\n "storage_class": "standard",\n "use_random_suffix": true\n }\n ],\n "keys": [\n {\n "name": "cos-bind-key",\n "role": "Writer",\n "enable_hmac": false,\n "use_random_suffix": true\n }\n ],\n "name": "atracker-cos",\n "plan": "standard",\n "resource_group": "service-rg",\n "use_data": false,\n "use_random_suffix": true,\n "kms": "kms"\n },\n {\n "buckets": [\n {\n "endpoint": "public",\n "force_delete": true,\n "kms_key": "key",\n "name": "management-bucket",\n "storage_class": "standard",\n "use_random_suffix": true\n },\n {\n "endpoint": "public",\n "force_delete": true,\n "kms_key": "key",\n "name": "workload-bucket",\n "storage_class": "standard",\n "use_random_suffix": true\n }\n ],\n "use_random_suffix": true,\n "keys": [],\n "name": "cos",\n "plan": "standard",\n "resource_group": "service-rg",\n "use_data": false,\n "kms": "kms"\n }\n ],\n "power": [],\n "power_instances": [],\n "power_volumes": [],\n "resource_groups": [\n {\n "use_prefix": true,\n "name": "service-rg",\n "use_data": false\n },\n {\n "use_prefix": true,\n "name": "management-rg",\n "use_data": false\n },\n {\n "use_prefix": true,\n "name": "workload-rg",\n "use_data": false\n }\n ],\n "routing_tables": [],\n "scc": {\n "credential_description": null,\n "id": null,\n "passphrase": null,\n "name": "",\n "location": "us",\n "collector_description": null,\n "is_public": false,\n "scope_description": null,\n "enable": false\n },\n "secrets_manager": [],\n "security_groups": [\n {\n "vpc": "management",\n "name": "management-vpe",\n "resource_group": "management-rg",\n "rules": [\n {\n "vpc": "management",\n "sg": "management-vpe",\n "direction": "inbound",\n "name": "allow-ibm-inbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": null,\n "port_min": null\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vpe",\n "direction": "inbound",\n "name": "allow-vpc-inbound",\n "source": "10.0.0.0/8",\n "tcp": {\n "port_max": null,\n "port_min": null\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vpe",\n "direction": "outbound",\n "name": "allow-vpc-outbound",\n "source": "10.0.0.0/8",\n "tcp": {\n "port_max": null,\n "port_min": null\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vpe",\n "direction": "outbound",\n "name": "allow-ibm-tcp-53-outbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": 53,\n "port_min": 53\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vpe",\n "direction": "outbound",\n "name": "allow-ibm-tcp-80-outbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": 80,\n "port_min": 80\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vpe",\n "direction": "outbound",\n "name": "allow-ibm-tcp-443-outbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": 443,\n "port_min": 443\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n }\n ]\n },\n {\n "vpc": "workload",\n "name": "workload-vpe",\n "resource_group": "workload-rg",\n "rules": [\n {\n "vpc": "workload",\n "sg": "workload-vpe",\n "direction": "inbound",\n "name": "allow-ibm-inbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": null,\n "port_min": null\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "workload",\n "sg": "workload-vpe",\n "direction": "inbound",\n "name": "allow-vpc-inbound",\n "source": "10.0.0.0/8",\n "tcp": {\n "port_max": null,\n "port_min": null\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "workload",\n "sg": "workload-vpe",\n "direction": "outbound",\n "name": "allow-vpc-outbound",\n "source": "10.0.0.0/8",\n "tcp": {\n "port_max": null,\n "port_min": null\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "workload",\n "sg": "workload-vpe",\n "direction": "outbound",\n "name": "allow-ibm-tcp-53-outbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": 53,\n "port_min": 53\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "workload",\n "sg": "workload-vpe",\n "direction": "outbound",\n "name": "allow-ibm-tcp-80-outbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": 80,\n "port_min": 80\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "workload",\n "sg": "workload-vpe",\n "direction": "outbound",\n "name": "allow-ibm-tcp-443-outbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": 443,\n "port_min": 443\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n }\n ]\n },\n {\n "vpc": "management",\n "name": "management-vsi",\n "resource_group": "management-rg",\n "rules": [\n {\n "vpc": "management",\n "sg": "management-vsi",\n "direction": "inbound",\n "name": "allow-ibm-inbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": null,\n "port_min": null\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vsi",\n "direction": "inbound",\n "name": "allow-vpc-inbound",\n "source": "10.0.0.0/8",\n "tcp": {\n "port_max": null,\n "port_min": null\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vsi",\n "direction": "outbound",\n "name": "allow-vpc-outbound",\n "source": "10.0.0.0/8",\n "tcp": {\n "port_max": null,\n "port_min": null\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vsi",\n "direction": "outbound",\n "name": "allow-ibm-tcp-53-outbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": 53,\n "port_min": 53\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vsi",\n "direction": "outbound",\n "name": "allow-ibm-tcp-80-outbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": 80,\n "port_min": 80\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vsi",\n "direction": "outbound",\n "name": "allow-ibm-tcp-443-outbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": 443,\n "port_min": 443\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n }\n ]\n }\n ],\n "ssh_keys": [\n {\n "name": "ssh-key",\n "public_key": "",\n "resource_group": "management-rg",\n "use_data": false\n }\n ],\n "sysdig": {\n "enabled": false,\n "plan": "graduated-tier",\n "resource_group": "service-rg",\n "name": "sysdig",\n "platform_logs": false\n },\n "teleport_vsi": [],\n "transit_gateways": [\n {\n "name": "transit-gateway",\n "resource_group": "service-rg",\n "global": false,\n "connections": [\n {\n "tgw": "transit-gateway",\n "vpc": "management"\n },\n {\n "tgw": "transit-gateway",\n "vpc": "workload"\n }\n ]\n }\n ],\n "virtual_private_endpoints": [\n {\n "name": "management-cos",\n "service": "cos",\n "vpc": "management",\n "resource_group": "management-rg",\n "security_groups": [\n "management-vpe"\n ],\n "subnets": [\n "vpe-zone-1",\n "vpe-zone-2",\n "vpe-zone-3"\n ],\n "instance": null\n },\n {\n "name": "workload-cos",\n "service": "cos",\n "vpc": "workload",\n "resource_group": "workload-rg",\n "security_groups": [\n "workload-vpe"\n ],\n "subnets": [\n "vpe-zone-1",\n "vpe-zone-2",\n "vpe-zone-3"\n ],\n "instance": null\n }\n ],\n "vpcs": [\n {\n "cos": "cos",\n "bucket": "management-bucket",\n "name": "management",\n "resource_group": "management-rg",\n "classic_access": false,\n "manual_address_prefix_management": true,\n "default_network_acl_name": null,\n "default_security_group_name": null,\n "default_routing_table_name": null,\n "publicGateways": [],\n "address_prefixes": [\n {\n "vpc": "management",\n "zone": 1,\n "name": "management-zone-1",\n "cidr": "10.10.0.0/22"\n },\n {\n "vpc": "management",\n "zone": 2,\n "name": "management-zone-2",\n "cidr": "10.20.0.0/22"\n },\n {\n "vpc": "management",\n "zone": 3,\n "name": "management-zone-3",\n "cidr": "10.30.0.0/22"\n }\n ],\n "subnets": [\n {\n "vpc": "management",\n "zone": 1,\n "cidr": "10.10.0.0/29",\n "name": "vsi-zone-1",\n "network_acl": "management",\n "resource_group": "management-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "management",\n "zone": 1,\n "cidr": "10.10.0.16/28",\n "name": "vpn-zone-1",\n "network_acl": "management",\n "resource_group": "management-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "management",\n "zone": 2,\n "cidr": "10.20.0.0/29",\n "name": "vsi-zone-2",\n "network_acl": "management",\n "resource_group": "management-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "management",\n "zone": 3,\n "cidr": "10.30.0.0/29",\n "name": "vsi-zone-3",\n "network_acl": "management",\n "resource_group": "management-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "management",\n "zone": 1,\n "cidr": "10.10.0.48/29",\n "name": "vpe-zone-1",\n "resource_group": "management-rg",\n "network_acl": "management",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "management",\n "zone": 2,\n "cidr": "10.20.0.16/29",\n "name": "vpe-zone-2",\n "network_acl": "management",\n "resource_group": "management-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "management",\n "zone": 3,\n "cidr": "10.30.0.16/29",\n "name": "vpe-zone-3",\n "network_acl": "management",\n "resource_group": "management-rg",\n "public_gateway": false,\n "has_prefix": false\n }\n ],\n "public_gateways": [],\n "acls": [\n {\n "resource_group": "management-rg",\n "name": "management",\n "vpc": "management",\n "rules": [\n {\n "action": "allow",\n "destination": "10.0.0.0/8",\n "direction": "inbound",\n "name": "allow-ibm-inbound",\n "source": "161.26.0.0/16",\n "acl": "management",\n "vpc": "management",\n "icmp": {\n "type": null,\n "code": null\n },\n "tcp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n },\n "udp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n }\n },\n {\n "action": "allow",\n "source": "10.0.0.0/8",\n "direction": "outbound",\n "name": "allow-ibm-outbound",\n "destination": "161.26.0.0/16",\n "acl": "management",\n "vpc": "management",\n "icmp": {\n "type": null,\n "code": null\n },\n "tcp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n },\n "udp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n }\n },\n {\n "action": "allow",\n "destination": "10.0.0.0/8",\n "direction": "inbound",\n "name": "allow-all-network-inbound",\n "source": "10.0.0.0/8",\n "acl": "management",\n "vpc": "management",\n "icmp": {\n "type": null,\n "code": null\n },\n "tcp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n },\n "udp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n }\n },\n {\n "action": "allow",\n "destination": "10.0.0.0/8",\n "direction": "outbound",\n "name": "allow-all-network-outbound",\n "source": "10.0.0.0/8",\n "acl": "management",\n "vpc": "management",\n "icmp": {\n "type": null,\n "code": null\n },\n "tcp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n },\n "udp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n }\n }\n ]\n }\n ]\n },\n {\n "cos": "cos",\n "bucket": "workload-bucket",\n "name": "workload",\n "resource_group": "workload-rg",\n "classic_access": false,\n "manual_address_prefix_management": true,\n "default_network_acl_name": null,\n "default_security_group_name": null,\n "default_routing_table_name": null,\n "publicGateways": [],\n "address_prefixes": [\n {\n "vpc": "workload",\n "zone": 1,\n "name": "workload-zone-1",\n "cidr": "10.40.0.0/22"\n },\n {\n "vpc": "workload",\n "zone": 2,\n "name": "workload-zone-2",\n "cidr": "10.50.0.0/22"\n },\n {\n "vpc": "workload",\n "zone": 3,\n "name": "workload-zone-3",\n "cidr": "10.60.0.0/22"\n }\n ],\n "subnets": [\n {\n "vpc": "workload",\n "zone": 1,\n "cidr": "10.40.0.0/28",\n "name": "vsi-zone-1",\n "network_acl": "workload",\n "resource_group": "workload-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "workload",\n "zone": 2,\n "cidr": "10.50.0.0/28",\n "name": "vsi-zone-2",\n "network_acl": "workload",\n "resource_group": "workload-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "workload",\n "zone": 3,\n "cidr": "10.60.0.0/28",\n "name": "vsi-zone-3",\n "network_acl": "workload",\n "resource_group": "workload-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "workload",\n "zone": 1,\n "cidr": "10.40.0.32/29",\n "name": "vpe-zone-1",\n "network_acl": "workload",\n "resource_group": "workload-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "workload",\n "zone": 2,\n "cidr": "10.50.0.32/29",\n "name": "vpe-zone-2",\n "network_acl": "workload",\n "resource_group": "workload-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "workload",\n "zone": 3,\n "cidr": "10.60.0.32/29",\n "name": "vpe-zone-3",\n "network_acl": "workload",\n "resource_group": "workload-rg",\n "public_gateway": false,\n "has_prefix": false\n }\n ],\n "public_gateways": [],\n "acls": [\n {\n "resource_group": "workload-rg",\n "name": "workload",\n "vpc": "workload",\n "rules": [\n {\n "action": "allow",\n "destination": "10.0.0.0/8",\n "direction": "inbound",\n "name": "allow-ibm-inbound",\n "source": "161.26.0.0/16",\n "acl": "workload",\n "vpc": "workload",\n "icmp": {\n "type": null,\n "code": null\n },\n "tcp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n },\n "udp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n }\n },\n {\n "action": "allow",\n "source": "10.0.0.0/8",\n "direction": "outbound",\n "name": "allow-ibm-outbound",\n "destination": "161.26.0.0/16",\n "acl": "workload",\n "vpc": "workload",\n "icmp": {\n "type": null,\n "code": null\n },\n "tcp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n },\n "udp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n }\n },\n {\n "action": "allow",\n "destination": "10.0.0.0/8",\n "direction": "inbound",\n "name": "allow-all-network-inbound",\n "source": "10.0.0.0/8",\n "acl": "workload",\n "vpc": "workload",\n "icmp": {\n "type": null,\n "code": null\n },\n "tcp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n },\n "udp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n }\n },\n {\n "action": "allow",\n "destination": "10.0.0.0/8",\n "direction": "outbound",\n "name": "allow-all-network-outbound",\n "source": "10.0.0.0/8",\n "acl": "workload",\n "vpc": "workload",\n "icmp": {\n "type": null,\n "code": null\n },\n "tcp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n },\n "udp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n }\n }\n ]\n }\n ]\n }\n ],\n "vpn_gateways": [\n {\n "name": "management-gateway",\n "resource_group": "management-rg",\n "subnet": "vpn-zone-1",\n "vpc": "management"\n }\n ],\n "vpn_servers": [],\n "vsi": [\n {\n "kms": "kms",\n "encryption_key": "vsi-volume-key",\n "image": "ibm-ubuntu-22-04-1-minimal-amd64-1",\n "profile": "cx2-4x8",\n "name": "management-server",\n "security_groups": [\n "management-vsi"\n ],\n "ssh_keys": [\n "ssh-key"\n ],\n "subnets": [\n "vsi-zone-1",\n "vsi-zone-2",\n "vsi-zone-3"\n ],\n "vpc": "management",\n "vsi_per_subnet": 2,\n "resource_group": "management-rg",\n "override_vsi_name": null,\n "user_data": "",\n "network_interfaces": [],\n "volumes": []\n }\n ],\n "classic_ssh_keys": [],\n "classic_vlans": []\n}', + data: '{\n "_options": {\n "prefix": "iac",\n "region": "us-south",\n "tags": [\n "hello",\n "world"\n ],\n "zones": 3,\n "endpoints": "private",\n "account_id": null,\n "fs_cloud": false,\n "enable_classic": false,\n "dynamic_subnets": true,\n "enable_power_vs": false,\n "power_vs_zones": [],\n "craig_version": "1.11.1",\n "power_vs_high_availability": false\n },\n "access_groups": [],\n "appid": [],\n "atracker": {\n "enabled": true,\n "type": "cos",\n "name": "atracker",\n "target_name": "atracker-cos",\n "bucket": "atracker-bucket",\n "add_route": true,\n "cos_key": "cos-bind-key",\n "locations": [\n "global",\n "us-south"\n ],\n "instance": false,\n "plan": "lite",\n "resource_group": null\n },\n "cbr_rules": [],\n "cbr_zones": [],\n "clusters": [\n {\n "kms": "kms",\n "cos": "cos",\n "entitlement": "cloud_pak",\n "kube_type": "openshift",\n "kube_version": "4.12.26_openshift",\n "flavor": "bx2.16x64",\n "name": "workload-cluster",\n "resource_group": "workload-rg",\n "encryption_key": "roks-key",\n "subnets": [\n "vsi-zone-1",\n "vsi-zone-2",\n "vsi-zone-3"\n ],\n "update_all_workers": false,\n "vpc": "workload",\n "worker_pools": [\n {\n "entitlement": "cloud_pak",\n "cluster": "workload-cluster",\n "flavor": "bx2.16x64",\n "name": "logging-worker-pool",\n "resource_group": "workload-rg",\n "subnets": [\n "vsi-zone-1",\n "vsi-zone-2",\n "vsi-zone-3"\n ],\n "vpc": "workload",\n "workers_per_subnet": 2\n }\n ],\n "opaque_secrets": [],\n "workers_per_subnet": 2,\n "private_endpoint": true\n }\n ],\n "dns": [],\n "event_streams": [],\n "f5_vsi": [],\n "iam_account_settings": {\n "enable": false,\n "mfa": null,\n "allowed_ip_addresses": null,\n "include_history": false,\n "if_match": null,\n "max_sessions_per_identity": null,\n "restrict_create_service_id": null,\n "restrict_create_platform_apikey": null,\n "session_expiration_in_seconds": null,\n "session_invalidation_in_seconds": null\n },\n "icd": [],\n "key_management": [\n {\n "name": "kms",\n "resource_group": "service-rg",\n "use_hs_crypto": false,\n "authorize_vpc_reader_role": true,\n "use_data": false,\n "keys": [\n {\n "key_ring": "ring",\n "name": "key",\n "root_key": true,\n "force_delete": true,\n "endpoint": "public",\n "rotation": 1,\n "dual_auth_delete": false\n },\n {\n "key_ring": "ring",\n "name": "atracker-key",\n "root_key": true,\n "force_delete": true,\n "endpoint": "public",\n "rotation": 1,\n "dual_auth_delete": false\n },\n {\n "key_ring": "ring",\n "name": "vsi-volume-key",\n "root_key": true,\n "force_delete": true,\n "endpoint": "public",\n "rotation": 1,\n "dual_auth_delete": false\n },\n {\n "key_ring": "ring",\n "name": "roks-key",\n "root_key": true,\n "force_delete": null,\n "endpoint": null,\n "rotation": 1,\n "dual_auth_delete": false\n }\n ]\n }\n ],\n "load_balancers": [],\n "logdna": {\n "name": "logdna",\n "archive": false,\n "enabled": false,\n "plan": "lite",\n "endpoints": "private",\n "platform_logs": false,\n "resource_group": "service-rg",\n "cos": "atracker-cos",\n "bucket": "atracker-bucket"\n },\n "object_storage": [\n {\n "buckets": [\n {\n "endpoint": "public",\n "force_delete": true,\n "kms_key": "atracker-key",\n "name": "atracker-bucket",\n "storage_class": "standard",\n "use_random_suffix": true\n }\n ],\n "keys": [\n {\n "name": "cos-bind-key",\n "role": "Writer",\n "enable_hmac": false,\n "use_random_suffix": true\n }\n ],\n "name": "atracker-cos",\n "plan": "standard",\n "resource_group": "service-rg",\n "use_data": false,\n "use_random_suffix": true,\n "kms": "kms"\n },\n {\n "buckets": [\n {\n "endpoint": "public",\n "force_delete": true,\n "kms_key": "key",\n "name": "management-bucket",\n "storage_class": "standard",\n "use_random_suffix": true\n },\n {\n "endpoint": "public",\n "force_delete": true,\n "kms_key": "key",\n "name": "workload-bucket",\n "storage_class": "standard",\n "use_random_suffix": true\n }\n ],\n "use_random_suffix": true,\n "keys": [],\n "name": "cos",\n "plan": "standard",\n "resource_group": "service-rg",\n "use_data": false,\n "kms": "kms"\n }\n ],\n "power": [],\n "power_instances": [],\n "power_volumes": [],\n "resource_groups": [\n {\n "use_prefix": true,\n "name": "service-rg",\n "use_data": false\n },\n {\n "use_prefix": true,\n "name": "management-rg",\n "use_data": false\n },\n {\n "use_prefix": true,\n "name": "workload-rg",\n "use_data": false\n }\n ],\n "routing_tables": [],\n "scc": {\n "credential_description": null,\n "id": null,\n "passphrase": null,\n "name": "",\n "location": "us",\n "collector_description": null,\n "is_public": false,\n "scope_description": null,\n "enable": false\n },\n "secrets_manager": [],\n "security_groups": [\n {\n "vpc": "management",\n "name": "management-vpe",\n "resource_group": "management-rg",\n "rules": [\n {\n "vpc": "management",\n "sg": "management-vpe",\n "direction": "inbound",\n "name": "allow-ibm-inbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": null,\n "port_min": null\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vpe",\n "direction": "inbound",\n "name": "allow-vpc-inbound",\n "source": "10.0.0.0/8",\n "tcp": {\n "port_max": null,\n "port_min": null\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vpe",\n "direction": "outbound",\n "name": "allow-vpc-outbound",\n "source": "10.0.0.0/8",\n "tcp": {\n "port_max": null,\n "port_min": null\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vpe",\n "direction": "outbound",\n "name": "allow-ibm-tcp-53-outbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": 53,\n "port_min": 53\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vpe",\n "direction": "outbound",\n "name": "allow-ibm-tcp-80-outbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": 80,\n "port_min": 80\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vpe",\n "direction": "outbound",\n "name": "allow-ibm-tcp-443-outbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": 443,\n "port_min": 443\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n }\n ]\n },\n {\n "vpc": "workload",\n "name": "workload-vpe",\n "resource_group": "workload-rg",\n "rules": [\n {\n "vpc": "workload",\n "sg": "workload-vpe",\n "direction": "inbound",\n "name": "allow-ibm-inbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": null,\n "port_min": null\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "workload",\n "sg": "workload-vpe",\n "direction": "inbound",\n "name": "allow-vpc-inbound",\n "source": "10.0.0.0/8",\n "tcp": {\n "port_max": null,\n "port_min": null\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "workload",\n "sg": "workload-vpe",\n "direction": "outbound",\n "name": "allow-vpc-outbound",\n "source": "10.0.0.0/8",\n "tcp": {\n "port_max": null,\n "port_min": null\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "workload",\n "sg": "workload-vpe",\n "direction": "outbound",\n "name": "allow-ibm-tcp-53-outbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": 53,\n "port_min": 53\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "workload",\n "sg": "workload-vpe",\n "direction": "outbound",\n "name": "allow-ibm-tcp-80-outbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": 80,\n "port_min": 80\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "workload",\n "sg": "workload-vpe",\n "direction": "outbound",\n "name": "allow-ibm-tcp-443-outbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": 443,\n "port_min": 443\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n }\n ]\n },\n {\n "vpc": "management",\n "name": "management-vsi",\n "resource_group": "management-rg",\n "rules": [\n {\n "vpc": "management",\n "sg": "management-vsi",\n "direction": "inbound",\n "name": "allow-ibm-inbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": null,\n "port_min": null\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vsi",\n "direction": "inbound",\n "name": "allow-vpc-inbound",\n "source": "10.0.0.0/8",\n "tcp": {\n "port_max": null,\n "port_min": null\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vsi",\n "direction": "outbound",\n "name": "allow-vpc-outbound",\n "source": "10.0.0.0/8",\n "tcp": {\n "port_max": null,\n "port_min": null\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vsi",\n "direction": "outbound",\n "name": "allow-ibm-tcp-53-outbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": 53,\n "port_min": 53\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vsi",\n "direction": "outbound",\n "name": "allow-ibm-tcp-80-outbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": 80,\n "port_min": 80\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n },\n {\n "vpc": "management",\n "sg": "management-vsi",\n "direction": "outbound",\n "name": "allow-ibm-tcp-443-outbound",\n "source": "161.26.0.0/16",\n "tcp": {\n "port_max": 443,\n "port_min": 443\n },\n "udp": {\n "port_max": null,\n "port_min": null\n },\n "icmp": {\n "type": null,\n "code": null\n }\n }\n ]\n }\n ],\n "ssh_keys": [\n {\n "name": "ssh-key",\n "public_key": "",\n "resource_group": "management-rg",\n "use_data": false\n }\n ],\n "sysdig": {\n "enabled": false,\n "plan": "graduated-tier",\n "resource_group": "service-rg",\n "name": "sysdig",\n "platform_logs": false\n },\n "teleport_vsi": [],\n "transit_gateways": [\n {\n "name": "transit-gateway",\n "resource_group": "service-rg",\n "global": false,\n "connections": [\n {\n "tgw": "transit-gateway",\n "vpc": "management"\n },\n {\n "tgw": "transit-gateway",\n "vpc": "workload"\n }\n ]\n }\n ],\n "virtual_private_endpoints": [\n {\n "name": "management-cos",\n "service": "cos",\n "vpc": "management",\n "resource_group": "management-rg",\n "security_groups": [\n "management-vpe"\n ],\n "subnets": [\n "vpe-zone-1",\n "vpe-zone-2",\n "vpe-zone-3"\n ],\n "instance": null\n },\n {\n "name": "workload-cos",\n "service": "cos",\n "vpc": "workload",\n "resource_group": "workload-rg",\n "security_groups": [\n "workload-vpe"\n ],\n "subnets": [\n "vpe-zone-1",\n "vpe-zone-2",\n "vpe-zone-3"\n ],\n "instance": null\n }\n ],\n "vpcs": [\n {\n "cos": "cos",\n "bucket": "management-bucket",\n "name": "management",\n "resource_group": "management-rg",\n "classic_access": false,\n "manual_address_prefix_management": true,\n "default_network_acl_name": null,\n "default_security_group_name": null,\n "default_routing_table_name": null,\n "publicGateways": [],\n "address_prefixes": [\n {\n "vpc": "management",\n "zone": 1,\n "name": "management-zone-1",\n "cidr": "10.10.0.0/22"\n },\n {\n "vpc": "management",\n "zone": 2,\n "name": "management-zone-2",\n "cidr": "10.20.0.0/22"\n },\n {\n "vpc": "management",\n "zone": 3,\n "name": "management-zone-3",\n "cidr": "10.30.0.0/22"\n }\n ],\n "subnets": [\n {\n "vpc": "management",\n "zone": 1,\n "cidr": "10.10.0.0/29",\n "name": "vsi-zone-1",\n "network_acl": "management",\n "resource_group": "management-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "management",\n "zone": 1,\n "cidr": "10.10.0.16/28",\n "name": "vpn-zone-1",\n "network_acl": "management",\n "resource_group": "management-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "management",\n "zone": 2,\n "cidr": "10.20.0.0/29",\n "name": "vsi-zone-2",\n "network_acl": "management",\n "resource_group": "management-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "management",\n "zone": 3,\n "cidr": "10.30.0.0/29",\n "name": "vsi-zone-3",\n "network_acl": "management",\n "resource_group": "management-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "management",\n "zone": 1,\n "cidr": "10.10.0.48/29",\n "name": "vpe-zone-1",\n "resource_group": "management-rg",\n "network_acl": "management",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "management",\n "zone": 2,\n "cidr": "10.20.0.16/29",\n "name": "vpe-zone-2",\n "network_acl": "management",\n "resource_group": "management-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "management",\n "zone": 3,\n "cidr": "10.30.0.16/29",\n "name": "vpe-zone-3",\n "network_acl": "management",\n "resource_group": "management-rg",\n "public_gateway": false,\n "has_prefix": false\n }\n ],\n "public_gateways": [],\n "acls": [\n {\n "resource_group": "management-rg",\n "name": "management",\n "vpc": "management",\n "rules": [\n {\n "action": "allow",\n "destination": "10.0.0.0/8",\n "direction": "inbound",\n "name": "allow-ibm-inbound",\n "source": "161.26.0.0/16",\n "acl": "management",\n "vpc": "management",\n "icmp": {\n "type": null,\n "code": null\n },\n "tcp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n },\n "udp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n }\n },\n {\n "action": "allow",\n "source": "10.0.0.0/8",\n "direction": "outbound",\n "name": "allow-ibm-outbound",\n "destination": "161.26.0.0/16",\n "acl": "management",\n "vpc": "management",\n "icmp": {\n "type": null,\n "code": null\n },\n "tcp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n },\n "udp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n }\n },\n {\n "action": "allow",\n "destination": "10.0.0.0/8",\n "direction": "inbound",\n "name": "allow-all-network-inbound",\n "source": "10.0.0.0/8",\n "acl": "management",\n "vpc": "management",\n "icmp": {\n "type": null,\n "code": null\n },\n "tcp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n },\n "udp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n }\n },\n {\n "action": "allow",\n "destination": "10.0.0.0/8",\n "direction": "outbound",\n "name": "allow-all-network-outbound",\n "source": "10.0.0.0/8",\n "acl": "management",\n "vpc": "management",\n "icmp": {\n "type": null,\n "code": null\n },\n "tcp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n },\n "udp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n }\n }\n ]\n }\n ]\n },\n {\n "cos": "cos",\n "bucket": "workload-bucket",\n "name": "workload",\n "resource_group": "workload-rg",\n "classic_access": false,\n "manual_address_prefix_management": true,\n "default_network_acl_name": null,\n "default_security_group_name": null,\n "default_routing_table_name": null,\n "publicGateways": [],\n "address_prefixes": [\n {\n "vpc": "workload",\n "zone": 1,\n "name": "workload-zone-1",\n "cidr": "10.40.0.0/22"\n },\n {\n "vpc": "workload",\n "zone": 2,\n "name": "workload-zone-2",\n "cidr": "10.50.0.0/22"\n },\n {\n "vpc": "workload",\n "zone": 3,\n "name": "workload-zone-3",\n "cidr": "10.60.0.0/22"\n }\n ],\n "subnets": [\n {\n "vpc": "workload",\n "zone": 1,\n "cidr": "10.40.0.0/28",\n "name": "vsi-zone-1",\n "network_acl": "workload",\n "resource_group": "workload-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "workload",\n "zone": 2,\n "cidr": "10.50.0.0/28",\n "name": "vsi-zone-2",\n "network_acl": "workload",\n "resource_group": "workload-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "workload",\n "zone": 3,\n "cidr": "10.60.0.0/28",\n "name": "vsi-zone-3",\n "network_acl": "workload",\n "resource_group": "workload-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "workload",\n "zone": 1,\n "cidr": "10.40.0.32/29",\n "name": "vpe-zone-1",\n "network_acl": "workload",\n "resource_group": "workload-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "workload",\n "zone": 2,\n "cidr": "10.50.0.32/29",\n "name": "vpe-zone-2",\n "network_acl": "workload",\n "resource_group": "workload-rg",\n "public_gateway": false,\n "has_prefix": false\n },\n {\n "vpc": "workload",\n "zone": 3,\n "cidr": "10.60.0.32/29",\n "name": "vpe-zone-3",\n "network_acl": "workload",\n "resource_group": "workload-rg",\n "public_gateway": false,\n "has_prefix": false\n }\n ],\n "public_gateways": [],\n "acls": [\n {\n "resource_group": "workload-rg",\n "name": "workload",\n "vpc": "workload",\n "rules": [\n {\n "action": "allow",\n "destination": "10.0.0.0/8",\n "direction": "inbound",\n "name": "allow-ibm-inbound",\n "source": "161.26.0.0/16",\n "acl": "workload",\n "vpc": "workload",\n "icmp": {\n "type": null,\n "code": null\n },\n "tcp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n },\n "udp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n }\n },\n {\n "action": "allow",\n "source": "10.0.0.0/8",\n "direction": "outbound",\n "name": "allow-ibm-outbound",\n "destination": "161.26.0.0/16",\n "acl": "workload",\n "vpc": "workload",\n "icmp": {\n "type": null,\n "code": null\n },\n "tcp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n },\n "udp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n }\n },\n {\n "action": "allow",\n "destination": "10.0.0.0/8",\n "direction": "inbound",\n "name": "allow-all-network-inbound",\n "source": "10.0.0.0/8",\n "acl": "workload",\n "vpc": "workload",\n "icmp": {\n "type": null,\n "code": null\n },\n "tcp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n },\n "udp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n }\n },\n {\n "action": "allow",\n "destination": "10.0.0.0/8",\n "direction": "outbound",\n "name": "allow-all-network-outbound",\n "source": "10.0.0.0/8",\n "acl": "workload",\n "vpc": "workload",\n "icmp": {\n "type": null,\n "code": null\n },\n "tcp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n },\n "udp": {\n "port_min": null,\n "port_max": null,\n "source_port_min": null,\n "source_port_max": null\n }\n }\n ]\n }\n ]\n }\n ],\n "vpn_gateways": [\n {\n "name": "management-gateway",\n "resource_group": "management-rg",\n "subnet": "vpn-zone-1",\n "vpc": "management"\n }\n ],\n "vpn_servers": [],\n "vsi": [\n {\n "kms": "kms",\n "encryption_key": "vsi-volume-key",\n "image": "ibm-ubuntu-22-04-1-minimal-amd64-1",\n "profile": "cx2-4x8",\n "name": "management-server",\n "security_groups": [\n "management-vsi"\n ],\n "ssh_keys": [\n "ssh-key"\n ],\n "subnets": [\n "vsi-zone-1",\n "vsi-zone-2",\n "vsi-zone-3"\n ],\n "vpc": "management",\n "vsi_per_subnet": 2,\n "resource_group": "management-rg",\n "override_vsi_name": null,\n "user_data": "",\n "network_interfaces": [],\n "volumes": []\n }\n ],\n "classic_ssh_keys": [],\n "classic_vlans": []\n}', }, { data: ' Apache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n1. Definitions.\n\n"License" shall mean the terms and conditions for use, reproduction,\nand distribution as defined by Sections 1 through 9 of this document.\n\n"Licensor" shall mean the copyright owner or entity authorized by\nthe copyright owner that is granting the License.\n\n"Legal Entity" shall mean the union of the acting entity and all\nother entities that control, are controlled by, or are under common\ncontrol with that entity. For the purposes of this definition,\n"control" means (i) the power, direct or indirect, to cause the\ndirection or management of such entity, whether by contract or\notherwise, or (ii) ownership of fifty percent (50%) or more of the\noutstanding shares, or (iii) beneficial ownership of such entity.\n\n"You" (or "Your") shall mean an individual or Legal Entity\nexercising permissions granted by this License.\n\n"Source" form shall mean the preferred form for making modifications,\nincluding but not limited to software source code, documentation\nsource, and configuration files.\n\n"Object" form shall mean any form resulting from mechanical\ntransformation or translation of a Source form, including but\nnot limited to compiled object code, generated documentation,\nand conversions to other media types.\n\n"Work" shall mean the work of authorship, whether in Source or\nObject form, made available under the License, as indicated by a\ncopyright notice that is included in or attached to the work\n(an example is provided in the Appendix below).\n\n"Derivative Works" shall mean any work, whether in Source or Object\nform, that is based on (or derived from) the Work and for which the\neditorial revisions, annotations, elaborations, or other modifications\nrepresent, as a whole, an original work of authorship. For the purposes\nof this License, Derivative Works shall not include works that remain\nseparable from, or merely link (or bind by name) to the interfaces of,\nthe Work and Derivative Works thereof.\n\n"Contribution" shall mean any work of authorship, including\nthe original version of the Work and any modifications or additions\nto that Work or Derivative Works thereof, that is intentionally\nsubmitted to Licensor for inclusion in the Work by the copyright owner\nor by an individual or Legal Entity authorized to submit on behalf of\nthe copyright owner. For the purposes of this definition, "submitted"\nmeans any form of electronic, verbal, or written communication sent\nto the Licensor or its representatives, including but not limited to\ncommunication on electronic mailing lists, source code control systems,\nand issue tracking systems that are managed by, or on behalf of, the\nLicensor for the purpose of discussing and improving the Work, but\nexcluding communication that is conspicuously marked or otherwise\ndesignated in writing by the copyright owner as "Not a Contribution."\n\n"Contributor" shall mean Licensor and any individual or Legal Entity\non behalf of whom a Contribution has been received by Licensor and\nsubsequently incorporated within the Work.\n\n2. Grant of Copyright License. Subject to the terms and conditions of\nthis License, each Contributor hereby grants to You a perpetual,\nworldwide, non-exclusive, no-charge, royalty-free, irrevocable\ncopyright license to reproduce, prepare Derivative Works of,\npublicly display, publicly perform, sublicense, and distribute the\nWork and such Derivative Works in Source or Object form.\n\n3. Grant of Patent License. Subject to the terms and conditions of\nthis License, each Contributor hereby grants to You a perpetual,\nworldwide, non-exclusive, no-charge, royalty-free, irrevocable\n(except as stated in this section) patent license to make, have made,\nuse, offer to sell, sell, import, and otherwise transfer the Work,\nwhere such license applies only to those patent claims licensable\nby such Contributor that are necessarily infringed by their\nContribution(s) alone or by combination of their Contribution(s)\nwith the Work to which such Contribution(s) was submitted. If You\ninstitute patent litigation against any entity (including a\ncross-claim or counterclaim in a lawsuit) alleging that the Work\nor a Contribution incorporated within the Work constitutes direct\nor contributory patent infringement, then any patent licenses\ngranted to You under this License for that Work shall terminate\nas of the date such litigation is filed.\n\n4. Redistribution. You may reproduce and distribute copies of the\nWork or Derivative Works thereof in any medium, with or without\nmodifications, and in Source or Object form, provided that You\nmeet the following conditions:\n\n(a) You must give any other recipients of the Work or\nDerivative Works a copy of this License; and\n\n(b) You must cause any modified files to carry prominent notices\nstating that You changed the files; and\n\n(c) You must retain, in the Source form of any Derivative Works\nthat You distribute, all copyright, patent, trademark, and\nattribution notices from the Source form of the Work,\nexcluding those notices that do not pertain to any part of\nthe Derivative Works; and\n\n(d) If the Work includes a "NOTICE" text file as part of its\ndistribution, then any Derivative Works that You distribute must\ninclude a readable copy of the attribution notices contained\nwithin such NOTICE file, excluding those notices that do not\npertain to any part of the Derivative Works, in at least one\nof the following places: within a NOTICE text file distributed\nas part of the Derivative Works; within the Source form or\ndocumentation, if provided along with the Derivative Works; or,\nwithin a display generated by the Derivative Works, if and\nwherever such third-party notices normally appear. The contents\nof the NOTICE file are for informational purposes only and\ndo not modify the License. You may add Your own attribution\nnotices within Derivative Works that You distribute, alongside\nor as an addendum to the NOTICE text from the Work, provided\nthat such additional attribution notices cannot be construed\nas modifying the License.\n\nYou may add Your own copyright statement to Your modifications and\nmay provide additional or different license terms and conditions\nfor use, reproduction, or distribution of Your modifications, or\nfor any such Derivative Works as a whole, provided Your use,\nreproduction, and distribution of the Work otherwise complies with\nthe conditions stated in this License.\n\n5. Submission of Contributions. Unless You explicitly state otherwise,\nany Contribution intentionally submitted for inclusion in the Work\nby You to the Licensor shall be under the terms and conditions of\nthis License, without any additional terms or conditions.\nNotwithstanding the above, nothing herein shall supersede or modify\nthe terms of any separate license agreement you may have executed\nwith Licensor regarding such Contributions.\n\n6. Trademarks. This License does not grant permission to use the trade\nnames, trademarks, service marks, or product names of the Licensor,\nexcept as required for reasonable and customary use in describing the\norigin of the Work and reproducing the content of the NOTICE file.\n\n7. Disclaimer of Warranty. Unless required by applicable law or\nagreed to in writing, Licensor provides the Work (and each\nContributor provides its Contributions) on an "AS IS" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\nimplied, including, without limitation, any warranties or conditions\nof TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\nPARTICULAR PURPOSE. You are solely responsible for determining the\nappropriateness of using or redistributing the Work and assume any\nrisks associated with Your exercise of permissions under this License.\n\n8. Limitation of Liability. In no event and under no legal theory,\nwhether in tort (including negligence), contract, or otherwise,\nunless required by applicable law (such as deliberate and grossly\nnegligent acts) or agreed to in writing, shall any Contributor be\nliable to You for damages, including any direct, indirect, special,\nincidental, or consequential damages of any character arising as a\nresult of this License or out of the use or inability to use the\nWork (including but not limited to damages for loss of goodwill,\nwork stoppage, computer failure or malfunction, or any and all\nother commercial damages or losses), even if such Contributor\nhas been advised of the possibility of such damages.\n\n9. Accepting Warranty or Additional Liability. While redistributing\nthe Work or Derivative Works thereof, You may choose to offer,\nand charge a fee for, acceptance of support, warranty, indemnity,\nor other liability obligations and/or rights consistent with this\nLicense. However, in accepting such obligations, You may act only\non Your own behalf and on Your sole responsibility, not on behalf\nof any other Contributor, and only if You agree to indemnify,\ndefend, and hold each Contributor harmless for any liability\nincurred by, or claims asserted against, such Contributor by reason\nof your accepting any such warranty or additional liability.\n\nEND OF TERMS AND CONDITIONS\n\nAPPENDIX: How to apply the Apache License to your work.\n\nTo apply the Apache License to your work, attach the following\nboilerplate notice, with the fields enclosed by brackets "[]"\nreplaced with your own identifying information. (Don\'t include\nthe brackets!) The text should be enclosed in the appropriate\ncomment syntax for the file format. We also recommend that a\nfile or class name and description of purpose be included on the\nsame "printed page" as the copyright notice for easier\nidentification within third-party archives.\n\nCopyright [yyyy] [name of copyright owner]\n\nLicensed under the Apache License, Version 2.0 (the "License");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an "AS IS" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n', @@ -288,7 +288,7 @@ describe("craig api", () => { ' "enable_classic": false,\n' + ' "dynamic_subnets": true,\n' + ' "enable_power_vs": false,\n' + - ' "craig_version": "1.11.0",\n' + + ' "craig_version": "1.11.1",\n' + ' "power_vs_zones": [],\n' + ' "power_vs_high_availability": false\n' + " },\n" + diff --git a/unit-tests/forms/wizard.test.js b/unit-tests/forms/wizard.test.js index 48f4f63c..ffafb096 100644 --- a/unit-tests/forms/wizard.test.js +++ b/unit-tests/forms/wizard.test.js @@ -57,7 +57,7 @@ describe("setup wizard", () => { enable_power_vs: false, enable_classic: false, power_vs_zones: [], - craig_version: "1.11.0", + craig_version: "1.11.1", power_vs_high_availability: false, }, resource_groups: [ @@ -967,7 +967,7 @@ describe("setup wizard", () => { enable_power_vs: false, enable_classic: false, power_vs_zones: [], - craig_version: "1.11.0", + craig_version: "1.11.1", power_vs_high_availability: false, }, resource_groups: [ @@ -1876,7 +1876,7 @@ describe("setup wizard", () => { enable_power_vs: false, enable_classic: false, power_vs_zones: [], - craig_version: "1.11.0", + craig_version: "1.11.1", power_vs_high_availability: false, }, resource_groups: [ @@ -2381,7 +2381,7 @@ describe("setup wizard", () => { enable_power_vs: false, enable_classic: false, power_vs_zones: [], - craig_version: "1.11.0", + craig_version: "1.11.1", power_vs_high_availability: false, }, resource_groups: [ @@ -2877,7 +2877,7 @@ describe("setup wizard", () => { enable_power_vs: false, enable_classic: false, power_vs_zones: [], - craig_version: "1.11.0", + craig_version: "1.11.1", power_vs_high_availability: false, }, resource_groups: [ @@ -3450,7 +3450,7 @@ describe("setup wizard", () => { enable_power_vs: false, enable_classic: false, power_vs_zones: [], - craig_version: "1.11.0", + craig_version: "1.11.1", }, resource_groups: [ { use_prefix: true, name: "service-rg", use_data: false }, @@ -3616,7 +3616,7 @@ describe("setup wizard", () => { enable_power_vs: false, enable_classic: false, power_vs_zones: [], - craig_version: "1.11.0", + craig_version: "1.11.1", power_vs_high_availability: false, }, resource_groups: [ @@ -4181,7 +4181,7 @@ describe("setup wizard", () => { enable_power_vs: false, enable_classic: false, power_vs_zones: [], - craig_version: "1.11.0", + craig_version: "1.11.1", power_vs_high_availability: false, }, resource_groups: [ @@ -4720,7 +4720,7 @@ describe("setup wizard", () => { enable_power_vs: false, enable_classic: false, power_vs_zones: [], - craig_version: "1.11.0", + craig_version: "1.11.1", power_vs_high_availability: false, }, resource_groups: [ @@ -5264,7 +5264,7 @@ describe("setup wizard", () => { enable_classic: false, enable_classic: false, power_vs_zones: [], - craig_version: "1.11.0", + craig_version: "1.11.1", }, resource_groups: [ { use_prefix: true, name: "service-rg", use_data: false }, @@ -5750,7 +5750,7 @@ describe("setup wizard", () => { enable_power_vs: true, enable_classic: false, power_vs_zones: ["dal10"], - craig_version: "1.11.0", + craig_version: "1.11.1", power_vs_high_availability: false, }, resource_groups: [ @@ -6246,7 +6246,7 @@ describe("setup wizard", () => { enable_power_vs: true, enable_classic: false, power_vs_zones: ["dal10"], - craig_version: "1.11.0", + craig_version: "1.11.1", power_vs_high_availability: false, }, resource_groups: [ diff --git a/unit-tests/json-to-iac/power-vs-instances.test.js b/unit-tests/json-to-iac/power-vs-instances.test.js index 043e093b..1b74f36f 100644 --- a/unit-tests/json-to-iac/power-vs-instances.test.js +++ b/unit-tests/json-to-iac/power-vs-instances.test.js @@ -19,6 +19,7 @@ describe("Power VS Instances", () => { name: "dev-nw", }, ], + primary_subnet: "dev-nw", pi_memory: "4", pi_processors: "2", pi_proc_type: "shared", @@ -66,6 +67,7 @@ resource "ibm_pi_instance" "example_workspace_instance_test" { name: "dev-nw", }, ], + primary_subnet: "dev-nw", pi_memory: "4", pi_processors: "2", pi_proc_type: "shared", @@ -179,6 +181,7 @@ resource "ibm_pi_instance" "example_workspace_instance_test" { name: "dev-nw", }, ], + primary_subnet: "dev-nw", pi_memory: "4", pi_processors: "2", pi_proc_type: "shared", @@ -240,6 +243,7 @@ resource "ibm_pi_instance" "example_workspace_instance_test" { name: "dev-nw", }, ], + primary_subnet: "dev-nw", pi_memory: "4", pi_processors: "2", pi_proc_type: "shared", @@ -354,6 +358,7 @@ resource "ibm_pi_instance" "example_workspace_instance_test" { name: "dev-nw", }, ], + primary_subnet: "dev-nw", pi_memory: "4", pi_processors: "2", pi_proc_type: "shared", @@ -469,6 +474,7 @@ resource "ibm_pi_instance" "example_workspace_instance_test" { name: "dev-nw", }, ], + primary_subnet: "dev-nw", pi_memory: "4", pi_processors: "2", pi_proc_type: "shared", @@ -584,6 +590,7 @@ resource "ibm_pi_instance" "example_workspace_instance_test" { name: "dev-nw", }, ], + primary_subnet: "dev-nw", pi_memory: "4", pi_processors: "2", pi_proc_type: "shared", @@ -679,6 +686,7 @@ resource "ibm_pi_instance" "example_workspace_instance_test" { ip_address: "1.2.3.4", }, ], + primary_subnet: "dev-nw", pi_memory: "4", pi_processors: "2", pi_proc_type: "shared", @@ -725,6 +733,7 @@ resource "ibm_pi_instance" "example_workspace_instance_test" { name: "dev-nw", }, ], + primary_subnet: "dev-nw", pi_memory: "4", pi_processors: "2", pi_proc_type: "shared", @@ -820,6 +829,7 @@ resource "ibm_pi_instance" "example_workspace_instance_test" { ip_address: "", }, ], + primary_subnet: "dev-nw", zone: "dal10", pi_health_status: "OK", pi_proc_type: "shared", @@ -876,6 +886,7 @@ resource "ibm_pi_instance" "example_workspace_instance_test" { ip_address: "", }, ], + primary_subnet: "dev-nw", zone: "dal10", pi_health_status: "OK", pi_proc_type: "shared", @@ -931,6 +942,7 @@ resource "ibm_pi_instance" "example_workspace_instance_test" { ip_address: "", }, ], + primary_subnet: "dev-nw", zone: "dal10", pi_health_status: "OK", pi_proc_type: "shared", @@ -988,6 +1000,7 @@ resource "ibm_pi_instance" "example_workspace_instance_frog" { name: "dev-nw", }, ], + primary_subnet: "dev-nw", image: "VTL-FalconStor-10_03-001", pi_memory: "4", pi_processors: "2", @@ -1042,6 +1055,7 @@ resource "ibm_pi_instance" "example_falconstor_vtl_test" { ip_address: "", }, ], + primary_subnet: "dev-nw", pi_memory: "4", pi_processors: "2", pi_proc_type: "shared", @@ -1099,6 +1113,7 @@ resource "ibm_pi_instance" "example_workspace_instance_test" { name: "dev-nw", }, ], + primary_subnet: "dev-nw", pi_memory: "4", pi_processors: "2", pi_proc_type: "shared", @@ -1154,6 +1169,7 @@ resource "ibm_pi_instance" "example_workspace_instance_test" { name: "dev-nw", }, ], + primary_subnet: "dev-nw", pi_memory: "4", pi_processors: "2", pi_proc_type: "shared",