Skip to content

Commit 9168442

Browse files
committed
Merge remote-tracking branch 'internal/main'
2 parents ff1eb85 + f8f9d2c commit 9168442

29 files changed

+319
-213
lines changed

.docs/powervs-poc.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ Set the VPN Server values using the following table as a guide.
143143
| Authentication method | Username and Certificate |
144144
| Certificate CRN | The CRN of the Secrets Manager secret containing the certificate for the VPN Server. |
145145
| Client CA CRN | The CRN of the Secrets Manager secret containing the certificate for the VPN client. |
146-
| Client CIDR Pool | Specify a network CIDR that does not conflict with any on-premises network, the VPC network, or the Power VS network. The CIDR should also be a subnet of 10.0.0.0/8 to avoid additional security group changes. |
146+
| Client CIDR Pool | Specify a network CIDR that does not conflict with any on-premises network, the VPC network, or the Power VS network. The prefix length must be between 9 and 22 inclusive. The CIDR should also be a subnet of `10.0.0.0/8` to avoid additional security group and routing table changes. For example `10.60.0.0/22` does not conflict with the default VPC, Power VS, or on-premises networks in the template. |
147147
| Port | 443 |
148148
| Protocol | UDP |
149149
| Enable split tunneling | True is recommended |

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## 1.16.1
6+
7+
### Upgrade Notes
8+
9+
- When creating a GRE Tunnel a Remote Gateway IP and Local Gateway IP must be entered in the GRE Tunnel Form to allow for Terraform to be generated successfully
10+
11+
### Features
12+
13+
- Added documentation for Power VS Shared Processor Pools and Power VS Placement Groups
14+
515
## 1.16.0
616

717
### Features

client/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

client/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "craig",
3-
"version": "1.16.0",
3+
"version": "1.16.1",
44
"private": true,
55
"license": "Apache-2.0",
66
"scripts": {

client/src/components/forms/dynamic-form/SubFormOverrideTile.js

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,12 @@
11
import React from "react";
22
import PropTypes from "prop-types";
3-
import {
4-
ClassicDisabledTile,
5-
CraigEmptyResourceTile,
6-
NoClassicGatewaysTile,
7-
NoDomainsTile,
8-
} from "./tiles";
3+
import { CraigEmptyResourceTile, NoDomainsTile } from "./tiles";
94

105
export const SubFormOverrideTile = (props) => {
116
let jsonField = props.subForm.jsonField;
127
return jsonField === "dns_records" &&
138
props.componentProps.data.domains.length === 0 ? (
149
<NoDomainsTile />
15-
) : jsonField === "gre_tunnels" &&
16-
!props.componentProps.craig.store.json._options.enable_classic ? (
17-
ClassicDisabledTile(true)
18-
) : jsonField === "gre_tunnels" &&
19-
props.componentProps.craig.store.json.classic_gateways.length === 0 ? (
20-
<NoClassicGatewaysTile />
2110
) : (
2211
// have to pass in tile here otherwise will not render
2312
<CraigEmptyResourceTile

client/src/components/pages/CraigForms.js

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1432,17 +1432,10 @@ function craigForms(craig) {
14321432
name: "GRE Tunnels",
14331433
addText: "Create a GRE Tunnel",
14341434
jsonField: "gre_tunnels",
1435-
toggleFormFieldName: "gateway",
1436-
hideFormTitleButton: function (stateData, componentProps) {
1437-
return (
1438-
!componentProps.craig.store.json._options.enable_classic ||
1439-
componentProps.craig.store.json.classic_gateways.length === 0
1440-
);
1441-
},
14421435
form: {
14431436
groups: [
14441437
{
1445-
gateway: craig.transit_gateways.gre_tunnels.gateway,
1438+
name: craig.transit_gateways.gre_tunnels.name,
14461439
zone: craig.transit_gateways.gre_tunnels.zone,
14471440
},
14481441
{
@@ -1451,6 +1444,12 @@ function craigForms(craig) {
14511444
remote_tunnel_ip:
14521445
craig.transit_gateways.gre_tunnels.remote_tunnel_ip,
14531446
},
1447+
{
1448+
local_gateway_ip:
1449+
craig.transit_gateways.gre_tunnels.local_gateway_ip,
1450+
remote_gateway_ip:
1451+
craig.transit_gateways.gre_tunnels.remote_gateway_ip,
1452+
},
14541453
{
14551454
remote_bgp_asn:
14561455
craig.transit_gateways.gre_tunnels.remote_bgp_asn,

client/src/components/pages/diagrams/TransitGatewaysMap.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,12 +124,12 @@ export const TransitGatewaysMap = (props) => {
124124
>
125125
{tgw.gre_tunnels.map((tunnel, tunnelIndex) => (
126126
<DeploymentIcon
127+
small
127128
key={tgw.name + "-connection-" + tunnelIndex}
128-
item={{
129-
name: tunnel.gateway,
130-
}}
129+
item={tunnel}
131130
itemName="gre_tunnels"
132131
icon={FirewallClassic}
132+
craig={props.craig}
133133
/>
134134
))}
135135
</CraigFormGroup>

client/src/lib/docs/docs.json

Lines changed: 61 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2540,17 +2540,74 @@
25402540
"power_shared_processor_pools": {
25412541
"content": [
25422542
{
2543-
"text": "NYI"
2543+
"text": "A shared processor Pool (SPP) is a pool of processor capacity that is shared between a group of virtual server instances. Unlike a virtual server instance that has a dedicated and defined maximum amount of processing capacity, you can set the reserved cores in SPP that are guaranteed to be available at the pool level. To provision a Power Shared Processor Pool, first ensure that Power VS is enabled in the Options page, along with the zone(s) you would like to provision Power VS resources in. Then create a Power VS workspace which is required before creating a Power Shared Processor Pool."
2544+
},
2545+
{
2546+
"text": "Refer to the following table for more information on Power Shared Processor Pool fields:"
2547+
},
2548+
{
2549+
"table": [
2550+
["_headers", "Field", "Description"],
2551+
[
2552+
"Name",
2553+
"Specify a Shared Processor Pool name that is unique within your cloud account. Use a name of minimum 2 characters and a maximum of 12 characters. Alphanumeric characters are not allowed."
2554+
],
2555+
["Workspace", "Specify the Power Workspace."],
2556+
[
2557+
"System Type",
2558+
"Specify the machine type. The machine type that you select determines the number of cores and memory that is available. For more information about machine types, see Hardware Specification documentation."
2559+
],
2560+
[
2561+
"Reserved Cores",
2562+
"The number of reserved cores based on resource availability and allocation. There is a core-to-vCPU ratio of 1:1 by default."
2563+
]
2564+
]
25442565
}
25452566
],
2546-
"relatedLinks": []
2567+
"relatedLinks": [
2568+
[
2569+
"https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-manage-SPP",
2570+
"Managing Shared Processor Pools"
2571+
],
2572+
[
2573+
"https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-about-virtual-server#hardware-specifications",
2574+
"IBM Power Hardware Specifications"
2575+
]
2576+
],
2577+
"last_updated": "05/31/2024"
25472578
},
25482579
"power_placement_groups": {
25492580
"content": [
25502581
{
2551-
"text": "NYI"
2582+
"text": "Power server placement groups provide you control over the host or server on which a new virtual machine (VM) is placed. By using server placement groups, you can build high availability within a data center. To provision a Power Placement Group, first ensure that Power VS is enabled in the Options page, along with the zone(s) you would like to provision Power VS resources in. Then create a Power VS workspace which is required before creating a Power Placement Group."
2583+
},
2584+
{
2585+
"text": "You can create a maximum of 25 placement groups. If you need to create more than 25 placement groups, raise a support ticket to increase the maximum limit."
2586+
},
2587+
{
2588+
"text": "Refer to the following table for more information on Power Server Placement Group fields:"
2589+
},
2590+
{
2591+
"table": [
2592+
["_headers", "Field", "Description"],
2593+
[
2594+
"Name",
2595+
"Specify a Placement Group name that is unique within your cloud account. Alphanumeric characters are not allowed."
2596+
],
2597+
["Workspace", "Specify the Power Workspace."],
2598+
[
2599+
"Placement Group Policy",
2600+
"Specify an affinity or anti-affinity policy to each VM instance within a server placement group. When you set a placement group with an affinity policy, all VMs in that placement group are launched on the same server. When you set a placement group with an anti-affinity policy, all VMs in that placement group are launched on different servers."
2601+
]
2602+
]
25522603
}
25532604
],
2554-
"relatedLinks": []
2605+
"relatedLinks": [
2606+
[
2607+
"https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-placement-groups",
2608+
"Managing Server Placement Groups"
2609+
]
2610+
],
2611+
"last_updated": "05/31/2024"
25552612
}
25562613
}

client/src/lib/docs/release-notes.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,14 @@
11
[
2+
{
3+
"version": "1.16.1",
4+
"features": [
5+
"Added documentation for Power VS Shared Processor Pools and Power VS Placement Groups"
6+
],
7+
"fixes": [],
8+
"upgrade_notes": [
9+
"When creating a GRE Tunnel a Remote Gateway IP and Local Gateway IP must be entered in the GRE Tunnel Form to allow for Terraform to be generated successfully"
10+
]
11+
},
212
{
313
"version": "1.16.0",
414
"features": [

client/src/lib/docs/templates/oracle-rac.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"dynamic_subnets": false,
1212
"enable_power_vs": true,
1313
"power_vs_zones": ["dal12", "dal10", "us-south"],
14-
"craig_version": "1.16.0",
14+
"craig_version": "1.16.1",
1515
"power_vs_high_availability": false,
1616
"no_vpn_secrets_manager_auth": false,
1717
"power_vs_ha_zone_1": null,

client/src/lib/docs/templates/oracle-si.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"dynamic_subnets": false,
1111
"enable_power_vs": true,
1212
"power_vs_zones": ["dal12", "dal10", "us-south"],
13-
"craig_version": "1.16.0",
13+
"craig_version": "1.16.1",
1414
"power_vs_high_availability": false,
1515
"no_vpn_secrets_manager_auth": false,
1616
"enable_classic": false,

client/src/lib/docs/templates/power-poc-quick-start.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"enable_power_vs": true,
1111
"enable_classic": false,
1212
"power_vs_zones": ["dal10"],
13-
"craig_version": "1.16.0",
13+
"craig_version": "1.16.1",
1414
"power_vs_high_availability": false,
1515
"template": "Power VS POC",
1616
"fs_cloud": false,

client/src/lib/docs/templates/power-sap-hana.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"dynamic_subnets": false,
1212
"enable_power_vs": true,
1313
"power_vs_zones": ["dal10"],
14-
"craig_version": "1.16.0",
14+
"craig_version": "1.16.1",
1515
"power_vs_high_availability": false,
1616
"template": "Power VS SAP Hana",
1717
"no_vpn_secrets_manager_auth": false,

client/src/lib/docs/templates/quick-start-power.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"enable_power_vs": true,
1111
"enable_classic": false,
1212
"power_vs_zones": ["dal12"],
13-
"craig_version": "1.16.0",
13+
"craig_version": "1.16.1",
1414
"power_vs_high_availability": false,
1515
"fs_cloud": false,
1616
"no_vpn_secrets_manager_auth": false,

client/src/lib/docs/templates/vpn-as-a-service.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"dynamic_subnets": false,
1111
"enable_power_vs": true,
1212
"power_vs_zones": ["dal12", "dal10", "us-south"],
13-
"craig_version": "1.16.0",
13+
"craig_version": "1.16.1",
1414
"advanced_subnets": true,
1515
"power_vs_high_availability": false,
1616
"no_vpn_secrets_manager_auth": false,

client/src/lib/json-to-iac/transit-gateway.js

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ function formatTgw(tgw, config) {
7373
function ibmTgConnection(connection, tgw) {
7474
let connectionName = connection.power
7575
? connection.power
76-
: connection.gateway
77-
? connection.gateway + " unbound gre"
76+
: connection.gateway || connection.local_tunnel_ip
77+
? (connection.gateway || connection.name) + " unbound gre"
7878
: connection.crn
7979
? connection.crn.replace(/.+vpc:/g, "")
8080
: connection.classic
@@ -103,19 +103,20 @@ function ibmTgConnection(connection, tgw) {
103103
"id",
104104
tgw.use_data
105105
),
106-
network_type: connection.gateway
107-
? "unbound_gre_tunnel"
108-
: connection.power
109-
? "power_virtual_server"
110-
: connection.classic
111-
? "classic"
112-
: "vpc",
106+
network_type:
107+
connection.gateway || connection.local_tunnel_ip
108+
? "unbound_gre_tunnel"
109+
: connection.power
110+
? "power_virtual_server"
111+
: connection.classic
112+
? "classic"
113+
: "vpc",
113114
name: connectionResourceName,
114115
network_id: networkId,
115116
timeouts: timeouts("30m", "", "30m"),
116117
},
117118
};
118-
if (connection.gateway) {
119+
if (connection.gateway || connection.local_tunnel_ip) {
119120
connectionData.data.base_network_type = "classic";
120121
connectionData.data.remote_bgp_asn = isNullOrEmptyString(
121122
connection.remote_bgp_asn,
@@ -125,11 +126,7 @@ function ibmTgConnection(connection, tgw) {
125126
: connection.remote_bgp_asn;
126127
connectionData.data.zone = "${var.region}-" + connection.zone;
127128
["local_gateway_ip", "remote_gateway_ip"].forEach((field) => {
128-
connectionData.data[
129-
field
130-
] = `\${ibm_network_gateway.classic_gateway_${snakeCase(
131-
connection.gateway
132-
)}.${field === "local_gateway_ip" ? "private" : "public"}_ipv4_address}`;
129+
connectionData.data[field] = connection[field];
133130
});
134131
connectionData.data.local_tunnel_ip = connection.local_tunnel_ip;
135132
connectionData.data.remote_tunnel_ip = connection.remote_tunnel_ip;

client/src/lib/state/reusable-fields.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,10 @@ function hasDuplicateName(field, stateData, componentProps, overrideField) {
9898
"dns_records",
9999
"name"
100100
);
101-
} else if (field === "prefix_filters") {
101+
} else if (contains(["prefix_filters", "gre_tunnels"], field)) {
102102
allOtherNames = nestedSplat(
103103
componentProps.craig.store.json.transit_gateways,
104-
"prefix_filters",
104+
field,
105105
"name"
106106
);
107107
} else if (field === "appid_key") {

0 commit comments

Comments
 (0)