aws-codebuild-docker-images
cfn-python-lint
Our great sponsors
aws-codebuild-docker-images | cfn-python-lint | |
---|---|---|
9 | 20 | |
1,091 | 2,352 | |
1.5% | 1.3% | |
6.1 | 9.2 | |
3 days ago | 1 day ago | |
Dockerfile | Python | |
GNU General Public License v3.0 or later | MIT No Attribution |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
aws-codebuild-docker-images
-
DevSecOps with AWS- IaC at scale - Building your own platform - Part 1
Based on public repository for Codebuild Image, the image base will be the Ubuntu standard 7.0.
-
Firecracker internals: deep dive inside the technology powering AWS Lambda(2021)
This is basically what CodeBuild does.
The default Docker containers that CodeBuild uses (you can create your own) and the shell script it uses to parse the yaml configuration file (mostly a list of shell scripts) are all open source and the entire process can be run locally.
https://github.com/aws/aws-codebuild-docker-images
https://docs.aws.amazon.com/codebuild/latest/userguide/use-c...
Disclaimer: I work for AWS. But nowhere near the team that developed Firecracker
-
CircleCI says hackers stole encryption keys and customers’ source code
Disclaimer: I work for AWS in Professional Services. All opinions are my own.
The beauty about CodeBuild is that there is no “lock-in”. All it is fundamentally is a Linux or Windows Docker container with popular language runtimes and a shell script that processes a yaml file or you can supply your own Docker container.
You just put a bunch of bash commands or PowerShell commands in the yaml file and it runs anything.
The Docker container and the shell scripts are all open source and you can quite easily run them locally.
I could see outside of AWS keeping your Docker containers for your specific build environments in a local repository and doing all of your builds inside them using Jenkins.
https://github.com/aws/aws-codebuild-docker-images
https://docs.aws.amazon.com/codebuild/latest/userguide/use-c...
For a “batteries included” approach though, I really like Azure DevOps Pipelines.
I’ve even done a couple of integrations between Azure DevOps and AWS when we had clients that are Microsoft shops.
https://aws.amazon.com/vsts/
For AWS, if you use CodeCommit (AWS git service), all access is via IAM and granular permissions. If you integrate with Azure DevOps, the AWS credentials do have to be stored in a separate MS hosted credential storage.
CodeBuild also supports at least Github natively.
I’m not shilling for AWS. I have an MS development background (.Net) and only have “DevOps” experience using AWS and Microsoft tooling.
-
Continuous Integration and Deployment on AWS - and a wishlist for CI/CD Tools on AWS
Docker Images provided by the CodeBuild team should be updated regularly and should support all "modern" toolkits. The open source project has some activity, but an issue for supporting newer Android versions is now open for some time...
-
Building a Flutter application for Web, iOS and Android using a CI/CD pipeline on CodeBuild – #cdk4j
The runtimes available and exposed by CodePipeline support Android runtime 29 – and the Docker images are provisioned using Java 8. Unfortunately, as of July 2021, the Android gradle tools (used by Flutter) require Java 11. I have created an issue in the corresponding Github (see here) but needed to find a workaround to move on – I think I’ve found one, but I hope that anyone reading this might have a better way or idea?
- Is there a way to request a new runtime for codebuild?
-
Run local Graviton2 builds with AWS CodeBuild agent
$ git clone https://github.com/aws/aws-codebuild-docker-images.git $ cd aws-codebuild-docker-images/al2/aarch64/standard/2.0 $ docker build -t codebuild/amazonlinux2-aarch64-standard:2.0 .
-
Build and share Docker images using AWS CodeBuild and Graviton2
This also is the place where we specify this is an AArch64 build. The managed image indicates to use a standard image provided by AWS. The source of the Graviton2 image can be found on GitHub.
-
DevOps tools you should have on your belt
🏗 AWS CodeBuild Local Builds - Simulate a CodeBuild environment locally to quickly troubleshoot the commands and settings located in the BuildSpec file.
cfn-python-lint
-
Deploy config rules across your organization
Now the first 3 options are pretty straight forward. The template itself is a bit more complicated. In my example I used an inline template, I did this for the sake of this blog. But you can also reference an existing object on S3. This way you can use linting tools like cfn-lint on your conformance pack. This will reduce errors during deployment as you can catch them before you commit and push your code.
-
Managing low-code environments with AWS CloudFormation and Azure Resource Manager
Automate testing and validation: Before deploying your templates, it's important to test and validate them to ensure that they will work as expected. Use tools like AWS CloudFormation Linter and Azure Resource Manager Template Tester to automate this process.
-
Alternatives to Terraform
Honestly I've had good luck writing clean Cloud Formation. It's AWS only. But Nested Stacks can help keep things pretty clean and tools like cfn-lint do a pretty good job of preventing you from going too crazy with spaghetti code. Additionally, as it's all json/yaml, you can parse it to look for common problems your organization wants to enforce. So you can ensure things like specific tags your roles/vpc etc..., or usage of an "approved" set of AMI, requiring an EKS/RDS cluster to be split across availability zones; they're all just a test in your CI pipeline away.
-
Creating a Multi-Account CI/CD Pipeline with AWS CodePipeline
CodeBuild will run a linting check against the CloudFormation Template using cfn-lint and will then run cfn-nag to check for patterns that indicate insecure resources within the CloudFormation template.
-
App with self-contained infrastructure on AWS
A linter for our AWSCloudformation stack called cfn-lint
-
how did you get good at iac-cloudformation
cfn-lint and cfn_nag or other tools of that nature to check as you write so you don't need to continually try to deploy only to find that you've done something dumb.
-
Validating cloudFormation templates
https://github.com/aws-cloudformation/cfn-lint as mentioned will do what you've explicitly called-out.
-
CloudFormation locally
cfn-lint can do basic validation and rule-based linting. Highly recommend using it even if it doesn't solve your problem.
-
Source Control your AWS CloudFormation templates with GitHub
To help validate your AWS CloudFormation templates you can use a tool called cfn-lint.
What are some alternatives?
hello-arm
cfn_nag - Linting tool for CloudFormation templates
saml2aws - CLI tool which enables you to login and retrieve AWS temporary credentials using a SAML IDP
cloudformation-guard - Guard offers a policy-as-code domain-specific language (DSL) to write rules and validate JSON- and YAML-formatted data such as CloudFormation Templates, K8s configurations, and Terraform JSON plans/configurations against those rules. Take this survey to provide feedback about cfn-guard: https://amazonmr.au1.qualtrics.com/jfe/form/SV_bpyzpfoYGGuuUl0
copilot-cli - The AWS Copilot CLI is a tool for developers to build, release and operate production ready containerized applications on AWS App Runner or Amazon ECS on AWS Fargate.
terraform-aws-icons - Annotate Terraform graphs with AWS icons.
aws-extend-switch-roles - Extend your AWS IAM switching roles by Chrome extension, Firefox add-on, or Edge add-on
aws-toolkit-vscode - Amazon Q, CodeWhisperer, CodeCatalyst, Local Lambda debug, SAM/CFN syntax, ECS Terminal, AWS resources
awsume - A utility for easily assuming AWS IAM roles from the command line.
rain - A development workflow tool for working with AWS CloudFormation.
aws-iam-generator - Generate Multi-Account IAM users/groups/roles/policies from a simple YAML configuration file and Jinja2 templates.