Skip to content

Commit 082fe50

Browse files
committed
Merge remote-tracking branch 'origin/master' into tunnel-dns
2 parents 335da39 + 6a04066 commit 082fe50

File tree

25 files changed

+331
-98
lines changed

25 files changed

+331
-98
lines changed

CHANGELOG.md

+28
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,33 @@
11
# Minikube Release Notes
22

3+
# Version 0.32.0 - 12/21/2018
4+
5+
* Make Kubernetes v1.12.4 the default [#3482](https://github.com/kubernetes/minikube/pull/3482)
6+
* Update kubeadm restart commands to support v1.13.x [#3483](https://github.com/kubernetes/minikube/pull/3483)
7+
* Make "stop" retry on failure. [#3479](https://github.com/kubernetes/minikube/pull/3479)
8+
* VirtualBox time cleanup: sync on boot, don't run timesyncd [#3476](https://github.com/kubernetes/minikube/pull/3476)
9+
* Stream cmd output to tests when -v is enabled, and stream SSH output to logs [#3475](https://github.com/kubernetes/minikube/pull/3475)
10+
* Document None driver docker compatibility [#3367](https://github.com/kubernetes/minikube/pull/3367)
11+
* Enable host DNS resolution in virtualbox driver by default [#3453](https://github.com/kubernetes/minikube/pull/3453)
12+
* Fix CRI socket in Kubernetes >= 1.12.0 kubeadmin config [#3452](https://github.com/kubernetes/minikube/pull/3452)
13+
* Bump dashboard version to v1.10.1 [#3466](https://github.com/kubernetes/minikube/pull/3466)
14+
* Hide KVM signature when using GPU passthrough to support more GPU models [#3459](https://github.com/kubernetes/minikube/pull/3459)
15+
* Allow ServiceCIDR to be configured via 'service-cluster-ip-range' flag. [#3463](https://github.com/kubernetes/minikube/pull/3463)
16+
* Save old cluster config in memory before overwriting [#3450](https://github.com/kubernetes/minikube/pull/3450)
17+
* Change restart policy on gvisor pod [#3445](https://github.com/kubernetes/minikube/pull/3445)
18+
19+
Shout-out to the amazing members of the minikube community who made this release possible:
20+
21+
- Alasdair Tran
22+
- Balint Pato
23+
- Charles-Henri de Boysson
24+
- Chris Eason
25+
- Cory Locklear
26+
- Jeffrey Sica
27+
- JoeWrightss
28+
- RA489
29+
- Thomas Strömberg
30+
331
# Version 0.31.0 - 12/08/2018
432

533
* Enable gvisor addon in minikube [#3399](https://github.com/kubernetes/minikube/pull/3399)

MAINTAINERS

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
Dan Lorenc <[email protected]> (@dlorenc)
22
Lucas Käldström <[email protected]> (@luxas)
3-
Aaron Prindle <[email protected]> (@aaron-prindle)
43
Jimmi Dyson <[email protected]> (@jimmidyson)
54
Balint Pato <[email protected]> (@balopat)
5+
Priya Wadhwa <[email protected]> (@priyawadhwa)
6+
Thomas Stromberg <[email protected]> (@tstromberg)

Makefile

+4-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
# Bump these on release
1616
VERSION_MAJOR ?= 0
17-
VERSION_MINOR ?= 31
17+
VERSION_MINOR ?= 32
1818
VERSION_BUILD ?= 0
1919
VERSION ?= v$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_BUILD)
2020
DEB_VERSION ?= $(VERSION_MAJOR).$(VERSION_MINOR)-$(VERSION_BUILD)
@@ -23,10 +23,11 @@ BUILDROOT_BRANCH ?= 2018.05
2323
REGISTRY?=gcr.io/k8s-minikube
2424

2525
HYPERKIT_BUILD_IMAGE ?= karalabe/xgo-1.10.x
26-
BUILD_IMAGE ?= k8s.gcr.io/kube-cross:v1.10.1-1
26+
# NOTE: "latest" as of 2018-12-04. kube-cross images aren't updated as often as Kubernetes
27+
BUILD_IMAGE ?= k8s.gcr.io/kube-cross:v1.11.1-1
2728
ISO_BUILD_IMAGE ?= $(REGISTRY)/buildroot-image
2829

29-
ISO_VERSION ?= v0.31.0
30+
ISO_VERSION ?= v0.32.0
3031
ISO_BUCKET ?= minikube/iso
3132

3233
MINIKUBE_VERSION ?= $(ISO_VERSION)

OWNERS

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
reviewers:
22
- dlorenc
3-
- aaron-prindle
43
- balopat
54
- tstromberg
5+
- priyawadhwa
66
approvers:
77
- dlorenc
88
- luxas
9-
- aaron-prindle
109
- jimmidyson
1110
- balopat
1211
- tstromberg
12+
- priyawadhwa

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ We also released a Debian package and Windows installer on our [releases page](h
129129
* [Hyperkit driver](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#hyperkit-driver), [xhyve driver](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#xhyve-driver), [VirtualBox](https://www.virtualbox.org/wiki/Downloads), or [VMware Fusion](https://www.vmware.com/products/fusion)
130130
* Linux
131131
* [VirtualBox](https://www.virtualbox.org/wiki/Downloads) or [KVM](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#kvm-driver)
132-
* **NOTE:** Minikube also supports a `--vm-driver=none` option that runs the Kubernetes components on the host and not in a VM. Docker is required to use this driver but no hypervisor. If you use `--vm-driver=none`, be sure to specify a [bridge network](https://docs.docker.com/network/bridge/#configure-the-default-bridge-network) for docker. Otherwise it might change between network restarts, causing loss of connectivity to your cluster.
132+
* **NOTE:** Minikube also supports a `--vm-driver=none` option that runs the Kubernetes components on the host and not in a VM. Docker is required to use this driver but no hypervisor. If you use `--vm-driver=none`, be sure to specify a [bridge network](https://docs.docker.com/network/bridge/#configure-the-default-bridge-network) for docker. Otherwise it might change between network restarts, causing loss of connectivity to your cluster. None driver requires docker-ce 18.06 (18.09+ will be compatible from kubernetes version 1.13+, see [#3323](https://github.com/kubernetes/minikube/issues/3323)) .
133133
* Windows
134134
* [VirtualBox](https://www.virtualbox.org/wiki/Downloads) or [Hyper-V](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#hyperV-driver)
135135
* VT-x/AMD-v virtualization must be enabled in BIOS

cmd/minikube/cmd/start.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ const (
6767
featureGates = "feature-gates"
6868
apiServerName = "apiserver-name"
6969
dnsDomain = "dns-domain"
70+
serviceCIDR = "service-cluster-ip-range"
7071
mountString = "mount-string"
7172
disableDriverMounts = "disable-driver-mounts"
7273
cacheImages = "cache-images"
@@ -234,7 +235,7 @@ func runStart(cmd *cobra.Command, args []string) {
234235
ContainerRuntime: viper.GetString(containerRuntime),
235236
CRISocket: viper.GetString(criSocket),
236237
NetworkPlugin: viper.GetString(networkPlugin),
237-
ServiceCIDR: pkgutil.DefaultServiceCIDR,
238+
ServiceCIDR: viper.GetString(serviceCIDR),
238239
ExtraOptions: extraOptions,
239240
ShouldLoadCachedImages: shouldCacheImages,
240241
}
@@ -473,6 +474,7 @@ func init() {
473474
startCmd.Flags().StringArrayVar(&apiServerNames, "apiserver-names", nil, "A set of apiserver names which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine")
474475
startCmd.Flags().IPSliceVar(&apiServerIPs, "apiserver-ips", nil, "A set of apiserver IP Addresses which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine")
475476
startCmd.Flags().String(dnsDomain, constants.ClusterDNSDomain, "The cluster dns domain name used in the kubernetes cluster")
477+
startCmd.Flags().String(serviceCIDR, pkgutil.DefaultServiceCIDR, "The CIDR to be used for service cluster IPs.")
476478
startCmd.Flags().StringSliceVar(&insecureRegistry, "insecure-registry", nil, "Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added.")
477479
startCmd.Flags().StringSliceVar(&registryMirror, "registry-mirror", nil, "Registry mirrors to pass to the Docker daemon")
478480
startCmd.Flags().String(containerRuntime, "", "The container runtime to be used")

cmd/minikube/cmd/stop.go

+6-1
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,13 @@ package cmd
1919
import (
2020
"fmt"
2121
"os"
22+
"time"
2223

2324
"github.com/spf13/cobra"
2425
cmdUtil "k8s.io/minikube/cmd/util"
2526
"k8s.io/minikube/pkg/minikube/cluster"
2627
"k8s.io/minikube/pkg/minikube/machine"
28+
pkgutil "k8s.io/minikube/pkg/util"
2729
)
2830

2931
// stopCmd represents the stop command
@@ -41,7 +43,10 @@ itself, leaving all files intact. The cluster can be started again with the "sta
4143
}
4244
defer api.Close()
4345

44-
if err = cluster.StopHost(api); err != nil {
46+
stop := func() (err error) {
47+
return cluster.StopHost(api)
48+
}
49+
if err := pkgutil.RetryAfter(5, stop, 1*time.Second); err != nil {
4550
fmt.Println("Error stopping machine: ", err)
4651
cmdUtil.MaybeReportErrorAndExit(err)
4752
}

deploy/addons/dashboard/dashboard-dp.yaml

+4-4
Original file line numberDiff line numberDiff line change
@@ -18,26 +18,26 @@ metadata:
1818
name: kubernetes-dashboard
1919
namespace: kube-system
2020
labels:
21-
version: v1.10.0
21+
version: v1.10.1
2222
addonmanager.kubernetes.io/mode: Reconcile
2323
kubernetes.io/minikube-addons: dashboard
2424
spec:
2525
replicas: 1
2626
selector:
2727
matchLabels:
2828
app: kubernetes-dashboard
29-
version: v1.10.0
29+
version: v1.10.1
3030
addonmanager.kubernetes.io/mode: Reconcile
3131
template:
3232
metadata:
3333
labels:
3434
app: kubernetes-dashboard
35-
version: v1.10.0
35+
version: v1.10.1
3636
addonmanager.kubernetes.io/mode: Reconcile
3737
spec:
3838
containers:
3939
- name: kubernetes-dashboard
40-
image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.0
40+
image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
4141
imagePullPolicy: IfNotPresent
4242
ports:
4343
- containerPort: 9090

deploy/iso/minikube-iso/configs/minikube_defconfig

+1
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,4 @@ BR2_TARGET_ROOTFS_ISO9660=y
5959
BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/minikube/isolinux.cfg"
6060
BR2_TARGET_SYSLINUX=y
6161
BR2_PACKAGE_HOST_E2TOOLS=y
62+
BR2_PACKAGE_SYSTEMD_TIMESYNCD=n

deploy/iso/minikube-iso/package/vbox-guest/vboxservice.service

+7-2
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,14 @@ ConditionVirtualization=oracle
44

55
[Service]
66
ExecStartPre=-/usr/sbin/modprobe vboxguest
7-
ExecStartPre=-/usr/sbin/modprobe vboxvideo
7+
8+
# Broken and probably unused: Unknown symbol ttm_bo_del_sub_from_lru
9+
# ExecStartPre=-/usr/sbin/modprobe vboxvideo
10+
811
ExecStartPre=-/usr/sbin/modprobe vboxsf
9-
ExecStart=/usr/sbin/VBoxService -f --disable-automount
12+
# Normally, VirtualBox only syncs every 20 minutes. This syncs on start, and
13+
# forces an immediate sync if VM time is over 5 seconds off.
14+
ExecStart=/usr/sbin/VBoxService -f --disable-automount --timesync-set-start --timesync-set-threshold 5000
1015

1116
[Install]
1217
WantedBy=multi-user.target

deploy/minikube/releases.json

+8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
[
2+
{
3+
"name": "v0.32.0",
4+
"checksums": {
5+
"darwin": "d5b21adacd4b6bad9006816e4bdb29f39318a60919e7a6bb5e388a6299fffd0f",
6+
"linux": "3298d3183deacd9ddd3032dab113a64d863df7648d6d24693284ba4193e95b49",
7+
"windows": "31668f64f6be25644b22d0465e0f72d745a027804b2c8685e040b8147bacfba1"
8+
}
9+
},
210
{
311
"name": "v0.31.0",
412
"checksums": {

docs/contributors/releasing_minikube.md

+2-17
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ This step uses the git tag to publish new binaries to GCS and create a github re
6565
* navigate to the minikube "Release" jenkins job
6666
* Ensure that you are logged in (top right)
6767
* `VERSION_MAJOR`, `VERSION_MINOR`, and `VERSION_BUILD` should reflect the values in your Makefile
68-
* For `ISO_SHA256`, run: `gsutil cat gs://minikube/iso/minikube-v<version>.iso.sha256
68+
* For `ISO_SHA256`, run: `gsutil cat gs://minikube/iso/minikube-v<version>.iso.sha256`
6969
* Click *Build*
7070

7171
## Update releases.json
@@ -74,29 +74,14 @@ minikube-bot will send out a PR to update the release checksums at the top of `d
7474

7575
This file is used for auto-update notifications, but is not active until releases.json is copied to GCS.
7676

77-
## Upload releases.json to GCS
78-
79-
This step makes the new release trigger update notifications in old versions of Minikube.
80-
Use this command from a clean git repo:
81-
82-
```shell
83-
gsutil cp deploy/minikube/releases.json gs://minikube/releases.json
84-
```
85-
86-
## Mark the release as `latest` in GCS:
87-
88-
```shell
89-
gsutil cp -r 'gs://minikube/releases/$RELEASE/*' gs://minikube/releases/latest/
90-
```
91-
9277
## Package managers which include minikube
9378

9479
These are downstream packages that are being maintained by others and how to upgrade them to make sure they have the latest versions
9580

9681
| Package Manager | URL | TODO |
9782
| --- | --- | --- |
9883
| Arch Linux AUR | https://aur.archlinux.org/packages/minikube/ | "Flag as package out-of-date"
99-
| Brew Cask | https://github.com/Homebrew/homebrew-cask/blob/master/Casks/minikube.rb | Create a new PR in [Homebrew/homebrew-cask](https://github.com/Homebrew/homebrew-cask) with an updated version and SHA256
84+
| Brew Cask | https://github.com/Homebrew/homebrew-cask/blob/master/Casks/minikube.rb | The release job creates a new PR in [Homebrew/homebrew-cask](https://github.com/Homebrew/homebrew-cask) with an updated version and SHA256, double check that it's created.
10085

10186
#### Updating the arch linux package
10287
The Arch Linux AUR is maintained at https://aur.archlinux.org/packages/minikube/. The installer PKGBUILD is hosted in its own repository. The public read-only repository is hosted here `https://aur.archlinux.org/minikube.git` and the private read-write repository is hosted here `ssh://[email protected]/minikube.git`

hack/jenkins/common.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ echo ">> Starting ${E2E_BIN} at $(date)"
197197
${SUDO_PREFIX}${E2E_BIN} \
198198
-minikube-start-args="--vm-driver=${VM_DRIVER} ${EXTRA_START_ARGS}" \
199199
-minikube-args="--v=10 --logtostderr ${EXTRA_ARGS}" \
200-
-test.v -test.timeout=30m -binary="${MINIKUBE_BIN}" && result=$? || result=$?
200+
-test.v -test.timeout=50m -binary="${MINIKUBE_BIN}" && result=$? || result=$?
201201
echo ">> ${E2E_BIN} exited with ${result} at $(date)"
202202
echo ""
203203

hack/jenkins/linux_integration_tests_none.sh

+3-2
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@ SUDO_PREFIX="sudo -E "
3535
export KUBECONFIG="/root/.kube/config"
3636

3737
# "none" driver specific cleanup from previous runs.
38-
# kubeadm
39-
sudo kubeadm reset -f || true
38+
39+
# Try without -f first, primarily because older kubeadm versions (v1.10) don't support it anyways.
40+
sudo kubeadm reset || sudo kubeadm reset -f || true
4041
# Cleanup data directory
4142
sudo rm -rf /data/*
4243
# Cleanup old Kubernetes configs

pkg/drivers/kvm/domain.go

+3
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ const domainTmpl = `
3636
<acpi/>
3737
<apic/>
3838
<pae/>
39+
<kvm>
40+
<hidden state='on'/>
41+
</kvm>
3942
</features>
4043
<cpu mode='host-passthrough'/>
4144
<os>

pkg/minikube/bootstrapper/kubeadm/kubeadm.go

+23-9
Original file line numberDiff line numberDiff line change
@@ -209,21 +209,31 @@ func addAddons(files *[]assets.CopyableFile) error {
209209
}
210210

211211
func (k *KubeadmBootstrapper) RestartCluster(k8s config.KubernetesConfig) error {
212-
opts := struct {
213-
KubeadmConfigFile string
214-
}{
215-
KubeadmConfigFile: constants.KubeadmConfigFile,
212+
version, err := ParseKubernetesVersion(k8s.KubernetesVersion)
213+
if err != nil {
214+
return errors.Wrap(err, "parsing kubernetes version")
216215
}
217216

218-
b := bytes.Buffer{}
219-
if err := kubeadmRestoreTemplate.Execute(&b, opts); err != nil {
220-
return err
217+
phase := "alpha"
218+
controlPlane := "controlplane"
219+
if version.GTE(semver.MustParse("1.13.0")) {
220+
phase = "init"
221+
controlPlane = "control-plane"
221222
}
222223

223-
if err := k.c.Run(b.String()); err != nil {
224-
return errors.Wrapf(err, "running cmd: %s", b.String())
224+
cmds := []string{
225+
fmt.Sprintf("sudo kubeadm %s phase certs all --config %s", phase, constants.KubeadmConfigFile),
226+
fmt.Sprintf("sudo kubeadm %s phase kubeconfig all --config %s", phase, constants.KubeadmConfigFile),
227+
fmt.Sprintf("sudo kubeadm %s phase %s all --config %s", phase, controlPlane, constants.KubeadmConfigFile),
228+
fmt.Sprintf("sudo kubeadm %s phase etcd local --config %s", phase, constants.KubeadmConfigFile),
225229
}
226230

231+
// Run commands one at a time so that it is easier to root cause failures.
232+
for _, cmd := range cmds {
233+
if err := k.c.Run(cmd); err != nil {
234+
return errors.Wrapf(err, "running cmd: %s", cmd)
235+
}
236+
}
227237
if err := restartKubeProxy(k8s); err != nil {
228238
return errors.Wrap(err, "restarting kube-proxy")
229239
}
@@ -438,6 +448,10 @@ func generateConfig(k8s config.KubernetesConfig) (string, error) {
438448
NoTaintMaster: false, // That does not work with k8s 1.12+
439449
}
440450

451+
if k8s.ServiceCIDR != "" {
452+
opts.ServiceCIDR = k8s.ServiceCIDR
453+
}
454+
441455
if version.GTE(semver.MustParse("1.10.0-alpha.0")) {
442456
opts.NoTaintMaster = true
443457
}

pkg/minikube/bootstrapper/kubeadm/templates.go

+1-8
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ bootstrapTokens:
6060
- authentication
6161
kind: InitConfiguration
6262
nodeRegistration:
63-
criSocket: /var/run/dockershim.sock
63+
criSocket: {{if .CRISocket}}{{.CRISocket}}{{else}}/var/run/dockershim.sock{{end}}
6464
name: {{.NodeName}}
6565
taints: []
6666
---
@@ -109,13 +109,6 @@ RestartSec=10
109109
WantedBy=multi-user.target
110110
`
111111

112-
var kubeadmRestoreTemplate = template.Must(template.New("kubeadmRestoreTemplate").Parse(`
113-
sudo kubeadm alpha phase certs all --config {{.KubeadmConfigFile}} &&
114-
sudo /usr/bin/kubeadm alpha phase kubeconfig all --config {{.KubeadmConfigFile}} &&
115-
sudo /usr/bin/kubeadm alpha phase controlplane all --config {{.KubeadmConfigFile}} &&
116-
sudo /usr/bin/kubeadm alpha phase etcd local --config {{.KubeadmConfigFile}}
117-
`))
118-
119112
var kubeadmInitTemplate = template.Must(template.New("kubeadmInitTemplate").Parse(`
120113
sudo /usr/bin/kubeadm init --config {{.KubeadmConfigFile}} {{if .SkipPreflightChecks}}--skip-preflight-checks{{else}}{{range .Preflights}}--ignore-preflight-errors={{.}} {{end}}{{end}}
121114
`))

0 commit comments

Comments
 (0)