{"push_id":2569226219,"size":14,"distinct_size":5,"ref":"refs/heads/persistent-storage","head":"488ea36be795d82dfebb17faf63fdad5e1be5814","before":"99eeea631f83500628a7c7e2e1211ee861100912","commits":[{"sha":"be610ab8f9e0432af66af6d426d5d501c7e94ced","author":{"name":"Philip Potter","email":"30c8ca8b539fee102a0dad8b8a4f693a22a682e7@digital.cabinet-office.gov.uk"},"message":"move prometheus config to S3 bucket\n\nThis commit moves away from the terrible-testing-repo to an S3\nbucket.  The way it works is:\n\n - there is a config bucket called gdsprom-$STACK-config\n - configuration files go in this bucket\n - tasks run with IAM roles which allow them to access appropriate\n   parts of that bucket\n\nThere's still the matter of getting config from S3 onto the local\nfilesystem.  For this I'm still using the same pattern as the previous\ngit-puller task, but it's pulling from S3 instead of git.\n\nThis has some advantages:\n\n - our config is all in one source-controlled repo (ie, this one)\n - we use IAM roles to control fine-grained access to config files\n - we can actually update our config (the git-puller task only ever\n   succeeded for initial clone, and never pulled in updates)\n\nThere are still some issues:\n\n - having two separate services to manage config like this is not a\n   good pattern.  I'd rather have each task pull in its own config.\n\nWe might want to do things in future like:\n\n - baking our own docker images so that the container itself first\n   grabs config from S3, then runs the binary (such as prometheus,\n   nginx, alertmanager)\n - baking the config directly into our docker images?  (I'm not so\n   keen on this as our config might change faster than we want to\n   rebake images)","distinct":false,"url":"https://api.github.com/repos/alphagov/prometheus-aws-configuration-beta/commits/be610ab8f9e0432af66af6d426d5d501c7e94ced"},{"sha":"bcc88d3b75fe62c4daefbad729314ef04c17058c","author":{"name":"Philip Potter","email":"30c8ca8b539fee102a0dad8b8a4f693a22a682e7@digital.cabinet-office.gov.uk"},"message":"fold config grabbing task into prometheus task\n\nThis commit fold the former git-puller task into the prometheus task.\nHow it works:\n\n - when you have multiple containers in the same task definition, all\n   tasks will run on the same instance. (This is what we want anyway)\n - if a task is marked as `essential: false`, then if it exits the\n   task as a whole will continue working as normal.\n\nThis means that, when we run the prometheus task, two containers are\nrun:\n\n - s3-config-grabber, which pulls config down from S3 into /etc/prometheus\n - prometheus, which runs the binary using that config\n\ns3-config-grabber will exit pretty quickly, but because it is\n`essential: false`, the task as a whole continues.  In contrast, if\nthe prometheus container ever exits, the whole task (ie both\ncontainers) will restart.\n\nThere's still a race condition between the config grabber and the\nprometheus binary, though: we might well start the prometheus server\nbefore the config has been grabbed, and prometheus will see the old\nversion of the config.","distinct":false,"url":"https://api.github.com/repos/alphagov/prometheus-aws-configuration-beta/commits/bcc88d3b75fe62c4daefbad729314ef04c17058c"},{"sha":"21d10ab5f6ee5b3b3a951f117389748d56e25e47","author":{"name":"Philip Potter","email":"30c8ca8b539fee102a0dad8b8a4f693a22a682e7@digital.cabinet-office.gov.uk"},"message":"update based on feedback\n\n- add more info to terraform docs\n- remove hardcoded bucket name\n- rename volume","distinct":false,"url":"https://api.github.com/repos/alphagov/prometheus-aws-configuration-beta/commits/21d10ab5f6ee5b3b3a951f117389748d56e25e47"},{"sha":"0bbcfe6f7a2eb2ce894e089fe608674a51ac8fe2","author":{"name":"David McDonald","email":"15e2a2105ce0ff1177acab8d587fa11e6d097519@me.com"},"message":"Remove testing stack files","distinct":false,"url":"https://api.github.com/repos/alphagov/prometheus-aws-configuration-beta/commits/0bbcfe6f7a2eb2ce894e089fe608674a51ac8fe2"},{"sha":"fa2ce2f71f4ac8656fed91b9bc2a03fe18757136","author":{"name":"David McDonald","email":"15e2a2105ce0ff1177acab8d587fa11e6d097519@me.com"},"message":"Gitignore all stacks except for staging and production\n\nWe shouldn't commit test stacks to our branch but want to keep\nstaging and production shared between the team.","distinct":false,"url":"https://api.github.com/repos/alphagov/prometheus-aws-configuration-beta/commits/fa2ce2f71f4ac8656fed91b9bc2a03fe18757136"},{"sha":"818f76f83412277caca0fdc443fed53d5a38ac9c","author":{"name":"Philip Potter","email":"30c8ca8b539fee102a0dad8b8a4f693a22a682e7@digital.cabinet-office.gov.uk"},"message":"terraform fmt","distinct":false,"url":"https://api.github.com/repos/alphagov/prometheus-aws-configuration-beta/commits/818f76f83412277caca0fdc443fed53d5a38ac9c"},{"sha":"71be3cbd96e8ff588684b8a914b7481086e3adec","author":{"name":"Philip Potter","email":"30c8ca8b539fee102a0dad8b8a4f693a22a682e7@digital.cabinet-office.gov.uk"},"message":"make names more consistent and unique\n\nThis changes `gdsprom` to be `ecs-monitoring` for consistency with\nelsewhere in our codebase.\n\nIt also changes the bucket to use `bucket_prefix` so that we get a\nguaranteed unique bucket name, to avoid problems where someone else\nhas taken the name `ecs-monitoring-prod-config`.","distinct":false,"url":"https://api.github.com/repos/alphagov/prometheus-aws-configuration-beta/commits/71be3cbd96e8ff588684b8a914b7481086e3adec"},{"sha":"6eb32e8a450917a88a2e938f8031aa43c8f44b07","author":{"name":"Philip Potter","email":"84f6172a93bc0a71a3b36c07a5317428ea97ce59@gmail.com"},"message":"Merge pull request #4 from alphagov/config-from-s3\n\nPull config from S3 instead of from git","distinct":false,"url":"https://api.github.com/repos/alphagov/prometheus-aws-configuration-beta/commits/6eb32e8a450917a88a2e938f8031aa43c8f44b07"},{"sha":"205c574d51b65e246848e24131d61f71ad6e4d75","author":{"name":"David McDonald","email":"15e2a2105ce0ff1177acab8d587fa11e6d097519@me.com"},"message":"Merge pull request #6 from alphagov/gitignore\n\nDon't commit testing stacks files","distinct":false,"url":"https://api.github.com/repos/alphagov/prometheus-aws-configuration-beta/commits/205c574d51b65e246848e24131d61f71ad6e4d75"},{"sha":"30e8b82c448231b532551096164a95d8119e3cfc","author":{"name":"Jon Hallam","email":"d2211f347e6d4078464552ca8880560b8d1547af@digital.cabinet-office.gov.uk"},"message":"Initialise and set up the EBS volume","distinct":true,"url":"https://api.github.com/repos/alphagov/prometheus-aws-configuration-beta/commits/30e8b82c448231b532551096164a95d8119e3cfc"},{"sha":"6ed19461ec0a3f4870b6a78904133fb2abdd735c","author":{"name":"Jon Hallam","email":"d2211f347e6d4078464552ca8880560b8d1547af@digital.cabinet-office.gov.uk"},"message":"Give instance access to EC2 functions","distinct":true,"url":"https://api.github.com/repos/alphagov/prometheus-aws-configuration-beta/commits/6ed19461ec0a3f4870b6a78904133fb2abdd735c"},{"sha":"172207c85b4e77cb36b118016a868f2b7ca60799","author":{"name":"Jon Hallam","email":"d2211f347e6d4078464552ca8880560b8d1547af@digital.cabinet-office.gov.uk"},"message":"Attach EBS volume to instance","distinct":true,"url":"https://api.github.com/repos/alphagov/prometheus-aws-configuration-beta/commits/172207c85b4e77cb36b118016a868f2b7ca60799"},{"sha":"da9f1745c643c5cf5a2d97f912c1bfbf976d5c99","author":{"name":"Jon Hallam","email":"d2211f347e6d4078464552ca8880560b8d1547af@digital.cabinet-office.gov.uk"},"message":"Format and mount EBS volume to instance","distinct":true,"url":"https://api.github.com/repos/alphagov/prometheus-aws-configuration-beta/commits/da9f1745c643c5cf5a2d97f912c1bfbf976d5c99"},{"sha":"488ea36be795d82dfebb17faf63fdad5e1be5814","author":{"name":"Jon Hallam","email":"d2211f347e6d4078464552ca8880560b8d1547af@digital.cabinet-office.gov.uk"},"message":"Clean up terraform and write README's","distinct":true,"url":"https://api.github.com/repos/alphagov/prometheus-aws-configuration-beta/commits/488ea36be795d82dfebb17faf63fdad5e1be5814"}]}
{"actor":{"display_login":"JonathanHallam"}}