Populate instanceId for single-master recipe

Feature: Issue 13230
Change-Id: Ie99f6b1c61882cd19ad3b958943d9d24dbc0ff07
diff --git a/gerrit/etc/gerrit.config.template b/gerrit/etc/gerrit.config.template
index 7a84673..62951f9 100644
--- a/gerrit/etc/gerrit.config.template
+++ b/gerrit/etc/gerrit.config.template
@@ -2,6 +2,7 @@
 	basePath = git
 	canonicalWebUrl = http://localhost
 	serverId = 0f56469f-dfe4-4f28-aca7-803eba7845e0
+	instanceId = {{ GERRIT_INSTANCE_ID }}
 [core]
 	packedGitLimit = {{ JGIT_CACHE_SIZE }}
 [database]
diff --git a/gerrit/setup_gerrit.py b/gerrit/setup_gerrit.py
index 58b13d9..56aecf0 100755
--- a/gerrit/setup_gerrit.py
+++ b/gerrit/setup_gerrit.py
@@ -146,6 +146,7 @@
         'SMTP_DOMAIN': os.getenv('SMTP_DOMAIN'),
         'GERRIT_HEAP_LIMIT': os.getenv('GERRIT_HEAP_LIMIT'),
         'JGIT_CACHE_SIZE': os.getenv('JGIT_CACHE_SIZE'),
+        'GERRIT_INSTANCE_ID': os.getenv('GERRIT_INSTANCE_ID'),
         'METRICS_CLOUDWATCH_ENABLED': os.getenv('METRICS_CLOUDWATCH_ENABLED'),
         'METRICS_CLOUDWATCH_NAMESPACE': os.getenv('METRICS_CLOUDWATCH_NAMESPACE'),
         'METRICS_CLOUDWATCH_RATE': os.getenv('METRICS_CLOUDWATCH_RATE'),
diff --git a/single-master/Makefile b/single-master/Makefile
index 688c8dc..adf84d6 100644
--- a/single-master/Makefile
+++ b/single-master/Makefile
@@ -41,6 +41,9 @@
 ifdef LOAD_BALANCER_SCHEME
 		$(eval SERVICE_OPTIONAL_PARAMS := $(SERVICE_OPTIONAL_PARAMS) ParameterKey=LoadBalancerScheme,ParameterValue=$(LOAD_BALANCER_SCHEME))
 endif
+ifdef GERRIT_INSTANCE_ID
+		$(eval SERVICE_OPTIONAL_PARAMS := $(SERVICE_OPTIONAL_PARAMS) ParameterKey=InstanceId,ParameterValue=$(GERRIT_INSTANCE_ID))
+endif
 
 	$(AWS_FC_COMMAND) create-stack \
 		--stack-name $(SERVICE_STACK_NAME) \
diff --git a/single-master/README.md b/single-master/README.md
index 27e8bbd..c098806 100644
--- a/single-master/README.md
+++ b/single-master/README.md
@@ -72,6 +72,7 @@
 Configuration values affecting deployment environment and cluster properties
 
 * `SERVICE_STACK_NAME`: Optional. Name of the service stack. `gerrit-service` by default.
+* `GERRIT_INSTANCE_ID`: Optional. Identifier for the Gerrit instance. "gerrit-single-master" by default.
 
 ### 2 - Deploy
 
diff --git a/single-master/cf-service.yml b/single-master/cf-service.yml
index 2c513ab..01fbd73 100644
--- a/single-master/cf-service.yml
+++ b/single-master/cf-service.yml
@@ -117,6 +117,10 @@
   SMTPDomain:
       Description: Domain to be used in the From field
       Type: String
+  InstanceId:
+      Description: Optional identifier for the Gerrit instance
+      Type: String
+      Default: gerrit-single-master
   MetricsCloudwatchEnabled:
       Description: Whether gerrit metrics should be published to cloudwatch
       Type: String
@@ -207,6 +211,8 @@
                       Value: !Ref SMTPUser
                     - Name: SMTP_DOMAIN
                       Value: !Ref SMTPDomain
+                    - Name: GERRIT_INSTANCE_ID
+                      Value: !Ref InstanceId
                     - Name: METRICS_CLOUDWATCH_ENABLED
                       Value: !Ref MetricsCloudwatchEnabled
                     - Name: METRICS_CLOUDWATCH_NAMESPACE
diff --git a/single-master/setup.env.template b/single-master/setup.env.template
index a058d53..8696dcd 100644
--- a/single-master/setup.env.template
+++ b/single-master/setup.env.template
@@ -10,6 +10,8 @@
 GERRIT_HEAP_LIMIT=35g
 JGIT_CACHE_SIZE=12g
 
+GERRIT_INSTANCE_ID=gerrit-single-master
+
 LDAP_SERVER:=ldap://yourldap.yourcompany.com
 LDAP_USERNAME:=cn=admin,dc=example,dc=org
 LDAP_ACCOUNT_BASE:=dc=example,dc=org