Commit Graph

191 Commits

Author SHA1 Message Date
chrislovecnm 7f998802ee fixing lifecycle type for network in security phase 2017-12-27 13:47:45 -07:00
Kubernetes Submit Queue dd49d69399
Merge pull request #3254 from chrislovecnm/file-assets
Automatic merge from submit-queue.

work on using files assets

Basic MVP for file assests.

- using file assest builder
- able to upload files
- using URL structs instead of strings everywhere
2017-12-17 16:10:23 -08:00
chrislovecnm 7057aaf1bb Enabling the file assets
File assets and the SHA files are uploaded to the new location. Files
when are users uses s3 are upload public read only. The copyfile task
uses only the existing SHA value.

This PR include major refactoring of the use of URLs.  Strings are no
longer categnated, but converted into a URL struct and path.Join is
utlilized.

A new values.go file is included so that we can start refactoring more
code out of the "fi" package.

A
2017-12-17 15:26:57 -07:00
Justin Santa Barbara 509b83ac7a Refactor: separate out SSHCredentials from Keyset stores
We've done this in the API already, but we had a single CAStore
interface that did Keysets and SSHCredentials.  Separate out
SSHCredentials into SSHCredentialStore, and start using API objects as
our primary representation.
2017-12-13 20:16:59 -05:00
zengchen1024 f9c98c3b4c add openstack cloud provider 2017-11-13 16:59:24 +08:00
Justin Santa Barbara 2eb47b82ce Tolerate errors from Find for tasks with WarnIfInsufficientAccess
We glog.Warning a message, and we record a structured warning for future
use, but we allow operation to continue.
2017-10-30 01:56:41 -04: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 dbbe3f373b GCE: Set up permissions for cross-project configurations
This ensures that the cluster can read the kops state store files, even
if the GCS bucket is in a different project.

We automatically set up an IAM access policy that grants access.
2017-10-28 03:24:18 -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 dc338c4829 Refactoring phases to work in sequence properly 2017-10-26 13:17:34 -06:00
chrislovecnm 384c74d66c Refactoring IAM phase to Security Phase 2017-10-26 12:28:50 -06:00
Justin Santa Barbara af6a7ef4d8 Containerized mounter fixes per code review 2017-10-08 11:41:09 -04:00
Justin Santa Barbara 3a38d05385 GCE: install containerized mounter on COS
The containerized mounter is a little tricky to install, with lots of
bind mounts.  This code path is only hit on GCE though.
2017-10-08 11:12:37 -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
Justin Santa Barbara 45032502c6 baremetal: fill out more of the baremetal mappings
This gets us to the point where we can create the objects.
2017-09-22 23:03:07 -04:00
Rohith b64795673d DNS Controller Limitation
The current implementation does not place any limitation on the dns annontation which the dns-controller can consume. In a multi-tenented environment was have to ensure certain safe guards are met, so users can't byt accident or intentionally alter our internal dns. Note; the current behaviour has not been changed;

- added the --watch-namespace option to the dns controller and WatchNamespace to the spec
- cleaned up area of the code where possible or related
- fixed an vetting issues that i came across on the journey
- renamed the dns-controller watcher files
2017-09-22 11:37:00 +01:00
Kubernetes Submit Queue c3379df06b Merge pull request #3409 from justinsb/clientset_secret_stores
Automatic merge from submit-queue. .

SecretStore and CAStore implementations backed by API
2017-09-20 23:33:48 -07:00
Justin Santa Barbara 914fe68ee2 SecretStore and CAStore implementations backed by API
Not yet wired in
2017-09-17 23:01:13 -04:00
Justin Santa Barbara f157cccf85 baremetal: more wiring up
This lets us get further on a kops update
2017-09-17 15:17:57 -04:00
chrislovecnm 0779fb6fc4 Implementing GCE as an inteface modelling aws cloud provider 2017-08-27 22:19:25 -06:00
Kubernetes Submit Queue 2d7fb51c2a Merge pull request #3025 from chrislovecnm/mapping-and-uploading-kubernetes-assets
Automatic merge from submit-queue

inventory assets - mapping and uploading kubernetes containers
2017-08-22 19:15:31 -07:00
andrewsykim 0411ba270e Create cluster requirements for DigitalOcean 2017-08-22 09:01:19 -04:00
chrislovecnm 7efb0f31f6 updating phases 2017-08-21 15:17:34 -06:00
chrislovecnm 2afdb5ab2e mapping-and-uploading-kube-assets 2017-08-21 15:16:56 -06:00
andrewsykim 525fde3609 implement digitalocean volumes task 2017-08-21 09:50:36 -04:00
chrislovecnm ee17e6567c starting work on file assets builder 2017-08-18 13:04:12 -06:00
andrewsykim d72a2e1f88 add API target for DigitalOcean 2017-08-11 21:04:49 -04:00
Rohith b5066c967b Vetting / Formating / Cleanup
- fixed any of the vettting / formatting issues that i'm came across on the update
- removed the commented out lines from the componentconfig as it make its increasingly difficult to find what is supported, what is not and the difference between them.
- added SerializeImagePulls, RegisterSchedulable to kubelet (by default they are ignored)
- added FeatureGates to the kube-proxy

Out of interest can someone point me to where these multi-versioned componentconfig are being used?
2017-07-28 17:16:11 +01:00
chrislovecnm c5581d7b90 removing dead code 2017-07-22 20:14:24 -06:00
Justin Santa Barbara 0115ece62d Remap pause image through our AssetBuilder 2017-07-22 00:35:37 -04:00
Kubernetes Submit Queue ac887ce290 Merge pull request #3016 from justinsb/upload_taskify_2
Automatic merge from submit-queue

Copy docker images when they are redirected
2017-07-21 12:10:47 -07:00
Justin Santa Barbara 76743e64de Copy docker images when they are redirected 2017-07-20 23:40:46 -04:00
Justin Santa Barbara 3dfe48e5ae Wiring up lifecycle 2017-07-15 22:03:54 -04:00
Justin Santa Barbara 20b44091f5 Merge pull request #2929 from andrewsykim/digitalocean-provider
digitalocean feature flag
2017-07-15 12:33:07 -04:00
andrewsykim 7b44f2b7f8 digitalocean feature flag 2017-07-13 18:48:58 -04:00
Hanfei Shen b54724a3ea fix cniAsset from env var 2017-07-13 14:43:38 +08:00
Justin Santa Barbara 1965a4be49 Updates to fix unit tests 2017-07-08 18:46:01 -04:00
Justin Santa Barbara 973492b678 Start collecting assets 2017-07-08 18:33:00 -04:00
Justin Santa Barbara 9a8fcd64e4 Simplify how we build addon manifests, support image redirection 2017-07-08 18:33:00 -04: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
Justin Santa Barbara d2df318ecc Move CloudProvider to kops API
This avoids a circular reference when breaking up the fi package
2017-06-17 16:27:07 -04:00
Chris Love dd824cb679 Merge pull request #2449 from justinsb/fix_automatic_hosted_zone_creation
Fix automatic private DNS zone creation
2017-04-30 22:57:28 -06:00
Justin Santa Barbara f3f7809d54 Feature-gate vsphere 2017-04-30 11:24:17 -04:00
Justin Santa Barbara 864a999602 Fix automatic private DNS zone creation
We have to defer creation of the IAM policy until we have created the
hosted zone.

Fix #2444
2017-04-29 17:01:18 -04:00
Justin Santa Barbara c8b18be9dd Gossip backed DNS 2017-04-25 01:32:21 -04:00
Justin Santa Barbara 77fbf9cbf9 Merge pull request #2401 from vmware/vsphere-upstream
Add vSphere provider support
2017-04-25 00:09:37 -04:00
chrislovecnm 75f5b1ed34 Updating CNI version for k8s 1.6 2017-04-22 14:47:42 -06:00
Miao Luo 58197e6dab Support user-defined s3 endpoint.
When Environment variable S3_ENDPOINT is not empty, kops will use
the bucket on this specific s3 endpoint, instead of using AWS S3
by default.
2017-04-20 23:38:32 -07:00
prashima bc3e8c3734 Added code to enable nodeup and protokube building and execution for vSphere VM (#11)
* Added code to enable nodeup and protokube building and execution for vSphere VM.

* Fixed nodeup template for vSphere.
2017-04-20 23:37:19 -07:00
Miao Luo 6b010c4c5e Enable CoreDNS in nodeup/protokube (#6)
* Enable CoreDNS in nodeup/protokube.

* Address comments.
2017-04-20 23:33:21 -07:00
SandeepPissay 22e0ce3775 Implemented AttachISO task (#4)
AttachISO task creates the user-data/meta-data cloud init files and creates cloud-init.iso file using "genisoimage" tool. It then uploads it to the datastore where the master/worker VM resides and inserts it into the cd-rom device of the master/worker VM. When the master/worker VM powers on, the cloud-init package in it runs the bootstrap script that downloads nodeup and runs it.

Also removed redundant VirtualMachineModelBuilder that does nothing.

Testing done:
1. Tested end to end that the master and worker VMs executes the cloud-init script successfully.
2, "make ci" is successful.
2017-04-20 23:33:21 -07:00
Miao Luo 716349bf22 Fix the type of vSphere fields in CloudConfig and update auto-generated conversion files.
To make sure the vSphere fields in CloudConfiguration can be successfully serialized
and output into config file.
2017-04-20 23:33:18 -07:00
Miao Luo 30573e9aaf Add more supports for vsphere.
Accept vSphere's server, datacenter, cluster setting by flags
"vsphere-server", "vsphere-datacenter", and "vsphere-resource-pool".
Username and password can be set by environment variables:
"VSPHERE_USERNAME" and "VSPHERE_PASSWORD".
2017-04-20 23:32:59 -07:00
SandeepPissay 82f9f0668d vsphere initial support. 2017-04-20 23:31:21 -07:00
Justin Santa Barbara c9ac0cdbd8 Support GCE ForwardingRule (LoadBalancer) for API
Also lots of GCE cleanup
2017-03-28 00:00:20 -04:00
Justin Santa Barbara b9204e9911 Initial Container-Optimized OS support
Add initial support for google's container-optimized OS (available on
GCE).
2017-03-20 23:47:37 -04:00
Justin Santa Barbara cb4641fea3 Code updates 2017-03-16 02:40:50 -04:00
Justin Santa Barbara 2a44aa0c05 Don't fail if we can't pre-create DNS records 2017-03-14 09:56:12 -04:00
Justin Santa Barbara 3d14d07616 Support cloud-config on GCE 2017-02-28 20:08:03 -05:00
Justin Santa Barbara 645f330dad Re-enable GCE support
We move everything to the models.  We feature-flag it, because we
probably want to change the names etc, and we aren't going to be able to
offer smooth upgrades until that is done.
2017-02-28 20:08:03 -05:00
Justin Santa Barbara bf2edddb8d Merge pull request #1935 from justinsb/terraform_variable_output
Output variables from terraform, for reuse in a module
2017-02-24 09:06:20 -05:00
Justin Santa Barbara 4557ee7b9e Add socat to CoreOS
We build a statically linked version and distribute it with kops.

Note that our version of socat does not include libssl, but kubernetes
does not use it anyway.
2017-02-24 01:24:25 -05:00
Jakub Paweł Głazik cd795d0c8c Resolve DNS Hosted Zone ID while building IAM policy
Fixes #1949
2017-02-23 11:45:58 +01:00
Justin Santa Barbara 2a34e6d00e Output variables from terraform, for reuse in a module
Issue #1026
2017-02-17 11:05:06 -05:00
Justin Santa Barbara fec89f0f33 Skip DNS precreate on CF; a few test fixes 2017-02-17 11:04:39 -05:00
Justin Santa Barbara 7d68f744f6 Initial support for cloudformation output 2017-02-17 10:59:16 -05:00
Justin Santa Barbara 55b6d86454 Move more options to code
User reports of kubelet flags not being passed; moved more to code.

Also found & fixed the likely root-cause issue: we have two copies of
the cluster spec and were not being precise about which one we wanted to
use at all times.
2017-02-15 13:11:12 -05:00
Justin Santa Barbara 2d37ab1ca5 Recommend a k8s version based on each kops version
So the flow is that we recommend (or strongly recommend) a new kops
version when one is required for a new version, and then the new kops
version will recommend (or strongly recommend) a new k8s version.

We don't have a notion of multiple recommended k8s versions per kops
version - that is what channels are for.

Users are always free to disregard updates, even "required" ones by
setting a flag.
2017-02-06 01:06:03 -05:00
Justin Santa Barbara 379e0ca098 Channel manifest should be version aware
* We can target AMIs to kubernetes versions
* We can recommend / force a kops upgrade
* We can recommend / force a kubernetes upgrade
2017-01-25 23:13:48 -05:00
Justin Santa Barbara 9e015285f8 validation: Validate we specify ids for all subnets
Move our validation to the apimachinery style.  And then add a
validation that we specify IDs either for all subnets or no subnets.
2017-01-24 12:38:52 -05:00
Zach Loafman 7079729f26 Revert "Revert "Load protokube from http/https"" 2017-01-04 09:32:24 -08:00
Zach Loafman d69fd6989c Revert "Load protokube from http/https" 2017-01-04 07:54:20 -08:00
Justin Santa Barbara 66d5d55195 Fixes per code review 2016-12-31 16:03:23 -05:00
Justin Santa Barbara 5d6d0f5f5d Load protokube from http/https
This helps us treat protokube as being paired with nodeup, and is a step
towards registry-less deployments (and isolated deployments) along with
moving away from our deprecated gcr.io usage.
2016-12-31 15:21:20 -05:00
Justin Santa Barbara aa6c214a12 Fixes per code-review 2016-12-28 14:05:00 -05:00
Justin Santa Barbara d449f40a37 Pre-create DNS records with placeholder values
Fixes #928
2016-12-28 13:33:23 -05:00
Justin Santa Barbara ef14a1d172 Private DNS initial implementation - via feature flag 2016-12-26 14:03:31 -05:00
Justin Santa Barbara fed68310fa Schema v1alpha2
* Zones are now subnets
* Utility subnet is no longer part of Zone
* Bastion InstanceGroup type added instead
* Etcd clusters defined in terms of InstanceGroups, not zones
* AdminAccess split into SSHAccess & APIAccess
* Dropped unused Multizone flag
2016-12-18 21:56:57 -05:00
Justin Santa Barbara 613b7fea61 Map ELB attributes to terraform
Requires moving them under the LoadBalancer awstask, sadly
2016-12-18 21:55:40 -05:00
Justin Santa Barbara 0be724b696 Simplify terraform ELB tasks 2016-12-18 21:55:40 -05:00
Chris Love 1516b3b822 Merge pull request #1165 from robertojrojas/issue_1120
fixes issue #1120 - User can specify CNI_VERSION_URL
2016-12-15 15:31:11 -07:00
Roberto J Rojas 99c42497c3 fixes #1120 - PR #1165 - changes as per review 2016-12-15 10:36:41 -05:00
Justin Santa Barbara c01c2af656 Mark ObjectMeta as a named field
This will work around some apimachinery bugs
(https://github.com/kubernetes/client-go/issues/8)
2016-12-14 22:26:57 -05:00
Roberto J Rojas 1c5e668ffe fixes issue #1120 - User can specify CNI_VERSION_URL 2016-12-14 20:48:27 -05:00
Justin Santa Barbara cc7419adeb Bump version of nodeup that we depend on 2016-12-13 01:44:37 -05:00
Kris Childress 3f0bd708d1 Merge pull request #1114 from icereval/feature/terraform-private-topology
WIP: Fill in RenderTerraform methods for private topology
2016-12-12 10:23:53 -07:00
Justin Santa Barbara afd0c25abe First model -> tf test 2016-12-11 17:11:10 -05:00
icereval bf62eb7019 fill in RenderTerraform methods for private topology 2016-12-10 17:29:46 -05:00
Justin Santa Barbara dbab97e508 Use versioned marshaling where we can
In particular during a kops edit
2016-12-08 22:17:26 -05:00
alok87 a413ea5ac3 Merge remote-tracking branch 'kopsrepo/master' into bastion_improvements
* kopsrepo/master:
  gcs-upload: Use a no-clobber copy instead
  gcs-upload: Fix cache-control on other files as well
  changes from code review
  doc updates
  unit tests with fakes
  it is working in alpha
  working on the start of validate
  Starting work on node lookup and validation
  starting porting node code
  Fix retries for AutoScalingGroup pending delete
  Apply gofmt to pkg directory
  Avoid tests hitting kubernetes stable.txt HTTP file
  Fix printing of max size on instance group
  Disable kubelet from starting until after volume mounts
  Fix Cluster parsing error message
  bumping stable channel to k8s 1.4.6
  support more zones(cn-north-1a/b) for cloud provider guess
2016-11-30 07:58:41 +05:30
alok87 f0b80503c3 Configure LoadBalancer Attributes 2016-11-30 07:35:45 +05:30
Zach Loafman e60c36068f Fix retries for AutoScalingGroup pending delete
This:
- reworks how retries are handled in fi/executor.go to a time-based scheme
- changes the single-task limit to 10m (from about 30s of no-progress)
- eliminates the inner IAM propagation retry for LaunchConfigurations,
because the task itself will just be redriven for a while. This also
eliminates any long-pole delay caused by this error (since task Run()
should be 'fast').
2016-11-28 17:04:02 -08:00
alok87 edf22f3797 Bastion DNS as an option and not by default 2016-11-23 12:40:45 +05:30
Justin Santa Barbara 6f20979790 Adapt unit tests to sets.String; convert node tags also 2016-11-19 16:23:51 -05:00
Justin Santa Barbara ee44353cde Add support for kopeio networking 2016-11-16 14:20:23 -05:00
Justin Santa Barbara f709f909e4 Options through code 2016-11-14 12:26:42 -05:00
Justin Santa Barbara ae84beddb7 Use more api machinery when writing 2016-11-13 22:11:36 -05:00
Justin Santa Barbara 933506bdbb Apply gofmt 2016-11-13 21:06:55 -05:00
Kris Childress 835e24f788 Working EIP and NGW CRUD for private networking..
Next step.. lets piece them all together
2016-11-08 15:16:41 -08:00