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 [email protected].
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.

Reply via email to