Project: Kubernetes (Orchestration & Management / Scheduling & Orchestration)
File: CHANGELOG-1.5.md

<!-- BEGIN MUNGE: GENERATED_TOC --> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <!-- END MUNGE: GENERATED_TOC --> <!-- NEW RELEASE NOTES ENTRY --> & filename | sha256 hash -- | -- | `6a3fad3dcc3c59f926e5c0110d16edfc323fdd5482c83102b3f8068b420702db` | `0a1fea0278f77a7ede1f64c05e8c69ba5ea2a9403d579db2247963e7869ff9e5` filename | sha256 hash -- | -- | `95061ccf35dfe1d9aac0dd55c542c8f1b04874892196b0b71185ba3ea61ec424` | `37b14062a8f3701efa12cb2ae9eecef2831d31881990a15bbb526689b0fd2712` | `4c1b83462cc9c11144c957beca3479a16162ccd283462d3b6b2afcfa40550137` | `0baefc8e2c01bddf550764a77d6fb345df331bbc4f2f56efb036d3dd50b64562` | `f0fa7369d03b330bc655f5055e8527e7211936baf3277444947e3b7c9441568e` | `40e1c8e89cc93ed072858afb80eac48524282f9d6a7d2510676ddb319458d0a5` | `8ca51905157ff3e9fff9bbd0930678c6c9ef885a14ae8580a1595aa56ac66284` | `b4120b9691a13188cf1328d364d7878f0b8d893636b58e3388291142a000e69f` filename | sha256 hash -- | -- | `7e17b17e967722546541fdaeead4dc40037ddce4107aa2b2a561ea577aa62101` | `2928098e581d2ffba2750222a238d4c4e93ab31efd09977d0447964d25cc14bd` | `65b23196a1e55e2ab3893b9e147568aaa35cbf46bc588cb0913349a93b70678c` filename | sha256 hash -- | -- | `4d73ccd2ecac0f2e161f88e4d77004298d10a009f9b5fa0203fa7bff70a82e30` | `03244b9c4149d6153eb9459e3774a4a0257fd66d3532add5721223925b6fa26f` | `d071b710ec898b5630c776f0f6f88f44c3c72e6494c235a7c5cd5807df8fb0cb` | `59448d44c86002386450c8804757bfd63f4c943670d7cf15e9221efa53ee0ef5` Update dnsmasq to the latest version. (, ) On GCP platforms, e2e testing now logs which OS images the cluster was found to have. (, ) Update cluster-proportional-autoscaler, etcd-empty-dir-cleanup, fluentd-gcp, and kube-addon-manager addons with refreshed base images containing fixes for CVE-2015-8271, CVE-2016-7543, CVE-2016-9841, CVE-2016-9843, CVE-2017-1000366, CVE-2017-2616, and CVE-2017-7507. (, ) Bump GLBC version to 0.9.5 - fixes upon upgrade from pre-1.6.4 to either 1.6.4 or 1.6.5. (, ) Upgrade golang version to 1.7.6 (, ) & filename | sha256 hash -- | -- | `36bc0bcdce4060546f3fef7186f1207d30d5fd340e72113ff592966bd6684827` | `b329b02e9542049b9b85f8083a466e51799691bcf06fdf172b9c0f1cb61bdb6d` filename | sha256 hash -- | -- | `824ea7e5987e4ac7915b11fcd86658221a5a1e942a3f5210383435953509f96f` | `251a91eff457640066dd395393b16aae81850225db29207c07321b62fd9213ab` | `84c69d23010304308459ad520375fd017f57562f8a78b6157ef0ea093636a8b6` | `991e1eab65d1817ca3600e3ba3bc63ed86cf139a4669f84899f593ff684fb36c` | `afe9c001a41b88da351ddf0cb3d506d3d8da7d9a94ae2d4b05062b2927c81fec` | `a936578c04887a2e1fe0a25e05f4d9663cd673d3fbac0c522bf75710d7f39f9b` | `529ae014f0603868c82ee89601668fac17fa55932535d5925a7b61b1f301e61f` | `f1f7e588dca059a4cbe97b4a28a983d346f93fc2bb0d4a1dbbb7d55a3e33caef` filename | sha256 hash -- | -- | `ae18d659811da316d4a8bbdce15c4396fdee0068f9d3247a72c3a23433fee44c` | `d56187d19b42848b7ff09e82c0452120c173ae56709cae88f96312ee7c41b0c4` | `aaa4d9414620bb1834401a17f2b877fe1347a4f8fc37c940092ac7f112e22934` filename | sha256 hash -- | -- | `40c294ef5af4d548d37a599ee7fa07462f116fa5784d2b1501d95eeb04b8d34d` | `37482d5933c99fca526d0d47f0cfb2b69101f2e60dd5240b490b9768c8e4171e` | `786ddb390a9fac6e41caa4bb8054240ddb5255b9937bb37d01d77e23857bb407` | `c3e89390c8026845fcf72765e84b7e3cd383de705ef46f4e3d422b343d66bd47` kube-apiserver now drops unneeded path information if an older version of Windows kubectl sends it. (, ) Fix for kube-proxy healthcheck handling an update that simultaneously removes one port and adds another. (, ) Fix . (, ) Update to fluentd-gcp:1.28.3, rebased on ubuntu-slim:0.8 (, ) Fix polarity of NodePort logic to avoid leaked ports (, ) Upgrade golang versions to 1.7.5 (, ) & filename | sha256 hash -- | -- | `14a514bb9ed331eb1854a1d66cfaa53290c382641e154c901bcb14eb2cd683b4` | `cf3d85bcfd148ed6a54c64b4102a10cc4e54332907fb3d9a6c6e2658a31ca2e9` filename | sha256 hash -- | -- | `30b819eb1427317be38a4f534fc2c369d43e67499e5df79cdd5d4cfac14f8d36` | `3eedf919b2feff4c21edcadb493247013274a3672f6a3d46f19e13af211cea4e` | `351bb189f6be835baadda3b87909472c4a9f522ece6e6425250ef227937f2d58` | `d7c3508dc5029c6fefb1bf6f381af92d8626ac5a4b7246009832c03768ae670f` | `2eaf838ab853c94f05c362a8ce089f32acdb6062356399a6f5fe7cdb13a6fa0c` | `e5212f6d9577bd090c88a7124edba86f925e08c710865623d9fb914a5b72e67f` | `5a4fdbf0cb88f0e889d8dca1e6c073c167a8c3c7d7b1caad10dbe0dc2eb46677` | `b1170a33c5c6fe2c3f71e820f11cf877f0ee72b60a6546aaf989267c89598656` filename | sha256 hash -- | -- | `995959c43661c22b0f2ede45b62061f37c25a53388bcdd8988f928574070390a` | `c6b20af2f0c5e3abe20c18aac734846923c8ff3afda637ef1fbd6d3b3820e3b7` | `7d439b2012a0280d40441a5871b25a07b540f5e84c561d2bf8c67725ebbf115d` kube-up (with gce/gci and gce/coreos providers) now ensures the authentication token file contains correct tokens for the control plane components, even if the file already exists (ensures upgrades and downgrades work successfully) (, ) Patch CVE-2016-8859 in alpine based images: (, ) - gcr.io/google-containers/cluster-proportional-autoscaler-amd64 - gcr.io/google-containers/dnsmasq-metrics-amd64 - gcr.io/google-containers/etcd-empty-dir-cleanup - gcr.io/google-containers/kube-addon-manager - gcr.io/google-containers/kube-dnsmasq-amd64 - Disable thin_ls due to excessive iops (, ) - Ignore .mount cgroups, fixing dissappearing stats - Fix wc goroutine leak - Update aws-sdk-go dependency to 1.6.10 PodSecurityPolicy authorization is correctly enforced by the PodSecurityPolicy admission plugin. (, ) Bump gcr.io/google_containers/glbc from 0.9.1 to 0.9.2. Release notes: (, ) Update gcr.io/google-containers/rescheduler to v0.2.2, which uses busybox as a base image instead of ubuntu. (, ) restored normalization of custom `--etcd-prefix` when `--storage-backend` is set to etcd3 (, ) This release contains a fix for a PodSecurityPolicy vulnerability which allows users to make use of any existing PodSecurityPolicy object, even ones they are not authorized to use. Other then that, this release contains no other changes from 1.5.4. The vulnerability is tracked in http://issue.k8s.io/43459. Who is affected? Only Kubernetes

installations that do all of the following: Enable the PodSecurityPolicy API (which is not enabled by default): `--runtime-config=extensions/v1beta1/podsecuritypolicy=true` Enable the PodSecurityPolicy admission plugin (which is not enabled by default): `--admission-control=...,PodSecurityPolicy,...` Use authorization to limit users' ability to use specific PodSecurityPolicy objects What is the impact? A user that is authorized to create pods can make use of any existing PodSecurityPolicy, even ones they are not authorized to use. How can I mitigate this prior to installing 1.5.5? Export existing PodSecurityPolicy objects: `kubectl get podsecuritypolicies -o yaml > psp.yaml` Review and delete any PodSecurityPolicy objects you do not want all pod-creating users to be able to use (NOTE: Privileged users that were making use of those policies will also lose access to those policies). For example: `kubectl delete podsecuritypolicies/my-privileged-policy` After upgrading to 1.5.5, re-create the exported PodSecurityPolicy objects: `kubectl create -f psp.yaml` filename | sha256 hash -- | -- | `ff171d53b6dba2aace899dbfa06044d3a54d798896f7b6dd483f20d2c05374ed` | `25207344982bcf76172c7d156106357a7113b3909ac851e19b437dbba9402af6` filename | sha256 hash -- | -- | `92eb19b1464674078927263642205498a9b4e496909138626de721f8ff2eb3f1` | `dd2076d8a3062459b82481bf064d80a198df580f2c34efe7132a091c19d8084c` | `8366a72910c987e4140db42244741752efac8e06f0e13f5d0cbc1cc9bec9733c` | `73536e200fee9f4de19ebfd7d2e063a04f5ccb93073982032e79dc47ae92e89a` | `8f679bd012ecbc58f0a916f393d3fc79de6dc2624320b04edc1b9249213a49f8` | `1998d6398aef02898babc5ff20484fe7c538f75f78c650631afea1a555aee8d1` | `dff6fe02a6090feb949acc5753633891bcbdb7ecfb2bff3fa132d025713cbd55` | `bd7c7c39122135b58da89a700580475a3cadbb31aa1b35175ff2f80067bedc0d` filename | sha256 hash -- | -- | `578977b62af58639548d743991cd2f71b0fd58f9caa729131824f8dde85b5c6e` | `01a1104d8c5a22c26b8b0a402bf0362d749b7d13a636b31c64fb51bb61ea3a01` | `06c5ca1f962f368219835ed6d075ef6e3a72685f2f0988823f44dd2e602e1980` No notable changes for this release & filename | sha256 hash -- | -- | `2ff668c687c1bdf8351dcae102901b1d46cc50e446bde08a244c2e65739de4c3` | `172d33787ec2d11345d152becdc96982d3057ed16426910302c1b103980b634b` filename | sha256 hash -- | -- | `53e7c4839025ad04c1104b99e1f8b45f4fe639397c623e2e050acb53cb0a8cbd` | `6fac39282c9599566874d63c57b305798e4096a42ef83a8965f615c1d709559c` | `80719626f7e6db6d2d04e57bb7edad3077b774a11ebccea3fcddadaa48cbf0a6` | `24001bc0c7ddb32cd72ac9bed55543830424fba734587ac23b812d8d047a9091` | `094ff4fe7a10e23a397803869a11a3cc508f3990d9e3b4fbccaefe44be2ad81a` | `b12b823d12942d7fccaf791343e9c9854073de3e03cc57a7e4bd7b03fec9806b` | `e5ae9775cfe695d2d855b29c01f19b0fd0fad008071d8e95f47f70beb16291a8` | `40cc26a8216e703217264194b68d6b5af28ffa1b9b48b23232027c5d63d8b28c` filename | sha256 hash -- | -- | `a61cb36d64c8a4111cf04f9d1aac5d8418d07a7c8a682522203b0dfa76f9c806` | `abaa5052f9d0daaebf6b7375c9667c9160355b8ea074daac76ba8a79a24cab37` | `ffff55a0f5f5848fdde32a2766dc63cdf26629ca4f91db458381ffb55cf49535` Fix AWS device allocator to only use valid device names (, ) The kube-apiserver can be enabled in GCE by exporting the environment variable `ENABLEAPISERVERBASIC_AUDIT=true` before running `cluster/kube-up.sh`. This will log to `/var/log/kube-apiserver-audit.log` and use the same `logrotate` settings as `/var/log/kube-apiserver.log`. (, ) list-resources: don't fail if the grep fails to match any resources (, ) Bump GCE ContainerVM to container-vm-v20170214 to address CVE-2016-9962. (, ) & filename | sha256 hash -- | -- | `a4d997be9e3ac0f9838a58fb80d08c2ab02e00afb9d16d3db18d99c85b88b316` | `a23636ee40a60c1bb3255a03177f522c28133f74c6d09a5437f6b56b7e1d5296` filename | sha256 hash -- | -- | `2f8eeb772c22c7dad5a32d6ee17e8b309503b56fbcb0abdc74e1f94e86b33520` | `b044240271223aa93f8bdb8054824a48ba5571460d2e6c90688dccd0892e5c7e` | `d2649a41e4a64c2027e321254e4ef3e690371bd0c7eece12d3395e49d8171617` | `eaf386a46eeee324bb71349bba7d5d3f41d7d19af75537cf9e4e7045d7068f68` | `2f2d45296651e5696f373838ba019e8b8bb11b2a2772a55f0a6e367ec6c18e2d` | `56b8b207fd914dc7c16fdb675a3917ab9bff0efbe745ee1675abbff2b5854d32` | `fe3136e3c6bd983e55396341c451f896e478e8c9d0b3d1418e1d1fccee3d7b75` | `8e315cb48135a4ed26585e9d8cf88f550ac51e3658b981bb53cb0952e9b3393a` filename | sha256 hash -- | -- | `ad4d101bec0ef981a7e1efbe11223e502ff644368d70ad54915e15fcb3ad6735` | `bfd66c57d1071bdd213d4c6d124d491959ae3509994e5a23cc2720a8ad18526d` | `12b335637b7a4aa019cee600b0161d51e6317a87bec0500e1f9d85990f6352d5` filename | sha256 hash -- | -- | `3f54e2d101b6351513ce9425a23f9a196e965326c3a7f78a98ef1dad452e5830` | `6508b64755dc0ff90f23921d2b8bb6c0c321c38edeaf24fd4c22282880a87a11` | `578ef8a6958fb4bf2e0438cdef7707d12456186a1b8c4b18aa66f47b9221a713` | `aa166b275b3d0f80cbf23fbee7f42358b6176f37fd9ef66837f38910d4626079` We change the default attachdetachcontroller sync period to 1 minute to reduce the query frequency through cloud provider to check whether volumes are attached or not. (, ) Added configurable etcd initial-cluster-state to kube-up script (, ) If ExperimentalCriticalPodAnnotation=True flag gate is set, kubelet will ensure that pods with `scheduler.alpha.kubernetes.io/critical-pod` annotation will be admitted even under resource pressure, will not be evicted, and are reasonably protected from system OOMs. (, ) Reverts to looking up the current VM in vSphere using the machine's UUID, either obtained via sysfs or via the `vm-uuid` parameter in the cloud configuration file. (, ) Fix for detach volume when node is not present/ powered off (, ) Move b.gcr.io/k8sauthenticatedtest to gcr.io/k8s-authenticated-test (, ) Bump up GLBC version from 0.9.0-beta to 0.9.1 (, ) azure: fix Azure Container Registry integration (, ) azure disk: restrict name length for Azure specifications (, ) Bump GCI to gci-beta-56-9000-80-0 (, ) Bump up glbc version to 0.9.0-beta.1 (, ) Enable lazy inode table and journal initialization for ext3 and ext4 (, ) Kubelet will no longer set hairpin mode on every interface on the machine when an error occurs in setting up hairpin for a specific interface. (, ) The SubjectAccessReview API passes subresource and resource name information to the authorizer to answer authorization

(, ) Bump GCE ContainerVM to container-vm-v20170201 to address CVE-2016-9962. (, ) Reduce time needed to attach Azure disks (, ) Fixes request header authenticator by presenting the request header client CA so that the front proxy will authenticate using its client certificate. (, ) Fix failing load balancers in Azure (, ) Add a KUBERNETES_NODE_ section to build kubelet/kube-proxy for windows (, ) Update GCE ContainerVM deployment to container-vm-v20170117 to pick up CVE fixes in base image. (, ) Adding vmdk file extension for vmDiskPath in vsphere DeleteVolume (, ) AWS: Remove duplicate calls to DescribeInstance during volume operations (, ) Caching added to the OIDC client auth plugin to fix races and reduce the time kubectl commands using this plugin take by several seconds. (, ) Actually fix local-cluster-up on 1.5 branch (, ) Prevent hotloops on error conditions, which could fill up the disk faster than log rotation can free space. (, ) Fix issue with PodDisruptionBudgets in which `minAvailable` specified as a percentage did not work with StatefulSet Pods. (, ) Fix panic in vSphere cloud provider (, ) Allow missing keys in templates by default (, ) Fix kubectl get -f <file> -o <nondefault printer> so it prints all items in the file (, ) Endpoints, that tolerate unready Pods, are now listing Pods in state Terminating as well (, ) Add path exist check in getPodVolumePathListFromDisk (, ) Ensure the GCI metadata files do not have newline at the end (, ) AWS: recognize eu-west-2 region (, ) Fix space issue in volumePath with vSphere Cloud Provider (, ) Fix issue when attempting to unmount a wrong vSphere volume (, ) Changed default scsi controller type in vSphere Cloud Provider (, ) Fixes API compatibility issue with empty lists incorrectly returning a null `items` field instead of an empty array. (, ) AWS: Add sequential allocator for device names. (, ) Fix fsGroup to vSphere (, ) & filename | sha256 hash -- | -- | `67344958325a70348db5c4e35e59f9c3552232cdc34defb8a0a799ed91c671a3` | `93241d0f7b69de71d68384699b225ed8a5439bde03dc154827a2b7a6a343791e` filename | sha256 hash -- | -- | `1e8a3186907fe5e00f8afcd2ca7a207703d5c499d86c80839333cd7cc4eee9ad` | `64ebd769d96aa5a12f13c4d8c4f6ddce58eae90765c55b7942872dc91447e4d7` | `a8ecb343a7baf9e01459cd903c09291dbbe72e12431e259e60e11b243b2740f7` | `9d5b6edebb5ee09b20f35d821d3d233ff4d5935880fc8ea8f1fa654d5fd23e51` | `03fd45f96e5d2b66c568b213d0ab6a216aad8c383d5ea4654f7ba8ef5c4d6747` | `527fbf42e2e4a2785ad367484a4db619b04484621006fa098cde0ffc3ad3496f` | `3afe8d3ef470e81a4d793539c2a05fbbca9f0710ced1c132b1105469924e3cea` | `dbb63c5211d62512b412efcb52d0a394f19a8417f3e5cd153a7f04c619eb5b41` filename | sha256 hash -- | -- | `8c4be20caa87530fdd17e539abe6f2d3cfccaef9156d262d4d9859ca8b6e3a38` | `e0251c3209acebf55e98db521cf29aaa74076a4119b1b19780620faf81d18f44` | `548ad7e061263ff53b80f3ab10a3c7f9289e89a4c56b5a8f49ae513ba88ea93a` Fixes NotAuthenticated errors that appear in the kubelet and kube-controller-manager due to never logging in to vSphere (, ) Update amd64 kube-proxy base image to debian-iptables-amd64:v5 (, ) Update kube-proxy image to be based off of Debian 8.6 base image. (, ) Fixes an HPA-related panic due to division-by-zero. (, ) Update fluentd-gcp addon to 1.28.1 (, ) Provide kubernetes-controller-manager flags to control volume attach/detach reconciler sync. The duration of the syncs can be controlled, and the syncs can be shut off as well. (, ) AWS: Recognize ca-central-1 region (, ) fix nil dereference when doing a volume type check on persistent volumes (, ) Generate OpenAPI definition for inlined types (, ) Admit critical pods in the kubelet (, ) assign -998 as the oomscoreadj for critical pods (e.g. kube-proxy) (, ) Don't evict static pods (, ) Fix an issue where AWS tear-down leaks an DHCP Option Set. (, ) Give apply the versioned struct that generated from the type defined in the restmapping. (, ) Add support for Azure Container Registry, update Azure dependencies (, ) Fixes an issue where

would fail on the API server start with (, ) !!! [1215 15:42:56] Timed out waiting for apiserver: to answer at https://localhost:6443/version; tried 10 waiting 1 between each Since `kubernetes.tar.gz` no longer includes client or server binaries, `cluster/kube-{up,down,push}.sh` now automatically download released binaries if they are missing. (, ) Fixed validation of multizone cluster for GCE (, ) Fix nil pointer dereference in test framework (, ) Fixed detection of master during creation of multizone nodes cluster by kube-up. (, ) Kubelet: Add image cache. (, ) & filename | sha256 hash -- | -- | `adc4f6ec1fc8f97ed19f474ffcc0af2d050f92dc20ecec2799741802019205ec` | `27e5009b906b9f233a7be1efcf51140be945446d828c006c171d03fe07e43565` filename | sha256 hash -- | -- | `06f8155f0df381bca3b4e27bbd28834f7601e32cbe3d0c1f24be90516c5b8a3b` | `3ede7d74c5f2f918547bca4d813901e33580c8b8f19828da21a5c2296ff4b8be` | `b96c3c359146e4fc4d8ff4cf09216bbbb9dbaf3f405488d4aaa45ac741c98f99` | `662fc57057290deb38ec49dd7daf4a4a5b91def2dbdb7ee7a4494dec611379a5` | `c33936b7a27f296c7b85bbfac1fe303573580a948dd1f3174916da9a5a954d49` | `31ea3e4cbcc9574a37566a2cc3c809105d56a739e9cbd387bf878acacedf9ec8` | `95420d0d49e2875703ac09a1b6021252644ba162349c6c506b06f2677852de5d` | `534a3c5bdde989c7339df05c4e7793c6c50e5ebc0a663b1a9cdd25bce43a5a74` filename | sha256 hash -- | -- | `871a9f35e1c73f571b7113e01a91d7bfc5bfe3501e910c921a18313774b25fd1` | `e13b070ef70d2cea512a839095dbf95249d2f7b5dcbfb378539548c888efe196` | `c54cf106e919149731a23da60ad354eadc53b3bf544ab91d4d48ff0c87fdaa7e` Changes the default value of the "anonymous-auth" flag to a safer default value of false. This affects kube apiserver and federation apiserver. See https://groups.google.com/forum/#!topic/kubernetes-announce/iclRj-6Nfsg for more details. (, ) Fixes issue where if the audit log is enabled and anonymous authentication is disabled, then an unauthenticated user request will cause a panic and crash the `kube-apiserver`. (, ) `hack/local-up-cluster.sh` script times out waiting for apiserver to answer, see . To workaround this, modify the script to pass `--anonymous-auth=true` to `sudo -E "${GO_OUT}/hyperkube" apiserver ...` when starting `kube-apiserver`. & filename | sha256 hash -- | -- | `52b7df98ea05fb3ebbababf1ccb7f6d4e6f4cad00b8d09350f270aa7e3ad7e85` | `fbefb2544667f96045c346cee595b0f315282dfdbd41a8f2d5ccc74054a4078e` filename | sha256 hash -- | -- | `27d71bb6b16a26387ee30272bd4ee5758deccafafdc91b38f3d0dc19a34e129e` | `5fa8550235919568d7d839b19de00e9bdd72a97cfde21dbdbe07fefd6d6290dc` | `032a17701c014b8bbbb83c7da1046d8992a41031628cf7e1959a94378f5f195b` | `afae4fadb7bbb1532967f88fef1de6458abda17219f634cc2c41608fd83ae7f6` | `acca7607dae678a0165b7e10685e0eff0d418beebe7c25eaffe18c85717b5cc4` | `fbc182b6d9ae476c7c509486d773074fd1007032886a8177735e08010c43f89d` | `a8ddea329bc8d57267294464c163d8c2f7837f6353f8c685271864ed8b8bc54d` | `bc3a76f1414fa1f4b2fb92732de2100d346edb7b870ed5414ea062bb401a8ebd` filename | sha256 hash -- | -- | `b9c122d709c0556c1e19d31d98bf26ee530f91c0119f4454fb930cef5a0c1aa7` | `3bbba5c8dedc47db8f9ebdfac5468398cce2470617de9d550affef9702b724c9` | `3ff9ccdd641690fd1c8878408cd369beca1f9f8b212198e251862d40cf2dadc0` StatefulSets (ex-PetSets) StatefulSets are beta now (fixes and stabilization) Improved Federation Support New command: `kubefed` DaemonSets Deployments ConfigMaps Simplified Cluster Deployment Improvements to `kubeadm` HA Setup for Master Node Robustness and Extensibility Windows Server Container support CRI for pluggable container runtimes `kubelet` API supports authentication and authorization Features for this release were tracked via the use of the issues repo. Each Feature issue is owned by a Special Interest Group from API Machinery is based on it () Apps ) ) ) () ) () ) () Auth ) () ) () AWS ) Cluster Lifecycle ) () () Cluster Ops ) () Federation ) () ) () ) () ) () ) () Network ) ) () ) Node ) ) () ) ) ) () Scheduling ) () ) () UI ) () Windows ) () Populated via CRI [known issues and limitations](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/container-runtime-interface.md#kubernetes-v15-release-cri-v1alpha1) getDeviceNameFromMount() function doesn't return the volume path correctly when the volume path contains spaces Federation alpha features do not have feature gates defined and are hence enabled by default. This will be fixed in a future release. Federation control plane can be upgraded by updating the image fields in the `Deployment` specs of the control plane components. However, federation control plane upgrades were not tested in this release Node controller no longer force-deletes pods from the api-server. (, ) For StatefulSet (previously PetSet), this change means creation of replacement pods is blocked until old pods are definitely not running (indicated either by the kubelet returning from partitioned state, deletion of the Node object, deletion of the instance in the cloud provider, or force deletion of the pod from the api-server). This helps prevent "split brain" scenarios in clustered applications by ensuring that unreachable pods will not be presumed dead unless some "fencing" operation has provided one of the above

For all other existing controllers except StatefulSet, this has no effect on the ability of the controller to replace pods because the controllers do not reuse pod names (they use generate-name). User-written controllers that reuse names of pod objects should evaluate this change. When deleting an object with `kubectl delete ... --grace-period=0`, the client will begin a graceful deletion and wait until the resource is fully deleted. To force deletion immediately, use the `--force` flag. This prevents users from accidentally allowing two Stateful Set pods to share the same persistent volume which could lead to data corruption Allow anonymous API server access, decorate authenticated users with system:authenticated group (, ) kube-apiserver learned the '--anonymous-auth' flag, which defaults to true. When enabled, requests to the secure port that are not rejected by other configured authentication methods are treated as anonymous requests, and given a username of 'system:anonymous' and a group of 'system:unauthenticated'. Authenticated users are decorated with a 'system:authenticated' group. IMPORTANT*: See Action Required for important actions related to this change. kubectl get -o jsonpath=... will now throw an error if the path is to a field not present in the json, even if the path is for a field valid for the type. This is a change from the pre-1.5 behavior, which would return the default value for some fields even if they were not present in the json. (, ) The strategicmerge patchMergeKey for VolumeMounts was changed from "name" to "mountPath". This was necessary because the name field refers to the name of the Volume, and is not a unique key for the VolumeMount. Multiple VolumeMounts will have the same Volume name if mounting the same volume more than once. The "mountPath" is verified to be unique and can act as the mergekey. (, ) extensions/v1beta1.Jobs is deprecated, use batch/v1.Job instead (, ) The kubelet --reconcile-cdir flag is deprecated because it has no function anymore. (, ) Notice of deprecation for recycler The init-container (pod.beta.kubernetes.io/init-containers) annotations used to accept capitalized field names that could be accidentally generated by the k8s.io/kubernetes/pkg/api package. Using an upper case field name will now return an error and all users should use the versioned API types from `pkg/api/v1` when serializing from Golang. Important Security-related changes before upgrading You MUST* set `--anonymous-auth=false` flag on your kube-apiserver unless you are a developer testing this feature and understand it. If you do not, you risk allowing unauthorized users to access your apiserver. You MUST* set `--anonymous-auth=false` flag on your federation apiserver unless you are a developer testing this feature and understand it. If you do not, you risk allowing unauthorized users to access your federation apiserver. You do not need to adjust this flag on Kubelet: there was no authorization for the Kubelet APIs in 1.4. batch/v2alpha1.ScheduledJob has been renamed, use batch/v2alpha1.CronJob instead (, ) PetSet has been renamed to StatefulSet. If you have existing PetSets, you must perform extra migration steps both before and after upgrading to convert them to StatefulSets. () (, ) If you are upgrading your Cluster Federation components from v1.4.x, please update your `federation-apiserver` and `federation-controller-manager` manifests to the new version (, ) The deprecated kubelet --configure-cbr0 flag has been removed, and with that the "classic" networking mode as well. If you depend on this mode, please investigate whether the other network plugins `kubenet` or `cni` meet your needs. (, ) New client-go structure, refer to kubernetes/client-go for versioning policy (, ) The deprecated kube-scheduler --bind-pods-qps and --bind-pods burst flags have been removed, use --kube-api-qps and --kube-api-burst instead (, ) If you used the feature in 1.4

created `PodDisruptionBudget` objects), then BEFORE* upgrading from 1.4 to 1.5, you must delete all `PodDisruptionBudget` objects (`policy/v1alpha1/PodDisruptionBudget`) that you have created. It is not possible to delete these objects after you upgrade, and their presence will prevent you from using the beta PodDisruptionBudget feature in 1.5 (which uses `policy/v1beta1/PodDisruptionBudget`). If you have already upgraded, you will need to downgrade the master to 1.4 to delete the `policy/v1alpha1/PodDisruptionBudget` objects. Continuous integration builds have used the following versions of external dependencies, however, this is not a strong recommendation and users should consult an appropriate installation or upgrade guide before deciding what versions of etcd, docker or rkt to use. Docker versions 1.10.3 - 1.12.3 Docker version 1.11.2 known issues Kernel crash with Aufs storage driver on Debian Jessie () which can be identified by the Leaked File descriptors () Additional memory overhead per container () Docker version 1.12.1 through the Kubernetes docker automated validation framework as has Docker version 1.12.3 Docker 1.10.3 contains for known issues Docker versions as old as may 1.9.1 work with but this is not guaranteed rkt version 1.21.0 known issues with the rkt runtime are etcd version 2.2.1 etcd version 3.0.14 but does require Bump GCE debian image to container-vm-v20161208 () (, ) Fix unmountDevice issue caused by shared mount in GCI (, ) & filename | sha256 hash -- | -- | `c2b29b38d29829b7b2591559d0d36495d463de0e18a2611bd1d66f2baea6352c` | `0b3327b6f0b024c989aba1e546d50d56fc89ed6df74c09fc55b9f9c4a667b771` filename | sha256 hash -- | -- | `82a7144ae1371c3320019c8e6a76e95242d85aae9dedccc4884b677cda544c0e` | `3aeea90acfbaf776e2c812e34df4c11a44720e4c5b86c4c0e9a8aaf221149335` | `d55fb1dfe64e62bffbf03f1a7c8bd666562014ad0d438049f0f801f5fa583914` | `779b2f1c0eb3eca7dd60332972ccfc79e557e34f080c210dfb6aa6e18e71bbf4` | `b5f0a3b23d7082eaefe7090d7a8f9952fd8b00d44a90137200bc5a91001b6e95` | `ccadbef7ce7c89fc48988c57585c0ccb7488d2dcc7e96f4e43c5bb64e44b9e29` | `da1428b6ed138134358c72af570a65565c5188a1c6e50cee42becb1a48441d91` | `7b74aeb215b0f0ff86bae262af5bafe7083a44293e1ab2545f5de3ac42deda0b` filename | sha256 hash -- | -- | `c56aa39fd4e732c86a2729aa427ca2fc95130bd788053aa8e8f6a8efd9e1310e` | `9f55082ca5face2db2d6d54bed2a831622e747e1aa527ee8adc61d0ed3fcfab8` | `4a7c037ac221531eee4e47b66a2aa12fce4044d2d4acbef0e48b09e0a8fe950b` Better compat with very old iptables (e.g. CentOS 6) (, ) fix permissions when using fsGroup (, ) Fix GCI mounter issue (, ) fix mesos unit tests (, ) Fix Service Update on LoadBalancerSourceRanges Field (, ) Fix Service Update on LoadBalancerSourceRanges Field (, ) Set kernel.softlockup_panic =1 based on the flag. (, ) Fix logic error in graceful deletion (, ) Enable containerized mounter only for nfs and glusterfs types (, ) GCI: Remove /var/lib/docker/network (, ) kubelet: don't reject pods without adding them to the pod manager (, ) Fix photon controller plugin to construct with correct PdID (, ) Fix the equality checks for numeric values in cluster/gce/util.sh. (, ) federation service controller: stop deleting services from underlying clusters when federated service is deleted. (, ) Set Dashboard UI version to v1.5.0 (, ) When deleting an object with `--grace-period=0`, the client will begin a graceful deletion and wait until the resource is fully deleted. To force deletion, use the `--force` flag. (, ) Removes shorthand flag -w from kubectl apply (, ) Update doc for kubectl apply (, ) Try self-repair scheduler cache or panic (, ) Use gsed on the Mac (, ) Fix TestServiceAlloc flakes (, ) & filename | sha256 hash -- | -- | `4a6cb512dee2312ffe291f4209759309576ca477cf51fb8447b30a7cb2a887ed` | `fe71f19b607183da4abf5f537e7ccbe72ac3306b0933ee1f519253c78bf9252f` filename | sha256 hash -- | -- | `37bcd12754a28ba6b4d030c68526bc6369f1fa3b7b0e405277bb13989ed0f9da` | `760817040ca040dd4ba8929cfb714b8bf6704c6ac2ec9985b56fa77b4da03d2c` | `87d694445a3e532748d07e0d0da05c1ae8b84b46c54ec1415c9603533747a465` | `b2bcd07a525428fe24da628afca22b019b8f2847d1999da8fce72b7342cf64ed` | `262c4fa70039389aa5d5b73a0def325471bd24b858157d60c0389fbee5ca671e` | `52c9341c1e6aa923aed4497c061121c192f209c90fcf31135edc45241a684bfa` | `7d8e3bcdfa9dc3d5fde70c60a37e543cc59d23b25e2b0a2274e672d0bae013c2` | `75143c176bc817fc49a79229dfae8c7429d0a3deeaba54a397dddce3e37e8550` filename | sha256 hash -- | -- | `61c209048da1612796a30b880076b7f9b59038821da63bbecac4c56f24216312` | `2c6952e16c0b0c153ca3d424b3deca9b43a8e421b1a59359bc10260309bf470c` | `cf3e37a89358cae1d2d36aaad10f3e906269bc3df611279dbed9f50e81449fad` Modify GCI mounter to enable NFSv3 (, ) Third party resources are now deleted when a namespace is deleted. (, ) kube-dns (, ) Added --config-map and --config-map-namespace command line options. If --config-map is set, kube-dns will load dynamic configuration from the config map referenced by --config-map-namespace, --config-map. The config-map supports the following properties: "federations". --federations flag is now

Prefer to set federations via the config-map. Federations can be configured by settings the "federations" field to the value currently set in the command line. Example: ```yaml kind: ConfigMap apiVersion: v1 metadata: name: kube-dns namespace: kube-system data: federations: abc=def ``` azure: support multiple ipconfigs on a NIC (, ) Fix issue in converting AWS volume ID from mount paths (, ) fix leaking memory backed volumes of terminated pods (, ) Default logging subsystem's resiliency was greatly improved, fluentd memory consumption and OOM error probability was reduced. (, ) & filename | sha256 hash -- | -- | `62c51bcee460794cda30e720c65509b679b51015c62c075e6e735fe29d089e2b` | `8c950c7377eb40670d0438ccb68bbeaf1100ed2e919e012bc98479ff07ddd393` filename | sha256 hash -- | -- | `e71af85542837842ff3b0fb8137332f4e1ce4c453d225da292e1fa781f1c74d7` | `033d02c1382553f977057827b6a5b82f1b69aecd44b649c937781d1cccb763d1` | `1e7a435f2f7d06e3de9bd8c8d0457b6548aa15ad5cdab4241391f290a28b804f` | `3c07a89e8eb785a7b37842d4b0bc0471fcc7b4e3a4bd973e6f8936cbc6030d76` | `680a2786d9782395b613e27509df2d0f671a2471a43533ccdbc6b71cfb332072` | `2a5b10fbd69ce9b1da0403a80d71684ee2cf4d75298a5ec19e069ae826da81ed` | `10acbf09ffbc04f549d1cffff98a533b456562d5c09a2d0f315523b70072c35d` | `3317f90da242b0fb95a3cbc669fc4941d7b56b5ff90ac528c166e915bee31fdf` filename | sha256 hash -- | -- | `fdb257c0bbf64304441fd377a5ee330de10696aa0b5c1b6c27fa73a6c00121ae` | `a174cf6c9351da786b8780f5edca158a4e021d4af597bcc66f238601fb37c2b1` | `1dc520b9a4428321225ba6cfa0f79b702965d7f6994357c15e0195c5af1528ff` Deprecate extensions/v1beta1.Jobs (, ) Rename ScheduledJobs to CronJobs. (, ) Read the federation controller manager kubeconfig from a filesystem path (, ) Node controller to not force delete pods (, ) Add perma-failed deployments API (, ) Federation: allow specification of dns zone by ID (, ) K8s 1.5 keeps container-vm as the default node image on GCE for backwards compatibility reasons. Please beware that container-vm is officially deprecated (supported with security patches only) and you should replace it with GCI if at all possible. You can review the migration guide here for more detail: https://cloud.google.com/container-engine/docs/node-image-migration (, ) Add a flag allowing contention profiling of the API server (, ) Rename `--cgroups-per-qos` to `--experimental-cgroups-per-qos` in Kubelet (, ) Implement CanMount() for gfsMounter for linux (, ) Default host user namespace via experimental flag (, ) Use generous limits in the resource usage tracking tests (, ) Update Dashboard UI version to 1.4.2 (, ) Add support for service load balancer source ranges to Azure load balancers. (, ) gci-dev-56-8977-0-0: (, ) Date: Nov 03, 2016 Kernel: ChromiumOS-4.4 Kubernetes: v1.4.5 Docker: v1.11.2 Changelog (vs 55-8872-18-0) Updated kubernetes to v1.4.5 Fixed a bug in e2fsprogs that caused mke2fs to take a very long time. Upstream fix: http://git.kernel.org/cgit/fs/ext2/e2fsprogs.git/commit/?h=next&id=d33e690fe7a6cbeb51349d9f2c7fb16a6ebec9c2 Fix strategic patch for list of primitive type with merge sementic (, ) Fix issue in reconstruct volume data when kubelet restarts (, ) Ensure proper serialization of updates and creates in federation test watcher (, ) Add support for SourceIP preservation in Azure LBs (, ) Fix fetching pids running in a cgroup, which caused problems with OOM score adjustments & setting the /system cgroup ("misc" in the summary API). (, ) federation: Adding support for DeleteOptions.OrphanDependents for federated replicasets and deployments. Setting it to false while deleting a federated replicaset or deployment also deletes the corresponding resource from all registered clusters. (, ) kubectl: show node label if defined (, ) Migrates addons from RCs to Deployments (, ) Avoid setting S_ISGID on files in volumes (, ) federation: Adding support for DeleteOptions.OrphanDependents for federated daemonsets and ingresses. Setting it to false while deleting a federated daemonset or ingress also deletes the corresponding resource from all registered clusters. (, ) Add authz to psp admission (, ) Better messaging for missing volume binaries on host (, ) Add Windows support to kube-proxy (, ) Support persistent volume usage for kubernetes running on Photon Controller platform (, ) GCI nodes use an external mounter script to mount NFS & GlusterFS storage volumes (, ) Add retry to node scheduability

(, ) specify custom ca file to verify the keystone server (, ) AWS: Support default value for ExternalHost (, ) HPA: Consider unready pods separately (, ) Node Conformance Test: Containerize the node e2e test (, ) federation: Adding support for DeleteOptions.OrphanDependents for federated secrets. Setting it to false while deleting a federated secret also deletes the corresponding secrets from all registered clusters. (, ) Deploy kube-dns with cluster-proportional-autoscaler (, ) Adds support for StatefulSets in kubectl drain. (, ) Switches to use the eviction sub-resource instead of deletion in kubectl drain, if server supports. azure: load balancer preserves destination ip address (, ) LegacyHostIP will be deprecated in 1.7. (, ) Fix LBaaS version detection in openstack cloudprovider (, ) Node Conformance Test: Add system verification (, ) kubelet bootstrap: start hostNetwork pods before we have PodCIDR (, ) Enable HPA controller based on autoscaling/v1 api group (, ) Remove unused WaitForDetach from Detacher interface and plugins (, ) Initial work on running windows containers on Kubernetes (, ) Per Volume Inode Accounting (, ) , ) Federation: separate notion of zone-name & dns-suffix (, ) In order to bypass graceful deletion of pods (to immediately remove the pod from the API) the user must now provide the `--force` flag in addition to `--grace-period=0`. This prevents users from accidentally force deleting pods without being aware of the consequences of force deletion. Force deleting pods for resources like StatefulSets can result in multiple pods with the same name having running processes in the cluster, which may lead to data corruption or data inconsistency when using shared storage or common API endpoints. (, ) NPD: Add e2e test for NPD v0.2. (, ) DELETE requests can now pass in their DeleteOptions as a query parameter or a body parameter, rather than just as a body parameter. (, ) make using service account credentials from controllers optional (, ) AWS: strong-typing for k8s vs aws volume ids (, ) Controller changes for perma failed deployments (, ) Proxy min sync period (, ) Federated ConfigMap controller (, ) have basic kubectl crud agnostic of registered types (, ) Fix how we iterate over active jobs when removing them for Replace policy (, ) Adds TCPCloseWaitTimeout option to kube-proxy for sysctl nfconntracktcptimeouttime_wait (, ) Pods that are terminating due to eviction by the nodecontroller (typically due to unresponsive kubelet, or network partition) now surface in `kubectl get` output (, ) as being in state "Unknown", along with a longer description in `kubectl describe` output. The hostname of the node (as autodetected by the kubelet, specified via --hostname-override, or determined by the cloudprovider) is now recorded as an address of type "Hostname" in the status of the Node API object. The hostname is expected to be resolveable from the apiserver. (, ) , ) Move Statefulset (previously PetSet) to v1beta1 (, ) The error handling behavior of `pkg/client/restclient.Result` has changed. Calls to `Result.Raw()` will no longer parse the body, although they will still return errors that react to `pkg/api/errors.Is()` as in previous releases. Callers of `Get()` and `Into()` will continue to receive errors that are parsed from the body if the kind and apiVersion of the body match the `Status` object. (, ) This more closely aligns rest client as a generic RESTful client, while preserving the special Kube API extended error handling for the `Get` and `Into` methods (which most Kube clients use). Making the

annotation optional in PetSet pods (, ) AWS: recognize us-east-2 region (, ) Eviction manager evicts based on inode consumption (, ) SELinux Overhaul (, ) Add SNI support to the apiserver (, ) The main kubernetes repository stops hosting archived version of released clients. Please use . (, ) Correct the article in generated documents (, ) Update PodAntiAffinity to ignore calls to subresources (, ) The apiserver can now select which type of kubelet-reported address to use for apiserver->node communications, using the --kubelet-preferred-address-types flag. (, ) update list of vailable resources (, ) Remove stale volumes if endpoint/svc creation fails. (, ) add kubectl cp (, ) Remove Job also from .status.active for Replace strategy (, ) Let release15 clientset include multiple versions of a group (, ) support editing before creating resource (, ) allow authentication through a front-proxy (, ) On GCI, cleanup kubelet startup (, ) Add a retry when reading a file content from a container (, ) Fix cadvisor_unsupported and the crossbuild (, ) , ) Add sync state loop in master's volume reconciler (, ) Bump GCE debian image to container-vm-v20161025 (CVE-2016-5195 Dirty (, ) GC pod ips (, ) Stop including arch-specific binaries in kubernetes.tar.gz (, ) Rename PetSet to StatefulSet (, ) Enable containerized storage plugins mounter on GCI (, ) Bump container-vm version in config-test.sh (, ) Cadvisor root path configuration (, ) ssh pubkey parsing: prevent segfault (, ) & filename | sha256 hash -- | -- | `77f04c646657b683210a17aeca62e56bf985702b267942b41729406970c40cee` | `f6090cc853e56159099bf12169f0d84e29fd2c055b0c7dbdac755ee94439a6a6` filename | sha256 hash -- | -- | `917adbc70156d55371c1aea62279a521e930e7ff130728aa176505f0268182e3` | `9c8084eeab05b6db0508f789cb8a05b4f864ee23ea37b43e17af0026fb67defa` | `3498f9cd73bb947b7cd8c4e5fb3ebe0676fbc98cf346a807f1b7c252aa068d68` | `e9bf2e48212bb275b113d0a1f6091c4692126c8af3c4e0a986e483ec27190e82` | `9c514a482d4dd44d64f3d47eb3d64b434343f10abdecf1b5176ff0078d3b7008` | `c51a8ebc2c3ca2f914042a6017852feb315fd3ceba8b0d5186349b553da11fdb` | `32b006e1f9e6c14fe399806bb82ec4bf8658ab9828753d1b14732bb8dbb72062` | `1e142f1fe76bdd660b4f1be51eef4e51705585fccb94e674a7d891ffe8c3b4e3` filename | sha256 hash -- | -- | `4a3b550a1ede8bebd14413a37e3fc10c8403a3e3fbbce096de443351d076817a` | `00e58bb04bf150c554f28d8fd2f72fbdd1e7918999aaea9c88c91c8f71946ffe` | `6837ff73249c0f3e7ba2d7c00321274db0f97b5cd0b4dc58d5cc3a2119e1c820` Deprecate the --reconcile-cidr kubelet flag because it has no function anymore (, ) Removed the deprecated kubelet --configure-cbr0 flag, and with that the "classic" networking mode as well (, ) New client-go structure (, ) Remove scheduler flags that were marked as deprecated 2+ releases ago. (, ) Make the fake RESTClient usable by all the API groups, not just core. (, ) Adding support for DeleteOptions.OrphanDependents for federated namespaces. Setting it to false while deleting a federated namespace also deletes the corresponding namespace from all registered clusters. (, ) Kubelet flag '--mounter-path' renamed to '--experimental-mounter-path' (, ) Node status updater should SetNodeStatusUpdateNeeded if it fails to update status (, ) Deprecate OpenAPI spec for GroupVersion endpoints in favor of single spec /swagger.json (, ) kubelet authn/authz (, ) Fix volume states out of sync problem after kubelet restarts (, ) Added rkt binary to GCI (, ) Fixed mutation warning in Attach/Detach controller (, ) Don't count failed pods as "not-ready" (, ) fixed typo in script which made setting custom cidr in gce using kube-up impossible (, ) The podGC controller will now always run, irrespective of the value supplied to the "terminated-pod-gc-threshold" flag supplied to the controller manager. (, ) The specific behavior of the podGC controller to clean up terminated pods is still governed by the flag, but the podGC's responsibilities have evolved beyond just cleaning up terminated pods. Update grafana version used by default in kubernetes to 3.1.1 (, ) vSphere Kube-up: resolve vm-names on all nodes (, ) bootstrap: Start hostNetwork pods even if network plugin not ready (, ) Factor out post-init swagger and OpenAPI routes (, ) Substitute gcloud regex with regexp (, ) Remove support for multi-architecture code in `kubeadm`, which was released

(, ) vSphere kube-up: Wait for cbr0 configuration to complete before setting up routes. (, ) Remove last probe time from replica sets (, ) Update the GCI image to gci-dev-55-8872-18-0 (, ) Add `--mounter-path` flag to kubelet that will allow overriding the `mount` command used by kubelet (, ) Fix a bug under the rkt runtime whereby image-registries with ports would not be fetched from (, ) Updated default Elasticsearch and Kibana used for elasticsearch logging destination to versions 2.4.1 and 4.6.1 respectively. (, ) Loadbalanced client src ip preservation enters beta (, ) Add NodePort value in kubectl output (, ) kubectl drain now waits until pods have been delete from the Node before exiting (, ) Don't report FS stats for system containers in the Kubelet Summary API (, ) Fixed flakes caused by petset tests. (, ) Add validation that detects repeated keys in the labels and annotations maps (, ) Change merge key for VolumeMount to mountPath (, ) kubelet: storage: don't hang kubelet on unresponsive nfs (, ) Fix kube vsphere.kerneltime (, ) Add PSP support for seccomp profiles (, ) Updated Go to 1.7 (, ) HPA: fixed wrong count for target replicas calculations (). (, ) Improves how 'kubectl' uses the terminal size when printing help and usage. (, ) Updated Elasticsearch image from version 1.5.1 to version 2.4.1. Updated Kibana image from version 4.0.2 to version 4.6.1. (, ) libvirt-coreos: Download the coreosproductionqemu_image over SSL. (, ) Add a new global option "--request-timeout" to the `kubectl` client (, ) Add support for admission controller based on namespace node selectors. (, ) Add 'kubectl set resources' (, ) Support trust id as a scope in the OpenStack authentication logic (, ) Only wait for cache syncs once in NodeController (, ) NodeController waits for informer sync before doing anything (, ) azure: lower log priority for skipped nic update message (, ) Security Group support for OpenStack Load Balancers (, ) Make NodeController recognize deletion tombstones (, ) Delete all firewall rules (and optionally network) on GCE/GKE cluster teardown (, ) Fix panic in NodeController caused by receiving DeletedFinalStateUnknown object from the cache. (, ) azure: add PrimaryAvailabilitySet to config, only use nodes in that set in the loadbalancer pool (, ) Fix leaking ingress resources in federated ingress e2e test. (, ) pvc.Spec.Resources.Requests min and max can be enforced with a LimitRange of type "PersistentVolumeClaim" in the namespace (, ) Federated DaemonSet controller. Supports all the API that regular DaemonSet has. (, ) New federation deployment mechanism now allows non-GCP clusters. (, ) Writes the federation kubeconfig to the local kubeconfig file. Update the series and the README to reflect the change. (, ) Replica set conditions API (, ) etcd3: avoid unnecessary decoding in etcd3 client (, ) Test x509 intermediates correctly (, ) Add `cifs-utils` to the hyperkube image. (, ) etcd3: use PrevKV to remove additional get (, ) Fix upgrade.sh image setup (, ) & binary | sha256 hash | -- | `86bfcfffaa210ddf18983ff066470ef9c06ee00449b2238043e2777aac2c906d` `kubeadm` (alpha) provides an easy way to securely bootstrap Kubernetes on Linux, see http://kubernetes.io/docs/kubeadm/ (, ) Alpha JWS Discovery API for locating an apiserver securely (, ) kube-apiserver learned the '--anonymous-auth' flag, which defaults to true. When enabled, requests to the secure port that are not rejected by other configured authentication methods are treated as anonymous requests, and given a username of 'system:anonymous' and a group of 'system:unauthenticated'. (, ) Authenticated users are decorated with a 'system:authenticated'

NOTE: anonymous access is enabled by default. If you rely on authentication alone to authorize access, change to use an authorization mode other than AlwaysAllow, or or set '--anonymous-auth=false'. The NamespaceExists and NamespaceAutoProvision admission controllers have been removed. (, ) All cluster operators should use NamespaceLifecycle. Federation binaries and their corresponding docker images - `federation-apiserver` and `federation-controller-manager` are now folded in to the `hyperkube` binary. If you were using one of these binaries or docker images, please switch to using the `hyperkube` version. Please refer to the federation manifests - `federation/manifests/federation-apiserver.yaml` and `federation/manifests/federation-controller-manager-deployment.yaml` for examples. (, ) The kube-apiserver --service-account-key-file option can be specified multiple times, or can point to a file containing multiple keys, to enable rotation of signing keys. (, ) The apiserver now uses addresses reported by the kubelet in the Node object's status for apiserver->kubelet communications, rather than the name of the Node object. The address type used defaults to `InternalIP`, `ExternalIP`, and `LegacyHostIP` address types, in that order. (, ) Federated deployment controller that supports the same api as the regular kubernetes deployment controller. (, ) Match GroupVersionKind against specific version (, ) fix yaml decode issue (, ) kubectl annotate now supports --dry-run (, ) kubectl: Add external ip information to node when '-o wide' is used (, ) Update GCI base image: (, ) Enabled VXLAN and IP_SET config options in kernel to support some networking tools (ebtools) OpenSSL CVE fixes ContainerVm/GCI image: try to use ifdown/ifup if available (, ) Use manifest digest (as `docker-pullable://`) as ImageID when available (exposes a canonical, pullable image ID for containers). (, ) Add kubelet awareness to taint tolerant match caculator. (, ) Fix nil pointer issue when getting metrics from volume mounter (, ) Enforce Disk based pod eviction with GCI base image in Kubelet (, ) Remove headers that are unnecessary for proxy target (, ) Add missing argument to log message in federated ingress controller. (, ) The kubelet --eviction-minimum-reclaim option can now take percentages as well as absolute values for resources quantities (, ) The implicit registration of Prometheus metrics for workqueue has been removed, and a plug-able interface was added. If you were using workqueue in your own binaries and want these metrics, add the following to your imports in the main package: "k8s.io/pkg/util/workqueue/prometheus". (, ) Add kubectl --node-port option for specifying the service nodeport (, ) To reduce memory usage to reasonable levels in smaller clusters, kube-apiserver now sets the deserialization cache size based on the target memory usage. (, ) use service accounts as clients for controllers (, ) Add a new option "--local" to the `kubectl annotate` (, ) Add a new option "--local" to the `kubectl label` (, ) Initialize podsWithAffinity to avoid scheduler panic (, ) Fix base image pinning during upgrades via cluster/gce/upgrade.sh (, ) Remove the flannel experimental overlay (, ) CRI: Remove the mount name and port name. (, ) Enable kubectl describe rs to work when apiserver does not support pods (, ) Heal the namespaceless ingresses in federation e2e. (, ) Fix issue in updating device path when volume is attached multiple times (, ) ECDSA keys can now be used for signing and verifying service account tokens. (, ) OnlyLocal nodeports (, ) Remove flannel because now everything here is upstreamed (, ) Use patched

for cross-builds targeting darwin (, ) Bump up addon kube-dns to v20 for graceful termination (, ) Creating LoadBalancer Service with "None" ClusterIP is no longer possible (, ) Increase timeout for federated ingress test. (, ) Use UpdateStatus, not Update, to add LoadBalancerStatus to Federated Ingress. (, ) add anytoken authenticator (, ) Fixes in HPA: consider only running pods; proper denominator in avg request calculations. (, ) When CORS Handler is enabled, we now add a new HTTP header named "Access-Control-Expose-Headers" with a value of "Date". This allows the "Date" HTTP header to be accessed from XHR/JavaScript. (, ) promote contrib/mesos to incubator (, ) MinReadySeconds / AvailableReplicas for ReplicaSets (, ) Kubectl drain will now drain finished Pods (, ) Adds the -deployment option to e2e.go, adds the ability to run e2e.go using a `kops` deployment. (, ) Tune down initialDelaySeconds for readinessProbe. (, ) kube-proxy: Add a lower-bound for conntrack (128k default) (, ) local-up-cluster.sh: add SERVICECLUSTERIP_RANGE as option (, ) Default HTTP2 on, post fixes from (, ) Split dns healthcheck into two different urls (, ) Remove kubectl namespace command (, ) Automatic generation of man pages (, ) Fixes memory/goroutine leak in Federation Service controller. (, ) Switch k8s on GCE to use GCI by default (, ) Move HighWaterMark to the top of the struct in order to fix arm, second time (, ) Fix race condition in setting node statusUpdateNeeded flag (, ) Fix the DOCKER_OPTS appending bug. (, ) Send recycle events from pod to pv. (, ) Add port forwarding for rkt with kvm stage1 (, ) The value of the `versioned.Event` object (returned by watch APIs) in the Swagger 1.2 schemas has been updated from `versioned.Event` which was not expected by many client tools. The new value is consistent with other structs returned by the API. (, ) Remove cpu limits for dns pod to avoid CPU starvation (, ) Allow secure access to apiserver from Admission Controllers (, ) Resolves x509 verification issue with masters dialing nodes when started with --kubelet-certificate-authority (, ) Fix possible panic in PodAffinityChecker (, ) Upgrading Container-VM base image for k8s on GCE. Brief changelog as follows: (, ) Fixed performance regression in veth device driver Docker and related binaries are statically linked Fixed the issue of systemd being oom-killable Move HighWaterMark to the top of the struct in order to fix arm (, ) kubenet: SyncHostports for both running and ready to run pods. (, ) Limit the number of names per image reported in the node status (, ) Support Quobyte as StorageClass (, ) Use a patched go1.7.1 for building linux/arm (, ) Add line break after events in kubectl describe (, ) Specific error message on failed rolling update issued by older kubectl against 1.4 master (, ) Make the informer library available for the go client library. (, ) Added --log-facility flag to enhance dnsmasq logging (, ) Set Dashboard UI to final 1.4 version (, ) Fix audit_test regex for iso8601 timestamps (, ) Docker digest validation is too strict (, ) Bumped Heapster to v1.2.0. (, ) More details about the release https://github.com/kubernetes/heapster/releases/tag/v1.2.0 add local subject access review API (, ) make --runtime-config=api/all=true|false work (, ) Added new kubelet flags `--cni-bin-dir` and `--cni-conf-dir` to specify where CNI files are located. (, ) Fixed CNI configuration on GCI platform when using CNI. Move push-ci-build.sh to kubernetes/release repo (, ) vendor: update

client package (, ) Fixed an issue that caused a credential error when deploying federation control plane onto a GKE cluster. (, ) Error if a contextName is provided but not found in the kubeconfig. (, ) Use a Deployment for kube-dns (, ) Support graceful termination in kube-dns (, ) When prompting for passwords, don't echo to the terminal (, ) add group prefix matching for kubectl usage (, ) Stick to 2.2.1 etcd (, ) Fix a bug in kubelet hostport logic which flushes KUBE-MARK-MASQ iptables chain (, ) Make sure finalizers prevent deletion on storage that supports graceful deletion (, ) AWS: Change default networking for kube-up to kubenet (, ) Use etcd 2.3.7 (, ) Allow missing keys in jsonpath (, ) Changes 'kubectl rollout status' to wait until all updated replicas are available before finishing. (, ) add selfsubjectaccessreview API (, ) Add kubectl describe cmd support for vSphere volume (, ) Enable kubelet eviction whenever inodes free is < 5% on GCE (, ) Use federated namespace instead of the bootstrap cluster's namespace in Ingress e2e tests. (, ) Move StorageClass to a storage group (, ) Some components like kube-dns and kube-proxy could fail to load the service account token when started within a pod. Properly handle empty configurations to try loading the service account config. (, ) Removed comments in json config when using kubectl edit with -o json (, ) fixes invalid null selector issue in sysdig example yaml (, ) Rescheduler which ensures that critical pods are always scheduled enabled by default in GCE. (, ) retry oauth token fetch in gce cloudprovider (, ) Deprecate the old cbr0 and flannel networking modes (, ) AWS: fix volume device assignment race condition (, ) The certificates API group has been renamed to certificates.k8s.io (, ) Increase Dashboard UI version to v1.4.0-beta2 (, ) Fixed incomplete kubectl bash completion. (, ) Added liveness probe to Heapster service. (, ) Adding clusters to the list of valid resources printed by kubectl help (, ) Kubernetes server components using `kubeconfig` files no longer default to `http://localhost:8080`. Administrators must specify a server value in their kubeconfig files. (, ) Update influxdb to 0.12 (, ) Include security options in the container created event (, ) Federation can now be deployed using the `federation/deploy/deploy.sh` script. This script does not depend on any of the development environment shell library/scripts. This is an alternative to the current `federation-up.sh`/`federation-down.sh` scripts. Both the scripts are going to co-exist in this release, but the `federation-up.sh`/`federation-down.sh` scripts might be removed in a future release in favor of `federation/deploy/deploy.sh` script. (, ) Add get/delete cluster, delete context to kubectl config (, ) rkt: Force `rkt fetch` to fetch from remote to conform the image pull policy. (, ) Allow services which use same port, different protocol to use the same nodePort for both (, ) Handle overlapping deployments gracefully (, ) Remove environment variables and internal Kubernetes Docker labels from cAdvisor Prometheus metric labels. (, ) Old behavior: environment variables explicitly whitelisted via --docker-env-metadata-whitelist were exported as `container_env_=*`. Default is zero so by default non were exported all docker labels were exported as `container_label_=*` New behavior: Only `containername`, `podname`, `namespace`, `id`, `image`, and `name` labels are exposed no environment variables will be exposed ever via /metrics, even if whitelisted Filter duplicate network packets in promiscuous bridge mode (with ebtables) (, ) Refactor to simplify the hard-traveled path of the KubeletConfiguration object (, ) Fix overflow issue in controller-manager rate limiter (, ) Please see the for older releases. Release notes of older