Fix deployment error when XRay is not enabled

Disabling X-Ray by setting XRAY_ENABLED=false caused deployment errors
due to the fact that the optional x-ray container was not conditionally
linked in the task definition.

Only link the xray container when XRAY_ENABLED=true and properly refer
to the AWS::NoValue by its ref, so that the absence of xray container
do not cause an error.

Bug: Issue 15252
Change-Id: I509403ccaaebcc72ca66a8f2a1261661328a2aee
diff --git a/dual-primary/cf-service-primary.yml b/dual-primary/cf-service-primary.yml
index 72d9b56..5206254 100644
--- a/dual-primary/cf-service-primary.yml
+++ b/dual-primary/cf-service-primary.yml
@@ -402,7 +402,11 @@
                         awslogs-region: !Ref AWS::Region
                         awslogs-stream-prefix: !Ref EnvironmentName
                   Links:
-                    - !FindInMap ['XRay', 'Info', 'ContainerName']
+                    Fn::If:
+                      - ShouldEnableXRay
+                      -
+                        - !FindInMap ['XRay', 'Info', 'ContainerName']
+                      - !Ref "AWS::NoValue"
                 - Fn::If:
                     - ShouldEnableXRay
                     - Name: !FindInMap ['XRay', 'Info', 'ContainerName']
@@ -414,7 +418,7 @@
                         - HostPort: 2000
                           ContainerPort: 2000
                           Protocol: "udp"
-                    - AWS::NoValue
+                    - !Ref "AWS::NoValue"
             Volumes:
               - Name: !FindInMap ['Gerrit', 'Volume', 'Git']
                 Host:
diff --git a/dual-primary/cf-service-replica.yml b/dual-primary/cf-service-replica.yml
index 77eedf1..042376c 100644
--- a/dual-primary/cf-service-replica.yml
+++ b/dual-primary/cf-service-replica.yml
@@ -355,7 +355,11 @@
                         awslogs-region: !Ref AWS::Region
                         awslogs-stream-prefix: !Ref EnvironmentName
                   Links:
-                    - !FindInMap ['XRay', 'Info', 'ContainerName']
+                    Fn::If:
+                      - ShouldEnableXRay
+                      -
+                        - !FindInMap ['XRay', 'Info', 'ContainerName']
+                      - !Ref "AWS::NoValue"
                 - Name: !Ref GitDaemonServiceName
                   Essential: true
                   Image: !Sub '${DockerRegistryUrl}/${GitDaemonDockerImage}'
@@ -412,7 +416,7 @@
                         - HostPort: 2000
                           ContainerPort: 2000
                           Protocol: "udp"
-                    - AWS::NoValue
+                    - !Ref "AWS::NoValue"
             Volumes:
               - Name: !Ref 'GerritDbVolume'
                 DockerVolumeConfiguration:
diff --git a/primary-replica/cf-service-primary.yml b/primary-replica/cf-service-primary.yml
index d1fb22c..902e87f 100644
--- a/primary-replica/cf-service-primary.yml
+++ b/primary-replica/cf-service-primary.yml
@@ -339,7 +339,11 @@
                         awslogs-region: !Ref AWS::Region
                         awslogs-stream-prefix: !Ref EnvironmentName
                   Links:
-                    - !FindInMap ['XRay', 'Info', 'ContainerName']
+                    Fn::If:
+                      - ShouldEnableXRay
+                      -
+                        - !FindInMap ['XRay', 'Info', 'ContainerName']
+                      - !Ref "AWS::NoValue"
                 - Fn::If:
                     - ShouldEnableXRay
                     - Name: !FindInMap ['XRay', 'Info', 'ContainerName']
@@ -351,7 +355,7 @@
                         - HostPort: 2000
                           ContainerPort: 2000
                           Protocol: "udp"
-                    - AWS::NoValue
+                    - !Ref "AWS::NoValue"
             Volumes:
               - Name: !FindInMap ['Gerrit', 'Volume', 'Db']
                 Host:
diff --git a/primary-replica/cf-service-replica.yml b/primary-replica/cf-service-replica.yml
index a57270d..5f318f4 100644
--- a/primary-replica/cf-service-replica.yml
+++ b/primary-replica/cf-service-replica.yml
@@ -355,7 +355,11 @@
                         awslogs-region: !Ref AWS::Region
                         awslogs-stream-prefix: !Ref EnvironmentName
                   Links:
-                    - !FindInMap ['XRay', 'Info', 'ContainerName']
+                    Fn::If:
+                      - ShouldEnableXRay
+                      -
+                        - !FindInMap ['XRay', 'Info', 'ContainerName']
+                      - !Ref "AWS::NoValue"
                 - Name: !Ref GitDaemonServiceName
                   Essential: true
                   Image: !Sub '${DockerRegistryUrl}/${GitDaemonDockerImage}'
@@ -412,7 +416,7 @@
                         - HostPort: 2000
                           ContainerPort: 2000
                           Protocol: "udp"
-                    - AWS::NoValue
+                    - !Ref "AWS::NoValue"
             Volumes:
               - Name: !Ref 'GerritDbVolume'
                 DockerVolumeConfiguration:
diff --git a/single-primary/cf-service.yml b/single-primary/cf-service.yml
index 61b13f1..221ddf5 100644
--- a/single-primary/cf-service.yml
+++ b/single-primary/cf-service.yml
@@ -315,7 +315,11 @@
                         awslogs-region: !Ref AWS::Region
                         awslogs-stream-prefix: !Ref EnvironmentName
                   Links:
-                    - !FindInMap ['XRay', 'Info', 'ContainerName']
+                    Fn::If:
+                      - ShouldEnableXRay
+                      -
+                        - !FindInMap ['XRay', 'Info', 'ContainerName']
+                      - !Ref "AWS::NoValue"
                 - Fn::If:
                     - ShouldEnableXRay
                     - Name: !FindInMap ['XRay', 'Info', 'ContainerName']
@@ -327,7 +331,7 @@
                         - HostPort: 2000
                           ContainerPort: 2000
                           Protocol: "udp"
-                    - AWS::NoValue
+                    - !Ref "AWS::NoValue"
             Volumes:
               - Name: !FindInMap ['Gerrit', 'Volume', 'Db']
                 Host: