Sign inSign up

projectnebula/cloudformation-deployer

By projectnebula

•Updated over 6 years ago

The AWS CloudFormation deployer task creates or updates a CloudFormation stack using a template.

Image
0

3.9K

projectnebula/cloudformation-deployer repository overview

⁠AWS CloudFormation deployer

This AWS CloudFormation deployer step container creates or updates a CloudFormation stack using a provided template.

⁠Specifications

SettingChild settingData typeDescriptionDefaultRequired
awsmappingA mapping of AWS account configuration.NoneTrue
accessKeyIDstringAn access key ID for the AWS account. You can pass the ID into Nebula as a secret. See the example below.NoneTrue
secretAccessKeystringThe secret access key corresponding to the access key ID. Pass the key into Nebula as a secret. See the example below.NoneTrue
regionstringThe AWS region to use (for example, us-west-2).NoneTrue
stackNamestringThe name of the stack to create or update.NoneTrue
templatestringThe body of the CloudFormation template as a string in YAML or JSON. One of template or templateFile must be specified.NoneIf templateFile is not present
templateFilestringThe relative path, within the Git repository given in the git parameters, to the template file to deploy. One of template or templateFile must be specified.NoneIf template is not present
gitmappingA map of git configuration. If you're using HTTPS, only name and repository are required.NoneTrue if templateFile is present
ssh_keystringThe SSH key to use when cloning the git repository. You can pass the key into Nebula as a secret. See the example below.NoneTrue for SSH
known_hostsstringSSH known hosts file. Pass the contents of the file into Nebula as a secret. See the example below.NoneTrue for SSH
namestringA directory name for the git clone.NoneTrue
branchstringThe Git branch to clone.masterFalse
repositorystringThe git repository URL.NoneTrue
parametersmappingA key-value mapping of CloudFormation parameters to pass to the template. For more information, see AWS CloudFormation parameters⁠.NoneFalse
s3mappingAn S3 bucket mapping for your s3 bucket and templateNoneFor large templates
bucketstringAn S3 bucket to upload the template to. Required for templates larger than 51,200 bytes.NoneFor large templates
prefixstringA folder name to prefix the artifacts' file names with when it uploads them to the S3 bucket.NoneFalse
capabilitiessequence of stringsA list of capabilities to use for the deployment, such as CAPABILITY_NAMED_IAM.NoneFalse
tagsmappingA key-value mapping of tags to add to the deployment.NoneFalse

Note: The value you set for a secret must be a string. If you have multiple key-value pairs to pass into the secret, or your secret is the contents of a file, you must encode the values using base64 encoding, and use the encoded string as the secret value.

⁠Examples

Here is an example of the step in a Nebula workflow:

steps:

...

- name: cloudformation-deployer
  image: projectnebula/cloudformation-deployer:latest
  spec:
    aws:
      accessKeyID:
        $type: Secret
        name: key-id 
      secretAccessKey:
        $type: Secret
        name: access-key
      region: us-west-2  
    stackName: my-stack 
    templateFile: templates/template.yaml
    git: 
      ssh_key:
        $type: Secret
        name: ssh_key
      known_hosts:
        $type: Secret
        name: known_hosts
      name: my-git-repo
      branch: dev
      repository: path/to/your/repo
    parameters: 
      Environment: production
      CertificateARN: arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012
    s3:
      bucket: my-bucket
      prefix: app   
    capabilities:
      - CAPABILITY_NAMED_IAM
    tags:
      lifetime: 4d

Tag summary

Content type

Image

Digest

Size

68.7 MB

Last updated

over 6 years ago

docker pull projectnebula/cloudformation-deployer