We use Jenkins pipeline, and use AWS plugins that has a cfnValidate() API https://jenkins.io/doc/pipeline/steps/pipeline-aws/. When I run it on my Cloudformation template,
AWSTemplateFormatVersion: '2010-09-09' Parameters: AlbName: Type: String Description: 'Parameter to override ALB name' Default: '' RedirectUrl: Type: String Description: 'URL to redirect traffic to' Default: '' SslCertificateArn: Type: String Description: 'SSL certificate ARN' Default: '' VPCStackNameParameter: Type: String Description: 'CloudFormation stack name of the VPC' Default: 'ProductionVPC' Conditions: ProdEnvironment: !Equals [ !Ref VPCStackNameParameter, 'ProductionVPC' ] CertExists: !Not [!Equals [!Ref SslCertificateArn, ""]] Resources: Alb: Type: AWS::ElasticLoadBalancingV2::LoadBalancer Condition: CertExists Properties: Name: !Ref AlbName Scheme: 'internet-facing' IpAddressType: 'ipv4' SecurityGroups: - Fn::ImportValue: !Sub "${VPCStackNameParameter}-ELBSGID" Subnets: - Fn::ImportValue: !Sub "${VPCStackNameParameter}-SubnetPublic1ID" - Fn::ImportValue: !Sub "${VPCStackNameParameter}-SubnetPublic2ID" LoadBalancerAttributes: - Key: idle_timeout.timeout_seconds Value: '240' Tags: - Key: Name Value: !Sub "${AWS::StackName}-lb" - Key: Product Value: "Zift" I get com.amazonaws.services.cloudformation.model.AmazonCloudFormationException: Template format error: Every Condition member must be a string. (Service: AmazonCloudFormation; Status Code: 400; Error Code: ValidationError; Request ID: f6f203b9-5593-11e9-833d-1d475e1ca17e) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1632) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1304) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1058) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:743) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:717) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667) at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513) at com.amazonaws.services.cloudformation.AmazonCloudFormationClient.doInvoke(AmazonCloudFormationClient.java:2733) at com.amazonaws.services.cloudformation.AmazonCloudFormationClient.invoke(AmazonCloudFormationClient.java:2709) at com.amazonaws.services.cloudformation.AmazonCloudFormationClient.executeValidateTemplate(AmazonCloudFormationClient.java:2673) at com.amazonaws.services.cloudformation.AmazonCloudFormationClient.validateTemplate(AmazonCloudFormationClient.java:2648) at de.taimos.pipeline.aws.cloudformation.CFNValidateStep$Execution$1.run(CFNValidateStep.java:141) Finished: FAILURE What gives? -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/1d2825fe-ca64-4678-b73f-d3781db63250%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.