In order to organize a hackathon, we have to describe:
- What the hackathon is about
- What the benefits are
- How the results/benefits will be reported
- then talk to the resource managers and product managers with that stuff
We want per-branch automatic k8s deploys in our staging environment. Each github branch of a repo has an instance of <app-name>-<branch>
running. Deployments self-destruct after 4 hours if the branch is not master
. Anyone can trigger a new build with a comment on a pull request (or new commit).
- Slack
- Github
- Sagoku
- Kubernetes
- Declarative pipelines
- Github PR Gated Pipeline
- Concourse Tutorial
- Concourse Gitlab Flow
- Concourse Github Flow
- Deploying to Kubernetes as part of a pipeline
- lessons learned using concourse in production
You can specify an alternate buildspec location in the buildspec or buildspecOverride parameter to Create/UpdateProject or StartBuild.
The buildspec path is relative to the root of your Git repo. So you can use, e.g., ./subdir/buildspec.yml
You can find the documentation here: https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-name-storage
- ECS Blue Green Deployments - CodePipeline and CodeBuild
- AWS CodePipelineDashboad
- Build Monitor for AWS CodePipeline
- A lambda script for using AWS CodePipeline action, deploy Lambda function from the specified input artifact
- sample to create required resources for running approval based post deployment tests in AWS CodePipeline.
- AWS Lambda Function to start a specified AWS CodePipeline
- dynamically support multiple branches using Githubs webhooks, AWS APIGateway and AWS Lambda
- CodePipeline StepFunctions
- CloudWatch Dashboard for Pipelines
- CodePipeline to Kubernetes
- CodeBuild Slack Notifier
- Speeding up AWS CodeBuild with Custom Build Environments
- CodeBuilder StepFunction Lambda
- Serverless CI for GitHub using AWS CodeBuild with PR and status support
- Run and Integrate AWS CodeBuild with GitHub Push/Pull-Request webhook events
- Run a codebuild project on every commit in a repository
- Safe Lambda deployments with CodeDeploy
- Automatic Rollbacks using AWS Lambda
- Github AWS CodeDeploy
- codedeploy blue green
- blue green codedeploy article
- AWS CodeDeploy Multiplexer (Multiple Sources -> Single Deployment Group)
We can use my home grown kube-deploy-cleaner: https://github.com/StevenACoffman/kube-deploy-cleaner
At docker build time, putting a git ignored file in the docker container that contains the git sha1 that generated it and other information lets you reliably discover what source code generated it.
IMAGE = stevenacoffman/kube-deploy-cleaner
VERSION = $(git describe --tags --always --dirty)
TAG = ${VERSION}
GITHEAD = $(git rev-parse --short HEAD)
GITURL = $(git config --get remote.origin.url)
GITSTATUS = $(git status --porcelain || echo "no changes")
echo '{"url": "git:${GITURL}", "revision": "${GITHEAD}", "author": "${USER}", "status": "${GITSTATUS}"}' > scm-source.json`
This allows you to look at it via:
kubectl cp <some-namespace>/<some-pod>:/scm-source.json /tmp/bar