Creates AWS Codepipeline.
Project description
AWS Codepipeline Creator
Features
aws-pipeline-creator creates a aws codepipeline cloudformation stack, and points to a build specifical file in the code repository
Installation
aws-pipeline-creator is on PyPI so all you need is:
$ pip install aws-pipeline-creator
Example
Getting help
$ pipeline-creator upsert --help
Usage: pipeline-creator upsert [OPTIONS]
primary function for creating a bucket :return:
Options:
-v, --version TEXT code version
-d, --dryrun dry run
-y, --yaml YAML template (deprecated - YAMLness is now detected at
run-time
--no-poll Start the stack work but do not poll
-i, --ini TEXT INI file with needed information [required]
--debug Turn on debugging
--help Show this message and exit.
pipeline-creator upsert -i config/my.ini
Example Ini file
[environment]
# This is a general bucket where the cloudformation template will be uploaded to prior to deployment
bucket = cloudformation-templates
# The name you want on the cloudformation stack
stack_name = my-stack-name
region = us-east-1
profile = my-aws-profile
[tags]
# These are the tags which will be automatically applied to resources
Name = test-codepipeline
ResourceOwner = my_boss
Project = MyCoolProject
DeployedBy = me
[parameters]
# CodeCommit repository name
RepositoryName = repo_name
# Codecommit repository branch name
RepositoryBranchName = master
# A project name or code
Project = test
ProjectDescription = test
# The role which is utilized for the code pipeline, see below for an example role policy
BuildServiceRole = arn:aws:iam::123456789:role/AWSCodebuildRole
BuildProjectName = MyBuild
Subnets = subnet-c1234556
SecurityGroups = sg-123456
Timeout = 60
# The location in the repository where the build spec file is located
BuildspecFile = folder/buildspec.yml
# Set the environment code. This is how developers code deployments in the build spec.
# If EnvCode = dev, then do this, if EnvCode is prod, then do that
EnvironmentCode = dev
VpcId = vpc-123456
# This is a bucket where the builds from each stage in the build process are stored
DeploymentBucketName = codepipeline-deployments
# The image to utilize
# You can also use default AWS images from https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html
# Example: Image = aws/codebuild/docker:17.09.0
Image = 123456789.dkr.ecr.us-east-1.amazonaws.com/codepipeline:latest
[meta-parameters]
# These are the metadata parameters which are applied to the template via jinja2
ProjectName = myproject
Demonstration
Example Template
Just add more stages as needed.
"AWSCodebuildRole": {
"Type": "AWS::IAM::Role",
"Properties": {
"RoleName": "AWSCodebuildRole",
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {
"Service": [
"codebuild.amazonaws.com",
"codepipeline.amazonaws.com",
"events.amazonaws.com"
]
},
"Action": [
"sts:AssumeRole"
]
}]
},
"ManagedPolicyArns": [
"arn:aws:iam::123456789:policy/CustomPolicy",
"arn:aws:iam::aws:policy/AmazonEC2FullAccess",
"arn:aws:iam::aws:policy/AWSCodeCommitReadOnly",
"arn:aws:iam::aws:policy/CloudFrontFullAccess",
"arn:aws:iam::aws:policy/AmazonSSMFullAccess"
],
"Policies": [{
"PolicyName": "AllowKmsDecryptForSSMParameterStore",
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"kms:Decrypt"
],
"Resource": [
"arn:aws:kms:us-east-1:123456789:key/123-456-789"
]
}]
}
},
{
"PolicyName": "AssumeOwnRole",
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": [
"arn:aws:iam::123456789:role/AWSCodebuildRole",
"arn:aws:iam::123456789:assumedrole/AWSCodebuildRole"
]
}]
}
},
{
"PolicyName": "AssumeBuildRoleInAnotherAccount",
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": [
"arn:aws:iam::111111111111:role/AWSCodebuildRole",
"arn:aws:sts::111111111111:assumed-role/AWSCodebuildRole/*"
]
}]
}
},
{
"PolicyName": "ecs-service",
"PolicyDocument": {
"Version": "2012-10-17",
"Statement": [{
"Action": [
"ecr:*",
"codebuild:*",
"codepipeline:*",
"s3:*",
"codecommit:*",
"logs:*",
"cloudwatch:*",
"lambda:*",
"athena:*"
],
"Resource": "*",
"Effect": "Allow"
}]
}
}
]
}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for aws_pipeline_creator-0.0.7.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58e645683bd53471f9a15162525f54adcd96b25f9e02309c9f4bc3f50b973e89 |
|
MD5 | 5092a96500703ac2f27ec3c86ac9bc51 |
|
BLAKE2b-256 | 66a328eac876be8422d17c1b5ca755a7fa98311588524eed3dde83f4ef4823ae |
Close
Hashes for aws_pipeline_creator-0.0.7-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 539037ee95d68d85fdbaf7dd512a5df3d2bdf38bd715d22d33c0d7fe6a3e2398 |
|
MD5 | 6825583f738e67ae4fe484fc10f94b3f |
|
BLAKE2b-256 | ff9a372dd8d5cc07765d82db703430d93d4df6c793b7d4135431a9361d9eafc0 |