Commit Graph

5634 Commits

Author SHA1 Message Date
Isaac Hollander McCreery
2acf60e44d When changing basic auth creds, just delete the whole file, in order to be able to rotate username in addition to password 2017-04-17 17:05:33 -07:00
Kubernetes Submit Queue
4c8c2aaa85 Merge pull request #44509 from bowei/cluster-ip
Automatic merge from submit-queue (batch tested with PRs 40055, 42085, 44509, 44568, 43956)

Change the default CLUSTER_IP_RANGE used by e2e

The existing choice intersects with the range reserved for auto
subnets and cannot be used with some GCP features.

```release-note
NONE
```
2017-04-17 15:39:09 -07:00
Lucas Käldström
b814b62447 Remove the old docker-multinode files that were built into the hyperkube image 2017-04-17 00:54:08 +03:00
Kubernetes Submit Queue
b22a298009 Merge pull request #44344 from mikedanese/ubuntu-delete
Automatic merge from submit-queue (batch tested with PRs 44343, 44344)

delete ubuntu kube-up

```release-note
Remove deprecated ubuntu kube-up deployment.
```
2017-04-14 23:03:57 -07:00
Kubernetes Submit Queue
92ae06b5db Merge pull request #44343 from mikedanese/ovirt-delete
Automatic merge from submit-queue

delete ovirt kube-up

untouched since 2014. I'm not sure what this file is.
2017-04-14 22:56:44 -07:00
Bowei Du
0e6af317a8 Change the default CLUSTER_IP_RANGE used by e2e
The existing choice intersects with the range reserved for auto
subnets and cannot be used with some GCP features.
2017-04-14 13:49:54 -07:00
Tim Van Steenburgh
7b841fe77e Fix nagios checks. 2017-04-14 10:45:37 -05:00
George Kraft
86415961d5 Fix handling of kubernetes-worker.restart-needed state
Credit to @tvansteenburgh, thanks!
2017-04-14 10:45:35 -05:00
Rye Terrell
6e831d6fe9 don't try to remove the node if kubeconfig doesn't exist 2017-04-14 10:45:34 -05:00
Matt Bruzek
258ee22858 Putting the nvidia-smi command in a try catch to avoid errors. 2017-04-14 10:45:33 -05:00
George Kraft
d50cf1e499 Fix juju kubernetes-master starting services before TLS certs are saved
master: Fix start_master args
2017-04-14 10:45:31 -05:00
Rye Terrell
33fee22032 add support for kube-proxy cluster-cidr option 2017-04-14 10:45:23 -05:00
Jacek N
ebd2f88f6b Add registry action to the kubernetes-worker layer 2017-04-14 10:43:09 -05:00
Rye Terrell
ca4afd8773 Update CDK charms to use snaps 2017-04-14 10:43:00 -05:00
Kubernetes Submit Queue
eda8e12723 Merge pull request #44465 from bowei/fix-cluster-up
Automatic merge from submit-queue

Missing --project in the cluster up scripts for gce

```release-note
NONE
```
2017-04-14 00:36:58 -07:00
Kubernetes Submit Queue
08bd9c773f Merge pull request #44071 from liggitt/service-account-lookup
Automatic merge from submit-queue (batch tested with PRs 44406, 41543, 44071, 44374, 44299)

Enable service account token lookup by default

Fixes #24167

```release-note
kube-apiserver: --service-account-lookup now defaults to true, requiring the Secret API object containing the token to exist in order for a service account token to be valid. This enables service account tokens to be revoked by deleting the Secret object containing the token.
```
2017-04-13 19:52:06 -07:00
Konstantinos Tsakalozos
5d9905f4e5 Fail test action when test suite fails. Minor README update. 2017-04-13 16:02:14 -05:00
Marco Ceppi
d3428ef3a4 Add metric collection to charms for autoscalling 2017-04-13 16:02:13 -05:00
Bowei Du
c4a8ea2eb5 Missing --project in the cluster up scripts for gce
```release-note
NONE
```
2017-04-13 12:10:59 -07:00
Matt Bruzek
7f3f05e101 Fixing the README to use the containers namespace. 2017-04-13 12:05:39 -05:00
Kubernetes Submit Queue
3ef2cf8adb Merge pull request #44064 from ixdy/get-kube-ci
Automatic merge from submit-queue

Make get-kube.sh work properly the "ci/latest" pointer

**What this PR does / why we need it**: this is a (late) followup from #36419, fixing a bug discovered in https://github.com/kubernetes/kubernetes/pull/36419#issuecomment-265679578.

Basically, `get-kube-binaries.sh` looks at `$KUBERNETES_RELEASE_URL`, but we weren't properly overriding it in `get-kube.sh` when downloading binaries from the CI release bucket. With this change, we set the variable correctly, and everything works:

```console
$ KUBERNETES_RELEASE=ci/latest ~/code/kubernetes/src/k8s.io/kubernetes/cluster/get-kube.sh
Downloading kubernetes release v1.7.0-alpha.0.2068+3a3dc827e45426
  from https://dl.k8s.io/ci/v1.7.0-alpha.0.2068+3a3dc827e45426/kubernetes.tar.gz
  to /tmp/foo/kubernetes.tar.gz
Is this ok? [Y]/n

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   161  100   161    0     0   1004      0 --:--:-- --:--:-- --:--:--  1006
100 6023k  100 6023k    0     0  10.9M      0 --:--:-- --:--:-- --:--:-- 10.9M
Unpacking kubernetes release v1.7.0-alpha.0.2068+3a3dc827e45426
Kubernetes release: v1.7.0-alpha.0.2068+3a3dc827e45426
Server: linux/amd64  (to override, set KUBERNETES_SERVER_ARCH)
Client: linux/amd64  (autodetected)

Will download kubernetes-server-linux-amd64.tar.gz from https://dl.k8s.io/ci/v1.7.0-alpha.0.2068+3a3dc827e45426
Will download and extract kubernetes-client-linux-amd64.tar.gz from https://dl.k8s.io/ci/v1.7.0-alpha.0.2068+3a3dc827e45426
Is this ok? [Y]/n

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   161  100   161    0     0    991      0 --:--:-- --:--:-- --:--:--   987
100  348M  100  348M    0     0  39.1M      0  0:00:08  0:00:08 --:--:-- 34.2M
               
md5sum(kubernetes-server-linux-amd64.tar.gz)=e71c9b48f6551797a74de2b83b501c44
sha1sum(kubernetes-server-linux-amd64.tar.gz)=688dcf567b60e27e3d9bf97436154543432768cf
               
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   161  100   161    0     0   1019      0 --:--:-- --:--:-- --:--:--  1025
100 29.0M  100 29.0M    0     0  32.2M      0 --:--:-- --:--:-- --:--:-- 95.4M
               
md5sum(kubernetes-client-linux-amd64.tar.gz)=8e6a90298411ae5a0e943b1c0e182b1d
sha1sum(kubernetes-client-linux-amd64.tar.gz)=187a2d2c1c6ae1ead32ec4c1fa51f695223edaae
               
Extracting /tmp/foo/kubernetes/client/kubernetes-client-linux-amd64.tar.gz into /tmp/foo/kubernetes/platforms/linux/amd64
Add '/tmp/foo/kubernetes/client/bin' to your PATH to use newly-installed binaries.
Creating a kubernetes on gce...
...

```
**Release note**:

```release-note
NONE
```
2017-04-12 13:39:00 -07:00
Kubernetes Submit Queue
750d5c3bc5 Merge pull request #41561 from jamiehannaford/fix-multiple-swift-urls
Automatic merge from submit-queue

Ensure only 1 Swift URL is used in cluster operations

**What this PR does / why we need it**:

Extracts only 1 Swift URL if multiple are returned from Keystone.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*:

https://github.com/kubernetes/kubernetes/issues/34930

**Special notes for your reviewer**:

**Release note**:
```release-note
Heat cluster operations now support environments that have multiple Swift URLs
```
2017-04-12 02:16:28 -07:00
Kubernetes Submit Queue
640c67792f Merge pull request #44363 from bowei/use-auto-net
Automatic merge from submit-queue

Use auto mode networks instead of legacy networks in GCP

Use of the --range flag creates legacy networks in GCP.

Legacy networks will not support new GCP features.

```release-note
NONE
```
2017-04-11 22:57:20 -07:00
Kubernetes Submit Queue
ceccd305ce Merge pull request #42147 from bowei/ip-alias-2
Automatic merge from submit-queue

Add support for IP aliases for pod IPs (GCP alpha feature)

```release-note
Adds support for allocation of pod IPs via IP aliases.

# Adds KUBE_GCE_ENABLE_IP_ALIASES flag to the cluster up scripts (`kube-{up,down}.sh`).

KUBE_GCE_ENABLE_IP_ALIASES=true will enable allocation of PodCIDR ips
using the ip alias mechanism rather than using routes. This feature is currently
only available on GCE.

## Usage
$ CLUSTER_IP_RANGE=10.100.0.0/16 KUBE_GCE_ENABLE_IP_ALIASES=true bash -x cluster/kube-up.sh

# Adds CloudAllocator to the node CIDR allocator (kubernetes-controller manager).

If CIDRAllocatorType is set to `CloudCIDRAllocator`, then allocation
of CIDR allocation instead is done by the external cloud provider and
the node controller is only responsible for reflecting the allocation
into the node spec.

- Splits off the rangeAllocator from the cidr_allocator.go file.
- Adds cloudCIDRAllocator, which is used when the cloud provider allocates
  the CIDR ranges externally. (GCE support only)
- Updates RBAC permission for node controller to include PATCH
```
2017-04-11 22:09:24 -07:00
Bowei Du
079505023f Use auto mode networks instead of legacy networks in GCP
Use of the --range flag creates legacy networks in GCP.
2017-04-11 14:36:17 -07:00
Bowei Du
345c65847f Add KUBE_GCE_ENABLE_IP_ALIASES flag to the cluster turn up scripts.
KUBE_GCE_ENABLE_IP_ALIASES=true will enable allocation of PodCIDR ips
using the ip alias mechanism rather than using routes.

NODE_IP_RANGE will control the node instance IP cidr
KUBE_GCE_IP_ALIAS_SIZE controls the size of each podCIDR
IP_ALIAS_SUBNETWORK controls the name of the subnet created for the cluster
2017-04-11 14:07:50 -07:00
Mike Danese
e8a3e2d87c delete ubuntu kube-up 2017-04-11 09:29:55 -07:00
Mike Danese
857b12cee0 delete ovirt kube-up
untouched since 2014.
2017-04-11 09:26:52 -07:00
Kubernetes Submit Queue
b9a5a5c9b3 Merge pull request #42748 from dcbw/cfssl-localup
Automatic merge from submit-queue (batch tested with PRs 43866, 42748)

hack/cluster: download cfssl if not present

hack/local-up-cluster.sh uses cfssl to generate certificates and
will exit it cfssl is not already installed.  But other cluster-up
mechanisms (GCE) that generate certs just download cfssl if not
present.  Make local-up-cluster.sh do that too so users don't have
to bother installing it from somewhere.
2017-04-10 14:27:11 -07:00
Jacek N
84985327da Add namespace-{list, create, delete} actions to the kubernetes-master layer 2017-04-10 15:22:01 +01:00
Kubernetes Submit Queue
8d173c96ad Merge pull request #44178 from opsnull/master
Automatic merge from submit-queue

fix kubedns-sa.yaml missing "namespace: kube-system" value

The file kubedns-sa.yaml  missing `namespace: kube-system`,  so it will create ServiceAccount kube-dns in default namespace, this will cause kube-dns deployment's pods be blocked forever;

Some logs as following:

>     - lastTransitionTime: 2017-04-06T19:02:12Z
>       lastUpdateTime: 2017-04-06T19:02:12Z
>       message: 'unable to create pods: pods "kube-dns-699984412-" is forbidden: service
>         account kube-system/kube-dns was not found, retry after the service account

**Release note**:

```release-note
NONE
```
2017-04-07 00:18:43 -07:00
Kubernetes Submit Queue
0653751fb4 Merge pull request #44169 from mikedanese/fix
Automatic merge from submit-queue (batch tested with PRs 42025, 44169, 43940)

if we have a dedicated serviceaccount keypair, use it to verify serviceaccounts
2017-04-06 17:00:20 -07:00
Mike Danese
e2d7e2c866 make salt return non-zero exit code on failure 2017-04-06 13:57:33 -07:00
opsnull
7978ad17a9 fix kubedns-sa.yaml missing "namespace: kube-system" value 2017-04-07 03:52:51 +08:00
Mike Danese
ffcbe213c1 if we have a dedicated serviceaccount keypair, use it to verify serviceaccounts 2017-04-06 11:06:25 -07:00
Kubernetes Submit Queue
b41e415ebd Merge pull request #43137 from shashidharatd/federation-domain
Automatic merge from submit-queue

[Federation] Remove FEDERATIONS_DOMAIN_MAP references

Remove all references to FEDERATIONS_DOMAIN_MAP as this method is no longer is used and is replaced by adding federation domain map to kube-dns configmap.

cc @madhusudancs @kubernetes/sig-federation-pr-reviews 

**Release note**:
```
[Federation] Mechanism of adding `federation domain maps` to kube-dns deployment via `--federations` flag is superseded by adding/updating `federations` key in `kube-system/kube-dns` configmap. If user is using kubefed tool to join cluster federation, adding federation domain maps to kube-dns is already taken care by `kubefed join` and does not need further action.
```
2017-04-06 02:05:42 -07:00
Jeff Grafton
b0ae0d074e Make get-kube.sh work properly the "ci/latest" pointer 2017-04-05 15:02:10 -07:00
Kubernetes Submit Queue
0f10d6ccf2 Merge pull request #43996 from ncdc/proxy-shared-informers
Automatic merge from submit-queue

Use shared informers for proxy endpoints and service configs

Use shared informers instead of creating local controllers/reflectors
for the proxy's endpoints and service configs. This allows downstream
integrators to pass in preexisting shared informers to save on memory &
cpu usage.

This also enables the cache mutation detector for kube-proxy for those
presubmit jobs that already turn it on.

Follow-up to #43295 cc @wojtek-t 

Will race with #43937 for conflicting changes 😄 cc @thockin 

cc @smarterclayton @sttts @liggitt @deads2k @derekwaynecarr @eparis @kubernetes/rh-cluster-infra
2017-04-05 06:52:25 -07:00
Kubernetes Submit Queue
3b8e327924 Merge pull request #44049 from crassirostris/fluentd-es-remove-toleration
Automatic merge from submit-queue

Remove toleration from fluentd-elasticsearch

Fix https://github.com/kubernetes/kubernetes/issues/43795
Address comments from https://github.com/kubernetes/kubernetes/issues/42983

Fluentd-es doesn't work on master anyway, because it has no access to k8s services
2017-04-05 06:03:47 -07:00
Mik Vyatskov
30f22ad683 Remove toleration from fluentd-elasticsearch 2017-04-05 11:27:14 +02:00
Jordan Liggitt
0d2e5a0dd8 Enable service account token lookup by default
```release-note
kube-apiserver: --service-account-lookup now defaults to true. This enables service account tokens to be revoked by deleting the Secret object containing the token.
```
2017-04-04 22:00:11 -04:00
Jeff Grafton
37b07dfe62 Support arbitrary alphanumeric strings as prerelease identifiers 2017-04-04 16:30:54 -07:00
Kubernetes Submit Queue
3a3dc827e4 Merge pull request #43467 from tvansteenburgh/gpu-support
Automatic merge from submit-queue (batch tested with PRs 44047, 43514, 44037, 43467)

Juju: Enable GPU mode if GPU hardware detected

**What this PR does / why we need it**:

Automatically configures kubernetes-worker node to utilize GPU hardware when such hardware is detected.

layer-nvidia-cuda does the hardware detection, installs CUDA and Nvidia
drivers, and sets a state that the k8s-worker can react to.

When gpu is available, worker updates config and restarts kubelet to
enable gpu mode. Worker then notifies master that it's in gpu mode via
the kube-control relation.

When master sees that a worker is in gpu mode, it updates to privileged
mode and restarts kube-apiserver.

The kube-control interface has subsumed the kube-dns interface
functionality.

An 'allow-privileged' config option has been added to both worker and
master charms. The gpu enablement respects the value of this option;
i.e., we can't enable gpu mode if the operator has set
allow-privileged="false".

**Special notes for your reviewer**:

Quickest test setup is as follows:
```bash
# Bootstrap. If your aws account doesn't have a default vpc, you'll need to
# specify one at bootstrap time so that juju can provision a p2.xlarge.
# Otherwise you can leave out the --config "vpc-id=vpc-xxxxxxxx" bit.
juju bootstrap --config "vpc-id=vpc-xxxxxxxx" --constraints "cores=4 mem=16G root-disk=64G" aws/us-east-1 k8s

# Deploy the bundle containing master and worker charms built from
# https://github.com/tvansteenburgh/kubernetes/tree/gpu-support/cluster/juju/layers
juju deploy cs:~tvansteenburgh/bundle/kubernetes-gpu-support-3

# Setup kubectl locally
mkdir -p ~/.kube
juju scp kubernetes-master/0:config ~/.kube/config
juju scp kubernetes-master/0:kubectl ./kubectl

# Download a gpu-dependent job spec
wget -O /tmp/nvidia-smi.yaml https://raw.githubusercontent.com/madeden/blogposts/master/k8s-gpu-cloud/src/nvidia-smi.yaml

# Create the job
kubectl create -f /tmp/nvidia-smi.yaml

# You should see a new nvidia-smi-xxxxx pod created
kubectl get pods

# Wait a bit for the job to run, then view logs; you should see the
# nvidia-smi table output
kubectl logs $(kubectl get pods -l name=nvidia-smi -o=name -a)
```

kube-control interface: https://github.com/juju-solutions/interface-kube-control
nvidia-cuda layer: https://github.com/juju-solutions/layer-nvidia-cuda
(Both are registered on http://interfaces.juju.solutions/)

**Release note**:
```release-note
Juju: Enable GPU mode if GPU hardware detected
```
2017-04-04 14:33:26 -07:00
Kubernetes Submit Queue
95289ff239 Merge pull request #42518 from mtanino/issue/42517
Automatic merge from submit-queue

get-kube-local.sh checks pods with option "--namespace=kube-system"

**What this PR does / why we need it**:

Local cluster creation using get-kube-local.sh is never finished.
The get-kube-local.sh monitors running_count of pods such as etcd,
master and kube-proxy, but these pods are created under the namespace
kube-system. Therefore kubectl can't find these pods then cluster
creation isn't completed.

The get-kube-local.sh should monitor created pods with option
"--namespace=kube-system".

**Which issue this PR fixes** : fixes #42517




**Release note**: 

```
`NONE`
```
2017-04-04 13:22:45 -07:00
Kubernetes Submit Queue
ae57772988 Merge pull request #44017 from justinsb/permissions_log_dump
Automatic merge from submit-queue

cluster/log-dump - chmod files before dumping

We make the files world-readable, so that installation techniques that
lock down the logfiles can still be dumped.

Issue https://github.com/kubernetes/test-infra/issues/2397

```release-note
NONE
```
2017-04-04 09:52:25 -07:00
Andy Goldstein
d2bc4d0b2e Use shared informers for proxy endpoints and service configs
Use shared informers instead of creating local controllers/reflectors
for the proxy's endpoints and service configs. This allows downstream
integrators to pass in preexisting shared informers to save on memory &
cpu usage.

This also enables the cache mutation detector for kube-proxy for those
presubmit jobs that already turn it on.
2017-04-04 12:51:41 -04:00
Kubernetes Submit Queue
12fbc9083e Merge pull request #43625 from mbruzek/cdk-load-balancer-update
Automatic merge from submit-queue

Adding more proxy options and header to nginx load-balancer.

**What this PR does / why we need it**: The kubeapi-load-balancer uses nginx to proxy commands to the kube-apiserver. It currently does not support SPDY and therefore the `kubectl exec` command is broken.

**Which issue this PR fixes** : 
fixes https://github.com/juju-solutions/bundle-canonical-kubernetes/issues/226
fixes https://github.com/juju-solutions/bundle-canonical-kubernetes/issues/201

**Special notes for your reviewer**: This only changes the nginx configuration no code change was required.

**Release note**:
```release-note
Using http2 in kubeapi-load-balancer to fix kubectl exec uses
```
2017-04-04 08:03:44 -07:00
Dan Williams
f20437a822 hack/cluster: download cfssl if not present
hack/local-up-cluster.sh uses cfssl to generate certificates and
will exit it cfssl is not already installed.  But other cluster-up
mechanisms (GCE) that generate certs just download cfssl if not
present.  Make local-up-cluster.sh do that too.
2017-04-03 23:31:16 -05:00
Justin Santa Barbara
f506dfe1ea cluster/log-dump - chmod files before dumping
We make the files world-readable, so that installation techniques that
lock down the logfiles can still be dumped.

Issue https://github.com/kubernetes/test-infra/issues/2397
2017-04-03 21:41:24 -04:00
Kubernetes Submit Queue
d1dd73e9f6 Merge pull request #42668 from ixdy/build-silence-docker-rmi
Automatic merge from submit-queue (batch tested with PRs 42379, 42668, 42876, 41473, 43260)

Silence error messages from the docker rmi call we expect to fail

**What this PR does / why we need it**: when we removed `docker tag -f` in #34361 we added a bunch of `docker rmi` calls to preserve behavior for older docker versions. That step is usually a no-op, however, and results in confusing messages like
```
Tagging docker image gcr.io/google_containers/kube-proxy:c8d0b2e7a06b451117a8ac58fc3bb3d3 as gcr.io/kubernetes-release-test/kube-proxy-amd64:v1.5.4
Error response from daemon: No such image: gcr.io/kubernetes-release-test/kube-proxy-amd64:v1.5.4
```

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #42665

**Special notes for your reviewer**: I could probably remove the `docker rmi` calls entirely, though I don't know if folks are still using docker < 1.10. (I think Jenkins still has 1.9.1.)

**Release note**:

```release-note
NONE
```

cc @jessfraz
2017-03-30 23:36:24 -07:00