{"action":"created","issue":{"url":"https://api.github.com/repos/convox/rack/issues/676","repository_url":"https://api.github.com/repos/convox/rack","labels_url":"https://api.github.com/repos/convox/rack/issues/676/labels{/name}","comments_url":"https://api.github.com/repos/convox/rack/issues/676/comments","events_url":"https://api.github.com/repos/convox/rack/issues/676/events","html_url":"https://github.com/convox/rack/pull/676","id":156395156,"number":676,"title":"Uninstall Enhancements","user":{"login":"nzoschke","id":147410,"avatar_url":"https://avatars.githubusercontent.com/u/147410?v=3","gravatar_id":"","url":"https://api.github.com/users/nzoschke","html_url":"https://github.com/nzoschke","followers_url":"https://api.github.com/users/nzoschke/followers","following_url":"https://api.github.com/users/nzoschke/following{/other_user}","gists_url":"https://api.github.com/users/nzoschke/gists{/gist_id}","starred_url":"https://api.github.com/users/nzoschke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nzoschke/subscriptions","organizations_url":"https://api.github.com/users/nzoschke/orgs","repos_url":"https://api.github.com/users/nzoschke/repos","events_url":"https://api.github.com/users/nzoschke/events{/privacy}","received_events_url":"https://api.github.com/users/nzoschke/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-05-24T00:26:25Z","updated_at":"2016-05-25T19:29:06Z","closed_at":"2016-05-25T19:29:05Z","pull_request":{"url":"https://api.github.com/repos/convox/rack/pulls/676","html_url":"https://github.com/convox/rack/pull/676","diff_url":"https://github.com/convox/rack/pull/676.diff","patch_url":"https://github.com/convox/rack/pull/676.patch"},"body":"https://github.com/convox/rack/issues/411\r\n\r\nThis is based on #675, a the `cli` package dependency change.\r\n\r\n- [x] Remove all dependencies on the Rack API\r\n- [x] Better pre-flight credential validation\r\n- [x] Better pre-flight stack status checks\r\n- [ ] Better pre-flight ECS deployment checks\r\n- [x] Delete S3 buckets\r\n- [x] Delete all the services with credentials\r\n- [x] Then delete all the apps with credentials\r\n- [x] Then delete the rack with credentials\r\n- [x] Retry stack deletion once on error\r\n- [x] Add to CI\r\n\r\n## Demo\r\n\r\n```bash\r\n$ AWS_ACCESS_KEY_ID=foo AWS_SECRET_ACCESS_KEY=bar convox uninstall to-delete us-east-1\r\n\r\n\r\n     ___    ___     ___   __  __    ___   __  _\r\n    / ___\\ / __ \\ /  _  \\/\\ \\/\\ \\  / __ \\/\\ \\/ \\\r\n   /\\ \\__//\\ \\_\\ \\/\\ \\/\\ \\ \\ \\_/ |/\\ \\_\\ \\/>  </\r\n   \\ \\____\\ \\____/\\ \\_\\ \\_\\ \\___/ \\ \\____//\\_/\\_\\\r\n    \\/____/\\/___/  \\/_/\\/_/\\/__/   \\/___/ \\//\\/_/\r\n\r\n\r\nResources to uninstall:\r\n\r\nSTACK          TYPE     STATUS            \r\nredis-3839     service  CREATE_IN_PROGRESS\r\nconvox-events  service  CREATE_COMPLETE   \r\nhttpd2         app      CREATE_COMPLETE   \r\nhttpd          app      CREATE_COMPLETE   \r\nto-delete      rack     CREATE_COMPLETE   \r\n\r\nERROR: Can not uninstall while to-delete-redis-3839 is updating.\r\n```\r\n\r\n```bash\r\n$ convox uninstall to-delete us-east-1\r\n\r\n\r\n     ___    ___     ___   __  __    ___   __  _\r\n    / ___\\ / __ \\ /  _  \\/\\ \\/\\ \\  / __ \\/\\ \\/ \\\r\n   /\\ \\__//\\ \\_\\ \\/\\ \\/\\ \\ \\ \\_/ |/\\ \\_\\ \\/>  </\r\n   \\ \\____\\ \\____/\\ \\_\\ \\_\\ \\___/ \\ \\____//\\_/\\_\\\r\n    \\/____/\\/___/  \\/_/\\/_/\\/__/   \\/___/ \\//\\/_/\r\n\r\n\r\nThis installer needs AWS credentials to install/uninstall the Convox platform into\r\nyour AWS account. These credentials will only be used to communicate between this\r\ninstaller running on your computer and the AWS API.\r\n\r\nWe recommend that you create a new set of credentials exclusively for this\r\ninstall/uninstall process and then delete them once the installer has completed.\r\n\r\nTo generate a new set of AWS credentials go to:\r\nhttps://docs.convox.com/creating-an-iam-user\r\nAWS Access Key ID: foo\r\nAWS Secret Access Key: bar\r\n\r\nERROR: InvalidClientTokenId: The security token included in the request is invalid.\r\n\tstatus code: 403, request id: 6c952f95-2216-11e6-b748-295d1284a76f\r\n```\r\n\r\n```bash\r\n$ convox uninstall to-delete us-east-1\r\n\r\n\r\n     ___    ___     ___   __  __    ___   __  _\r\n    / ___\\ / __ \\ /  _  \\/\\ \\/\\ \\  / __ \\/\\ \\/ \\\r\n   /\\ \\__//\\ \\_\\ \\/\\ \\/\\ \\ \\ \\_/ |/\\ \\_\\ \\/>  </\r\n   \\ \\____\\ \\____/\\ \\_\\ \\_\\ \\___/ \\ \\____//\\_/\\_\\\r\n    \\/____/\\/___/  \\/_/\\/_/\\/__/   \\/___/ \\//\\/_/\r\n\r\n\r\nThis installer needs AWS credentials to install/uninstall the Convox platform into\r\nyour AWS account. These credentials will only be used to communicate between this\r\ninstaller running on your computer and the AWS API.\r\n\r\nWe recommend that you create a new set of credentials exclusively for this\r\ninstall/uninstall process and then delete them once the installer has completed.\r\n\r\nTo generate a new set of AWS credentials go to:\r\nhttps://docs.convox.com/creating-an-iam-user\r\nAWS Access Key ID: $id\r\nAWS Secret Access Key: $key\r\n\r\nDelete everything? y/N: \r\nERROR: Aborting uninstall.\r\n```\r\n\r\n```bash\r\n$ convox uninstall convox-778 us-east-1 --force\r\n\r\n\r\n     ___    ___     ___   __  __    ___   __  _\r\n    / ___\\ / __ \\ /  _  \\/\\ \\/\\ \\  / __ \\/\\ \\/ \\\r\n   /\\ \\__//\\ \\_\\ \\/\\ \\/\\ \\ \\ \\_/ |/\\ \\_\\ \\/>  </\r\n   \\ \\____\\ \\____/\\ \\_\\ \\_\\ \\___/ \\ \\____//\\_/\\_\\\r\n    \\/____/\\/___/  \\/_/\\/_/\\/__/   \\/___/ \\//\\/_/\r\n\r\n\r\nResources to delete:\r\n\r\nSTACK             TYPE  STATUS         \r\nnode-workers-778  app   UPDATE_COMPLETE\r\nhttpd-778         app   UPDATE_COMPLETE\r\nconvox-778        rack  CREATE_COMPLETE\r\n\r\n\r\nUninstalling Convox...\r\nDeleting node-workers-778...\r\nDeleting httpd-778...\r\nSkipped S3 Bucket: convox-778-node-workers-778-settings-1ovm6gawfazf\r\nDeleted ECS TaskDefinition: WebECSTaskDefinition\r\nSkipped S3 Bucket: convox-778-httpd-778-settings-1mcp3203jxwt8\r\nDeleted ECS TaskDefinition: WebECSTaskDefinition\r\nDeleted Unknown: Custom::ECRRepository: RegistryRepository\r\nDeleted ECS Service: WebECSService\r\nDeleted ECS Service: WorkerECSService\r\nDeleted ECS Service: RedisECSService\r\nDeleted ECS Service: WebECSService\r\nDeleted Unknown: Custom::ECRRepository: RegistryRepository\r\nDeleted ECS TaskDefinition: WebECSTaskDefinition\r\nDeleted ECS TaskDefinition: RedisECSTaskDefinition\r\nDeleted Elastic Load Balancer: node-workers-778-web-WBUNRYT\r\nDeleted Elastic Load Balancer: httpd-778-web-LMYZTAB\r\nDeleted Elastic Load Balancer: node-workers-778-redis-UXKAOK3-i\r\nDeleted CloudWatch Log Group: convox-778-node-workers-778-LogGroup-O9M8EC277LWP\r\nDeleted Lambda Function: convox-778-node-workers-778-CustomTopic-1QY25M9174092\r\nDeleted ECS TaskDefinition: WorkerECSTaskDefinition\r\nDeleted Lambda Function: convox-778-httpd-778-CustomTopic-3M7POHS4O2YE\r\nDeleted CloudWatch Log Group: convox-778-httpd-778-LogGroup-KRWOK4GO0XE1\r\nDeleted ECS TaskDefinition: WebECSTaskDefinition\r\nDeleted Kinesis Stream: convox-778-node-workers-778-Kinesis-MIW8RX6Y6AWP\r\nDeleted Kinesis Stream: convox-778-httpd-778-Kinesis-1I4VOSCQQZ088\r\nDeleted Security Group: sg-04953c7f\r\nUninstalling Convox...\r\nDeleting convox-778...\r\nDeleted Unknown: AWS::AutoScaling::LifecycleHook: convox-778-InstancesLifecycle-MTG5UWS1NVBX\r\nDeleted ECS Service: ApiWeb\r\nDeleted ECS Service: ApiMonitor\r\nDeleted ECS TaskDefinition: ApiWebTasks\r\nDeleted ECS TaskDefinition: ApiMonitorTasks\r\nDeleted Lambda Function: convox-778-InstancesLifecycleHandler-UOSI7DFOL533\r\nDeleted IAM User: convox-778-RegistryUser-T9VWNO1LPJ2R\r\nDeleted IAM User: convox-778-KernelUser-1JI2F6BQDGTU6\r\nDeleted KMS Key: EncryptionKey\r\nDeleted Lambda Function: convox-778-LogSubscriptionFilterFunction-1OYAI47MT3MUN\r\nDeleted Access Key: AKIAIP6RLHW5JKJWMAAA\r\nSkipped S3 Bucket: convox-778-registrybucket-zrq79ct8pgve\r\nDeleted Access Key: AKIAIZHV4CYRAWMPOLVQ\r\nSkipped S3 Bucket: convox-778-settings-qj8wawmr396d\r\nDeleted Routing Table: rtb-48e8bc2f\r\nDeleted DynamoDB Table: convox-778-builds\r\nDeleted DynamoDB Table: convox-778-releases\r\nUninstalling Convox...\r\nDeleted AutoScalingGroup: convox-778-Instances-1PUHZNX8JIVGG\r\nDeleted ECS Cluster: convox-778-Cluster-1WVRXAMPL67GO\r\nDeleted Security Group: sg-5c852c27\r\nDeleted Elastic Load Balancer: convox-778\r\nDeleted CloudWatch Log Group: convox-778-LogGroup-3IPMF3TVNMHL\r\nUninstalling Convox...\r\nDeleted Kinesis Stream: convox-778-Kinesis-13TADAE1JW0BO\r\nDeleted VPC Internet Gateway: igw-b33549d7\r\nDeleted Security Group: sg-52852c29\r\nDeleted VPC Subnet: subnet-f69fe3dc\r\nDeleted VPC Subnet: subnet-0c790254\r\nDeleted VPC Subnet: subnet-6c08271a\r\nDeleted Lambda Function: convox-778-CustomTopic-10NQYHHP0WVQ2\r\nUninstalling Convox...\r\nDeleting S3 Bucket convox-778-registrybucket-zrq79ct8pgve...\r\nEmptying S3 Bucket convox-778-registrybucket-zrq79ct8pgve...\r\nEmptying S3 Bucket convox-778-registrybucket-zrq79ct8pgve...\r\nDeleting S3 Bucket convox-778-settings-qj8wawmr396d...\r\nEmptying S3 Bucket convox-778-settings-qj8wawmr396d...\r\nEmptying S3 Bucket convox-778-settings-qj8wawmr396d...\r\nEmptying S3 Bucket convox-778-node-workers-778-settings-1ovm6gawfazf...\r\nEmptying S3 Bucket convox-778-node-workers-778-settings-1ovm6gawfazf...\r\nEmptying S3 Bucket convox-778-httpd-778-settings-1mcp3203jxwt8...\r\nEmptying S3 Bucket convox-778-httpd-778-settings-1mcp3203jxwt8...\r\nDeleting S3 Bucket convox-778-node-workers-778-settings-1ovm6gawfazf...\r\nDeleting S3 Bucket convox-778-httpd-778-settings-1mcp3203jxwt8...\r\nSuccessfully uninstalled.\r\n```\r\n\r\n## Release Playbook\r\n- [ ] Rebase against master\r\n- [ ] Release branch ()\r\n- [ ] Pass CI ()\r\n- [ ] Code review\r\n- [ ] Merge into master\r\n- [ ] Release master ()\r\n- [ ] Pass CI ()\r\n- [ ] Update staging rack\r\n- [ ] Edit [Rack release record](https://github.com/convox/rack/releases) and/or update [docs](https://github.com/convox/convox.github.io)\r\n- [ ] Publish release\r\n- [ ] Release CLI"},"comment":{"url":"https://api.github.com/repos/convox/rack/issues/comments/221681106","html_url":"https://github.com/convox/rack/pull/676#issuecomment-221681106","issue_url":"https://api.github.com/repos/convox/rack/issues/676","id":221681106,"user":{"login":"nzoschke","id":147410,"avatar_url":"https://avatars.githubusercontent.com/u/147410?v=3","gravatar_id":"","url":"https://api.github.com/users/nzoschke","html_url":"https://github.com/nzoschke","followers_url":"https://api.github.com/users/nzoschke/followers","following_url":"https://api.github.com/users/nzoschke/following{/other_user}","gists_url":"https://api.github.com/users/nzoschke/gists{/gist_id}","starred_url":"https://api.github.com/users/nzoschke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nzoschke/subscriptions","organizations_url":"https://api.github.com/users/nzoschke/orgs","repos_url":"https://api.github.com/users/nzoschke/repos","events_url":"https://api.github.com/users/nzoschke/events{/privacy}","received_events_url":"https://api.github.com/users/nzoschke/received_events","type":"User","site_admin":false},"created_at":"2016-05-25T19:29:05Z","updated_at":"2016-05-25T19:29:05Z","body":"Closing this and testing/releasing on 686"}}
{"actor":{"display_login":"nzoschke"}}