{"action":"created","issue":{"url":"https://api.github.com/repos/apprenda/kismatic/issues/88","repository_url":"https://api.github.com/repos/apprenda/kismatic","labels_url":"https://api.github.com/repos/apprenda/kismatic/issues/88/labels{/name}","comments_url":"https://api.github.com/repos/apprenda/kismatic/issues/88/comments","events_url":"https://api.github.com/repos/apprenda/kismatic/issues/88/events","html_url":"https://github.com/apprenda/kismatic/issues/88","id":189266839,"number":88,"title":"Create scaffolding workflow for spinning up a cluster based on plan output.","user":{"login":"codymccain","id":6386851,"avatar_url":"https://avatars.githubusercontent.com/u/6386851?v=3","gravatar_id":"","url":"https://api.github.com/users/codymccain","html_url":"https://github.com/codymccain","followers_url":"https://api.github.com/users/codymccain/followers","following_url":"https://api.github.com/users/codymccain/following{/other_user}","gists_url":"https://api.github.com/users/codymccain/gists{/gist_id}","starred_url":"https://api.github.com/users/codymccain/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codymccain/subscriptions","organizations_url":"https://api.github.com/users/codymccain/orgs","repos_url":"https://api.github.com/users/codymccain/repos","events_url":"https://api.github.com/users/codymccain/events{/privacy}","received_events_url":"https://api.github.com/users/codymccain/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2016-11-15T00:34:19Z","updated_at":"2016-11-19T05:43:18Z","closed_at":null,"body":"# Problem\r\nWe would like to spin up clusters quickly for testing various configurations.  While the Kismatic tool drastically simplifies cluster creation, manual intervention is required during the bring up process to finalize the plan file with various parameters such as IP address, CIDR ranges, and several other policy and configuration options.\r\n\r\n# Vagrant Scenario\r\nOften, I spin up a small vagrant test cluster by running\r\n\r\n```kismatic install plan```\r\n\r\nAfter answering the node count and other questions, I create a matching Vagrant configuration of nodes.  The node IPs, and names (fqdn and short name for example, you could use the vagrant-dns plugin) need to be synchronized with the plan file.  Once additional options are set in the plan file (see enhancement #78 for a better way to capture this input) and the vagrant virtual machines have been brought up with `vagrant up` run \r\n\r\n```kismatic install validate```\r\n\r\nand then\r\n\r\n``` kismatic install apply```\r\n\r\nto deploy kubernetes.\r\n\r\n# Proposal\r\n\r\nI propose we add an additional subcommand named `scaffold`.  This subcommand could accept a parameter identifying the target platform on which to scaffold (e.g. `vagrant`, `aws`, `packet`, etc.) the nodes necessary to implement the plan.  This target platform should be pluggable and adhere to a common API for specifying the node VM configurations for the cluster.  \r\n\r\n`kismatic install scaffold` should bring up the target platform.  This subcommand should honor the global parameter for specifying a plan file since it needs to both read and write it.  Since it would bring up the platform, would should provide the appropriate `up`, `halt`, and `destroy` subcommands to `scaffold`.  \r\n\r\nFor example, if the target is\r\n- `vagrant`, a Vagrantfile should be produced (we will need to capture the desired CIDR for generating the nodes and optionally could consume a go template as a parameter for controlling certain aspects of the Vagrantfile)\r\n- `aws`, a CloudFormation script to bring up the nodes (the CLI should prompt the user for appropriate authentication credentials as well as region, availability zone, VPC, etc.).\r\n\r\nAdditionally, if scaffold specific parameters need to be saved (for halting, destroying, or bringing the cluster back up), those could be stored in the plan file as:\r\n\r\n```\r\nscaffold:\r\n  vagrant:\r\n    cidr: 192.168.50.0/24\r\n```\r\n\r\nA proposed order of operations is:\r\n\r\n```kismatic install plan```\r\n\r\nyielding the plan file.\r\n\r\n```kismatic scaffold up --target vagrant```\r\n\r\nThis will bring up the Vagrant cluster.\r\n\r\n```kismatic install apply```\r\n\r\nwill install the kismatic distribution on the new cluster."},"comment":{"url":"https://api.github.com/repos/apprenda/kismatic/issues/comments/261695331","html_url":"https://github.com/apprenda/kismatic/issues/88#issuecomment-261695331","issue_url":"https://api.github.com/repos/apprenda/kismatic/issues/88","id":261695331,"user":{"login":"dasmb","id":5652591,"avatar_url":"https://avatars.githubusercontent.com/u/5652591?v=3","gravatar_id":"","url":"https://api.github.com/users/dasmb","html_url":"https://github.com/dasmb","followers_url":"https://api.github.com/users/dasmb/followers","following_url":"https://api.github.com/users/dasmb/following{/other_user}","gists_url":"https://api.github.com/users/dasmb/gists{/gist_id}","starred_url":"https://api.github.com/users/dasmb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dasmb/subscriptions","organizations_url":"https://api.github.com/users/dasmb/orgs","repos_url":"https://api.github.com/users/dasmb/repos","events_url":"https://api.github.com/users/dasmb/events{/privacy}","received_events_url":"https://api.github.com/users/dasmb/received_events","type":"User","site_admin":false},"created_at":"2016-11-19T05:43:18Z","updated_at":"2016-11-19T05:43:18Z","body":"https://github.com/apprenda/kismatic-provision \r\n\r\nPlease review. As it stands, this tool is intended to GENERATE a plan file, but it could also take input from a plan if this is desirable."}}
{"actor":{"display_login":"dasmb"}}