Commit Graph

320 Commits

Author SHA1 Message Date
Justin Santa Barbara 288c5aaf01 Add error handling (logging) when we fail to close a file
More missing error handling

Follows on from #5543
2018-07-28 16:50:13 -04:00
Justin Santa Barbara 2faa68426f Docker installation from tar.gz
Ubuntu 18.04 doesn't have a package for docker 17.03, but we can still
support it by using the tar.gz package.

This could be a nice fallback for other operating systems in future,
and it might prove to be more reliable than the OS packages.

But start with supporting ubuntu 18.04 with older docker versions!
2018-07-24 21:58:54 -04:00
Justin Santa Barbara 289c18e17f Add portmap CNI plugin for k8s >= 1.9
Older CNI versions don't have the portmap plugin, but we should make
it available.
2018-07-23 09:56:46 -04:00
Rob Graham 4b07a07ad5 Merge branch 'master' into issue-4252-dns 2018-07-23 14:00:09 +01:00
Rob Graham 8ccf42f4a2 GH-4252 Better name for the config value and also add to v1alpha1 API 2018-07-23 13:48:35 +01:00
Rodrigo Menezes f816b00fb9 fix 2018-07-20 13:47:22 -07:00
Rodrigo Menezes 74e8973c6c Fix based on Justins suggestion 2018-07-20 12:25:23 -07:00
Rodrigo Menezes e8476499b0 Allow other CNI drivers to bind a hosts Primary IP 2018-07-20 12:16:38 -07:00
k8s-ci-robot 2dbb6e84f6
Merge pull request #5077 from yancl/master
change gossip dns conn limit by ENV
2018-07-19 21:40:52 -07:00
k8s-ci-robot 0e64d32b5b
Merge pull request #5456 from mikesplain/configurable_conntrack
Add configurable conntrack settings
2018-07-19 11:11:17 -07:00
k8s-ci-robot 56ccfac26d
Merge pull request #5317 from gambol99/node_registration
Node Authorization Service
2018-07-19 05:17:41 -07:00
Mike Splain 188824cba0 Add configurable conntrack settings 2018-07-18 12:11:30 -04:00
Christian Kampka 581eec3eca Don't mount volume for auditLog when STDOUT is configured as path
Fixes #4202
2018-07-16 22:53:58 +02:00
k8s-ci-robot 70e3653291
Merge pull request #5417 from mikesplain/fix_docker_config
Fixes issue when setting docker version
2018-07-15 17:17:55 -07:00
k8s-ci-robot 7514320df3
Merge pull request #5394 from mikesplain/bionic
Initial Ubuntu Bionic Support
2018-07-15 12:54:55 -07:00
k8s-ci-robot 35b7d5791d
Merge pull request #5424 from rdrgmnzs/fix_aws-authenticator_read_perms
Fix the issue described in #5412 where the authenticator is no longer…
2018-07-11 15:29:26 -07:00
k8s-ci-robot 90f49e993a
Merge pull request #5428 from coreypobrien/binbash
Use /bin/bash in kubelet manifest ExecStartPre
2018-07-11 13:04:25 -07:00
Corey O'Brien af5f877a38 Use /bin/bash in kubelet manifest ExecStartPre 2018-07-11 00:04:13 -04:00
Rodrigo Menezes a31c0186da add comment 2018-07-10 10:27:13 -07:00
Rodrigo Menezes b296e6fcbf Fix the issue described in #5412 where the authenticator is no longer able to read the K8s CAs. 2018-07-09 23:57:58 -07:00
Rodrigo Menezes f5e3d434fb fix cert location 2018-07-09 15:04:13 -07:00
Rodrigo Menezes 414b3a780b Rename hept.io authenticator to aws authenticator 2018-07-08 10:10:19 -07:00
Rohith 92115b2341 - dropping the specific flags and using a genenic --feature gate model for the authorizers, meaning i don't need to come back to the API whenever we want to make changes 2018-07-06 20:15:18 +01:00
Rohith fd6cef8180 Requested Changes
- switching to using code rather than a template for the systemd unit creation as requested in review
- as part of the review, changing the name of the ca from tls-ca to tls-client-ca
- changing the api from DisableAddressCheck to EnableAddressCheck and defaulting to true if no set
- fixing up the test for node-authorizer and shifting the parsing of the certificates as suggested in reviews to a method
2018-07-06 20:14:35 +01:00
Rohith 79cff25eb4 - fixing up on the comments raised by on the review 2018-07-06 20:14:35 +01:00
Rohith 304d0ce8a9 - consuming the node authorization api spec in nodeup binary
- adding the options builder to fill in the model
- adding the spec into the bootstrap config
2018-07-06 20:14:35 +01:00
Mike Splain 48c9f3d7c9 Fixes issue when setting docker version
Previously when setting docker version, logdriver was automatically
added to cluster config. Switching it to a pointer fixes this issue.

Fixes #5384
2018-07-06 11:29:11 -04:00
Rob Graham ae327e1e8c wrestling with the api stuff 2018-07-02 15:16:37 +01:00
Rob Graham cc589ae538 Reworked to use loadbalancer only if config is specified 2018-07-02 12:02:50 +01:00
Mike Splain 8aa5059038 Initial Bionic Support
Kubernetes doesn't officially support bionic.
Docker has only released 18.03.1 for Bionic.
Kubernetes also doesn't officially support 18.03.1
Use at your own risk.
2018-06-29 11:11:59 -04:00
Rob Graham 64974fdd5b GH-4252 Only manage internal DNS zone if configuration has been specified 2018-06-22 15:05:47 +01:00
k8s-ci-robot 8fad9da430
Merge pull request #5352 from gambol99/nodeup_clean
Nodeup clean
2018-06-21 09:23:47 -07:00
k8s-ci-robot f346efd290
Merge pull request #5240 from nebril/etcd-tls
Add etcd TLS support for Cilium
2018-06-21 09:23:37 -07:00
Justin Santa Barbara 1e381996ce Handle storage flag on COS more carefully
Only clear the flag if there is a docker config file, so that we can
continue to set the storage flag on older COS images.  We could be
smarter about checking if the storage driver is actually set in the
docker config, but for now we just start by logging it.
2018-06-20 19:34:10 -04:00
k8s-ci-robot 792f02a5c2
Merge pull request #5245 from justinsb/gc_launchconfigurations
AWS: Delete old LaunchConfigurations
2018-06-20 10:33:08 -07:00
Maciej Kwiek a72b9e4b38 Generalize CalicoBuilder into EtcdTLSBuilder
Cilium was using the same code as Calico to retrieve etcd certs, new
builder is not Calico-specific.

calico name of certs is retained to ensure backward compatibility

Signed-off-by: Maciej Kwiek <maciej@covalent.io>
2018-06-20 15:25:23 +02:00
k8s-ci-robot cd820a6be9
Merge pull request #5351 from gambol99/remove_unrequired
Removing Duplication
2018-06-20 02:06:06 -07:00
Rohith 2256a2c588 - fixed up the issues highlighted in the review 2018-06-20 09:31:32 +01:00
Rohith c9db958696 - cleanup up elements, imports and comments 2018-06-20 09:26:31 +01:00
Rohith ecf1278bfe Nodeup Code Refresh
- removing the duplicated methods and fixing up to use the context methods
2018-06-20 09:26:31 +01:00
Rohith f4e90e1035 Removing Duplication
- removing the duplication code (i think by me :-)) and reusing the BuildCertificateTaskd and BuildPrivateKeyTask
2018-06-19 23:15:53 +01:00
Rohith 61a3e29b67 Code Clean
- just cleaning up the path concat to use filepath.Join() rather then string formats
2018-06-19 22:33:17 +01:00
Justin Santa Barbara 1af610a6c4 Use fast-retry and cleanup task options for tests
The launch configuration test exposed that our integration tests don't
retry for very long, and wait a long time in between retries.

Create a RunTasksOptions type to hold the parameters, in particular
max task time, and the amount of time we wait when all tasks have
failed.
2018-06-18 00:04:23 -04:00
Justin Santa Barbara 45eeddb560 protokube: only specify etcd flags when managing etcd
If we're using etcd-manager, we don't need to pass the flags to protokube.
2018-06-14 17:40:51 -04:00
Rohith 516fa2348f File Path fixes
- nothing much here, just fixing up to use filepath.Join rather than strins.Join which is cleaner
2018-06-12 10:22:05 +01:00
Rohith cdfa45d1ca - fixing up the paths to use a strings.Join rather than a fiddly
fmt.Sprintf
2018-06-11 21:30:35 +01:00
Rohith e77000f138 - fixing up the variable name to following a more suitable convention 2018-06-11 21:23:04 +01:00
Rohith d2bae64dd1 - adding the enable-bootstrap-token-auth to the kubeapi and fixing up the various compoents 2018-06-11 09:57:26 +01:00
Rohith 2d5bd2cfd9 - update the IAM policy to ensure the kubelet permision is skipped
- update the PKI to ensure on new clusters the certificate it not created
2018-06-11 09:57:26 +01:00
Rohith 4531384649 This PR attempts to solve two issues
a) The current implementation use's a static kubelet which doesn't not conform to the Node authorization mode (i.e. system:nodes:<nodename>)
b) As present the kubeconfig is static and reused across all the masters and nodes

The PR firstly introduces the ability for users to use bootstrap tokens and secondly when enabled ensure the kubelets for the masters as have unique usernames.  Note, this PR does not attempt to address the distribution of the bootstrap tokens themselves, that's for cluster admins. One solution for this would be a daemonset on the masters running on hostNetwork and reuse dns-controller to annotated the pods and give as the DNS

Notes:
- the master node do not use bootstrap tokens, instead given they have access to the ca anyhow, we generate certificates for each.
- when bootstrap token is not enabled the behaviour will stay the same; i.e. a kubelet configuration brought down from the store.
- when bootstrap tokens are enabled, the Nodes sit in a timeout loop waiting for the configuration to appear (by third party).
- given the nodeup docker and manifests builders are executed before the kubelet builder, the assumption here is a unit file kicks of a custom container to bootstrap the rest.
- the current firewalls on between the master and nodes are fairly open so no need to open ports between the two
- much of the work was ported from @justinsb PR [here](https://github.com/kubernetes/kops/pull/4134/)
- we add a very presumptuous server and client certificates for use with an authorizer (node-bootstrap-internal.dns_zone)

I do have an additional PR which performs the entire thing. The process being a node_authorizer which runs on the master nodes via a daemonset, the service implements a series of authorizers (i.e. alwaysallow, aws, gce etc). For aws, the process is similar to how vault authorizes nodes [here](https://www.vaultproject.io/docs/auth/aws.html). Nodeup no then calls out to the node_authorizer on bootstrap and provisions the kubelet.
2018-06-11 09:56:32 +01:00