Commit Graph

722 Commits

Author SHA1 Message Date
Kubernetes Submit Queue 3a29d7c3e1
Merge pull request #3722 from justinsb/toolbox_refactor_4_add_gce_ips
Automatic merge from submit-queue.

GCE Dump: Include instance IPs

The challenge here is that we normally only get the instance url.  So we
have to do another call to GCE, but we also don't want to do one call per
instance.

Instead, we create a dump operation context object which we pass into the
dump.
2017-10-30 13:59:11 -07:00
Rohith 0e2e20bc15 Kops Templating
Adding an extra option to the toolbox templating to format the YAML before writing out; which is usefull to cleanup formating issues and as detecting errors in the template

- added a formating options --format-yaml to the toolbox template which cleans up the yaml before writing out
- updated the cli documentation
- added the --config-value used to grab the configuration
2017-10-30 12:05:11 +00:00
Justin Santa Barbara b3e00c0dd1 GCE Dump: Include instance IPs
The challenge here is that we normally only get the instance url.  So we
have to do another call to GCE, but we also don't want to do one call
per instance.

Instead, we create a dump operation context object which we pass into the dump.
2017-10-29 23:22:40 -04:00
Kubernetes Submit Queue b02c3a269c
Merge pull request #3726 from justinsb/storage_acls
Automatic merge from submit-queue.

GCS: Use ACLs for GCE permissions

This needs less permissions, but also allows for more granular control over
access to files than whole-bucket permissions that IAM gives us.
2017-10-29 20:18:51 -07:00
Justin Santa Barbara b2bcba4a6d GCE: Use object-level permissions for files in GCS
This lets us configure cross-project permissions while ourselves needing
minimal permissions, but also gives us a nice hook for future lockdown
of object-level permissions.
2017-10-29 19:17:00 -04:00
Justin Santa Barbara 66e74fac6a Rename pkg/resources/utils -> pkg/resources/ops
That seems to be what utils really is.
2017-10-29 16:32:48 -04:00
Justin Santa Barbara 1eb17ae6b9 Move DeleteResources into pkg/resources/utils 2017-10-29 12:26:07 -04:00
Justin Santa Barbara a18363f059 Refactor toolbox dump & dump structured instances
This will enable log collection even if nodes don't register.

AWS: Dumps ids & addresses
GCE: Dumps names - addresses to follow
Others: Not yet!
2017-10-28 14:46:28 -04:00
Kubernetes Submit Queue a4d6895472 Merge pull request #3707 from andrewsykim/droplet
Automatic merge from submit-queue.

Implement DigitalOcean Droplet FI Task

Implements cloudup fi tasks for DigitalOcean droplets. It makes a few assumptions to reduce the size of this PR, those will be addressed in future PRs. 

Also does some cleanup in the DigitalOcean `dns` package.
2017-10-27 08:30:57 -07:00
andrewsykim 45bf2cb3a7 Implement DigitalOcean Droplet FI Task 2017-10-27 09:48:42 -04:00
chrislovecnm 0dc7a6e671 network and security tests are working 2017-10-26 13:17:34 -06:00
chrislovecnm 384c74d66c Refactoring IAM phase to Security Phase 2017-10-26 12:28:50 -06:00
Rodrigo Menezes d803480485 Merge remote-tracking branch 'upstream/master' into extra_user-data 2017-10-24 12:52:19 -07:00
Rohith 9958d333ae Kops Toolbox Template
The current implementation fails on template which reference unset variables, it is however useful at times to permit overriding this behavior and using sprig default() for example methods to handle it

- added a new command line option --fail-on-missing (defaults to true, so keeps the current behaviour)
- updated the unit test to reflect the changes
- updated the cli docs
2017-10-22 14:29:23 +00:00
Rodrigo Menezes 469b73560f Merge remote-tracking branch 'upstream/master' into extra_user-data 2017-10-17 14:10:25 -07:00
Justin Santa Barbara eec1141a41 Rationalize timeouts for rolling-update
The intervals remain the minimum time between instances; drain &
validate time is additional.
2017-10-17 11:44:46 -04:00
chrislovecnm 91d4e7e3e8 fixing bazel missed BUILD stuff 2017-10-16 10:38:53 -06:00
Rodrigo Menezes 75aa120f43 Merge remote-tracking branch 'upstream/master' into extra_user-data 2017-10-15 17:17:12 -07:00
Rodrigo Menezes e77cda1af1 Allow passing in extra user-data to cloud-init 2017-10-15 17:10:03 -07:00
chrislovecnm eeafe6467c Integration tests for phases - iam works - others are WIP 2017-10-12 14:13:17 -06:00
Erick Tryzelaar 5a89dd113c `kops get ...` should exit with non-zero if the resource don't exist
Without this change, `kops get --name non-existing-cluster` will
exit with a status of `0`, which makes it difficult to check if
a cluster (and other resources) exist in a shell script.
2017-10-11 16:11:16 -07:00
Justin Santa Barbara 19677523c0 Mock kops version in tests
This avoids having to update the tests every time our version changes.
2017-10-10 11:11:57 -04:00
Kubernetes Submit Queue 1c9df0b269 Merge pull request #3524 from justinsb/gce_format_ig_zones
Automatic merge from submit-queue.

GCE: Fix subnets vs zones formatting of instance groups
2017-10-08 13:16:52 -07:00
chrislovecnm 2e6f8bf461 setting variable in func instead inside of func call 2017-10-05 20:38:34 -06:00
Thomas Schaaf 6330c6c6ee Minor spelling 2017-10-05 09:06:09 +02:00
Justin Santa Barbara 3ab5264ee4 Fix update cluster integration test for bazel
Bazel doesn't like overlapping file paths; this is much cleaner anyway.
2017-10-03 20:51:00 -04:00
Kubernetes Submit Queue 98bf9d35a9 Merge pull request #3477 from chrislovecnm/update-test-yaml-k8s-version
Automatic merge from submit-queue.

bumping k8s versions in test files

updating k8s versions in test YAML files so that we do not get warnings during testing
2017-10-03 14:03:23 -07:00
chrislovecnm 0abcaa8026 renaming cf integration test folder 2017-10-03 13:38:13 -06:00
chrislovecnm 48c6dfdad4 giving cf its own files, because it has hardcoded versions 2017-10-03 12:16:04 -06:00
Justin Santa Barbara 38ea16a4ae GCE: Fix subnets vs zones formatting of instance groups 2017-10-03 13:42:14 -04:00
Justin Santa Barbara 39d4f21954 bazel: stamp version into build 2017-10-03 11:36:40 -04:00
Justin Santa Barbara 57ceb5dbab bazel: Add targets for cross-package testdata 2017-10-03 10:54:46 -04:00
Justin Santa Barbara 0143be7c4f autogen: BUILD and BUILD.bazel 2017-10-02 14:27:21 -04:00
Justin Santa Barbara 544990842a More fixes for 1.8 API changes 2017-10-01 23:02:32 -04:00
Justin Santa Barbara 95d4f3eb59 More code updates for 1.8 2017-10-01 21:13:00 -04:00
Justin Santa Barbara 3478031533 API types changed package 2017-10-01 14:03:56 -04:00
Justin Santa Barbara 0c89c9851e Simple code updates for 1.8 breakages 2017-10-01 13:17:40 -04:00
Kubernetes Submit Queue 0905e71741 Merge pull request #3411 from justinsb/mirror_stores
Automatic merge from submit-queue.

Mirror keystore & secretstore
2017-09-30 23:08:33 -07:00
Justin Santa Barbara a4a58d277d Mirroring - Fixes from code review 2017-09-30 22:05:14 -04:00
Kubernetes Submit Queue 852455afed Merge pull request #3439 from justinsb/gce_zones_in_instancegroup
Automatic merge from submit-queue.

Add Zones field to InstanceGroup

The Zones field can specify zones where they are not specified on a
Subnet, for example on GCE where we have regional subnets.
2017-09-30 18:17:32 -07:00
Justin Santa Barbara 7fd1196708 Add Zones field to InstanceGroup
The Zones field can specify zones where they are not specified on a
Subnet, for example on GCE where we have regional subnets.
2017-09-30 19:44:35 -04:00
Justin Santa Barbara da99a7270d Subnets on GCE are regional, create one per region
We also make the subnet zone and CIDR optional on GCE
2017-09-30 19:22:14 -04:00
Justin Santa Barbara 8280c4f9d3 Remove MarkIsReady function, calculate on demand
Avoids setting the trap of failing to call MarkIsReady
2017-09-30 17:39:53 -04:00
chrislovecnm a431eb3e43 refactoring to use cloud based GetGroups 2017-09-29 12:29:07 -06:00
John Laswell a6dbc73502
docs updates to clarify and fix typos
Helps with https://github.com/kubernetes/kops/issues/3441.
2017-09-26 19:50:38 -04:00
Justin Santa Barbara 559d885480 Mirror keystore & secretstore
This allows us to have our API objects in kops-server, but our
configuration on S3 or GCS.
2017-09-24 00:09:02 -04:00
Kubernetes Submit Queue ba42020e09 Merge pull request #3329 from chrislovecnm/promote-drain-validate
Automatic merge from submit-queue. .

promoting drain and validate by setting feature flag to true

I am unable to recreate https://github.com/kubernetes/kops/issues/2407, and frankly, it may be an edge case.  We could warn a user if their wait times are low, but that would be another PR.

This PR moves Drain and Validate functionality for rolling-updates into the default user experience, setting the Feature Flag to true.

Per feedback, I am using the node and master interval times for the validation.
2017-09-23 21:07:26 -07:00
Kubernetes Submit Queue 9ffa37ac6b Merge pull request #3435 from justinsb/gce_network_mode_custom
Automatic merge from submit-queue. .

Create GCE networks in auto mode, not legacy mode

auto mode allows for conversion to custom mode at the API level, and
legacy mode is deprecated.
2017-09-23 18:03:41 -07:00
chrislovecnm ec2f0dfdf3 reusing the node and master duration for validation periods 2017-09-23 18:11:48 -06:00
Justin Santa Barbara 73dd870118 GCE integration test: verify TF output 2017-09-23 16:27:15 -04:00
Justin Santa Barbara e730e043ab Add function to get etcd status
This will allow us to permit changing the etcd configuration only if
etcd has not yet been configured.
2017-09-22 23:27:26 -04:00
georgebuckerfield da36425dfb Enable support for encryption-at-rest
- add a new kops secret command to store encryption config
- add the experimential-encryption-provider-config flag to the kube-apiserver
- add functionality to nodeup to create the stored encryption config in the correct path
2017-09-22 17:14:51 +01:00
Justin Santa Barbara 055f510c6f Create minimal mock GCECloud, first test
We test create cluster - we actually have an issue with the length of
the names on longer cluster names; first step is to get test coverage.
2017-09-16 11:02:30 -04:00
Marius Davidsen 34cbbd20db Adds --master-public-name argument to create_cluster. 2017-09-15 13:20:20 +02:00
Kubernetes Submit Queue 5cb443d4a9 Merge pull request #3290 from romana/romana-networking-option
Automatic merge from submit-queue

Add romana to built-in CNI options

This PR adds `romana` as a networking option for kops.

It installs the latest "preview" release of Romana v2.0, which provides the expected features in terms of IP allocations and route configuration. Network policy features are being ported to 2.0 and will be in the final release. (We intend to submit a followup PR for kops as part of that rolling out that release.)

Note: in this setup, we're using the etcd cluster that kops deploys for k8s. This isn't ideal, but some possibilities (eg: StatefulSets) aren't practical for the CNI itself, and creating a parallel etcd cluster via manifests seemed to be a more-intrusive approach than using the existing one.
If this is a concern or problem, then I'm very open to discussing and implementing it based on your suggestions.

Also, some functionality is exclusive to AWS environments. Other cloud platforms are on Romana's roadmap but not developed yet. Let me know that restriction needs to be enforced in code or directly documented.
2017-09-14 20:43:05 -07:00
Kubernetes Submit Queue 593f444297 Merge pull request #3359 from justinsb/delete_more_secrets
Automatic merge from submit-queue

Support for deleting tokens & keypairs
2017-09-14 19:30:08 -07:00
Caleb Gilmour 79d331e590 Add support for Romana as a networking option 2017-09-13 22:48:18 +00:00
Kubernetes Submit Queue 26e1cb06bf Merge pull request #3190 from justinsb/flannel_vlxan
Automatic merge from submit-queue

Flannel: change default backend type

We support udp, which has to the default for backwards-compatibility,
but also new clusters will now use vxlan.
2017-09-12 19:03:17 -07:00
Justin Santa Barbara f463a8e30e Add docs for flannel-vxlan option 2017-09-12 20:53:00 -04:00
Kubernetes Submit Queue 721ba52139 Merge pull request #3287 from gambol99/toolbox_template
Automatic merge from submit-queue

Toolbox template

Extending the current implementation of toolbox template to include multiple files and snippets. Note, I've removed the requirements for defaults as I think people should be forced to specifically pass them

- allowing the users to use a snippets directory for reusable templates
- allows the users to specify multiple templates files via multiple --template <path>, use a directory or both
- allows the users to specify multiple configuration files via multiple --values <path>,  use a directory or both
- adding a safety check to ensure templates don't reference an unknown values
- fixing the vetting issues to the method YamlToJson -> YAMLToJSON
- as usual anything a saw on the journey which doesn't comply with go-vet got changed

Examples of a snippet

```YAML
hooks:
  - name: some_service.service
    manifest: |
      {{ include "some_service.service" . | indent 6 }}
```
We currently use something similar to template our cluster and instances group documents, handling the differences between prod, ci and ephemeral
2017-09-10 14:04:05 -07:00
Justin Santa Barbara 106875115d Support for deleting tokens & keypairs
This now allows for deleting all secrets, which means we can have a
procedure for rotating all keys.
2017-09-09 01:04:45 -04:00
Kubernetes Submit Queue ae51cfef95 Merge pull request #3336 from justinsb/nodeportaccess
Automatic merge from submit-queue

nodePortAccess, experimental spec override flag
2017-09-08 15:40:01 -07:00
Rohith aaf6143a98 Toolbox Templating
Extending the current implementation of toolbox template to include multiple files and snippets. Note, i've removed the requirements for defaults as I think people should be forced to specifically pass them.

- fixing the vetting iseues to the method YamlToJson -> YAMLToJSON
- adding a safety check to ensure templates don't reference an unknown value
- extending the unit test to ensure the above works on main and snippets
- include the ability to specify multiple configuration files, useful for common.yaml and prod.yaml etc

Requested Changes - Toolbox Templating

Added the requested changes

- moved the templater into it's own package rather than using base util
- moved to using the sprig library for additional template function
- @note: i couldn't find a native way in sprig to do snippets, also the i've overloaded the indent as it appears to do the indent on all lines rather than on the newline, meaning i'd have to shift my first line back by the indent to get it to work, which seems ugly
2017-09-08 20:30:21 +01:00
Kubernetes Submit Queue 05cf84dc3d Merge pull request #3299 from justinsb/extract_userdata
Automatic merge from submit-queue

Extract UserData from CloudFormation output during testing
2017-09-06 10:05:39 -07:00
Justin Santa Barbara 9d31ed1b08 nodePortAccess, experimental spec override flag
This will allow us to set CIDRs for nodeport access, which in turn will
allow e2e tests that require nodeport access to pass.

Then add a feature-flagged flag to `kops create cluster` to allow
arbitrary setting of spec values; currently the only value supported is
cluster.spec.nodePortAccess
2017-09-04 14:27:31 -04:00
andrewsykim d9fa618de6 refactor resource tracker to be usable across packages 2017-09-02 17:37:21 -04:00
Justin Santa Barbara 15d6834113 Flannel: support choosing a backend type
We support udp, which has to the default for backwards-compatibility,
but also new clusters will now use vxlan.
2017-08-30 21:16:21 -04:00
Justin Santa Barbara 69e3d760f4 Misc go vet fixes 2017-08-29 09:55:40 -04:00
Justin Santa Barbara e793562ee6 Extract UserData from CloudFormation output during testing
This gives us some sanity, so we can peek inside the base64 blob
2017-08-29 09:47:11 -04:00
Kubernetes Submit Queue 1cba2a2346 Merge pull request #3292 from chrislovecnm/gce-change-to-interface
Automatic merge from submit-queue

Implementing GCE as an interface - modelling aws cloud provider

GCE and other cloud providers are structs instead of an interface.  AWS cloud provider implements an interface.  This PR refactors `GCECloud` as an interface, and creates `gceCloudImplementation`.

- [x] Need to e2e test
2017-08-28 05:54:57 -07:00
Kubernetes Submit Queue 0c7268435e Merge pull request #3285 from justinsb/fix_space_in_rollingupdatecluster_help
Automatic merge from submit-queue

Fix space in rolling-update cluster help
2017-08-28 03:04:20 -07:00
chrislovecnm 0779fb6fc4 Implementing GCE as an inteface modelling aws cloud provider 2017-08-27 22:19:25 -06:00
Kubernetes Submit Queue 847f6defee Merge pull request #3277 from alrs/kops-command-fixes
Automatic merge from submit-queue

Kops command fixes

TrimSuffix() on defaultStateStore doesn't actually do anything, and there is an unused answer variable in the tests.
2017-08-26 14:40:02 -07:00
Justin Santa Barbara 6d2185a6cd Fix space in rolling-update cluster help
When we use pretty.Bash, we must use pretty.LongDesc to stop the spacing
being mangled.
2017-08-26 07:39:17 -04:00
Lars Lehtonen 408b11d4cc
Assign unused test variable to _ 2017-08-25 14:29:50 -07:00
Lars Lehtonen 24e79a3d8e
TrimSuffix of defaultStateStore 2017-08-25 14:26:24 -07:00
Kubernetes Submit Queue d661e27a99 Merge pull request #3240 from justinsb/create_and_update_functions
Automatic merge from submit-queue

Explicit CreateCluster & UpdateCluster functions
2017-08-25 06:37:34 -07:00
Kubernetes Submit Queue 1e3eef37bf Merge pull request #3245 from mad01/sshsecret
Automatic merge from submit-queue

Adding support for adding ssh public key from file

MVP implementation of adding secret from file related to #2195 

```bash
cat > secret.yaml <<EOF
apiVersion: kops/v1alpha2
kind: SSHSecret
metadata:
  labels:
    kops.k8s.io/cluster: dev.k8s.example.com
spec:
  username: "admin"
  sshPublicKey: "ssh-rsa AAAAB3NzaC1yc2EEEAADA dev@devbox"
EOF
```

`kops create -f secret.yaml`
2017-08-24 20:18:48 -07:00
Justin Santa Barbara c6e31a94c7 Explicit CreateCluster & UpdateCluster functions
This enables better validation (in the etcd status PR)
2017-08-24 14:03:37 -04:00
Kubernetes Submit Queue e6683481c8 Merge pull request #3139 from justinsb/hints_on_cf_test
Automatic merge from submit-queue

Add hints to CF integration test
2017-08-24 00:07:52 -07:00
Alexander Brandstedt 5705885d02 rename sshsecret to sshcredential and update files to reflect change. 2017-08-23 12:18:10 +02:00
Kubernetes Submit Queue 34473e8602 Merge pull request #3210 from KashifSaadat/feature-gate-strict-iam-policies
Automatic merge from submit-queue

Allow the strict IAM policies to be optional

The stricter IAM policies could potentially cause regression for some edge-cases, or may rely on nodeup image changes that haven't yet been deployed / tagged officially (currently the case on master branch since PR https://github.com/kubernetes/kops/pull/3158 was merged in).

This PR just wraps the new IAM policy rules around a cluster spec flag, `EnableStrictIAM`, so will default to the original behaviour (where the S3 policies were completely open). Could also be used to wrap PR https://github.com/kubernetes/kops/pull/3186 if it progresses any further.

- Or we could reject this and have the policies always strict! :)
2017-08-22 20:27:54 -07:00
Kashif Saadat 0e5c393f10 Rename IAM switch to legacy, default to false for new cluster creations. 2017-08-22 13:27:55 +01:00
chrislovecnm 6071ce7383 refactoring for tracking via assets container registry 2017-08-21 17:29:16 -06:00
chrislovecnm 7efb0f31f6 updating phases 2017-08-21 15:17:34 -06:00
Alexander Brandstedt 1eceb788e6 implementation of adding ssh public key using sshsecret spec 2017-08-21 17:18:00 +02:00
Kubernetes Submit Queue 9c86800207 Merge pull request #3085 from chrislovecnm/file-asset-tasks
Automatic merge from submit-queue

starting work on file assets builder

I refactored to the dockerassets pkg to assetstasks, in order to not add yet another package.  Added file copy task, that I have tested with s3 locally, but not certain how to add memfs tests.

Fixes: https://github.com/kubernetes/kops/issues/3086
2017-08-20 08:21:06 -07:00
Kubernetes Submit Queue a3fdefa74c Merge pull request #3041 from justinsb/it_shared_vpc_and_subnet
Automatic merge from submit-queue

Add integration tests for shared subnet & VPC
2017-08-18 15:55:53 -07:00
Kashif Saadat 6a3df8fb7c Don't force ig image change on cluster upgrade if it is custom. 2017-08-18 20:52:50 +01:00
chrislovecnm ee17e6567c starting work on file assets builder 2017-08-18 13:04:12 -06:00
lichuqiang 90ed63465b fix typo 2017-08-17 19:16:13 +08:00
Kubernetes Submit Queue 71d66849a0 Merge pull request #3209 from krzyzacy/addding
Automatic merge from submit-queue

s/addding/adding/ in ssh logs

I was hittting this errror messsage :-(
2017-08-16 09:53:29 -07:00
Sen Lu 790ca20051 s/addding/adding/ in ssh logs 2017-08-15 18:16:03 -07:00
Kubernetes Submit Queue 74d0e211f4 Merge pull request #3193 from orrchen/master
Automatic merge from submit-queue

resolve #3169
2017-08-14 06:14:00 -07:00
Orr Chen 43020af959 resolve #3169 2017-08-13 19:16:22 +03:00
Kubernetes Submit Queue b7efd3ba62 Merge pull request #3120 from KashifSaadat/diff-on-component-config-changes
Automatic merge from submit-queue

Add cluster spec to node user data so component config changes are detected

Related to #3076 

Some cluster changes such as component config modifications are not picked up when performing updates (nodes are not marked as `NEEDUPDATE`). This change introduces the ability to:
1. Include certain cluster specs within the node user data file ~(`enableClusterSpecInUserData: true`)~
2. ~Encode the cluster spec string before placing within the user data file (`enableClusterSpecInUserData: true`)~

~The above flags default to false so shouldn't cause any changes to existing clusters.~

Following feedback I've removed the optional API flags, so component config is included by default within the user data. This WILL cause all nodes to have a required update to their bootstrap scripts.
2017-08-11 03:43:17 -07:00
Kubernetes Submit Queue b1aee7a505 Merge pull request #2542 from kenden/patch-1
Automatic merge from submit-queue

Clarify docs: rename spec/specification into desired configuration 

The cluster state in S3 has (among others) two files: `cluster.spec` and `config`.
When the documentation mentioned "create or update cluster spec" for example, it was confusing what was actually updated. It's not the cluster.spec file.
As I understand, `cluster.spec` should only be created/updated after `kops update --yes` is run.

I changed the docs for `kops get`, `kops create`, `kops replace`, `kops edit`.
I did NOT change those files: `kops_rolling-update.md`, `kops_rolling-update_cluster.md` as I think those actually use `cluster.spec`.
2017-08-10 21:37:29 -07:00
Quentin Nerden 5491f179d1 Clarify docs: rename spec to desired conf
In the S3 bucket, the file cluster.spec is not actually the spec, but the
actual configuration. The file config is the spec. To avoid confusion,
this commit changes spec/specification into 'desired configuration' in
the documentation, to avoid associating cluster.spec with a cluster
'specification' that the users should use.
2017-08-10 18:50:45 +02:00
Lars Lehtonen 5bdd7f2568
Fix dropped error in kops cmd package 2017-08-09 16:29:18 -07:00
Kashif Saadat e0461b92a9 Add ability to store partial cluster and instancegroup spec in userdata,
so component config changes are detected and causes nodes to be updated
2017-08-09 14:15:02 +01:00
asifdxtreme 18f6edd850 Fix Typo to improve GoReportCard 2017-08-08 10:48:14 +08:00
Rohith 3599e64205 - fixing up the flag name from --create to --force to make it align to the kubectl syntax 2017-08-04 20:44:49 +01:00
Rohith e4a53dd044 Replace Command
The current 'kops replace' fails if the resource does not exist, which is annoying if you want to use the feature to drive your CI. This PR adds a --create option to create any resource which does not exist. At the moment we limit this to instanceGroups only. I'd also like to see this command perhaps be renamed to kops apply?
2017-08-04 20:44:49 +01:00
Kubernetes Submit Queue 10ce978b64 Merge pull request #3040 from mad01/templating
Automatic merge from submit-queue

MVP of templating 

MVP implementation of templating to generate cluster.yaml file: related to #2404 implementation is using the `text/template`

```bash
cat > values.yaml <<EOF
clusterName: eu1
kubernetesVersion: 1.7.1
dnsZone: k8s.example.com
awsRegion: eu-west-1
EOF
```

```bash
cat > cluster.tmpl.yaml <<EOF
apiVersion: kops/v1alpha2
kind: InstanceGroup
metadata:
  labels:
	kops.k8s.io/cluster: {{.clusterName}}.{{.dnsZone}}
  name: nodes
spec:
  image: coreos.com/CoreOS-stable-1409.6.0-hvm
  machineType: m4.large
  maxPrice: "0.5"
  maxSize: 2
  minSize: 15
  role: Node
  rootVolumeSize: 100
  subnets:
  - {{.awsRegion}}a
  - {{.awsRegion}}b
  - {{.awsRegion}}c

EOF
```

running the templating command
```bash
  kops toolbox template \
      --values values.yaml \
      --template cluster.tmpl.yaml \
      --output cluster.yaml
```

output
```bash
apiVersion: kops/v1alpha2
kind: InstanceGroup
metadata:
  labels:
	kops.k8s.io/cluster: eu1.k8s.example.com
  name: nodes
spec:
  image: coreos.com/CoreOS-stable-1409.6.0-hvm
  machineType: m4.large
  maxPrice: "0.5"
  maxSize: 2
  minSize: 15
  role: Node
  rootVolumeSize: 100
  subnets:
  - eu-west-1a
  - eu-west-1b
  - eu-west-1c
```
2017-08-04 09:26:41 -07:00
Justin Santa Barbara 434e1d2000 Add hints to CF integration test
We can save the CF output, which makes dealing with the base64 blob much
more convenient.
2017-08-04 11:08:11 -04:00
Kubernetes Submit Queue 29415860e2 Merge pull request #2950 from chrislovecnm/full-spec-warning
Automatic merge from submit-queue

adding warning about --full

This starts work on https://github.com/kubernetes/kops/issues/2290.  Adds a warning to deter users from using YAML generated by --full.
2017-08-03 21:05:02 -07:00
Blake 4f95fe473f Incorporate review feedback
- Rename to just DockerConfig / dockerconfig everywhere for consistency
- Check if the config is valid JSON
- Update docs
2017-08-01 13:15:19 -07:00
Blake 60dc81fe49 Add `kops create secret nodedockercfg` feature
This adds a well-known secret name `nodedockercfg` which will automatically
be used if present to create /root/.docker/config.json on all nodes. This will
allow private registries to be used for kops hooks as well as any k8s images
without the need to define `imagePullSecrets` in every namespace.

closes https://github.com/kubernetes/kops/issues/2505
2017-07-28 17:38:50 -07:00
Alexander Brandstedt 04a68e7ec8 change template func to take out io.Writer from function not directly use os.Stdout 2017-07-26 11:19:25 +02:00
Kubernetes Submit Queue c9e651b997 Merge pull request #3050 from craigmonson/master
Automatic merge from submit-queue

Fixing "dederation"

Noticed in some comments and docs, misspelled "dederation".  Fixed.
2017-07-25 14:53:50 -07:00
Kubernetes Submit Queue b371ff81b9 Merge pull request #3027 from justinsb/ssh_access_test
Automatic merge from submit-queue

Create test for ssh-access
2017-07-25 14:19:10 -07:00
craigmonson 4e31533761 fix "dederation" 2017-07-25 15:33:36 -04:00
craigmonson 3990f582b4 fix "dederation" 2017-07-25 15:31:46 -04:00
Alexander Brandstedt 89150391c1 remove inline example file with eof 2017-07-25 10:23:59 +02:00
Alexander Brandstedt b0cf65ceca correct squash 2017-07-25 10:23:59 +02:00
Alexander Brandstedt 21d43e3187 MPV implementation of templating to generate cluster.yaml file: related to #2404
rename command templating to template
2017-07-25 10:23:59 +02:00
Kubernetes Submit Queue 83fb549a9d Merge pull request #2960 from justinsb/dont_delete_shared_subnets
Automatic merge from submit-queue

Honor shared tags when deleting subnets/vpcs
2017-07-24 22:05:43 -07:00
Justin Santa Barbara 64f0920c8b Add integration tests for shared subnet & VPC 2017-07-24 10:37:07 -04:00
Justin Santa Barbara 94fceff30a Fix more instances where cluster could be nil
Generally check the return value where we can't tolerate it being nil,
similar to the case seen in #3011.
2017-07-23 23:39:57 -04:00
Justin Santa Barbara c537c7271c Avoid panic when cluster not found
Based on the stack trace in #3011

Fix #3011
2017-07-23 23:21:50 -04:00
Kubernetes Submit Queue 89dd78bee9 Merge pull request #3026 from justinsb/repoint_pause_2
Automatic merge from submit-queue

Remap pause image through our AssetBuilder
2017-07-22 19:01:31 -07:00
Justin Santa Barbara cde70934dc Create test for ssh-access 2017-07-22 01:45:03 -04:00
Kubernetes Submit Queue 14a8c9ae89 Merge pull request #3014 from BradErz/adding-ssh-access
Automatic merge from submit-queue

Adding ssh access flag 

Adding --ssh-access flag to seperate from --admin-access

Addresses: https://github.com/kubernetes/kops/issues/3013
2017-07-21 22:43:02 -07:00
Justin Santa Barbara 0115ece62d Remap pause image through our AssetBuilder 2017-07-22 00:35:37 -04:00
Kubernetes Submit Queue 62d702a22b Merge pull request #2763 from justinsb/lifecycle
Automatic merge from submit-queue

Support for lifecycles
2017-07-21 09:59:00 -07:00
Bradley a798cc721c Adding the case where adminAccess is not set but sshAccess is 2017-07-21 17:28:17 +01:00
Bradley 490407e199 removed logs 2017-07-20 22:02:52 +01:00
Bradley fa755127a7 Fixing docs 2017-07-20 22:01:47 +01:00
Bradley f7979692b1 Added the --ssh-access flag to specify the sshAccess on cluster creation from the cli 2017-07-20 21:46:15 +01:00
Frederik Nordahl Jul Sabroe 76cec3940c Fix for the instructions about using KOPS_FEATURE_FLAGS for drain and validate. 2017-07-20 16:19:24 +02:00
Justin Santa Barbara db2d2c7d54 Honor shared tags when deleting subnets/vpcs
We expose the Shared state on the resource, bubble it down into derived
resources (like NAT Gateways or Internet Gateways).

Deletion then skips Shared items.  Listing (currently) does not skip
them.
2017-07-15 23:19:52 -04:00
Justin Santa Barbara 7a870f65b9 Example of how to do bash in our CLI help
* Use the pretty.LongDesc function (which doesn't pipe it through
markdown -> ascii)
* Use pretty.Bash helper to avoid problems with backticks in
go-backtick-quoted-strings
* Make sure indentation is consistent
2017-07-15 22:09:48 -04:00
Justin Santa Barbara 3dfe48e5ae Wiring up lifecycle 2017-07-15 22:03:54 -04:00
chrislovecnm c3d5df1ca9 adding warning about --full 2017-07-15 11:16:59 -06:00
Justin Santa Barbara 17b3fa36eb Try adding header to generated CLI docs
Fix #2834
2017-07-15 13:14:21 -04:00
Benedict Hartley de993cf254
Fix typos in docs 2017-07-14 19:52:51 +01:00
Justin Santa Barbara 1965a4be49 Updates to fix unit tests 2017-07-08 18:46:01 -04:00
Giancarlo Rubio cbe8742699 review doc on creating instance group 2017-07-06 16:02:21 +02:00
Arve Knudsen bb776c6ca3 Fix typos in upgrade cluster docs 2017-07-04 00:50:47 +02:00
Justin Santa Barbara 7c8dcc4a0d Code changes for 1.7 2017-07-02 13:10:28 -04:00
chrislovecnm 39bf52d525 fixing bug with using shell flag 2017-06-30 13:03:45 -06:00
chrislovecnm 38aae71bee updating found govet issues and adding test directory 2017-06-23 16:42:33 -06:00
Justin Santa Barbara e945322cab Support generated clientset as alternative to vfs clientset
We modelled our VFS clientset (for API objects backed by a VFS path)
after the "real" clientsets, so now it is relatively easy to add a
second implementation that will be backed by a real clientset.

The snafu here is that we weren't really using namespaces previously.
Namespaces do seem to be the primary RBAC scoping mechanism though, so
we start using them with the real clientset.

The namespace is currently inferred from the cluster name.  We map dots
to dashes, because of namespace limitations, which could yield
collisions, but we'll deal with this by simply preventing users from
creating conflicting cluster names - i.e. you simply won't be able to
create a.b.example.com and a-b.example.com
2017-06-20 22:29:37 -04:00
chrislovecnm ed5ef173ee Fixing typo and grammar 2017-06-20 11:37:33 -06:00
Justin Santa Barbara f75ea400a3 Merge pull request #2772 from chrislovecnm/delete-fix
Work on kops delete
2017-06-20 01:18:26 -04:00
Justin Santa Barbara 5955467be0 Default to loadbalancer ingress for gossip dns
DNS ingress won't work anyway.
2017-06-19 14:16:35 -04:00
chrislovecnm 26224ce371 Work on deletes; no error without "--yes", fixed delete.go deleting ig that does not exist, doc updates. 2017-06-17 22:19:35 -06:00
Justin Santa Barbara 8fb99a87e2 Merge pull request #2680 from murali-reddy/kube-router
add support for kube-router as CNI networking provider
2017-06-16 10:37:49 -04:00
andrewsykim e8c99ee72e removes cluster delete code in upup/pkg/kutil duplicated in pkg/resources and puts instancegroup and rollingupdate code into its own packges 2017-06-10 15:21:06 -04:00
Matt Marchetti c847bd1fa3 Initial commit to add option to set volume size at creation 2017-06-09 10:53:25 -04:00