Merge pull request #4737 from jsenon/feature-2435-s3configfile

Add feature with s3 state store from configfile
This commit is contained in:
Justin Santa Barbara 2018-06-11 12:33:00 -04:00 committed by GitHub
commit 1df4d03a70
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
49 changed files with 93 additions and 61 deletions

View File

@ -21,7 +21,6 @@ import (
"fmt"
"io"
"os"
"strings"
"github.com/golang/glog"
"github.com/spf13/cobra"
@ -120,13 +119,12 @@ func NewCmdRoot(f *util.Factory, out io.Writer) *cobra.Command {
}
})
cmd.PersistentFlags().StringVar(&rootCommand.configFile, "config", "", "config file (default is $HOME/.kops.yaml)")
cmd.PersistentFlags().StringVar(&rootCommand.configFile, "config", "", "yaml config file (default is $HOME/.kops.yaml)")
viper.BindPFlag("config", cmd.PersistentFlags().Lookup("config"))
viper.SetDefault("config", "$HOME/.kops.yaml")
defaultStateStore := os.Getenv("KOPS_STATE_STORE")
if strings.HasSuffix(defaultStateStore, "/") {
defaultStateStore = strings.TrimSuffix(defaultStateStore, "/")
}
cmd.PersistentFlags().StringVarP(&rootCommand.RegistryPath, "state", "", defaultStateStore, "Location of state storage (kops 'config' file). Overrides KOPS_STATE_STORE environment variable")
cmd.PersistentFlags().StringVar(&rootCommand.RegistryPath, "state", "", "Location of state storage (kops 'config' file). Overrides KOPS_STATE_STORE environment variable")
viper.BindPFlag("KOPS_STATE_STORE", cmd.PersistentFlags().Lookup("state"))
defaultClusterName := os.Getenv("KOPS_CLUSTER_NAME")
cmd.PersistentFlags().StringVarP(&rootCommand.clusterName, "name", "", defaultClusterName, "Name of cluster. Overrides KOPS_CLUSTER_NAME environment variable")
@ -150,18 +148,41 @@ func NewCmdRoot(f *util.Factory, out io.Writer) *cobra.Command {
// initConfig reads in config file and ENV variables if set.
func initConfig() {
// Take in order Flag --state, ENV, .kops.yaml, .kops/config
if os.Getenv("KOPS_STATE_STORE") != "" && rootCommand.RegistryPath == "" {
rootCommand.RegistryPath = os.Getenv("KOPS_STATE_STORE")
viper.BindEnv("KOPS_STATE_STORE")
viper.AutomaticEnv()
}
if rootCommand.configFile != "" {
// enable ability to specify config file via flag
viper.SetConfigFile(rootCommand.configFile)
if err := viper.ReadInConfig(); err == nil {
viper.BindEnv("KOPS_STATE_STORE")
rootCommand.RegistryPath = viper.GetString("KOPS_STATE_STORE")
viper.AutomaticEnv()
}
}
viper.SetConfigName(".kops") // name of config file (without extension)
viper.AddConfigPath("$HOME") // adding home directory as first search path
viper.AutomaticEnv() // read in environment variables that match
// If a config file is found, read it in.
if err := viper.ReadInConfig(); err == nil {
fmt.Println("Using config file:", viper.ConfigFileUsed())
if rootCommand.configFile == "" && rootCommand.RegistryPath == "" {
viper.SetConfigName(".kops") // name of config file (without extension)
viper.AddConfigPath("$HOME") // adding home directory as first search path. Assume that exist. Need to be fix for windows
viper.ReadInConfig()
if err := viper.ReadInConfig(); err == nil {
viper.BindEnv("KOPS_STATE_STORE")
rootCommand.RegistryPath = viper.GetString("KOPS_STATE_STORE")
viper.AutomaticEnv()
}
viper.SetConfigName("config")
viper.AddConfigPath("$HOME/.kops") // adding home/.kops/config directory as second search path
viper.ReadInConfig()
if err := viper.ReadInConfig(); err == nil {
viper.BindEnv("KOPS_STATE_STORE")
rootCommand.RegistryPath = viper.GetString("KOPS_STATE_STORE")
viper.AutomaticEnv()
}
}
}

View File

@ -65,6 +65,7 @@ Trailing slash will be trimmed.`
func (f *Factory) Clientset() (simple.Clientset, error) {
if f.clientset == nil {
registryPath := f.options.RegistryPath
fmt.Println("Config S3:", registryPath)
if registryPath == "" {
return nil, field.Required(field.NewPath("State Store"), STATE_ERROR)
}

View File

@ -271,6 +271,8 @@ to revert or recover a previous state store.
aws s3api put-bucket-versioning --bucket prefix-example-com-state-store --versioning-configuration Status=Enabled
```
Information regarding cluster state store location must be set when using `kops` cli see [state store](state.md) for further information.
### Using S3 default bucket encryption
kops supports [default bucket encryption](https://aws.amazon.com/de/blogs/aws/new-amazon-s3-encryption-security-features/) to encrypt the kops state in an S3 bucket. In this way, whatever default server side encryption is set for your bucket, it will be used for the kops state, too. You may want to use this AWS feature e.g. for easily encrypting every written object by default or when for compliance reasons you need to use specific encryption keys (KMS, CMK).

View File

@ -17,7 +17,7 @@ kops helps you create, destroy, upgrade and maintain production-grade, highly av
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
-h, --help help for kops
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory

View File

@ -50,7 +50,7 @@ kops completion [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -57,7 +57,7 @@ kops create -f FILENAME [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -112,7 +112,7 @@ kops create cluster [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -44,7 +44,7 @@ kops create instancegroup [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -33,7 +33,7 @@ Create a secret
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -36,7 +36,7 @@ kops create secret dockerconfig [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -36,7 +36,7 @@ kops create secret encryptionconfig [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -28,7 +28,7 @@ Create a secret keypair
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -34,7 +34,7 @@ kops create secret keypair ca [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -32,7 +32,7 @@ kops create secret sshpublickey [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -39,7 +39,7 @@ kops delete -f FILENAME [--yes] [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -35,7 +35,7 @@ kops delete cluster CLUSTERNAME [--yes] [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -33,7 +33,7 @@ kops delete instancegroup [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -29,7 +29,7 @@ kops delete secret [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -25,7 +25,7 @@ Get additional information about cloud and cluster resources.
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -30,7 +30,7 @@ kops describe secrets [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -35,7 +35,7 @@ Edit a resource configuration. This command changes the desired configuration in
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -37,7 +37,7 @@ kops edit cluster [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -37,7 +37,7 @@ kops edit instancegroup [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -26,7 +26,7 @@ Export configurations from a cluster.
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -30,7 +30,7 @@ kops export kubecfg CLUSTERNAME [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -50,7 +50,7 @@ kops get [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -40,7 +40,7 @@ kops get clusters [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -36,7 +36,7 @@ kops get instancegroups [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -34,7 +34,7 @@ kops get secrets [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -27,7 +27,7 @@ Imports a kubernetes cluster created by kube-up.sh into a state store. This com
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -32,7 +32,7 @@ kops import cluster [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -38,7 +38,7 @@ kops replace -f FILENAME [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -70,7 +70,7 @@ Note: terraform users will need to run all of the following commands from the sa
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -85,7 +85,7 @@ kops rolling-update cluster [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -28,7 +28,7 @@ kops set does not update the cloud resources, to apply the changes use "kops upd
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -34,7 +34,7 @@ kops set cluster [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -26,7 +26,7 @@ Misc infrequently used commands.
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -31,7 +31,7 @@ kops toolbox bundle [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -36,7 +36,7 @@ kops toolbox convert-imported [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -31,7 +31,7 @@ kops toolbox dump [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -42,7 +42,7 @@ kops toolbox template [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -26,7 +26,7 @@ Creates or updates cloud resources to match cluster desired configuration.
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -40,7 +40,7 @@ kops update cluster [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -26,7 +26,7 @@ Automates checking for and applying Kubernetes updates. This upgrades a cluster
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -32,7 +32,7 @@ kops upgrade cluster [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -33,7 +33,7 @@ This commands validates the following components:
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -38,7 +38,7 @@ kops validate cluster [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -29,7 +29,7 @@ kops version [flags]
```
--alsologtostderr log to standard error as well as files
--config string config file (default is $HOME/.kops.yaml)
--config string yaml config file (default is $HOME/.kops.yaml)
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default false)

View File

@ -38,4 +38,12 @@ The state store can easily be moved to a different s3 bucket. The steps for a si
3. Either run `kops edit cluster ${CLUSTER_NAME}` or edit the cluster manifest yaml file. Update `.spec.configBase` to reference the new s3 bucket.
4. Run `kops update cluster ${CLUSTER_NAME} --yes` to apply the changes to the cluster. Newly launched nodes will now retrieve their dependent files from the new S3 bucket. The files in the old bucket are now safe to be deleted.
Repeat for each cluster needing to be moved.
Repeat for each cluster needing to be moved.
## State store configuration
State store configuration must be use with `kops` cli. It will be retrieve in order through:
+ command line argument `--config $HOME/yourconfig` or `--state s3://yourstatestore`
+ envirornment variable `export KOPS_STATE_STORE=s3://yourstatestore`
+ config file `.kops.yaml`, `$HONE/.kops.yaml`, `$HOME/.kops/config.yaml`
It assume that $HOME is correctly set.