Allow configure Subnet CIDR mask
Some organisations already have predefined Network Stack and different
CIDR subnet mask than the default one.
Feature: Issue 13327
Change-Id: Ia7d32a7a5aacf4c96202151f8600bdb1c3b0ecb0
diff --git a/Configuration.md b/Configuration.md
index 3e5f89b..0e98ad7 100644
--- a/Configuration.md
+++ b/Configuration.md
@@ -47,8 +47,12 @@
If not set, create a new Internet Gateway
* `VPC_ID`: Optional. Id of the existing VPC.
If not set, create a new VPC.
+* `VPC_CIDR`: Optional. CIDR mask for the VPC.
+ `10.0.0.0/16` by default.
* `SUBNET_ID`: Optional. Id of the existing Subnet.
If not set, create a new Network Stack.
+* `SUBNET_CIDR`: Optional. CIDR mask of the Subnet.
+ `10.0.0.0/24` by default.
* LOAD_BALANCER_SCHEME: Optional. The Load Balancer scheme type. `internet-facing` by default.
Allowed values: internal, internet-facing
diff --git a/common-templates/cf-gerrit-network-stack.yml b/common-templates/cf-gerrit-network-stack.yml
index 8017fb2..8a779be 100644
--- a/common-templates/cf-gerrit-network-stack.yml
+++ b/common-templates/cf-gerrit-network-stack.yml
@@ -14,18 +14,14 @@
Type: String
Default: ""
Description: Subnet id. If empty Network Stack will be created
-Mappings:
- # Hard values for the subnet masks. These masks define
- # the range of internal IP addresses that can be assigned.
- # The VPC can have all IP's from 10.0.0.0 to 10.0.255.255
- # There is the subnet which cover the ranges:
- #
- # 10.0.0.0 - 10.0.0.255
- SubnetConfig:
- VPC:
- CIDR: '10.0.0.0/16'
- PublicOne:
- CIDR: '10.0.0.0/24'
+ SubnetCIDR:
+ Type: String
+ Default: 10.0.0.0/24
+ Description: Subnet CIDR.
+ VPCCIDR:
+ Type: String
+ Default: 10.0.0.0/16
+ Description: VPC CIDR.
Conditions:
CreateVPC: !Equals [!Ref VPCIdProp, ""]
@@ -40,7 +36,7 @@
Properties:
EnableDnsSupport: true
EnableDnsHostnames: true
- CidrBlock: !FindInMap ['SubnetConfig', 'VPC', 'CIDR']
+ CidrBlock: !Ref VPCCIDR
# Public subnets, where containers can have public IP addresses
PublicSubnetOne:
@@ -52,7 +48,7 @@
- 0
- Fn::GetAZs: {Ref: 'AWS::Region'}
VpcId: !If [CreateVPC, !Ref 'VPC', !Ref 'VPCIdProp' ]
- CidrBlock: !FindInMap ['SubnetConfig', 'PublicOne', 'CIDR']
+ CidrBlock: !Ref 'SubnetCIDR'
MapPublicIpOnLaunch: true
# Setup networking resources for the public subnets. Containers
@@ -92,4 +88,4 @@
PublicSubnetOneRef:
Value: !If [CreateNetworkStack, !Ref 'PublicSubnetOne', !Ref 'SubnetIdProp' ]
PublicOneCIDR:
- Value: !FindInMap ['SubnetConfig', 'PublicOne', 'CIDR']
+ Value: !Ref 'SubnetCIDR'
diff --git a/dual-master/Makefile b/dual-master/Makefile
index d7ec7f7..47c639f 100644
--- a/dual-master/Makefile
+++ b/dual-master/Makefile
@@ -49,6 +49,12 @@
ifdef FILESYSTEM_PROVISIONED_THROUGHPUT_IN_MIBPS
$(eval CLUSTER_OPTIONAL_PARAMS := $(CLUSTER_OPTIONAL_PARAMS) ParameterKey=ProvisionedThroughputInMibps,ParameterValue=$(FILESYSTEM_PROVISIONED_THROUGHPUT_IN_MIBPS))
endif
+ifdef SUBNET_CIDR
+ $(eval CLUSTER_OPTIONAL_PARAMS := $(CLUSTER_OPTIONAL_PARAMS) ParameterKey=SubnetCIDR,ParameterValue=$(SUBNET_CIDR))
+endif
+ifdef VPC_CIDR
+ $(eval CLUSTER_OPTIONAL_PARAMS := $(CLUSTER_OPTIONAL_PARAMS) ParameterKey=VPCCIDR,ParameterValue=$(VPC_CIDR))
+endif
$(AWS_FC_COMMAND) create-stack \
--stack-name $(CLUSTER_STACK_NAME) \
diff --git a/dual-master/cf-cluster.yml b/dual-master/cf-cluster.yml
index f682041..f2bb08c 100644
--- a/dual-master/cf-cluster.yml
+++ b/dual-master/cf-cluster.yml
@@ -40,6 +40,14 @@
Type: String
Default: ""
Description: Subnet id. If empty Network Stack will be created
+ SubnetCIDR:
+ Type: String
+ Default: 10.0.0.0/24
+ Description: Subnet CIDR.
+ VPCCIDR:
+ Type: String
+ Default: 10.0.0.0/16
+ Description: VPC CIDR.
ECSKeyName:
Type: String
Default: gerrit-cluster-keys
@@ -281,7 +289,9 @@
Parameters:
InternetGatewayIdProp: !Ref 'InternetGatewayIdProp'
VPCIdProp: !Ref 'VPCIdProp'
+ VPCCIDR: !Ref 'VPCCIDR'
SubnetIdProp: !Ref 'SubnetIdProp'
+ SubnetCIDR: !Ref 'SubnetCIDR'
Outputs:
ClusterName:
diff --git a/master-slave/Makefile b/master-slave/Makefile
index a32fd37..8f42df1 100644
--- a/master-slave/Makefile
+++ b/master-slave/Makefile
@@ -32,6 +32,12 @@
ifdef CLUSTER_INSTANCE_TYPE
$(eval CLUSTER_OPTIONAL_PARAMS := $(CLUSTER_OPTIONAL_PARAMS) ParameterKey=InstanceType,ParameterValue=$(CLUSTER_INSTANCE_TYPE))
endif
+ifdef SUBNET_CIDR
+ $(eval CLUSTER_OPTIONAL_PARAMS := $(CLUSTER_OPTIONAL_PARAMS) ParameterKey=SubnetCIDR,ParameterValue=$(SUBNET_CIDR))
+endif
+ifdef VPC_CIDR
+ $(eval CLUSTER_OPTIONAL_PARAMS := $(CLUSTER_OPTIONAL_PARAMS) ParameterKey=VPCCIDR,ParameterValue=$(VPC_CIDR))
+endif
$(AWS_FC_COMMAND) create-stack \
--stack-name $(CLUSTER_STACK_NAME) \
diff --git a/master-slave/cf-cluster.yml b/master-slave/cf-cluster.yml
index 4eaf788..f2668a2 100644
--- a/master-slave/cf-cluster.yml
+++ b/master-slave/cf-cluster.yml
@@ -40,6 +40,14 @@
Type: String
Default: ""
Description: Subnet id. If empty Network Stack will be created
+ SubnetCIDR:
+ Type: String
+ Default: 10.0.0.0/24
+ Description: Subnet CIDR.
+ VPCCIDR:
+ Type: String
+ Default: 10.0.0.0/16
+ Description: VPC CIDR.
ECSKeyName:
Type: String
Default: gerrit-cluster-keys
@@ -212,7 +220,10 @@
Parameters:
InternetGatewayIdProp: !Ref 'InternetGatewayIdProp'
VPCIdProp: !Ref 'VPCIdProp'
+ VPCCIDR: !Ref 'VPCCIDR'
SubnetIdProp: !Ref 'SubnetIdProp'
+ SubnetCIDR: !Ref 'SubnetCIDR'
+
Outputs:
ClusterName:
diff --git a/single-master/Makefile b/single-master/Makefile
index e939129..1a1ac52 100644
--- a/single-master/Makefile
+++ b/single-master/Makefile
@@ -23,6 +23,12 @@
ifdef CLUSTER_INSTANCE_TYPE
$(eval CLUSTER_OPTIONAL_PARAMS := $(CLUSTER_OPTIONAL_PARAMS) ParameterKey=InstanceType,ParameterValue=$(CLUSTER_INSTANCE_TYPE))
endif
+ifdef SUBNET_CIDR
+ $(eval CLUSTER_OPTIONAL_PARAMS := $(CLUSTER_OPTIONAL_PARAMS) ParameterKey=SubnetCIDR,ParameterValue=$(SUBNET_CIDR))
+endif
+ifdef VPC_CIDR
+ $(eval CLUSTER_OPTIONAL_PARAMS := $(CLUSTER_OPTIONAL_PARAMS) ParameterKey=VPCCIDR,ParameterValue=$(VPC_CIDR))
+endif
$(AWS_FC_COMMAND) create-stack \
--stack-name $(CLUSTER_STACK_NAME) \
diff --git a/single-master/cf-cluster.yml b/single-master/cf-cluster.yml
index 81e922a..41327df 100644
--- a/single-master/cf-cluster.yml
+++ b/single-master/cf-cluster.yml
@@ -40,6 +40,14 @@
Type: String
Default: ""
Description: Subnet id. If empty Network Stack will be created
+ SubnetCIDR:
+ Type: String
+ Default: 10.0.0.0/24
+ Description: Subnet CIDR.
+ VPCCIDR:
+ Type: String
+ Default: 10.0.0.0/16
+ Description: VPC CIDR.
ECSKeyName:
Type: String
Default: gerrit-cluster-keys
@@ -188,7 +196,9 @@
Parameters:
InternetGatewayIdProp: !Ref 'InternetGatewayIdProp'
VPCIdProp: !Ref 'VPCIdProp'
+ VPCCIDR: !Ref 'VPCCIDR'
SubnetIdProp: !Ref 'SubnetIdProp'
+ SubnetCIDR: !Ref 'SubnetCIDR'
Outputs:
ClusterName: