From eb2087ed0032762869dc97d9a0b53b520edc75d9 Mon Sep 17 00:00:00 2001 From: Justin Santa Barbara Date: Thu, 23 Jun 2016 12:05:30 -0400 Subject: [PATCH] upup: add docs for statestore concept --- upup/docs/state.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 upup/docs/state.md diff --git a/upup/docs/state.md b/upup/docs/state.md new file mode 100644 index 0000000000..28fce614f2 --- /dev/null +++ b/upup/docs/state.md @@ -0,0 +1,31 @@ +# The State Store + +upup has the notion of a 'state store'; a location where we store the configuration of your cluster. State is stored +here not only when you first create a cluster, but also you can change the state and apply changes to a running cluster. + +Eventually, kubernetes services will also pull from the state store, so that we don't need to marshal all our +configuration through a channel like user-data. (This is currently done for secrets and SSL keys, for example, +though we have to copy the data from the state store to a file where components like kubelet can read them). + +The state store uses upup's VFS implementation, so can in theory be stored anywhere. Currently storage on S3 +is supported, but support for GCS is coming soon, along with encrypted storage. + +The state store is just files; you can copy the files down and put them into git (or your preferred version +control system). + +## /config + +One of the most important files in the state store is the top-level config file. This file stores the main +configuration for your cluster (instance types, zones, etc)\ + +When you run cloudup, we create a config file for you based on the command line options you specify. +For example, when you run with `--node-size=m4.large`, we actually set a line in the config file +that looks like `NodeMachineType: m4.large`. + +The configuration you specify on the command line is actually just a convenient short-cut to +manually editing the config file. Options you specify on the command line are merged into the existing +configuration. If you want to configure advanced options, or prefer a text-based configuration, you +may prefer to just edit the config file. + +Because the configuration is merged, this is how you can just specify the changed arguments when +reconfiguring your cluster - for example just `cloudup` after a dry-run.