fix merge conflict
commit
55f496492c
|
@ -20,7 +20,7 @@ jobs:
|
|||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Download Dependencies
|
||||
run: go mod download
|
||||
|
@ -71,7 +71,7 @@ jobs:
|
|||
make checksum
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install kubectl
|
||||
shell: bash
|
||||
|
|
|
@ -21,7 +21,7 @@ jobs:
|
|||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Download Dependencies
|
||||
run: go mod download
|
||||
|
|
|
@ -21,7 +21,7 @@ jobs:
|
|||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Download Dependencies
|
||||
run: go mod download
|
||||
|
@ -48,7 +48,7 @@ jobs:
|
|||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install libvirt
|
||||
run: |
|
||||
|
@ -67,7 +67,7 @@ jobs:
|
|||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install libvirt
|
||||
run: |
|
||||
|
@ -114,7 +114,7 @@ jobs:
|
|||
# go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install gopogh
|
||||
|
||||
|
@ -199,7 +199,7 @@ jobs:
|
|||
# go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install gopogh
|
||||
|
||||
|
@ -344,7 +344,7 @@ jobs:
|
|||
echo "------------------------"
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install tools
|
||||
continue-on-error: true
|
||||
|
@ -480,7 +480,7 @@ jobs:
|
|||
Get-WmiObject -class Win32_ComputerSystem
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install tools
|
||||
continue-on-error: true
|
||||
|
@ -586,7 +586,7 @@ jobs:
|
|||
# go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install gopogh
|
||||
|
||||
|
@ -683,7 +683,7 @@ jobs:
|
|||
# go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install gopogh
|
||||
|
||||
|
@ -765,7 +765,7 @@ jobs:
|
|||
# go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install gopogh
|
||||
|
||||
|
@ -877,7 +877,7 @@ jobs:
|
|||
# go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install gopogh
|
||||
|
||||
|
@ -961,7 +961,7 @@ jobs:
|
|||
# go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install gopogh
|
||||
|
||||
|
@ -1068,7 +1068,7 @@ jobs:
|
|||
# go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install gopogh
|
||||
|
||||
|
@ -1150,7 +1150,7 @@ jobs:
|
|||
# go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install gopogh
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ jobs:
|
|||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Download Dependencies
|
||||
run: go mod download
|
||||
|
@ -46,7 +46,7 @@ jobs:
|
|||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install libvirt
|
||||
run: |
|
||||
|
@ -65,7 +65,7 @@ jobs:
|
|||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install libvirt
|
||||
run: |
|
||||
|
@ -112,7 +112,7 @@ jobs:
|
|||
# go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install gopogh
|
||||
|
||||
|
@ -197,7 +197,7 @@ jobs:
|
|||
# go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install gopogh
|
||||
|
||||
|
@ -342,7 +342,7 @@ jobs:
|
|||
echo "------------------------"
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install tools
|
||||
continue-on-error: true
|
||||
|
@ -478,7 +478,7 @@ jobs:
|
|||
Get-WmiObject -class Win32_ComputerSystem
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install tools
|
||||
continue-on-error: true
|
||||
|
@ -584,7 +584,7 @@ jobs:
|
|||
# go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install gopogh
|
||||
|
||||
|
@ -681,7 +681,7 @@ jobs:
|
|||
# go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install gopogh
|
||||
|
||||
|
@ -763,7 +763,7 @@ jobs:
|
|||
# go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install gopogh
|
||||
|
||||
|
@ -875,7 +875,7 @@ jobs:
|
|||
# go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install gopogh
|
||||
|
||||
|
@ -959,7 +959,7 @@ jobs:
|
|||
# go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install gopogh
|
||||
|
||||
|
@ -1066,7 +1066,7 @@ jobs:
|
|||
# go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install gopogh
|
||||
|
||||
|
@ -1148,7 +1148,7 @@ jobs:
|
|||
# go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308
|
||||
- uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: '1.15.2'
|
||||
go-version: '1.15.5'
|
||||
stable: true
|
||||
- name: Install gopogh
|
||||
|
||||
|
|
175
CHANGELOG.md
175
CHANGELOG.md
|
@ -1,14 +1,97 @@
|
|||
# Release Notes
|
||||
## Version 1.16.0-beta.0 - 2020-12-14
|
||||
|
||||
Features:
|
||||
* Add persistent storage for /var/lib/buildkit [#9948](https://github.com/kubernetes/minikube/pull/9948)
|
||||
* start: Support comma-delimited --addons [#9957](https://github.com/kubernetes/minikube/pull/9957)
|
||||
* added statusName for kubeconfig [#9888](https://github.com/kubernetes/minikube/pull/9888)
|
||||
* Add spinner at preparing Kubernetes... [#9855](https://github.com/kubernetes/minikube/pull/9855)
|
||||
* Make none driver work as regular user (use sudo on demand) [#9379](https://github.com/kubernetes/minikube/pull/9379)
|
||||
* Display ScheduledStop status in minikube status [#9793](https://github.com/kubernetes/minikube/pull/9793)
|
||||
* Add support for restoring existing podman env [#9801](https://github.com/kubernetes/minikube/pull/9801)
|
||||
* Add linux packages for the arm64 architecture [#9859](https://github.com/kubernetes/minikube/pull/9859)
|
||||
* Ability to use a custom TLS certificate with the Ingress [#9797](https://github.com/kubernetes/minikube/pull/9797)
|
||||
* Add private network implementation for podman [#9716](https://github.com/kubernetes/minikube/pull/9716)
|
||||
* Add --cancel-scheduled flag to cancel all existing scheduled stops [#9774](https://github.com/kubernetes/minikube/pull/9774)
|
||||
* Add OpenTelemetry tracing to minikube [#9723](https://github.com/kubernetes/minikube/pull/9723)
|
||||
* Implement scheduled stop on windows [#9689](https://github.com/kubernetes/minikube/pull/9689)
|
||||
* Support non-default docker endpoints [#9510](https://github.com/kubernetes/minikube/pull/9510)
|
||||
|
||||
Bug Fixes:
|
||||
* wsl2: log warning if br_netfilter cannot be enabled rather than fatally exit [#9932](https://github.com/kubernetes/minikube/pull/9932)
|
||||
* Fix podman network inspect format and error [#9866](https://github.com/kubernetes/minikube/pull/9866)
|
||||
* Fix multi node two pods getting same IP and nodespec not having PodCIDR [#9875](https://github.com/kubernetes/minikube/pull/9875)
|
||||
* Fix `node start` master node [#9833](https://github.com/kubernetes/minikube/pull/9833)
|
||||
* Optionally use ssh for docker-env instead of tcp [#9548](https://github.com/kubernetes/minikube/pull/9548)
|
||||
* Fix --extra-config when starting an existing cluster [#9634](https://github.com/kubernetes/minikube/pull/9634)
|
||||
* fix unable to set memory in config [#9789](https://github.com/kubernetes/minikube/pull/9789)
|
||||
* Set 'currentstep' for PullingBaseImage json event [#9844](https://github.com/kubernetes/minikube/pull/9844)
|
||||
* Fix missing InitialSetup in `node start` [#9832](https://github.com/kubernetes/minikube/pull/9832)
|
||||
* fix base image when using with custom image repository [#9791](https://github.com/kubernetes/minikube/pull/9791)
|
||||
* add Restart=on-failure for inner docker systemd service [#9775](https://github.com/kubernetes/minikube/pull/9775)
|
||||
* Add number of nodes for cluster in `minikube profile list` [#9702](https://github.com/kubernetes/minikube/pull/9702)
|
||||
* Do not auto-select Hyper-V driver if session has no privilege [#9588](https://github.com/kubernetes/minikube/pull/9588)
|
||||
* Fix registry-creds addon failure with ImageRepository [#9733](https://github.com/kubernetes/minikube/pull/9733)
|
||||
|
||||
Upgrades:
|
||||
* Upgrade buildkit from 0.7.2 to 0.8.0 [#9940](https://github.com/kubernetes/minikube/pull/9940)
|
||||
* Upgrade crio.conf to version v1.19.0 [#9917](https://github.com/kubernetes/minikube/pull/9917)
|
||||
* Update the containerd configuration to v2 [#9915](https://github.com/kubernetes/minikube/pull/9915)
|
||||
* update default kubernetes version to 1.20.0 [#9897](https://github.com/kubernetes/minikube/pull/9897)
|
||||
* Upgrade CRI-O, from 1.18.4 to 1.19.0 [#9902](https://github.com/kubernetes/minikube/pull/9902)
|
||||
* Update crictl to v1.19.0 [#9901](https://github.com/kubernetes/minikube/pull/9901)
|
||||
* ISO: Upgrade Podman, from 2.2.0 to 2.2.1 [#9896](https://github.com/kubernetes/minikube/pull/9896)
|
||||
* Upgrade go version to 1.15.5 [#9899](https://github.com/kubernetes/minikube/pull/9899)
|
||||
* Upgrade Docker, from 19.03.14 to 20.10.0 [#9895](https://github.com/kubernetes/minikube/pull/9895)
|
||||
* ISO: Upgrade podman to version 2.2.0 and remove varlink [#9635](https://github.com/kubernetes/minikube/pull/9635)
|
||||
* KIC: Upgrade podman to version 2.2.0 and remove varlink [#9636](https://github.com/kubernetes/minikube/pull/9636)
|
||||
* Upgrade kicbase to ubuntu:focal-20201106 [#9863](https://github.com/kubernetes/minikube/pull/9863)
|
||||
* Upgrade Docker, from 19.03.13 to 19.03.14 [#9861](https://github.com/kubernetes/minikube/pull/9861)
|
||||
* Buildroot 2020.02.8 [#9862](https://github.com/kubernetes/minikube/pull/9862)
|
||||
* Update crictl to v1.18.0 [#9867](https://github.com/kubernetes/minikube/pull/9867)
|
||||
* bump storage provsioner to multi arch [#9822](https://github.com/kubernetes/minikube/pull/9822)
|
||||
|
||||
Thank you to our contributors for this release!
|
||||
|
||||
- AUT0R3V
|
||||
- Anders Björklund
|
||||
- Andrea Spadaccini
|
||||
- Brian Li
|
||||
- Daehyeok Mun
|
||||
- Ilya Zuyev
|
||||
- Jeroen Dekkers
|
||||
- Jituri, Pranav
|
||||
- Ling Samuel
|
||||
- Martin Schimandl
|
||||
- Medya Ghazizadeh
|
||||
- Parthvi Vala
|
||||
- Peyton Duncan
|
||||
- Predrag Rogic
|
||||
- Priya Wadhwa
|
||||
- Ruben Baez
|
||||
- Sadlil
|
||||
- Sharif Elgamal
|
||||
- Stefan Lobbenmeier
|
||||
- Steven Powell
|
||||
- Tharun
|
||||
- Thomas Strömberg
|
||||
- Tpk
|
||||
- Yehiyam Livneh
|
||||
- edtrist
|
||||
- msedzins
|
||||
|
||||
## Version 1.15.1 - 2020-11-16
|
||||
|
||||
Feature:
|
||||
Features:
|
||||
|
||||
* Add Support for driver name alias [#9672](https://github.com/kubernetes/minikube/pull/9672)
|
||||
|
||||
Bug fix:
|
||||
Bug fixes:
|
||||
|
||||
* less verbose language selector [#9715](https://github.com/kubernetes/minikube/pull/9715)
|
||||
|
||||
Thank you to our contributors for this release!
|
||||
|
||||
- Ben Leggett
|
||||
- Medya Ghazizadeh
|
||||
- Priya Wadhwa
|
||||
|
@ -16,7 +99,6 @@ Thank you to our contributors for this release!
|
|||
- Sharif Elgamal
|
||||
- Vasilyev, Viacheslav
|
||||
|
||||
|
||||
## Version 1.15.0 - 2020-11-13
|
||||
|
||||
Features:
|
||||
|
@ -47,7 +129,7 @@ Minor Improvements:
|
|||
* Improving log message when profile not found [#9613](https://github.com/kubernetes/minikube/pull/9613)
|
||||
* Upgrade buildroot and kernel minor version [#9523](https://github.com/kubernetes/minikube/pull/9523)
|
||||
|
||||
Thank you to our contributors for this release!
|
||||
Thank you to our contributors for this release!
|
||||
|
||||
- Anders F Björklund
|
||||
- Evgeny Shmarnev
|
||||
|
@ -66,7 +148,6 @@ Thank you to our contributors for this release!
|
|||
- vinu2003
|
||||
- zouyu
|
||||
|
||||
|
||||
## Version 1.14.2 - 2020-10-27
|
||||
|
||||
Bug Fixes:
|
||||
|
@ -102,7 +183,7 @@ Minor Improvements:
|
|||
* bump helm-tiller addon to v2.16.12 [#9444](https://github.com/kubernetes/minikube/pull/9444)
|
||||
* bump version for ingress dns addon [#9435](https://github.com/kubernetes/minikube/pull/9435)
|
||||
|
||||
Thank you to our contributors for this release!
|
||||
Thank you to our contributors for this release!
|
||||
|
||||
- Anders F Björklund
|
||||
- Dale Hamel
|
||||
|
@ -124,12 +205,12 @@ Thank you to our contributors for this release!
|
|||
|
||||
## Version 1.14.0 - 2020-10-08
|
||||
|
||||
## Features
|
||||
Features:
|
||||
|
||||
* Delete context when stopped [#9414](https://github.com/kubernetes/minikube/pull/9414)
|
||||
* New flag "--ports" to expose ports for docker & podman drivers [#9404](https://github.com/kubernetes/minikube/pull/9404)
|
||||
|
||||
## Bug Fixes and minor improvements
|
||||
Bug fixes and minor improvements:
|
||||
|
||||
* Ingress addon: fix the controller name [#9413](https://github.com/kubernetes/minikube/pull/9413)
|
||||
* docker/podman drivers: no panic when updating mount-string with no configuration [#9412](https://github.com/kubernetes/minikube/pull/9412)
|
||||
|
@ -150,23 +231,23 @@ Thank you to our contributors for this release.
|
|||
|
||||
## Version 1.14.0-beta.0 - 2020-10-06
|
||||
|
||||
## Features
|
||||
Features:
|
||||
|
||||
* add dedicated network for docker driver [#9294](https://github.com/kubernetes/minikube/pull/9294)
|
||||
* Make sure gcp-auth addon can be enabled on startup [#9318](https://github.com/kubernetes/minikube/pull/9318)
|
||||
|
||||
## Bug Fixes
|
||||
Bug fixes:
|
||||
|
||||
* Fix minikube status bug when cluster is paused [#9383](https://github.com/kubernetes/minikube/pull/9383)
|
||||
* don't allow profile name to be less than 2 characters [#9367](https://github.com/kubernetes/minikube/pull/9367)
|
||||
* fix: "profile list" shows paused clusters as "Running" [#8978](https://github.com/kubernetes/minikube/pull/8978)
|
||||
* Fix error in unittest, as pointed out by warning [#9345](https://github.com/kubernetes/minikube/pull/9345)
|
||||
|
||||
## Updates
|
||||
Improvements:
|
||||
|
||||
* update kicbase image to ubuntu-based [#9353](https://github.com/kubernetes/minikube/pull/9353)
|
||||
|
||||
Thank you to our contributors for this release!
|
||||
Thank you to our contributors for this release!
|
||||
|
||||
- Anders F Björklund
|
||||
- Bob Killen
|
||||
|
@ -187,9 +268,8 @@ Thank you to our contributors for this release!
|
|||
- programistka
|
||||
- zhanwang
|
||||
|
||||
|
||||
|
||||
## Version 1.13.1 - 2020-09-18
|
||||
|
||||
* Update Default Kubernetes Version to v1.19.2 [#9265](https://github.com/kubernetes/minikube/pull/9265)
|
||||
* fix mounting for docker driver in windows [#9263](https://github.com/kubernetes/minikube/pull/9263)
|
||||
* CSI Hostpath Driver & VolumeSnapshots addons [#8461](https://github.com/kubernetes/minikube/pull/8461)
|
||||
|
@ -202,7 +282,8 @@ Thank you to our contributors for this release!
|
|||
* Add Docker Desktop instructions if memory is greater than minimum but less than recommended [#9181](https://github.com/kubernetes/minikube/pull/9181)
|
||||
* Update minimum memory constants to use MiB instead of MB [#9180](https://github.com/kubernetes/minikube/pull/9180)
|
||||
|
||||
Thank you to our contributors for this release!
|
||||
Thank you to our contributors for this release!
|
||||
|
||||
- Anders F Björklund
|
||||
- Dean Coakley
|
||||
- Julien Breux
|
||||
|
@ -214,10 +295,9 @@ Thank you to our contributors for this release!
|
|||
- Zadjad Rezai
|
||||
- jjanik
|
||||
|
||||
|
||||
## Version 1.13.0 - 2020-09-03
|
||||
|
||||
## Features
|
||||
Features:
|
||||
|
||||
* Update default Kubernetes version to v1.19.0 🎉 [#9050](https://github.com/kubernetes/minikube/pull/9050)
|
||||
* start: Support for mounting host volumes on start with docker driver [#8159](https://github.com/kubernetes/minikube/pull/8159)
|
||||
|
@ -225,7 +305,7 @@ Thank you to our contributors for this release!
|
|||
* stop: add --keep-context-active flag [#9044](https://github.com/kubernetes/minikube/pull/9044)
|
||||
* kubectl: Invoke kubectl if minikube binary is named 'kubectl' [#8872](https://github.com/kubernetes/minikube/pull/8872)
|
||||
|
||||
## Bug fixes
|
||||
Bug fixes:
|
||||
|
||||
* docker: Choose the appropriate bridge interface when multiple exist [#9062](https://github.com/kubernetes/minikube/pull/9062)
|
||||
* cache: Fix "cache add" for local images by cherry-picking go-containerregistry fix [#9160](https://github.com/kubernetes/minikube/pull/9160)
|
||||
|
@ -242,7 +322,7 @@ Thank you to our contributors for this release!
|
|||
* addon-manager: Add namespace to persistent volume path [#9128](https://github.com/kubernetes/minikube/pull/9128)
|
||||
* ssh: respect native-ssh flag [#8907](https://github.com/kubernetes/minikube/pull/8907)
|
||||
|
||||
## Other improvements
|
||||
Improvements:
|
||||
|
||||
* kic: Disable swap in Docker & podman containers [#9149](https://github.com/kubernetes/minikube/pull/9149)
|
||||
* kic: prioritize /etc/hosts over dns [#9029](https://github.com/kubernetes/minikube/pull/9029)
|
||||
|
@ -256,7 +336,7 @@ Thank you to our contributors for this release!
|
|||
* perf: set proxy-refresh-interval=70000 for etcd to improve CPU overhead [#8850](https://github.com/kubernetes/minikube/pull/8850)
|
||||
* json: buffer download progress every second [#9099](https://github.com/kubernetes/minikube/pull/9099)
|
||||
* localization: Fix typos in pl translation [#9168](https://github.com/kubernetes/minikube/pull/9168)
|
||||
* dashboard: Update dashboard to v2.0.3 [#9129](https://github.com/kubernetes/minikube/pull/9129)
|
||||
* dashboard: Update dashboard to v2.0.3 [#9129](https://github.com/kubernetes/minikube/pull/9129)
|
||||
|
||||
Thank you to our many wonderful contributors for this release!
|
||||
|
||||
|
@ -304,7 +384,7 @@ Improvements:
|
|||
* Update Japanese translation [#8967](https://github.com/kubernetes/minikube/pull/8967)
|
||||
* Fix for a few typos in polish translations [#8950](https://github.com/kubernetes/minikube/pull/8950)
|
||||
|
||||
Thank you to our contributors for this release!
|
||||
Thank you to our contributors for this release!
|
||||
|
||||
- Anders F Björklund
|
||||
- Andrej Guran
|
||||
|
@ -328,6 +408,7 @@ Thank you to our contributors for this release!
|
|||
## Version 1.12.2 - 2020-08-03
|
||||
|
||||
Features:
|
||||
|
||||
* New Addon: Automated GCP Credentials [#8682](https://github.com/kubernetes/minikube/pull/8682)
|
||||
* status: Add experimental cluster JSON status with state transition support [#8868](https://github.com/kubernetes/minikube/pull/8868)
|
||||
* Add support for Error type to JSON output [#8796](https://github.com/kubernetes/minikube/pull/8796)
|
||||
|
@ -337,6 +418,7 @@ Features:
|
|||
* Add SCH_PRIO, SCH_SFQ and CLS_BASIC kernel module to add filter on traffic control [#8670](https://github.com/kubernetes/minikube/pull/8670)
|
||||
|
||||
Bug Fixes:
|
||||
|
||||
* docker/podman: warn if allocated memory is below limit [#8718](https://github.com/kubernetes/minikube/pull/8718)
|
||||
* Enabling metrics addon when someone enables dashboard [#8842](https://github.com/kubernetes/minikube/pull/8842)
|
||||
* make base-image respect --image-repository [#8880](https://github.com/kubernetes/minikube/pull/8880)
|
||||
|
@ -346,6 +428,7 @@ Bug Fixes:
|
|||
* Make restarts in Docker/Podman drivers more reliable [#8864](https://github.com/kubernetes/minikube/pull/8864)
|
||||
|
||||
Version changes:
|
||||
|
||||
* update crio to 1.18.3 and kicbase to ubuntu 20.04 [#8895](https://github.com/kubernetes/minikube/pull/8895)
|
||||
* Podman downgrade to 1.9.3 for the build command [#8774](https://github.com/kubernetes/minikube/pull/8774)
|
||||
* Upgrade kicbase to v0.0.11 [#8899](https://github.com/kubernetes/minikube/pull/8899)
|
||||
|
@ -354,6 +437,7 @@ Version changes:
|
|||
* Upgrade storage provisioner image [#8909](https://github.com/kubernetes/minikube/pull/8909)
|
||||
|
||||
Thank you to our contributors for this release!
|
||||
|
||||
- Ajitesh13
|
||||
- Alonyb
|
||||
- Anders F Björklund
|
||||
|
@ -378,21 +462,24 @@ Thank you to our contributors for this release!
|
|||
## Version 1.12.1 - 2020-07-17
|
||||
|
||||
Features:
|
||||
|
||||
* Add support for Calico CNI (--cni=calico) [#8571](https://github.com/kubernetes/minikube/pull/8571)
|
||||
* Add support for Cilium CNI (--cni=cilium) [#8573](https://github.com/kubernetes/minikube/pull/8573)
|
||||
|
||||
|
||||
Bug Fixes:
|
||||
|
||||
* Fix bugs which prevented upgrades from v1.0+ to v1.12 [#8741](https://github.com/kubernetes/minikube/pull/8741)
|
||||
* Add KicBaseImage to existing config if missing (fixes v1.9.x upgrade) [#8738](https://github.com/kubernetes/minikube/pull/8738)
|
||||
* multinode: fix control plane not ready on restart [#8698](https://github.com/kubernetes/minikube/pull/8698)
|
||||
* none CNI: error if portmap plug-in is required but unavailable [#8684](https://github.com/kubernetes/minikube/pull/8684)
|
||||
|
||||
Version Upgrades:
|
||||
Improvements:
|
||||
|
||||
* ingress addon: bump to latest version [#8705](https://github.com/kubernetes/minikube/pull/8705)
|
||||
* Upgrade go version to 1.14.4 [#8660](https://github.com/kubernetes/minikube/pull/8660)
|
||||
|
||||
Huge thank you for this release towards our contributors:
|
||||
Huge thank you for this release towards our contributors:
|
||||
|
||||
- Anders F Björklund
|
||||
- Harsh Modi
|
||||
- James Lucktaylor
|
||||
|
@ -407,8 +494,6 @@ Huge thank you for this release towards our contributors:
|
|||
- Thomas Strömberg
|
||||
- jinhong.kim
|
||||
|
||||
|
||||
|
||||
## Version 1.12.0 - 2020-07-09
|
||||
|
||||
Features:
|
||||
|
@ -589,7 +674,7 @@ Bug fixes:
|
|||
* hyperv: fix virtual switch bug [#8103](https://github.com/kubernetes/minikube/pull/8103)
|
||||
* Bump Default Kubernetes version v1.18.2 and update newest [8099](https://github.com/kubernetes/minikube/pull/8099)
|
||||
|
||||
Huge thank you for this release towards our contributors:
|
||||
Huge thank you for this release towards our contributors:
|
||||
|
||||
- cprogrammer1994
|
||||
- Medya Ghazizadeh
|
||||
|
@ -603,7 +688,6 @@ Features:
|
|||
* Add new env variable `MINIKUBE_FORCE_SYSTEMD` to configure force-systemd [#8010](https://github.com/kubernetes/minikube/pull/8010)
|
||||
* docker/podman: add alternative repository for base image in github packages [#7943](https://github.com/kubernetes/minikube/pull/7943)
|
||||
|
||||
|
||||
Improvements:
|
||||
|
||||
* tunnel: change to clean up by default [#7946](https://github.com/kubernetes/minikube/pull/7946)
|
||||
|
@ -643,7 +727,6 @@ Huge thank you for this release towards our contributors:
|
|||
- Thomas Strömberg
|
||||
- anencore94
|
||||
|
||||
|
||||
## Version 1.10.0-beta.2 - 2020-04-29
|
||||
|
||||
Improvements:
|
||||
|
@ -687,15 +770,16 @@ Huge thank you for this release towards our contributors:
|
|||
## Version 1.10.0-beta.1 - 2020-04-22
|
||||
|
||||
Improvements:
|
||||
|
||||
* Skip preload download if --image-repository is set [#7707](https://github.com/kubernetes/minikube/pull/7707)
|
||||
|
||||
Bug fixes:
|
||||
|
||||
Bug Fixes:
|
||||
* ISO: persistently mount /var/lib/containerd [#7843](https://github.com/kubernetes/minikube/pull/7843)
|
||||
* docker/podman: fix delete -p not cleaning up & add integration test [#7819](https://github.com/kubernetes/minikube/pull/7819)
|
||||
|
||||
Huge thank you for this release towards our contributors:
|
||||
|
||||
Huge thank you for this release towards our contributors:
|
||||
- Anders F Björklund
|
||||
- Kenta Iso
|
||||
- Medya Ghazizadeh
|
||||
|
@ -705,10 +789,10 @@ Huge thank you for this release towards our contributors:
|
|||
- Thomas Stromberg
|
||||
- Tobias Klauser
|
||||
|
||||
|
||||
## Version 1.10.0-beta.0 - 2020-04-20
|
||||
|
||||
Improvements:
|
||||
|
||||
* faster containerd start by preloading images [#7793](https://github.com/kubernetes/minikube/pull/7793)
|
||||
* Add fish completion support [#7777](https://github.com/kubernetes/minikube/pull/7777)
|
||||
* Behavior change: start with no arguments uses existing cluster config [#7449](https://github.com/kubernetes/minikube/pull/7449)
|
||||
|
@ -725,6 +809,7 @@ Improvements:
|
|||
* Upgrade falco-probe module to version 0.21.0 [#7436](https://github.com/kubernetes/minikube/pull/7436)
|
||||
|
||||
Bug Fixes:
|
||||
|
||||
* Fix multinode cluster creation for VM drivers [#7700](https://github.com/kubernetes/minikube/pull/7700)
|
||||
* tunnel: Fix resolver file permissions, add DNS forwarding test [#7753](https://github.com/kubernetes/minikube/pull/7753)
|
||||
* unconfine apparmor for kic [#7658](https://github.com/kubernetes/minikube/pull/7658)
|
||||
|
@ -732,7 +817,6 @@ Bug Fixes:
|
|||
* Respect driver.FlagDefaults even if --extra-config is set [#7509](https://github.com/kubernetes/minikube/pull/7509)
|
||||
* remove docker/podman overlay network for docker-runtime [#7425](https://github.com/kubernetes/minikube/pull/7425)
|
||||
|
||||
|
||||
Huge thank you for this release towards our contributors:
|
||||
|
||||
- Alonyb
|
||||
|
@ -772,7 +856,6 @@ And big thank you to those who participated in our docs fixit week:
|
|||
- jlaswell
|
||||
- remraz
|
||||
|
||||
|
||||
## Version 1.9.2 - 2020-04-04
|
||||
|
||||
Minor improvements:
|
||||
|
@ -846,7 +929,6 @@ New features & improvements
|
|||
* Add sch_tbf and extend filter ipset kernel module for bandwidth shaping [#7255](https://github.com/kubernetes/minikube/pull/7255)
|
||||
* Parse --disk-size and --memory sizes with binary suffixes [#7206](https://github.com/kubernetes/minikube/pull/7206)
|
||||
|
||||
|
||||
Bug Fixes
|
||||
|
||||
* Re-initalize failed Kubernetes clusters [#7234](https://github.com/kubernetes/minikube/pull/7234)
|
||||
|
@ -854,7 +936,7 @@ Bug Fixes
|
|||
* Enable HW_RANDOM_VIRTIO to fix sshd startup delays [#7208](https://github.com/kubernetes/minikube/pull/7208)
|
||||
* hyperv Delete: call StopHost before removing VM [#7160](https://github.com/kubernetes/minikube/pull/7160)
|
||||
|
||||
Huge thank you for this release towards our contributors:
|
||||
Huge thank you for this release towards our contributors:
|
||||
|
||||
- Anders F Björklund
|
||||
- Medya Ghazizadeh
|
||||
|
@ -867,7 +949,6 @@ Huge thank you for this release towards our contributors:
|
|||
- Zhongcheng Lao
|
||||
- vikkyomkar
|
||||
|
||||
|
||||
## Version 1.9.0-beta.2 - 2020-03-21
|
||||
|
||||
New features & improvements
|
||||
|
@ -957,7 +1038,8 @@ Captivating bug fixes:
|
|||
* Check if lz4 is available before trying to use it [#6941](https://github.com/kubernetes/minikube/pull/6941)
|
||||
* Allow backwards compatibility with 1.6 and earlier configs [#6969](https://github.com/kubernetes/minikube/pull/6969)
|
||||
|
||||
Huge thank you for this release towards our contributors:
|
||||
Huge thank you for this release towards our contributors:
|
||||
|
||||
- Anders F Björklund
|
||||
- Ian Molee
|
||||
- Kenta Iso
|
||||
|
@ -973,7 +1055,8 @@ Minor bug fix:
|
|||
* Block on preload download before extracting, fall back to caching images if it fails [#6928](https://github.com/kubernetes/minikube/pull/6928)
|
||||
* Cleanup remaining PointToHostDockerDaemon calls [#6925](https://github.com/kubernetes/minikube/pull/6925)
|
||||
|
||||
Huge thank you for this release towards our contributors:
|
||||
Huge thank you for this release towards our contributors:
|
||||
|
||||
- Priya Wadhwa
|
||||
- Thomas Stromberg
|
||||
- Medya Ghazizadeh
|
||||
|
@ -1157,7 +1240,7 @@ Thank you to those brave souls who made the final push toward this release:
|
|||
* Prevent registry-creds configure from failing when a secret does not exist. [#6380](https://github.com/kubernetes/minikube/pull/6380)
|
||||
* improve checking modprob netfilter [#6427](https://github.com/kubernetes/minikube/pull/6427)
|
||||
|
||||
Huge thank you for this release towards our contributors:
|
||||
Huge thank you for this release towards our contributors:
|
||||
|
||||
- Anders Björklund
|
||||
- Bjørn Harald Fotland
|
||||
|
@ -1213,6 +1296,7 @@ Thanks you to the following contributors:
|
|||
* Add istio addon for minikube [#6154](https://github.com/kubernetes/minikube/pull/6154)
|
||||
|
||||
Huge thank you for this release towards our contributors:
|
||||
|
||||
- Anders Björklund
|
||||
- andylibrian
|
||||
- Dao Cong Tien
|
||||
|
@ -1241,6 +1325,7 @@ Huge thank you for this release towards our contributors:
|
|||
* Change error text to encourage better issue reports [#6121](https://github.com/kubernetes/minikube/pull/6121)
|
||||
|
||||
Huge thank you for this release towards our contributors:
|
||||
|
||||
- Anukul Sangwan
|
||||
- Aresforchina
|
||||
- Curtis Carter
|
||||
|
@ -1252,7 +1337,6 @@ Huge thank you for this release towards our contributors:
|
|||
- priyawadhwa
|
||||
- tstromberg
|
||||
|
||||
|
||||
## Version 1.6.1 - 2019-12-11
|
||||
|
||||
A special bugfix release to fix a Windows regression:
|
||||
|
@ -1305,7 +1389,8 @@ Thanks goes out to the merry band of Kubernetes contributors that made this rele
|
|||
* Upgrade buildroot minor version to 2019.02.7 [#5967](https://github.com/kubernetes/minikube/pull/5967)
|
||||
* dashboard: Update to latest images (2.0.0-beta6) [#5934](https://github.com/kubernetes/minikube/pull/5934)
|
||||
|
||||
Huge thank you for this release towards our contributors:
|
||||
Huge thank you for this release towards our contributors:
|
||||
|
||||
- Adam Crowder
|
||||
- Anders F Björklund
|
||||
- David Newman
|
||||
|
@ -1333,7 +1418,8 @@ Huge thank you for this release towards our contributors:
|
|||
* none driver: Warn about --cpus, --memory, and --container-runtime settings [#5845](https://github.com/kubernetes/minikube/pull/5845)
|
||||
* Refactor config.Config to prepare for multinode [#5889](https://github.com/kubernetes/minikube/pull/5889)
|
||||
|
||||
Huge thank you for this release towards our contributors:
|
||||
Huge thank you for this release towards our contributors:
|
||||
|
||||
- Anders Björklund
|
||||
- Aresforchina
|
||||
- Igor Zibarev
|
||||
|
@ -1438,6 +1524,7 @@ Thank you to our contributors!
|
|||
* Change systemd unit files perm to 644 [#5492](https://github.com/kubernetes/minikube/pull/5492)
|
||||
|
||||
Huge thank you for this release towards our contributors:
|
||||
|
||||
- Anders F Björklund
|
||||
- bhanu011
|
||||
- chentanjun
|
||||
|
@ -1462,7 +1549,6 @@ Huge thank you for this release towards our contributors:
|
|||
- Zhongcheng Lao
|
||||
- Zoltán Reegn
|
||||
|
||||
|
||||
## Version 1.4.0 - 2019-09-17
|
||||
|
||||
Notable user-facing changes:
|
||||
|
@ -1549,7 +1635,6 @@ Thank you to our recent contributors:
|
|||
* Update gvisor runsc version [#4494](https://github.com/kubernetes/minikube/pull/4494)
|
||||
* Upgrade nginx to security patch v0.25.1 [#5197](https://github.com/kubernetes/minikube/pull/5197)
|
||||
|
||||
|
||||
Thank you to our contributors:
|
||||
|
||||
- AllenZMC
|
||||
|
|
51
Makefile
51
Makefile
|
@ -14,8 +14,8 @@
|
|||
|
||||
# Bump these on release - and please check ISO_VERSION for correctness.
|
||||
VERSION_MAJOR ?= 1
|
||||
VERSION_MINOR ?= 15
|
||||
VERSION_BUILD ?= 1
|
||||
VERSION_MINOR ?= 16
|
||||
VERSION_BUILD ?= 0-beta.0
|
||||
RAW_VERSION=$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_BUILD)
|
||||
VERSION ?= v$(RAW_VERSION)
|
||||
|
||||
|
@ -23,16 +23,16 @@ KUBERNETES_VERSION ?= $(shell egrep "DefaultKubernetesVersion =" pkg/minikube/co
|
|||
KIC_VERSION ?= $(shell egrep "Version =" pkg/drivers/kic/types.go | cut -d \" -f2)
|
||||
|
||||
# Default to .0 for higher cache hit rates, as build increments typically don't require new ISO versions
|
||||
ISO_VERSION ?= v1.15.2-snapshot2
|
||||
ISO_VERSION ?= v1.16.0
|
||||
# Dashes are valid in semver, but not Linux packaging. Use ~ to delimit alpha/beta
|
||||
DEB_VERSION ?= $(subst -,~,$(RAW_VERSION))
|
||||
RPM_VERSION ?= $(DEB_VERSION)
|
||||
|
||||
# used by hack/jenkins/release_build_and_upload.sh and KVM_BUILD_IMAGE, see also BUILD_IMAGE below
|
||||
GO_VERSION ?= 1.15.2
|
||||
GO_VERSION ?= 1.15.5
|
||||
|
||||
INSTALL_SIZE ?= $(shell du out/minikube-windows-amd64.exe | cut -f1)
|
||||
BUILDROOT_BRANCH ?= 2020.02.7
|
||||
BUILDROOT_BRANCH ?= 2020.02.8
|
||||
REGISTRY?=gcr.io/k8s-minikube
|
||||
REGISTRY_GH?=docker.pkg.github.com/kubernetes/minikube
|
||||
|
||||
|
@ -58,7 +58,7 @@ MINIKUBE_BUCKET ?= minikube/releases
|
|||
MINIKUBE_UPLOAD_LOCATION := gs://${MINIKUBE_BUCKET}
|
||||
MINIKUBE_RELEASES_URL=https://github.com/kubernetes/minikube/releases/download
|
||||
|
||||
KERNEL_VERSION ?= 4.19.150
|
||||
KERNEL_VERSION ?= 4.19.157
|
||||
# latest from https://github.com/golangci/golangci-lint/releases
|
||||
GOLINT_VERSION ?= v1.30.0
|
||||
# Limit number of default jobs, to avoid the CI builds running out of memory
|
||||
|
@ -175,6 +175,12 @@ v_at_ = $(v_at_1)
|
|||
quiet := $(v_at_$(V))
|
||||
Q=$(if $(quiet),@)
|
||||
|
||||
INTEGRATION_TESTS_TO_RUN := ./test/integration
|
||||
ifneq ($(TEST_FILES),)
|
||||
TEST_HELPERS = main_test.go util_test.go helpers_test.go
|
||||
INTEGRATION_TESTS_TO_RUN := $(addprefix ./test/integration/, $(TEST_HELPERS) $(TEST_FILES))
|
||||
endif
|
||||
|
||||
out/minikube$(IS_EXE): $(SOURCE_GENERATED) $(SOURCE_FILES) go.mod
|
||||
ifeq ($(MINIKUBE_BUILD_IN_DOCKER),y)
|
||||
$(call DOCKER,$(BUILD_IMAGE),GOOS=$(GOOS) GOARCH=$(GOARCH) /usr/bin/make $@)
|
||||
|
@ -261,7 +267,7 @@ iso_in_docker:
|
|||
$(ISO_BUILD_IMAGE) /bin/bash
|
||||
|
||||
test-iso: pkg/minikube/assets/assets.go pkg/minikube/translate/translations.go
|
||||
go test -v ./test/integration --tags=iso --minikube-start-args="--iso-url=file://$(shell pwd)/out/buildroot/output/images/rootfs.iso9660"
|
||||
go test -v $(INTEGRATION_TESTS_TO_RUN) --tags=iso --minikube-start-args="--iso-url=file://$(shell pwd)/out/buildroot/output/images/rootfs.iso9660"
|
||||
|
||||
.PHONY: test-pkg
|
||||
test-pkg/%: pkg/minikube/assets/assets.go pkg/minikube/translate/translations.go ## Trigger packaging test
|
||||
|
@ -281,7 +287,7 @@ docker-machine-driver-kvm2: out/docker-machine-driver-kvm2 ## Build KVM2 driver
|
|||
|
||||
.PHONY: integration
|
||||
integration: out/minikube$(IS_EXE) ## Trigger minikube integration test, logs to ./out/testout_COMMIT.txt
|
||||
go test -ldflags="${MINIKUBE_LDFLAGS}" -v -test.timeout=90m ./test/integration --tags="$(MINIKUBE_INTEGRATION_BUILD_TAGS)" $(TEST_ARGS) 2>&1 | tee "./out/testout_$(COMMIT_SHORT).txt"
|
||||
go test -ldflags="${MINIKUBE_LDFLAGS}" -v -test.timeout=90m $(INTEGRATION_TESTS_TO_RUN) --tags="$(MINIKUBE_INTEGRATION_BUILD_TAGS)" $(TEST_ARGS) 2>&1 | tee "./out/testout_$(COMMIT_SHORT).txt"
|
||||
|
||||
.PHONY: integration-none-driver
|
||||
integration-none-driver: e2e-linux-$(GOARCH) out/minikube-linux-$(GOARCH) ## Trigger minikube none driver test, logs to ./out/testout_COMMIT.txt
|
||||
|
@ -289,11 +295,14 @@ integration-none-driver: e2e-linux-$(GOARCH) out/minikube-linux-$(GOARCH) ## Tr
|
|||
|
||||
.PHONY: integration-versioned
|
||||
integration-versioned: out/minikube ## Trigger minikube integration testing, logs to ./out/testout_COMMIT.txt
|
||||
go test -ldflags="${MINIKUBE_LDFLAGS}" -v -test.timeout=90m ./test/integration --tags="$(MINIKUBE_INTEGRATION_BUILD_TAGS) versioned" $(TEST_ARGS) 2>&1 | tee "./out/testout_$(COMMIT_SHORT).txt"
|
||||
go test -ldflags="${MINIKUBE_LDFLAGS}" -v -test.timeout=90m $(INTEGRATION_TESTS_TO_RUN) --tags="$(MINIKUBE_INTEGRATION_BUILD_TAGS) versioned" $(TEST_ARGS) 2>&1 | tee "./out/testout_$(COMMIT_SHORT).txt"
|
||||
|
||||
.PHONY: functional
|
||||
functional: integration-functional-only
|
||||
|
||||
.PHONY: integration-functional-only
|
||||
integration-functional-only: out/minikube$(IS_EXE) ## Trigger only functioanl tests in integration test, logs to ./out/testout_COMMIT.txt
|
||||
go test -ldflags="${MINIKUBE_LDFLAGS}" -v -test.timeout=20m ./test/integration --tags="$(MINIKUBE_INTEGRATION_BUILD_TAGS)" $(TEST_ARGS) -test.run TestFunctional 2>&1 | tee "./out/testout_$(COMMIT_SHORT).txt"
|
||||
go test -ldflags="${MINIKUBE_LDFLAGS}" -v -test.timeout=20m $(INTEGRATION_TESTS_TO_RUN) --tags="$(MINIKUBE_INTEGRATION_BUILD_TAGS)" $(TEST_ARGS) -test.run TestFunctional 2>&1 | tee "./out/testout_$(COMMIT_SHORT).txt"
|
||||
|
||||
.PHONY: html_report
|
||||
html_report: ## Generate HTML report out of the last ran integration test logs.
|
||||
|
@ -462,6 +471,11 @@ out/minikube_$(DEB_VERSION)-0_%.deb: out/minikube-linux-%
|
|||
chmod 0755 out/minikube_$(DEB_VERSION)/DEBIAN
|
||||
sed -E -i 's/--VERSION--/'$(DEB_VERSION)'/g' out/minikube_$(DEB_VERSION)/DEBIAN/control
|
||||
sed -E -i 's/--ARCH--/'$*'/g' out/minikube_$(DEB_VERSION)/DEBIAN/control
|
||||
if [ "$*" = "amd64" ]; then \
|
||||
sed -E -i 's/--RECOMMENDS--/virtualbox/' out/minikube_$(DEB_VERSION)/DEBIAN/control; \
|
||||
else \
|
||||
sed -E -i '/Recommends: --RECOMMENDS--/d' out/minikube_$(DEB_VERSION)/DEBIAN/control; \
|
||||
fi
|
||||
mkdir -p out/minikube_$(DEB_VERSION)/usr/bin
|
||||
cp $< out/minikube_$(DEB_VERSION)/usr/bin/minikube
|
||||
fakeroot dpkg-deb --build out/minikube_$(DEB_VERSION) $@
|
||||
|
@ -787,3 +801,20 @@ help:
|
|||
@printf "\033[1mAvailable targets for minikube ${VERSION}\033[21m\n"
|
||||
@printf "\033[1m--------------------------------------\033[21m\n"
|
||||
@grep -h -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
||||
|
||||
|
||||
.PHONY: update-kubernetes-version
|
||||
update-kubernetes-version:
|
||||
(cd hack/update/kubernetes_version && \
|
||||
go run update_kubernetes_version.go)
|
||||
|
||||
.PHONY: update-kubernetes-version-pr
|
||||
update-kubernetes-version-pr:
|
||||
ifndef GITHUB_TOKEN
|
||||
@echo "⚠️ please set GITHUB_TOKEN environment variable with your GitHub token"
|
||||
@echo "you can use https://github.com/settings/tokens/new?scopes=repo,write:packages to create new one"
|
||||
else
|
||||
(cd hack/update/kubernetes_version && \
|
||||
export UPDATE_TARGET="all" && \
|
||||
go run update_kubernetes_version.go)
|
||||
endif
|
||||
|
|
|
@ -92,8 +92,8 @@ var settings = []Setting{
|
|||
},
|
||||
{
|
||||
name: "memory",
|
||||
set: SetInt,
|
||||
validations: []setFn{IsPositive},
|
||||
set: SetString,
|
||||
validations: []setFn{IsValidDiskSize},
|
||||
callbacks: []setFn{RequiresRestartMsg},
|
||||
},
|
||||
{
|
||||
|
@ -181,7 +181,7 @@ var settings = []Setting{
|
|||
var ConfigCmd = &cobra.Command{
|
||||
Use: "config SUBCOMMAND [flags]",
|
||||
Short: "Modify persistent configuration values",
|
||||
Long: `config modifies minikube config files using subcommands like "minikube config set driver kvm"
|
||||
Long: `config modifies minikube config files using subcommands like "minikube config set driver kvm2"
|
||||
Configurable fields: ` + "\n\n" + configurableFields(),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if err := cmd.Help(); err != nil {
|
||||
|
|
|
@ -19,6 +19,7 @@ package config
|
|||
import (
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"regexp"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"k8s.io/minikube/pkg/minikube/config"
|
||||
|
@ -204,6 +205,22 @@ var addonsConfigureCmd = &cobra.Command{
|
|||
cfg.KubernetesConfig.LoadBalancerEndIP = AskForStaticValidatedValue("-- Enter Load Balancer End IP: ", validator)
|
||||
}
|
||||
|
||||
if err := config.SaveProfile(profile, cfg); err != nil {
|
||||
out.ErrT(style.Fatal, "Failed to save config {{.profile}}", out.V{"profile": profile})
|
||||
}
|
||||
case "ingress":
|
||||
profile := ClusterFlagValue()
|
||||
_, cfg := mustload.Partial(profile)
|
||||
|
||||
validator := func(s string) bool {
|
||||
format := regexp.MustCompile("^.+/.+$")
|
||||
return format.MatchString(s)
|
||||
}
|
||||
|
||||
if cfg.KubernetesConfig.CustomIngressCert == "" {
|
||||
cfg.KubernetesConfig.CustomIngressCert = AskForStaticValidatedValue("-- Enter custom cert(format is \"namespace/secret\"): ", validator)
|
||||
}
|
||||
|
||||
if err := config.SaveProfile(profile, cfg); err != nil {
|
||||
out.ErrT(style.Fatal, "Failed to save config {{.profile}}", out.V{"profile": profile})
|
||||
}
|
||||
|
|
|
@ -38,6 +38,10 @@ func TestSetNotAllowed(t *testing.T) {
|
|||
if err == nil || err.Error() != "run validations for \"driver\" with value of \"123456\": [driver \"123456\" is not supported]" {
|
||||
t.Fatalf("Set did not return error for unallowed value: %+v", err)
|
||||
}
|
||||
err = Set("memory", "10a")
|
||||
if err == nil || err.Error() != "run validations for \"memory\" with value of \"10a\": [invalid disk size: invalid size: '10a']" {
|
||||
t.Fatalf("Set did not return error for unallowed value: %+v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSetOK(t *testing.T) {
|
||||
|
|
|
@ -45,7 +45,7 @@ import (
|
|||
"k8s.io/minikube/pkg/minikube/sysinit"
|
||||
)
|
||||
|
||||
var dockerSetEnvTmpl = fmt.Sprintf(
|
||||
var dockerEnvTCPTmpl = fmt.Sprintf(
|
||||
"{{ .Prefix }}%s{{ .Delimiter }}{{ .DockerTLSVerify }}{{ .Suffix }}"+
|
||||
"{{ .Prefix }}%s{{ .Delimiter }}{{ .DockerHost }}{{ .Suffix }}"+
|
||||
"{{ .Prefix }}%s{{ .Delimiter }}{{ .DockerCertPath }}{{ .Suffix }}"+
|
||||
|
@ -70,6 +70,12 @@ var dockerSetEnvTmpl = fmt.Sprintf(
|
|||
constants.ExistingDockerHostEnv,
|
||||
constants.ExistingDockerCertPathEnv,
|
||||
constants.MinikubeActiveDockerdEnv)
|
||||
var dockerEnvSSHTmpl = fmt.Sprintf(
|
||||
"{{ .Prefix }}%s{{ .Delimiter }}{{ .DockerHost }}{{ .Suffix }}"+
|
||||
"{{ .Prefix }}%s{{ .Delimiter }}{{ .MinikubeDockerdProfile }}{{ .Suffix }}"+
|
||||
"{{ .UsageHint }}",
|
||||
constants.DockerHostEnv,
|
||||
constants.MinikubeActiveDockerdEnv)
|
||||
|
||||
// DockerShellConfig represents the shell config for Docker
|
||||
type DockerShellConfig struct {
|
||||
|
@ -88,6 +94,8 @@ type DockerShellConfig struct {
|
|||
|
||||
var (
|
||||
noProxy bool
|
||||
sshHost bool
|
||||
sshAdd bool
|
||||
dockerUnset bool
|
||||
defaultNoProxyGetter NoProxyGetter
|
||||
)
|
||||
|
@ -105,12 +113,19 @@ func dockerShellCfgSet(ec DockerEnvConfig, envMap map[string]string) *DockerShel
|
|||
profile := ec.profile
|
||||
const usgPlz = "To point your shell to minikube's docker-daemon, run:"
|
||||
usgCmd := fmt.Sprintf("minikube -p %s docker-env", profile)
|
||||
if ec.ssh {
|
||||
usgCmd += " --ssh-host"
|
||||
}
|
||||
s := &DockerShellConfig{
|
||||
Config: *shell.CfgSet(ec.EnvConfig, usgPlz, usgCmd),
|
||||
}
|
||||
s.DockerCertPath = envMap[constants.DockerCertPathEnv]
|
||||
if !ec.ssh {
|
||||
s.DockerCertPath = envMap[constants.DockerCertPathEnv]
|
||||
}
|
||||
s.DockerHost = envMap[constants.DockerHostEnv]
|
||||
s.DockerTLSVerify = envMap[constants.DockerTLSVerifyEnv]
|
||||
if !ec.ssh {
|
||||
s.DockerTLSVerify = envMap[constants.DockerTLSVerifyEnv]
|
||||
}
|
||||
|
||||
s.ExistingDockerCertPath = envMap[constants.ExistingDockerCertPathEnv]
|
||||
s.ExistingDockerHost = envMap[constants.ExistingDockerHostEnv]
|
||||
|
@ -226,8 +241,10 @@ var dockerEnvCmd = &cobra.Command{
|
|||
out.V{"runtime": co.Config.KubernetesConfig.ContainerRuntime})
|
||||
}
|
||||
|
||||
ensureDockerd(cname, co.CP.Runner)
|
||||
r := co.CP.Runner
|
||||
ensureDockerd(cname, r)
|
||||
|
||||
d := co.CP.Host.Driver
|
||||
port := constants.DockerDaemonPort
|
||||
if driver.NeedsPortForward(driverName) {
|
||||
port, err = oci.ForwardedPort(driverName, cname, port)
|
||||
|
@ -236,14 +253,30 @@ var dockerEnvCmd = &cobra.Command{
|
|||
}
|
||||
}
|
||||
|
||||
hostname, err := d.GetSSHHostname()
|
||||
if err != nil {
|
||||
exit.Error(reason.IfSSHClient, "Error getting ssh client", err)
|
||||
}
|
||||
|
||||
sshport, err := d.GetSSHPort()
|
||||
if err != nil {
|
||||
exit.Error(reason.IfSSHClient, "Error getting ssh client", err)
|
||||
}
|
||||
|
||||
hostIP := co.CP.IP.String()
|
||||
ec := DockerEnvConfig{
|
||||
EnvConfig: sh,
|
||||
profile: cname,
|
||||
driver: driverName,
|
||||
hostIP: co.CP.IP.String(),
|
||||
ssh: sshHost,
|
||||
hostIP: hostIP,
|
||||
port: port,
|
||||
certsDir: localpath.MakeMiniPath("certs"),
|
||||
noProxy: noProxy,
|
||||
username: d.GetSSHUsername(),
|
||||
hostname: hostname,
|
||||
sshport: sshport,
|
||||
keypath: d.GetSSHKeyPath(),
|
||||
}
|
||||
|
||||
dockerPath, err := exec.LookPath("docker")
|
||||
|
@ -265,6 +298,22 @@ var dockerEnvCmd = &cobra.Command{
|
|||
if err := dockerSetScript(ec, os.Stdout); err != nil {
|
||||
exit.Error(reason.InternalDockerScript, "Error generating set output", err)
|
||||
}
|
||||
|
||||
if sshAdd {
|
||||
klog.Infof("Adding %v", d.GetSSHKeyPath())
|
||||
|
||||
path, err := exec.LookPath("ssh-add")
|
||||
if err != nil {
|
||||
exit.Error(reason.IfSSHClient, "Error with ssh-add", err)
|
||||
}
|
||||
|
||||
cmd := exec.Command(path, d.GetSSHKeyPath())
|
||||
cmd.Stderr = os.Stderr
|
||||
err = cmd.Run()
|
||||
if err != nil {
|
||||
exit.Error(reason.IfSSHClient, "Error with ssh-add", err)
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -273,20 +322,78 @@ type DockerEnvConfig struct {
|
|||
shell.EnvConfig
|
||||
profile string
|
||||
driver string
|
||||
ssh bool
|
||||
hostIP string
|
||||
port int
|
||||
certsDir string
|
||||
noProxy bool
|
||||
username string
|
||||
hostname string
|
||||
sshport int
|
||||
keypath string
|
||||
}
|
||||
|
||||
// dockerSetScript writes out a shell-compatible 'docker-env' script
|
||||
func dockerSetScript(ec DockerEnvConfig, w io.Writer) error {
|
||||
var dockerSetEnvTmpl string
|
||||
if ec.ssh {
|
||||
dockerSetEnvTmpl = dockerEnvSSHTmpl
|
||||
} else {
|
||||
dockerSetEnvTmpl = dockerEnvTCPTmpl
|
||||
}
|
||||
envVars := dockerEnvVars(ec)
|
||||
return shell.SetScript(ec.EnvConfig, w, dockerSetEnvTmpl, dockerShellCfgSet(ec, envVars))
|
||||
}
|
||||
|
||||
// dockerSetScript writes out a shell-compatible 'docker-env unset' script
|
||||
func dockerUnsetScript(ec DockerEnvConfig, w io.Writer) error {
|
||||
vars := dockerEnvNames(ec)
|
||||
return shell.UnsetScript(ec.EnvConfig, w, vars)
|
||||
}
|
||||
|
||||
// dockerURL returns a the docker endpoint URL for an ip/port pair.
|
||||
func dockerURL(ip string, port int) string {
|
||||
return fmt.Sprintf("tcp://%s", net.JoinHostPort(ip, strconv.Itoa(port)))
|
||||
}
|
||||
|
||||
// sshURL returns the docker endpoint URL when using socket over ssh.
|
||||
func sshURL(username string, hostname string, port int) string {
|
||||
// assumes standard /var/run/docker.sock as the path (not possible to set it at the moment)
|
||||
return fmt.Sprintf("ssh://%s@%s", username, net.JoinHostPort(hostname, strconv.Itoa(port)))
|
||||
}
|
||||
|
||||
// dockerEnvVars gets the necessary docker env variables to allow the use of minikube's docker daemon
|
||||
func dockerEnvVars(ec DockerEnvConfig) map[string]string {
|
||||
envTCP := map[string]string{
|
||||
constants.DockerTLSVerifyEnv: "1",
|
||||
constants.DockerHostEnv: dockerURL(ec.hostIP, ec.port),
|
||||
constants.DockerCertPathEnv: ec.certsDir,
|
||||
constants.MinikubeActiveDockerdEnv: ec.profile,
|
||||
}
|
||||
envSSH := map[string]string{
|
||||
constants.DockerHostEnv: sshURL(ec.username, ec.hostname, ec.sshport),
|
||||
constants.MinikubeActiveDockerdEnv: ec.profile,
|
||||
}
|
||||
|
||||
var rt map[string]string
|
||||
if ec.ssh {
|
||||
rt = envSSH
|
||||
} else {
|
||||
rt = envTCP
|
||||
}
|
||||
if os.Getenv(constants.MinikubeActiveDockerdEnv) == "" {
|
||||
for _, env := range constants.DockerDaemonEnvs {
|
||||
if v := oci.InitialEnv(env); v != "" {
|
||||
key := constants.MinikubeExistingPrefix + env
|
||||
rt[key] = v
|
||||
}
|
||||
}
|
||||
}
|
||||
return rt
|
||||
}
|
||||
|
||||
// dockerEnvNames gets the necessary docker env variables to reset after using minikube's docker daemon
|
||||
func dockerEnvNames(ec DockerEnvConfig) []string {
|
||||
vars := []string{
|
||||
constants.DockerTLSVerifyEnv,
|
||||
constants.DockerHostEnv,
|
||||
|
@ -300,31 +407,7 @@ func dockerUnsetScript(ec DockerEnvConfig, w io.Writer) error {
|
|||
vars = append(vars, k)
|
||||
}
|
||||
}
|
||||
return shell.UnsetScript(ec.EnvConfig, w, vars)
|
||||
}
|
||||
|
||||
// dockerURL returns a the docker endpoint URL for an ip/port pair.
|
||||
func dockerURL(ip string, port int) string {
|
||||
return fmt.Sprintf("tcp://%s", net.JoinHostPort(ip, strconv.Itoa(port)))
|
||||
}
|
||||
|
||||
// dockerEnvVars gets the necessary docker env variables to allow the use of minikube's docker daemon
|
||||
func dockerEnvVars(ec DockerEnvConfig) map[string]string {
|
||||
rt := map[string]string{
|
||||
constants.DockerTLSVerifyEnv: "1",
|
||||
constants.DockerHostEnv: dockerURL(ec.hostIP, ec.port),
|
||||
constants.DockerCertPathEnv: ec.certsDir,
|
||||
constants.MinikubeActiveDockerdEnv: ec.profile,
|
||||
}
|
||||
if os.Getenv(constants.MinikubeActiveDockerdEnv) == "" {
|
||||
for _, env := range constants.DockerDaemonEnvs {
|
||||
if v := oci.InitialEnv(env); v != "" {
|
||||
key := constants.MinikubeExistingPrefix + env
|
||||
rt[key] = v
|
||||
}
|
||||
}
|
||||
}
|
||||
return rt
|
||||
return vars
|
||||
}
|
||||
|
||||
// dockerEnvVarsList gets the necessary docker env variables to allow the use of minikube's docker daemon to be used in a exec.Command
|
||||
|
@ -348,6 +431,8 @@ func tryDockerConnectivity(bin string, ec DockerEnvConfig) ([]byte, error) {
|
|||
func init() {
|
||||
defaultNoProxyGetter = &EnvNoProxyGetter{}
|
||||
dockerEnvCmd.Flags().BoolVar(&noProxy, "no-proxy", false, "Add machine IP to NO_PROXY environment variable")
|
||||
dockerEnvCmd.Flags().BoolVar(&sshHost, "ssh-host", false, "Use SSH connection instead of HTTPS (port 2376)")
|
||||
dockerEnvCmd.Flags().BoolVar(&sshAdd, "ssh-add", false, "Add SSH identity key to SSH authentication agent")
|
||||
dockerEnvCmd.Flags().StringVar(&shell.ForceShell, "shell", "", "Force environment to be configured for a specified shell: [fish, cmd, powershell, tcsh, bash, zsh], default is auto-detect")
|
||||
dockerEnvCmd.Flags().BoolVarP(&dockerUnset, "unset", "u", false, "Unset variables instead of setting them")
|
||||
}
|
||||
|
|
|
@ -56,6 +56,22 @@ export MINIKUBE_ACTIVE_DOCKERD="dockerdriver"
|
|||
unset DOCKER_HOST;
|
||||
unset DOCKER_CERT_PATH;
|
||||
unset MINIKUBE_ACTIVE_DOCKERD;
|
||||
`,
|
||||
},
|
||||
{
|
||||
"bash",
|
||||
DockerEnvConfig{profile: "dockerdriver", driver: "docker", ssh: true, username: "root", hostname: "host", sshport: 22},
|
||||
nil,
|
||||
`export DOCKER_HOST="ssh://root@host:22"
|
||||
export MINIKUBE_ACTIVE_DOCKERD="dockerdriver"
|
||||
|
||||
# To point your shell to minikube's docker-daemon, run:
|
||||
# eval $(minikube -p dockerdriver docker-env --ssh-host)
|
||||
`,
|
||||
`unset DOCKER_TLS_VERIFY;
|
||||
unset DOCKER_HOST;
|
||||
unset DOCKER_CERT_PATH;
|
||||
unset MINIKUBE_ACTIVE_DOCKERD;
|
||||
`,
|
||||
},
|
||||
{
|
||||
|
|
|
@ -18,17 +18,29 @@ package cmd
|
|||
|
||||
import (
|
||||
"github.com/spf13/cobra"
|
||||
"k8s.io/minikube/pkg/minikube/exit"
|
||||
"k8s.io/minikube/pkg/minikube/mustload"
|
||||
"k8s.io/minikube/pkg/minikube/node"
|
||||
"k8s.io/minikube/pkg/minikube/out"
|
||||
"k8s.io/minikube/pkg/minikube/reason"
|
||||
)
|
||||
|
||||
// ipCmd represents the ip command
|
||||
var ipCmd = &cobra.Command{
|
||||
Use: "ip",
|
||||
Short: "Retrieves the IP address of the running cluster",
|
||||
Long: `Retrieves the IP address of the running cluster, and writes it to STDOUT.`,
|
||||
Short: "Retrieves the IP address of the specified node",
|
||||
Long: `Retrieves the IP address of the specified node, and writes it to STDOUT.`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
co := mustload.Running(ClusterFlagValue())
|
||||
out.Ln(co.CP.IP.String())
|
||||
n, _, err := node.Retrieve(*co.Config, nodeName)
|
||||
if err != nil {
|
||||
exit.Error(reason.GuestNodeRetrieve, "retrieving node", err)
|
||||
}
|
||||
|
||||
out.Ln(n.IP)
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
ipCmd.Flags().StringVarP(&nodeName, "node", "n", "", "The node to get IP. Defaults to the primary control plane.")
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ package cmd
|
|||
import (
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/viper"
|
||||
"k8s.io/minikube/pkg/minikube/cni"
|
||||
"k8s.io/minikube/pkg/minikube/config"
|
||||
"k8s.io/minikube/pkg/minikube/driver"
|
||||
"k8s.io/minikube/pkg/minikube/exit"
|
||||
|
@ -64,6 +65,10 @@ var nodeAddCmd = &cobra.Command{
|
|||
if viper.GetString(memory) == "" {
|
||||
cc.Memory = 2200
|
||||
}
|
||||
|
||||
if !cc.MultiNodeRequested || cni.IsDisabled(*cc) {
|
||||
warnAboutMultiNodeCNI()
|
||||
}
|
||||
}
|
||||
|
||||
if err := node.Add(cc, n, false); err != nil {
|
||||
|
|
|
@ -27,6 +27,7 @@ import (
|
|||
"k8s.io/minikube/pkg/minikube/mustload"
|
||||
"k8s.io/minikube/pkg/minikube/node"
|
||||
"k8s.io/minikube/pkg/minikube/out"
|
||||
"k8s.io/minikube/pkg/minikube/out/register"
|
||||
"k8s.io/minikube/pkg/minikube/reason"
|
||||
"k8s.io/minikube/pkg/minikube/style"
|
||||
)
|
||||
|
@ -54,7 +55,8 @@ var nodeStartCmd = &cobra.Command{
|
|||
os.Exit(0)
|
||||
}
|
||||
|
||||
r, p, m, h, err := node.Provision(cc, n, false, viper.GetBool(deleteOnFailure))
|
||||
register.Reg.SetStep(register.InitialSetup)
|
||||
r, p, m, h, err := node.Provision(cc, n, n.ControlPlane, viper.GetBool(deleteOnFailure))
|
||||
if err != nil {
|
||||
exit.Error(reason.GuestNodeProvision, "provisioning host for node", err)
|
||||
}
|
||||
|
@ -69,7 +71,7 @@ var nodeStartCmd = &cobra.Command{
|
|||
ExistingAddons: nil,
|
||||
}
|
||||
|
||||
_, err = node.Start(s, false)
|
||||
_, err = node.Start(s, n.ControlPlane)
|
||||
if err != nil {
|
||||
_, err := maybeDeleteAndRetry(cmd, *cc, *n, nil, err)
|
||||
if err != nil {
|
||||
|
|
|
@ -29,6 +29,7 @@ import (
|
|||
"github.com/docker/machine/libmachine/drivers"
|
||||
"github.com/docker/machine/libmachine/ssh"
|
||||
"github.com/spf13/cobra"
|
||||
"k8s.io/minikube/pkg/drivers/kic/oci"
|
||||
"k8s.io/minikube/pkg/minikube/command"
|
||||
"k8s.io/minikube/pkg/minikube/constants"
|
||||
"k8s.io/minikube/pkg/minikube/driver"
|
||||
|
@ -39,9 +40,27 @@ import (
|
|||
"k8s.io/minikube/pkg/minikube/shell"
|
||||
)
|
||||
|
||||
var podmanEnv1Tmpl = fmt.Sprintf("{{ .Prefix }}%s{{ .Delimiter }}{{ .VarlinkBridge }}{{ .Suffix }}{{ .Prefix }}%s{{ .Delimiter }}{{ .MinikubePodmanProfile }}{{ .Suffix }}{{ .UsageHint }}", constants.PodmanVarlinkBridgeEnv, constants.MinikubeActivePodmanEnv)
|
||||
var podmanEnv1Tmpl = fmt.Sprintf(
|
||||
"{{ .Prefix }}%s{{ .Delimiter }}{{ .VarlinkBridge }}{{ .Suffix }}"+
|
||||
"{{ .Prefix }}%s{{ .Delimiter }}{{ .MinikubePodmanProfile }}{{ .Suffix }}"+
|
||||
"{{ .UsageHint }}",
|
||||
constants.PodmanVarlinkBridgeEnv,
|
||||
constants.MinikubeActivePodmanEnv)
|
||||
|
||||
var podmanEnv2Tmpl = fmt.Sprintf("{{ .Prefix }}%s{{ .Delimiter }}{{ .ContainerHost }}{{ .Suffix }}{{ if .ContainerSSHKey }}{{ .Prefix }}%s{{ .Delimiter }}{{ .ContainerSSHKey}}{{ .Suffix }}{{ end }}{{ .Prefix }}%s{{ .Delimiter }}{{ .MinikubePodmanProfile }}{{ .Suffix }}{{ .UsageHint }}", constants.PodmanContainerHostEnv, constants.PodmanContainerSSHKeyEnv, constants.MinikubeActivePodmanEnv)
|
||||
var podmanEnv2Tmpl = fmt.Sprintf(
|
||||
"{{ .Prefix }}%s{{ .Delimiter }}{{ .ContainerHost }}{{ .Suffix }}"+
|
||||
"{{ if .ContainerSSHKey }}"+
|
||||
"{{ .Prefix }}%s{{ .Delimiter }}{{ .ContainerSSHKey}}{{ .Suffix }}"+
|
||||
"{{ end }}"+
|
||||
"{{ if .ExistingContainerHost }}"+
|
||||
"{{ .Prefix }}%s{{ .Delimiter }}{{ .ExistingContainerHost }}{{ .Suffix }}"+
|
||||
"{{ end }}"+
|
||||
"{{ .Prefix }}%s{{ .Delimiter }}{{ .MinikubePodmanProfile }}{{ .Suffix }}"+
|
||||
"{{ .UsageHint }}",
|
||||
constants.PodmanContainerHostEnv,
|
||||
constants.PodmanContainerSSHKeyEnv,
|
||||
constants.ExistingContainerHostEnv,
|
||||
constants.MinikubeActivePodmanEnv)
|
||||
|
||||
// PodmanShellConfig represents the shell config for Podman
|
||||
type PodmanShellConfig struct {
|
||||
|
@ -50,6 +69,8 @@ type PodmanShellConfig struct {
|
|||
ContainerHost string
|
||||
ContainerSSHKey string
|
||||
MinikubePodmanProfile string
|
||||
|
||||
ExistingContainerHost string
|
||||
}
|
||||
|
||||
var podmanUnset bool
|
||||
|
@ -65,6 +86,9 @@ func podmanShellCfgSet(ec PodmanEnvConfig, envMap map[string]string) *PodmanShel
|
|||
s.VarlinkBridge = envMap[constants.PodmanVarlinkBridgeEnv]
|
||||
s.ContainerHost = envMap[constants.PodmanContainerHostEnv]
|
||||
s.ContainerSSHKey = envMap[constants.PodmanContainerSSHKeyEnv]
|
||||
|
||||
s.ExistingContainerHost = envMap[constants.ExistingContainerHostEnv]
|
||||
|
||||
s.MinikubePodmanProfile = envMap[constants.MinikubeActivePodmanEnv]
|
||||
|
||||
return s
|
||||
|
@ -259,6 +283,13 @@ func podmanEnvVars(ec PodmanEnvConfig) map[string]string {
|
|||
for k, v := range env0 {
|
||||
env[k] = v
|
||||
}
|
||||
if os.Getenv(constants.MinikubeActivePodmanEnv) == "" {
|
||||
e := constants.PodmanContainerHostEnv
|
||||
if v := oci.InitialEnv(e); v != "" {
|
||||
key := constants.ExistingContainerHostEnv
|
||||
env[key] = v
|
||||
}
|
||||
}
|
||||
return env
|
||||
}
|
||||
|
||||
|
|
|
@ -20,18 +20,31 @@ import (
|
|||
"path/filepath"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"k8s.io/minikube/pkg/minikube/driver"
|
||||
"k8s.io/minikube/pkg/minikube/exit"
|
||||
"k8s.io/minikube/pkg/minikube/localpath"
|
||||
"k8s.io/minikube/pkg/minikube/mustload"
|
||||
"k8s.io/minikube/pkg/minikube/node"
|
||||
"k8s.io/minikube/pkg/minikube/out"
|
||||
"k8s.io/minikube/pkg/minikube/reason"
|
||||
)
|
||||
|
||||
// sshKeyCmd represents the sshKey command
|
||||
var sshKeyCmd = &cobra.Command{
|
||||
Use: "ssh-key",
|
||||
Short: "Retrieve the ssh identity key path of the specified cluster",
|
||||
Long: "Retrieve the ssh identity key path of the specified cluster.",
|
||||
Short: "Retrieve the ssh identity key path of the specified node",
|
||||
Long: "Retrieve the ssh identity key path of the specified node, and writes it to STDOUT.",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
_, cc := mustload.Partial(ClusterFlagValue())
|
||||
out.Ln(filepath.Join(localpath.MiniPath(), "machines", cc.Name, "id_rsa"))
|
||||
n, _, err := node.Retrieve(*cc, nodeName)
|
||||
if err != nil {
|
||||
exit.Error(reason.GuestNodeRetrieve, "retrieving node", err)
|
||||
}
|
||||
|
||||
out.Ln(filepath.Join(localpath.MiniPath(), "machines", driver.MachineName(*cc, *n), "id_rsa"))
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
sshKeyCmd.Flags().StringVarP(&nodeName, "node", "n", "", "The node to get ssh-key path. Defaults to the primary control plane.")
|
||||
}
|
||||
|
|
|
@ -403,6 +403,10 @@ func warnAboutMultiNode() {
|
|||
out.Step(style.Documentation, "To track progress on multi-node clusters, see https://github.com/kubernetes/minikube/issues/7538.")
|
||||
}
|
||||
|
||||
func warnAboutMultiNodeCNI() {
|
||||
out.WarningT("Cluster was created without any CNI, adding node to it might cause broken network.")
|
||||
}
|
||||
|
||||
func updateDriver(driverName string) {
|
||||
v, err := version.GetSemverVersion()
|
||||
if err != nil {
|
||||
|
@ -797,12 +801,19 @@ func validateUser(drvName string) {
|
|||
|
||||
useForce := viper.GetBool(force)
|
||||
|
||||
if driver.NeedsRoot(drvName) && u.Uid != "0" && !useForce {
|
||||
exit.Message(reason.DrvNeedsRoot, `The "{{.driver_name}}" driver requires root privileges. Please run minikube using 'sudo -E minikube start --driver={{.driver_name}}'.`, out.V{"driver_name": drvName})
|
||||
// None driver works with root and without root on Linux
|
||||
if runtime.GOOS == "linux" && drvName == driver.None {
|
||||
if !viper.GetBool(interactive) {
|
||||
test := exec.Command("sudo", "-n", "echo", "-n")
|
||||
if err := test.Run(); err != nil {
|
||||
exit.Message(reason.DrvNeedsRoot, `sudo requires a password, and --interactive=false`)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// If root is required, or we are not root, exit early
|
||||
if driver.NeedsRoot(drvName) || u.Uid != "0" {
|
||||
// If we are not root, exit early
|
||||
if u.Uid != "0" {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -139,7 +139,7 @@ func initMinikubeFlags() {
|
|||
startCmd.Flags().String(containerRuntime, "docker", fmt.Sprintf("The container runtime to be used (%s).", strings.Join(cruntime.ValidRuntimes(), ", ")))
|
||||
startCmd.Flags().Bool(createMount, false, "This will start the mount daemon and automatically mount files into minikube.")
|
||||
startCmd.Flags().String(mountString, constants.DefaultMountDir+":/minikube-host", "The argument to pass the minikube mount command on start.")
|
||||
startCmd.Flags().StringArrayVar(&config.AddonList, "addons", nil, "Enable addons. see `minikube addons list` for a list of valid addon names.")
|
||||
startCmd.Flags().StringSliceVar(&config.AddonList, "addons", nil, "Enable addons. see `minikube addons list` for a list of valid addon names.")
|
||||
startCmd.Flags().String(criSocket, "", "The cri socket path to be used.")
|
||||
startCmd.Flags().String(networkPlugin, "", "Kubelet network plug-in to use (default: auto)")
|
||||
startCmd.Flags().Bool(enableDefaultCNI, false, "DEPRECATED: Replaced by --cni=bridge")
|
||||
|
@ -354,6 +354,7 @@ func generateClusterConfig(cmd *cobra.Command, existing *config.ClusterConfig, k
|
|||
CNI: chosenCNI,
|
||||
NodePort: viper.GetInt(apiServerPort),
|
||||
},
|
||||
MultiNodeRequested: viper.GetInt(nodes) > 1,
|
||||
}
|
||||
cc.VerifyComponents = interpretWaitFlag(*cmd)
|
||||
if viper.GetBool(createMount) && driver.IsKIC(drvName) {
|
||||
|
@ -620,6 +621,10 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing *config.ClusterC
|
|||
cc.KubernetesConfig.ImageRepository = viper.GetString(imageRepository)
|
||||
}
|
||||
|
||||
if cmd.Flags().Changed("extra-config") {
|
||||
cc.KubernetesConfig.ExtraOptions = config.ExtraOptions
|
||||
}
|
||||
|
||||
if cmd.Flags().Changed(enableDefaultCNI) && !cmd.Flags().Changed(cniFlag) {
|
||||
if viper.GetBool(enableDefaultCNI) {
|
||||
klog.Errorf("Found deprecated --enable-default-cni flag, setting --cni=bridge")
|
||||
|
|
|
@ -135,6 +135,7 @@ type Status struct {
|
|||
APIServer string
|
||||
Kubeconfig string
|
||||
Worker bool
|
||||
TimeToStop string
|
||||
}
|
||||
|
||||
// ClusterState holds a cluster state representation
|
||||
|
@ -142,6 +143,7 @@ type ClusterState struct {
|
|||
BaseState
|
||||
|
||||
BinaryVersion string
|
||||
TimeToStop string
|
||||
Components map[string]BaseState
|
||||
Nodes []NodeState
|
||||
}
|
||||
|
@ -180,6 +182,7 @@ host: {{.Host}}
|
|||
kubelet: {{.Kubelet}}
|
||||
apiserver: {{.APIServer}}
|
||||
kubeconfig: {{.Kubeconfig}}
|
||||
timeToStop: {{.TimeToStop}}
|
||||
|
||||
`
|
||||
workerStatusFormat = `{{.Name}}
|
||||
|
@ -307,6 +310,7 @@ func nodeStatus(api libmachine.API, cc config.ClusterConfig, n config.Node) (*St
|
|||
Kubelet: Nonexistent,
|
||||
Kubeconfig: Nonexistent,
|
||||
Worker: !controlPlane,
|
||||
TimeToStop: Nonexistent,
|
||||
}
|
||||
|
||||
hs, err := machine.Status(api, name)
|
||||
|
@ -366,7 +370,10 @@ func nodeStatus(api libmachine.API, cc config.ClusterConfig, n config.Node) (*St
|
|||
|
||||
stk := kverify.ServiceStatus(cr, "kubelet")
|
||||
st.Kubelet = stk.String()
|
||||
|
||||
if cc.ScheduledStop != nil {
|
||||
initiationTime := time.Unix(cc.ScheduledStop.InitiationTime, 0)
|
||||
st.TimeToStop = time.Until(initiationTime.Add(cc.ScheduledStop.Duration)).String()
|
||||
}
|
||||
// Early exit for worker nodes
|
||||
if !controlPlane {
|
||||
return st, nil
|
||||
|
@ -478,6 +485,7 @@ func clusterState(sts []*Status) ClusterState {
|
|||
statusName = sts[0].Host
|
||||
}
|
||||
sc := statusCode(statusName)
|
||||
|
||||
cs := ClusterState{
|
||||
BinaryVersion: version.GetVersion(),
|
||||
|
||||
|
@ -488,8 +496,10 @@ func clusterState(sts []*Status) ClusterState {
|
|||
StatusDetail: codeDetails[sc],
|
||||
},
|
||||
|
||||
TimeToStop: sts[0].TimeToStop,
|
||||
|
||||
Components: map[string]BaseState{
|
||||
"kubeconfig": {Name: "kubeconfig", StatusCode: statusCode(sts[0].Kubeconfig)},
|
||||
"kubeconfig": {Name: "kubeconfig", StatusCode: statusCode(sts[0].Kubeconfig), StatusName: codeNames[statusCode(sts[0].Kubeconfig)]},
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -51,18 +51,18 @@ func TestStatusText(t *testing.T) {
|
|||
}{
|
||||
{
|
||||
name: "ok",
|
||||
state: &Status{Name: "minikube", Host: "Running", Kubelet: "Running", APIServer: "Running", Kubeconfig: Configured},
|
||||
want: "minikube\ntype: Control Plane\nhost: Running\nkubelet: Running\napiserver: Running\nkubeconfig: Configured\n\n",
|
||||
state: &Status{Name: "minikube", Host: "Running", Kubelet: "Running", APIServer: "Running", Kubeconfig: Configured, TimeToStop: "10m"},
|
||||
want: "minikube\ntype: Control Plane\nhost: Running\nkubelet: Running\napiserver: Running\nkubeconfig: Configured\ntimeToStop: 10m\n\n",
|
||||
},
|
||||
{
|
||||
name: "paused",
|
||||
state: &Status{Name: "minikube", Host: "Running", Kubelet: "Stopped", APIServer: "Paused", Kubeconfig: Configured},
|
||||
want: "minikube\ntype: Control Plane\nhost: Running\nkubelet: Stopped\napiserver: Paused\nkubeconfig: Configured\n\n",
|
||||
state: &Status{Name: "minikube", Host: "Running", Kubelet: "Stopped", APIServer: "Paused", Kubeconfig: Configured, TimeToStop: Nonexistent},
|
||||
want: "minikube\ntype: Control Plane\nhost: Running\nkubelet: Stopped\napiserver: Paused\nkubeconfig: Configured\ntimeToStop: Nonexistent\n\n",
|
||||
},
|
||||
{
|
||||
name: "down",
|
||||
state: &Status{Name: "minikube", Host: "Stopped", Kubelet: "Stopped", APIServer: "Stopped", Kubeconfig: Misconfigured},
|
||||
want: "minikube\ntype: Control Plane\nhost: Stopped\nkubelet: Stopped\napiserver: Stopped\nkubeconfig: Misconfigured\n\n\nWARNING: Your kubectl is pointing to stale minikube-vm.\nTo fix the kubectl context, run `minikube update-context`\n",
|
||||
state: &Status{Name: "minikube", Host: "Stopped", Kubelet: "Stopped", APIServer: "Stopped", Kubeconfig: Misconfigured, TimeToStop: Nonexistent},
|
||||
want: "minikube\ntype: Control Plane\nhost: Stopped\nkubelet: Stopped\napiserver: Stopped\nkubeconfig: Misconfigured\ntimeToStop: Nonexistent\n\n\nWARNING: Your kubectl is pointing to stale minikube-vm.\nTo fix the kubectl context, run `minikube update-context`\n",
|
||||
},
|
||||
}
|
||||
for _, tc := range tests {
|
||||
|
@ -86,9 +86,9 @@ func TestStatusJSON(t *testing.T) {
|
|||
name string
|
||||
state *Status
|
||||
}{
|
||||
{"ok", &Status{Host: "Running", Kubelet: "Running", APIServer: "Running", Kubeconfig: Configured}},
|
||||
{"paused", &Status{Host: "Running", Kubelet: "Stopped", APIServer: "Paused", Kubeconfig: Configured}},
|
||||
{"down", &Status{Host: "Stopped", Kubelet: "Stopped", APIServer: "Stopped", Kubeconfig: Misconfigured}},
|
||||
{"ok", &Status{Host: "Running", Kubelet: "Running", APIServer: "Running", Kubeconfig: Configured, TimeToStop: "10m"}},
|
||||
{"paused", &Status{Host: "Running", Kubelet: "Stopped", APIServer: "Paused", Kubeconfig: Configured, TimeToStop: Nonexistent}},
|
||||
{"down", &Status{Host: "Stopped", Kubelet: "Stopped", APIServer: "Stopped", Kubeconfig: Misconfigured, TimeToStop: Nonexistent}},
|
||||
}
|
||||
for _, tc := range tests {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
|
|
|
@ -65,6 +65,9 @@ spec:
|
|||
- --validating-webhook=:8443
|
||||
- --validating-webhook-certificate=/usr/local/certificates/cert
|
||||
- --validating-webhook-key=/usr/local/certificates/key
|
||||
{{if .CustomIngressCert}}
|
||||
- --default-ssl-certificate={{ .CustomIngressCert }}
|
||||
{{end}}
|
||||
securityContext:
|
||||
capabilities:
|
||||
drop:
|
||||
|
|
|
@ -1 +1 @@
|
|||
docker 1000 docker 1000 =tcuser /home/docker /bin/bash wheel,vboxsf -
|
||||
docker 1000 docker 1000 =tcuser /home/docker /bin/bash wheel,vboxsf,podman -
|
||||
|
|
|
@ -21,7 +21,7 @@ BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/minikube/patche
|
|||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_LATEST_VERSION=n
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.150"
|
||||
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.157"
|
||||
BR2_LINUX_KERNEL_BZIMAGE=y
|
||||
BR2_LINUX_KERNEL_LZ4=y
|
||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
menu "System tools"
|
||||
source "$BR2_EXTERNAL_MINIKUBE_PATH/package/runc-master/Config.in"
|
||||
source "$BR2_EXTERNAL_MINIKUBE_PATH/package/podman/Config.in"
|
||||
source "$BR2_EXTERNAL_MINIKUBE_PATH/package/varlink/Config.in"
|
||||
source "$BR2_EXTERNAL_MINIKUBE_PATH/package/conmon/Config.in"
|
||||
source "$BR2_EXTERNAL_MINIKUBE_PATH/package/crio-bin/Config.in"
|
||||
source "$BR2_EXTERNAL_MINIKUBE_PATH/package/crictl-bin/Config.in"
|
||||
|
|
|
@ -105,6 +105,10 @@ if [ -n "$BOOT2DOCKER_DATA" ]; then
|
|||
mkdir -p /var/lib/containerd
|
||||
mount --bind /mnt/$PARTNAME/var/lib/containerd /var/lib/containerd
|
||||
|
||||
mkdir -p /mnt/$PARTNAME/var/lib/buildkit
|
||||
mkdir -p /var/lib/buildkit
|
||||
mount --bind /mnt/$PARTNAME/var/lib/buildkit /var/lib/buildkit
|
||||
|
||||
mkdir -p /mnt/$PARTNAME/var/lib/containers
|
||||
mkdir -p /var/lib/containers
|
||||
mount --bind /mnt/$PARTNAME/var/lib/containers /var/lib/containers
|
||||
|
|
|
@ -1 +1,3 @@
|
|||
sha256 33bcaa49b31bc3a277ac75d32fce3f5442d39f53a1799b8624e985279b579f74 buildkit-v0.7.2.linux-amd64.tar.gz
|
||||
sha256 28005748fae926edf8c93b7cb1df53ec49df65dec67105b94e7fb9c513fa78a4 buildkit-v0.8.0.linux-amd64.tar.gz
|
||||
sha256 e0438a701d4192f80b2211b0a333984ee4f097c547904e40fc941daad57fe153 buildkit-v0.8.1.linux-amd64.tar.gz
|
||||
|
|
|
@ -4,17 +4,24 @@
|
|||
#
|
||||
################################################################################
|
||||
|
||||
BUILDKIT_BIN_VERSION = v0.7.2
|
||||
BUILDKIT_BIN_VERSION = v0.8.1
|
||||
BUILDKIT_BIN_COMMIT = 8142d66b5ebde79846b869fba30d9d30633e74aa
|
||||
BUILDKIT_BIN_SITE = https://github.com/moby/buildkit/releases/download/$(BUILDKIT_BIN_VERSION)
|
||||
BUILDKIT_BIN_SOURCE = buildkit-$(BUILDKIT_BIN_VERSION).linux-amd64.tar.gz
|
||||
|
||||
# https://github.com/opencontainers/runc.git
|
||||
BUILDKIT_RUNC_VERSION = 939ad4e3fcfa1ab531458355a73688c6f4ee5003
|
||||
|
||||
define BUILDKIT_BIN_INSTALL_TARGET_CMDS
|
||||
$(INSTALL) -D -m 0755 \
|
||||
$(@D)/buildctl \
|
||||
$(TARGET_DIR)/usr/bin/buildctl
|
||||
$(TARGET_DIR)/usr/bin
|
||||
$(INSTALL) -D -m 0755 \
|
||||
$(@D)/buildkit-runc \
|
||||
$(TARGET_DIR)/usr/sbin
|
||||
$(INSTALL) -D -m 0755 \
|
||||
$(@D)/buildkitd \
|
||||
$(TARGET_DIR)/usr/sbin/buildkitd
|
||||
$(TARGET_DIR)/usr/sbin
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
||||
|
|
|
@ -1,14 +1,26 @@
|
|||
version = 2
|
||||
root = "/var/lib/containerd"
|
||||
state = "/run/containerd"
|
||||
plugin_dir = ""
|
||||
disabled_plugins = []
|
||||
required_plugins = []
|
||||
oom_score = 0
|
||||
|
||||
[grpc]
|
||||
address = "/run/containerd/containerd.sock"
|
||||
tcp_address = ""
|
||||
tcp_tls_cert = ""
|
||||
tcp_tls_key = ""
|
||||
uid = 0
|
||||
gid = 0
|
||||
max_recv_message_size = 16777216
|
||||
max_send_message_size = 16777216
|
||||
|
||||
[ttrpc]
|
||||
address = ""
|
||||
uid = 0
|
||||
gid = 0
|
||||
|
||||
[debug]
|
||||
address = ""
|
||||
uid = 0
|
||||
|
@ -22,48 +34,100 @@ oom_score = 0
|
|||
[cgroup]
|
||||
path = ""
|
||||
|
||||
[timeouts]
|
||||
"io.containerd.timeout.shim.cleanup" = "5s"
|
||||
"io.containerd.timeout.shim.load" = "5s"
|
||||
"io.containerd.timeout.shim.shutdown" = "3s"
|
||||
"io.containerd.timeout.task.state" = "2s"
|
||||
|
||||
[plugins]
|
||||
[plugins.cgroups]
|
||||
no_prometheus = false
|
||||
[plugins.cri]
|
||||
stream_server_address = ""
|
||||
stream_server_port = "10010"
|
||||
enable_selinux = false
|
||||
sandbox_image = "k8s.gcr.io/pause:3.1"
|
||||
stats_collect_period = 10
|
||||
systemd_cgroup = true
|
||||
enable_tls_streaming = false
|
||||
max_container_log_line_size = 16384
|
||||
[plugins.cri.containerd]
|
||||
snapshotter = "overlayfs"
|
||||
no_pivot = false
|
||||
[plugins.cri.containerd.default_runtime]
|
||||
runtime_type = "io.containerd.runtime.v1.linux"
|
||||
runtime_engine = ""
|
||||
runtime_root = ""
|
||||
[plugins.cri.containerd.untrusted_workload_runtime]
|
||||
runtime_type = ""
|
||||
runtime_engine = ""
|
||||
runtime_root = ""
|
||||
[plugins.cri.cni]
|
||||
bin_dir = "/opt/cni/bin"
|
||||
conf_dir = "/etc/cni/net.d"
|
||||
conf_template = ""
|
||||
[plugins.cri.registry]
|
||||
[plugins.cri.registry.mirrors]
|
||||
[plugins.cri.registry.mirrors."docker.io"]
|
||||
endpoint = ["https://registry-1.docker.io"]
|
||||
[plugins.diff-service]
|
||||
default = ["walking"]
|
||||
[plugins.linux]
|
||||
shim = "containerd-shim"
|
||||
runtime = "runc"
|
||||
runtime_root = ""
|
||||
no_shim = false
|
||||
shim_debug = false
|
||||
[plugins.scheduler]
|
||||
[plugins."io.containerd.gc.v1.scheduler"]
|
||||
pause_threshold = 0.02
|
||||
deletion_threshold = 0
|
||||
mutation_threshold = 100
|
||||
schedule_delay = "0s"
|
||||
startup_delay = "100ms"
|
||||
[plugins."io.containerd.grpc.v1.cri"]
|
||||
disable_tcp_service = true
|
||||
stream_server_address = ""
|
||||
stream_server_port = "10010"
|
||||
stream_idle_timeout = "4h0m0s"
|
||||
enable_selinux = false
|
||||
selinux_category_range = 1024
|
||||
sandbox_image = "k8s.gcr.io/pause:3.2"
|
||||
stats_collect_period = 10
|
||||
systemd_cgroup = true
|
||||
enable_tls_streaming = false
|
||||
max_container_log_line_size = 16384
|
||||
disable_cgroup = false
|
||||
disable_apparmor = false
|
||||
restrict_oom_score_adj = false
|
||||
max_concurrent_downloads = 3
|
||||
disable_proc_mount = false
|
||||
unset_seccomp_profile = ""
|
||||
tolerate_missing_hugetlb_controller = true
|
||||
disable_hugetlb_controller = true
|
||||
ignore_image_defined_volumes = false
|
||||
[plugins."io.containerd.grpc.v1.cri".containerd]
|
||||
snapshotter = "overlayfs"
|
||||
default_runtime_name = "runc"
|
||||
no_pivot = false
|
||||
disable_snapshot_annotations = true
|
||||
discard_unpacked_layers = false
|
||||
[plugins."io.containerd.grpc.v1.cri".containerd.default_runtime]
|
||||
runtime_type = ""
|
||||
runtime_engine = ""
|
||||
runtime_root = ""
|
||||
privileged_without_host_devices = false
|
||||
base_runtime_spec = ""
|
||||
[plugins."io.containerd.grpc.v1.cri".containerd.untrusted_workload_runtime]
|
||||
runtime_type = ""
|
||||
runtime_engine = ""
|
||||
runtime_root = ""
|
||||
privileged_without_host_devices = false
|
||||
base_runtime_spec = ""
|
||||
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
|
||||
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
|
||||
runtime_type = "io.containerd.runc.v2"
|
||||
runtime_engine = ""
|
||||
runtime_root = ""
|
||||
privileged_without_host_devices = false
|
||||
base_runtime_spec = ""
|
||||
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
|
||||
[plugins."io.containerd.grpc.v1.cri".cni]
|
||||
bin_dir = "/opt/cni/bin"
|
||||
conf_dir = "/etc/cni/net.d"
|
||||
max_conf_num = 1
|
||||
conf_template = ""
|
||||
[plugins."io.containerd.grpc.v1.cri".registry]
|
||||
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
|
||||
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
|
||||
endpoint = ["https://registry-1.docker.io"]
|
||||
[plugins."io.containerd.grpc.v1.cri".image_decryption]
|
||||
key_model = ""
|
||||
[plugins."io.containerd.grpc.v1.cri".x509_key_pair_streaming]
|
||||
tls_cert_file = ""
|
||||
tls_key_file = ""
|
||||
[plugins."io.containerd.internal.v1.opt"]
|
||||
path = "/opt/containerd"
|
||||
[plugins."io.containerd.internal.v1.restart"]
|
||||
interval = "10s"
|
||||
[plugins."io.containerd.metadata.v1.bolt"]
|
||||
content_sharing_policy = "shared"
|
||||
[plugins."io.containerd.monitor.v1.cgroups"]
|
||||
no_prometheus = false
|
||||
[plugins."io.containerd.runtime.v1.linux"]
|
||||
shim = "containerd-shim"
|
||||
runtime = "runc"
|
||||
runtime_root = ""
|
||||
no_shim = false
|
||||
shim_debug = false
|
||||
[plugins."io.containerd.runtime.v2.task"]
|
||||
platforms = ["linux/amd64"]
|
||||
[plugins."io.containerd.service.v1.diff-service"]
|
||||
default = ["walking"]
|
||||
[plugins."io.containerd.snapshotter.v1.devmapper"]
|
||||
root_path = ""
|
||||
pool_name = ""
|
||||
base_image_size = ""
|
||||
async_remove = false
|
||||
|
|
|
@ -1,14 +1,26 @@
|
|||
version = 2
|
||||
root = "/var/lib/containerd"
|
||||
state = "/run/containerd"
|
||||
plugin_dir = ""
|
||||
disabled_plugins = []
|
||||
required_plugins = []
|
||||
oom_score = 0
|
||||
|
||||
[grpc]
|
||||
address = "/run/containerd/containerd.sock"
|
||||
tcp_address = ""
|
||||
tcp_tls_cert = ""
|
||||
tcp_tls_key = ""
|
||||
uid = 0
|
||||
gid = 0
|
||||
max_recv_message_size = 16777216
|
||||
max_send_message_size = 16777216
|
||||
|
||||
[ttrpc]
|
||||
address = ""
|
||||
uid = 0
|
||||
gid = 0
|
||||
|
||||
[debug]
|
||||
address = ""
|
||||
uid = 0
|
||||
|
@ -22,56 +34,100 @@ oom_score = 0
|
|||
[cgroup]
|
||||
path = ""
|
||||
|
||||
[timeouts]
|
||||
"io.containerd.timeout.shim.cleanup" = "5s"
|
||||
"io.containerd.timeout.shim.load" = "5s"
|
||||
"io.containerd.timeout.shim.shutdown" = "3s"
|
||||
"io.containerd.timeout.task.state" = "2s"
|
||||
|
||||
[plugins]
|
||||
[plugins.cgroups]
|
||||
no_prometheus = false
|
||||
[plugins.cri]
|
||||
stream_server_address = "127.0.0.1"
|
||||
stream_server_port = "0"
|
||||
enable_selinux = false
|
||||
sandbox_image = "k8s.gcr.io/pause:3.1"
|
||||
stats_collect_period = 10
|
||||
systemd_cgroup = false
|
||||
enable_tls_streaming = false
|
||||
max_container_log_line_size = 16384
|
||||
disable_proc_mount = false
|
||||
[plugins.cri.containerd]
|
||||
snapshotter = "overlayfs"
|
||||
no_pivot = false
|
||||
[plugins.cri.containerd.default_runtime]
|
||||
runtime_type = "io.containerd.runtime.v1.linux"
|
||||
runtime_engine = ""
|
||||
runtime_root = ""
|
||||
[plugins.cri.containerd.untrusted_workload_runtime]
|
||||
runtime_type = ""
|
||||
runtime_engine = ""
|
||||
runtime_root = ""
|
||||
[plugins.cri.cni]
|
||||
bin_dir = "/opt/cni/bin"
|
||||
conf_dir = "/etc/cni/net.d"
|
||||
conf_template = ""
|
||||
[plugins.cri.registry]
|
||||
[plugins.cri.registry.mirrors]
|
||||
[plugins.cri.registry.mirrors."docker.io"]
|
||||
endpoint = ["https://registry-1.docker.io"]
|
||||
[plugins.cri.x509_key_pair_streaming]
|
||||
tls_cert_file = ""
|
||||
tls_key_file = ""
|
||||
[plugins.diff-service]
|
||||
default = ["walking"]
|
||||
[plugins.linux]
|
||||
shim = "containerd-shim"
|
||||
runtime = "runc"
|
||||
runtime_root = ""
|
||||
no_shim = false
|
||||
shim_debug = false
|
||||
[plugins.opt]
|
||||
path = "/opt/containerd"
|
||||
[plugins.restart]
|
||||
interval = "10s"
|
||||
[plugins.scheduler]
|
||||
[plugins."io.containerd.gc.v1.scheduler"]
|
||||
pause_threshold = 0.02
|
||||
deletion_threshold = 0
|
||||
mutation_threshold = 100
|
||||
schedule_delay = "0s"
|
||||
startup_delay = "100ms"
|
||||
[plugins."io.containerd.grpc.v1.cri"]
|
||||
disable_tcp_service = true
|
||||
stream_server_address = "127.0.0.1"
|
||||
stream_server_port = "0"
|
||||
stream_idle_timeout = "4h0m0s"
|
||||
enable_selinux = false
|
||||
selinux_category_range = 1024
|
||||
sandbox_image = "k8s.gcr.io/pause:3.2"
|
||||
stats_collect_period = 10
|
||||
systemd_cgroup = false
|
||||
enable_tls_streaming = false
|
||||
max_container_log_line_size = 16384
|
||||
disable_cgroup = false
|
||||
disable_apparmor = false
|
||||
restrict_oom_score_adj = false
|
||||
max_concurrent_downloads = 3
|
||||
disable_proc_mount = false
|
||||
unset_seccomp_profile = ""
|
||||
tolerate_missing_hugetlb_controller = true
|
||||
disable_hugetlb_controller = true
|
||||
ignore_image_defined_volumes = false
|
||||
[plugins."io.containerd.grpc.v1.cri".containerd]
|
||||
snapshotter = "overlayfs"
|
||||
default_runtime_name = "runc"
|
||||
no_pivot = false
|
||||
disable_snapshot_annotations = true
|
||||
discard_unpacked_layers = false
|
||||
[plugins."io.containerd.grpc.v1.cri".containerd.default_runtime]
|
||||
runtime_type = ""
|
||||
runtime_engine = ""
|
||||
runtime_root = ""
|
||||
privileged_without_host_devices = false
|
||||
base_runtime_spec = ""
|
||||
[plugins."io.containerd.grpc.v1.cri".containerd.untrusted_workload_runtime]
|
||||
runtime_type = ""
|
||||
runtime_engine = ""
|
||||
runtime_root = ""
|
||||
privileged_without_host_devices = false
|
||||
base_runtime_spec = ""
|
||||
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
|
||||
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
|
||||
runtime_type = "io.containerd.runc.v2"
|
||||
runtime_engine = ""
|
||||
runtime_root = ""
|
||||
privileged_without_host_devices = false
|
||||
base_runtime_spec = ""
|
||||
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
|
||||
[plugins."io.containerd.grpc.v1.cri".cni]
|
||||
bin_dir = "/opt/cni/bin"
|
||||
conf_dir = "/etc/cni/net.d"
|
||||
max_conf_num = 1
|
||||
conf_template = ""
|
||||
[plugins."io.containerd.grpc.v1.cri".registry]
|
||||
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
|
||||
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
|
||||
endpoint = ["https://registry-1.docker.io"]
|
||||
[plugins."io.containerd.grpc.v1.cri".image_decryption]
|
||||
key_model = ""
|
||||
[plugins."io.containerd.grpc.v1.cri".x509_key_pair_streaming]
|
||||
tls_cert_file = ""
|
||||
tls_key_file = ""
|
||||
[plugins."io.containerd.internal.v1.opt"]
|
||||
path = "/opt/containerd"
|
||||
[plugins."io.containerd.internal.v1.restart"]
|
||||
interval = "10s"
|
||||
[plugins."io.containerd.metadata.v1.bolt"]
|
||||
content_sharing_policy = "shared"
|
||||
[plugins."io.containerd.monitor.v1.cgroups"]
|
||||
no_prometheus = false
|
||||
[plugins."io.containerd.runtime.v1.linux"]
|
||||
shim = "containerd-shim"
|
||||
runtime = "runc"
|
||||
runtime_root = ""
|
||||
no_shim = false
|
||||
shim_debug = false
|
||||
[plugins."io.containerd.runtime.v2.task"]
|
||||
platforms = ["linux/amd64"]
|
||||
[plugins."io.containerd.service.v1.diff-service"]
|
||||
default = ["walking"]
|
||||
[plugins."io.containerd.snapshotter.v1.devmapper"]
|
||||
root_path = ""
|
||||
pool_name = ""
|
||||
base_image_size = ""
|
||||
async_remove = false
|
||||
|
|
|
@ -6,3 +6,5 @@ sha256 a0965e1492fca558629826f1aa89a9675de3d451cec67540400b30c0bf6ac387 v1.2.10.
|
|||
sha256 318886ea1efdec36f088fd6a0a0fe2b2f0ebdfd0066bdb4bd284bad12abc0a41 v1.2.12.tar.gz
|
||||
sha256 0811057ab67b78ce911416e793edaeb14b3f1e105d67b8e67b6302e0eab572e4 v1.2.13.tar.gz
|
||||
sha256 d30d59e143697aa4f0960205b3f5ac59c573b332f20507740ef2dc0fb5ae8ded v1.3.7.tar.gz
|
||||
sha256 9244212589c84b12262769dca6fb985c0c680cb5259c8904b29c511d81fd62d0 v1.3.9.tar.gz
|
||||
sha256 bc6d9452c700af0ebc09c0da8ddba55be4c03ac8928e72ca92d98905800c8018 v1.4.3.tar.gz
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
# containerd
|
||||
#
|
||||
################################################################################
|
||||
CONTAINERD_BIN_VERSION = v1.3.7
|
||||
CONTAINERD_BIN_COMMIT = 8fba4e9a7d01810a393d5d25a3621dc101981175
|
||||
CONTAINERD_BIN_VERSION = v1.4.3
|
||||
CONTAINERD_BIN_COMMIT = 269548fa27e0089a8b8278fc4fc781d7f65a939b
|
||||
CONTAINERD_BIN_SITE = https://github.com/containerd/containerd/archive
|
||||
CONTAINERD_BIN_SOURCE = $(CONTAINERD_BIN_VERSION).tar.gz
|
||||
CONTAINERD_BIN_DEPENDENCIES = host-go libgpgme
|
||||
|
@ -40,6 +40,12 @@ define CONTAINERD_BIN_INSTALL_TARGET_CMDS
|
|||
$(INSTALL) -Dm755 \
|
||||
$(@D)/bin/containerd-shim \
|
||||
$(TARGET_DIR)/usr/bin
|
||||
$(INSTALL) -Dm755 \
|
||||
$(@D)/bin/containerd-shim-runc-v1 \
|
||||
$(TARGET_DIR)/usr/bin
|
||||
$(INSTALL) -Dm755 \
|
||||
$(@D)/bin/containerd-shim-runc-v2 \
|
||||
$(TARGET_DIR)/usr/bin
|
||||
$(INSTALL) -Dm755 \
|
||||
$(@D)/bin/ctr \
|
||||
$(TARGET_DIR)/usr/bin
|
||||
|
|
|
@ -3,3 +3,5 @@ sha256 9bdbea7a2b382494aff2ff014da328a042c5aba9096a7772e57fdf487e5a1d51 crictl-
|
|||
sha256 c3b71be1f363e16078b51334967348aab4f72f46ef64a61fe7754e029779d45a crictl-v1.15.0-linux-amd64.tar.gz
|
||||
sha256 19fed421710fccfe58f5573383bb137c19438a9056355556f1a15da8d23b3ad1 crictl-v1.16.1-linux-amd64.tar.gz
|
||||
sha256 7b72073797f638f099ed19550d52e9b9067672523fc51b746e65d7aa0bafa414 crictl-v1.17.0-linux-amd64.tar.gz
|
||||
sha256 876dd2b3d0d1c2590371f940fb1bf1fbd5f15aebfbe456703ee465d959700f4a crictl-v1.18.0-linux-amd64.tar.gz
|
||||
sha256 87d8ef70b61f2fe3d8b4a48f6f712fd798c6e293ed3723c1e4bbb5052098f0ae crictl-v1.19.0-linux-amd64.tar.gz
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#
|
||||
################################################################################
|
||||
|
||||
CRICTL_BIN_VERSION = v1.17.0
|
||||
CRICTL_BIN_VERSION = v1.19.0
|
||||
CRICTL_BIN_SITE = https://github.com/kubernetes-sigs/cri-tools/releases/download/$(CRICTL_BIN_VERSION)
|
||||
CRICTL_BIN_SOURCE = crictl-$(CRICTL_BIN_VERSION)-linux-amd64.tar.gz
|
||||
CRICTL_BIN_STRIP_COMPONENTS = 0
|
||||
|
|
|
@ -18,3 +18,4 @@ sha256 794ddc36c2a20fde91fc6cc2c6f02ebdaea85c69b51b67f3994090dbbdbc2a50 v1.18.1.
|
|||
sha256 25dc558fbabc987bd58c7eab5230121b258a7b0eb34a49dc6595f1c6f3969116 v1.18.2.tar.gz
|
||||
sha256 d5c6442e3990938badc966cdd1eb9ebe2fc11345452c233aa0d87ca38fbeed81 v1.18.3.tar.gz
|
||||
sha256 74a4e916acddc6cf47ab5752bdebb6732ce2c028505ef57b7edc21d2da9039b6 v1.18.4.tar.gz
|
||||
sha256 fc8a8e61375e3ce30563eeb0fd6534c4f48fc20300a72e6ff51cc99cb2703516 v1.19.0.tar.gz
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
#
|
||||
################################################################################
|
||||
|
||||
CRIO_BIN_VERSION = v1.18.4
|
||||
CRIO_BIN_COMMIT = aba91e59ec78e3299e443a7364e2cf8909af4606
|
||||
CRIO_BIN_VERSION = v1.19.0
|
||||
CRIO_BIN_COMMIT = 99c925bebdd9e392f2d575e25f2e6a1082e6c232
|
||||
CRIO_BIN_SITE = https://github.com/cri-o/cri-o/archive
|
||||
CRIO_BIN_SOURCE = $(CRIO_BIN_VERSION).tar.gz
|
||||
CRIO_BIN_DEPENDENCIES = host-go libgpgme
|
||||
|
|
|
@ -93,7 +93,8 @@ grpc_max_recv_msg_size = 16777216
|
|||
#]
|
||||
|
||||
# default_runtime is the _name_ of the OCI runtime to be used as the default.
|
||||
# The name is matched against the runtimes map below.
|
||||
# The name is matched against the runtimes map below. If this value is changed,
|
||||
# the corresponding existing entry from the runtimes map below will be ignored.
|
||||
default_runtime = "runc"
|
||||
|
||||
# If true, the runtime will not use pivot_root, but instead use MS_MOVE.
|
||||
|
@ -241,12 +242,15 @@ gid_mappings = ""
|
|||
# value is 30s, whereas lower values are not considered by CRI-O.
|
||||
ctr_stop_timeout = 30
|
||||
|
||||
# **DEPRECATED** this option is being replaced by manage_ns_lifecycle, which is described below.
|
||||
# manage_network_ns_lifecycle = false
|
||||
|
||||
# manage_ns_lifecycle determines whether we pin and remove namespaces
|
||||
# and manage their lifecycle
|
||||
manage_ns_lifecycle = false
|
||||
manage_ns_lifecycle = true
|
||||
|
||||
# drop_infra_ctr determines whether CRI-O drops the infra container
|
||||
# when a pod does not have a private PID namespace, and does not use
|
||||
# a kernel separating runtime (like kata).
|
||||
# It requires manage_ns_lifecycle to be true.
|
||||
drop_infra_ctr = false
|
||||
|
||||
# The directory where the state of the managed namespaces gets tracked.
|
||||
# Only used when manage_ns_lifecycle is true.
|
||||
|
@ -283,6 +287,10 @@ runtime_type = "oci"
|
|||
runtime_root = "/run/runc"
|
||||
|
||||
|
||||
# crun is a fast and lightweight fully featured OCI runtime and C library for
|
||||
# running containers
|
||||
#[crio.runtime.runtimes.crun]
|
||||
|
||||
# Kata Containers is an OCI runtime, where containers are run inside lightweight
|
||||
# VMs. Kata provides additional isolation towards the host, minimizing the host attack
|
||||
# surface and mitigating the consequences of containers breakout.
|
||||
|
@ -352,6 +360,8 @@ registries = [
|
|||
"docker.io"
|
||||
]
|
||||
|
||||
# Temporary directory to use for storing big files
|
||||
big_files_temporary_dir = ""
|
||||
|
||||
# The crio.network table containers settings pertaining to the management of
|
||||
# CNI plugins.
|
||||
|
@ -377,3 +387,6 @@ enable_metrics = true
|
|||
|
||||
# The port on which the metrics server will listen.
|
||||
metrics_port = 9090
|
||||
|
||||
# Local socket path to bind the metrics server to
|
||||
metrics_socket = ""
|
||||
|
|
|
@ -93,7 +93,8 @@ grpc_max_recv_msg_size = 16777216
|
|||
#]
|
||||
|
||||
# default_runtime is the _name_ of the OCI runtime to be used as the default.
|
||||
# The name is matched against the runtimes map below.
|
||||
# The name is matched against the runtimes map below. If this value is changed,
|
||||
# the corresponding existing entry from the runtimes map below will be ignored.
|
||||
default_runtime = "runc"
|
||||
|
||||
# If true, the runtime will not use pivot_root, but instead use MS_MOVE.
|
||||
|
@ -241,12 +242,15 @@ gid_mappings = ""
|
|||
# value is 30s, whereas lower values are not considered by CRI-O.
|
||||
ctr_stop_timeout = 30
|
||||
|
||||
# **DEPRECATED** this option is being replaced by manage_ns_lifecycle, which is described below.
|
||||
# manage_network_ns_lifecycle = false
|
||||
|
||||
# manage_ns_lifecycle determines whether we pin and remove namespaces
|
||||
# and manage their lifecycle
|
||||
manage_ns_lifecycle = false
|
||||
manage_ns_lifecycle = true
|
||||
|
||||
# drop_infra_ctr determines whether CRI-O drops the infra container
|
||||
# when a pod does not have a private PID namespace, and does not use
|
||||
# a kernel separating runtime (like kata).
|
||||
# It requires manage_ns_lifecycle to be true.
|
||||
drop_infra_ctr = false
|
||||
|
||||
# The directory where the state of the managed namespaces gets tracked.
|
||||
# Only used when manage_ns_lifecycle is true.
|
||||
|
@ -283,6 +287,10 @@ runtime_type = "oci"
|
|||
runtime_root = "/run/runc"
|
||||
|
||||
|
||||
# crun is a fast and lightweight fully featured OCI runtime and C library for
|
||||
# running containers
|
||||
#[crio.runtime.runtimes.crun]
|
||||
|
||||
# Kata Containers is an OCI runtime, where containers are run inside lightweight
|
||||
# VMs. Kata provides additional isolation towards the host, minimizing the host attack
|
||||
# surface and mitigating the consequences of containers breakout.
|
||||
|
@ -351,6 +359,8 @@ image_volumes = "mkdir"
|
|||
#registries = [
|
||||
# ]
|
||||
|
||||
# Temporary directory to use for storing big files
|
||||
big_files_temporary_dir = ""
|
||||
|
||||
# The crio.network table containers settings pertaining to the management of
|
||||
# CNI plugins.
|
||||
|
@ -376,3 +386,6 @@ enable_metrics = false
|
|||
|
||||
# The port on which the metrics server will listen.
|
||||
metrics_port = 9090
|
||||
|
||||
# Local socket path to bind the metrics server to
|
||||
metrics_socket = ""
|
||||
|
|
|
@ -22,3 +22,6 @@ sha256 7c1576a0bc749418d1423d2b78c8920b5d61f849789904612862dd118742e82b docker-
|
|||
sha256 0f4336378f61ed73ed55a356ac19e46699a995f2aff34323ba5874d131548b9e docker-19.03.11.tgz
|
||||
sha256 88de1b87b8a2582fe827154899475a72fb707c5793cfb39d2a24813ba1f31197 docker-19.03.12.tgz
|
||||
sha256 ddb13aff1fcdcceb710bf71a210169b9c1abfd7420eeaf42cf7975f8fae2fcc8 docker-19.03.13.tgz
|
||||
sha256 9f1ec28e357a8f18e9561129239caf9c0807d74756e21cc63637c7fdeaafe847 docker-19.03.14.tgz
|
||||
sha256 02936a3585f12f13b21b95e02ae722d74eaf1870b536997e914659ee307b2ac4 docker-20.10.0.tgz
|
||||
sha256 8790f3b94ee07ca69a9fdbd1310cbffc729af0a07e5bf9f34a79df1e13d2e50e docker-20.10.1.tgz
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#
|
||||
################################################################################
|
||||
|
||||
DOCKER_BIN_VERSION = 19.03.13
|
||||
DOCKER_BIN_VERSION = 20.10.1
|
||||
DOCKER_BIN_SITE = https://download.docker.com/linux/static/stable/x86_64
|
||||
DOCKER_BIN_SOURCE = docker-$(DOCKER_BIN_VERSION).tgz
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[Socket]
|
||||
SocketMode=0660
|
||||
SocketUser=root
|
||||
SocketGroup=podman
|
|
@ -0,0 +1 @@
|
|||
d /run/podman 0770 root podman
|
|
@ -1 +1,4 @@
|
|||
sha256 a16846fe076aaf2c9ea2e854c3baba9fb838d916be7fb4b5be332e6c92d907d4 v1.9.3.tar.gz
|
||||
sha256 5ebaa6e0dbd7fd1863f70d2bc71dc8a94e195c3339c17e3cac4560c9ec5747f8 v2.1.1.tar.gz
|
||||
sha256 ec5473e51fa28f29af323473fc484f742dc7df23d06d8ba9f217f13382893a71 v2.2.0.tar.gz
|
||||
sha256 bd86b181251e2308cb52f18410fb52d89df7f130cecf0298bbf9a848fe7daf60 v2.2.1.tar.gz
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
PODMAN_DUMMY = DUMMY
|
||||
PODMAN_VERSION = v1.9.3
|
||||
PODMAN_COMMIT = 5d44534fff6877b1cb15b760242279ae6293154c
|
||||
PODMAN_VERSION = v2.2.1
|
||||
PODMAN_COMMIT = a0d478edea7f775b7ce32f8eb1a01e75374486cb
|
||||
PODMAN_SITE = https://github.com/containers/podman/archive
|
||||
PODMAN_SOURCE = $(PODMAN_VERSION).tar.gz
|
||||
PODMAN_LICENSE = Apache-2.0
|
||||
PODMAN_LICENSE_FILES = LICENSE
|
||||
|
||||
PODMAN_DEPENDENCIES = host-go
|
||||
ifeq ($(BR2_INIT_SYSTEMD),y)
|
||||
# need libsystemd for journal
|
||||
PODMAN_DEPENDENCIES += systemd
|
||||
endif
|
||||
|
||||
PODMAN_GOPATH = $(@D)/_output
|
||||
PODMAN_BIN_ENV = \
|
||||
|
@ -17,11 +20,24 @@ PODMAN_BIN_ENV = \
|
|||
PATH=$(PODMAN_GOPATH)/bin:$(BR_PATH)
|
||||
|
||||
|
||||
define PODMAN_USERS
|
||||
- -1 podman -1 - - - - -
|
||||
endef
|
||||
|
||||
define PODMAN_MOD_VENDOR_MAKEFILE
|
||||
# "build flag -mod=vendor only valid when using modules"
|
||||
sed -e 's|-mod=vendor ||' -i $(@D)/Makefile
|
||||
endef
|
||||
|
||||
PODMAN_POST_EXTRACT_HOOKS += PODMAN_MOD_VENDOR_MAKEFILE
|
||||
|
||||
define PODMAN_CONFIGURE_CMDS
|
||||
mkdir -p $(PODMAN_GOPATH) && mv $(@D)/vendor $(PODMAN_GOPATH)/src
|
||||
|
||||
mkdir -p $(PODMAN_GOPATH)/src/github.com/containers
|
||||
ln -sf $(@D) $(PODMAN_GOPATH)/src/github.com/containers/libpod
|
||||
mkdir -p $(PODMAN_GOPATH)/src/github.com/varlink
|
||||
ln -sf $(@D)/vendor/github.com/varlink/go $(PODMAN_GOPATH)/src/github.com/varlink/go
|
||||
ln -sf $(@D) $(PODMAN_GOPATH)/src/github.com/containers/podman
|
||||
|
||||
ln -sf $(@D) $(PODMAN_GOPATH)/src/github.com/containers/podman/v2
|
||||
endef
|
||||
|
||||
define PODMAN_BUILD_CMDS
|
||||
|
@ -35,4 +51,21 @@ define PODMAN_INSTALL_TARGET_CMDS
|
|||
$(INSTALL) -m 644 $(@D)/cni/87-podman-bridge.conflist $(TARGET_DIR)/etc/cni/net.d/87-podman-bridge.conflist
|
||||
endef
|
||||
|
||||
define PODMAN_INSTALL_INIT_SYSTEMD
|
||||
$(INSTALL) -D -m 644 \
|
||||
$(@D)/contrib/systemd/system/podman.service \
|
||||
$(TARGET_DIR)/usr/lib/systemd/system/podman.service
|
||||
$(INSTALL) -D -m 644 \
|
||||
$(@D)/contrib/systemd/system/podman.socket \
|
||||
$(TARGET_DIR)/usr/lib/systemd/system/podman.socket
|
||||
|
||||
# Allow running podman-remote as a user in the group "podman"
|
||||
$(INSTALL) -D -m 644 \
|
||||
$(PODMAN_PKGDIR)/override.conf \
|
||||
$(TARGET_DIR)/usr/lib/systemd/system/podman.socket.d/override.conf
|
||||
$(INSTALL) -D -m 644 \
|
||||
$(PODMAN_PKGDIR)/podman.conf \
|
||||
$(TARGET_DIR)/usr/lib/tmpfiles.d/podman.conf
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
||||
|
|
|
@ -7,3 +7,4 @@ sha256 e52c5d7365b2b9048f977bac8f06bf626dccb4d816d0947ec8523f543272f4ff 2b18fe1d
|
|||
sha256 257ac2c2bbc9770998f31b73f587718848ebb09465ce2cd20fbac198ebd5726e 425e105d5a03fabd737a126ad93d62a9eeede87f.tar.gz
|
||||
sha256 4ffe8323397d85dda7d5875fa6bdaf3f8c93592c1947dfa24a034719dc6f728e d736ef14f0288d6993a1845745d6756cfc9ddd5a.tar.gz
|
||||
sha256 defe87a5f15edc54288d3261f5be28219b9b9d904d98c6020eb2e45400a04fb2 dc9208a3303feef5b3839f4323d9beb36df0a9dd.tar.gz
|
||||
sha256 bfcbbcb12664d5f8c1b794f37a457a8db53291c82be5a3157d8efb91aab193bf ff819c7e9184c13b7c2607fe6c30ae19403a7aff.tar.gz
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
#
|
||||
################################################################################
|
||||
|
||||
# As of 2020-01-23, v1.0.0-rc10
|
||||
RUNC_MASTER_VERSION = dc9208a3303feef5b3839f4323d9beb36df0a9dd
|
||||
# As of 2020-08-05, v1.0.0-rc92
|
||||
RUNC_MASTER_VERSION = ff819c7e9184c13b7c2607fe6c30ae19403a7aff
|
||||
RUNC_MASTER_SITE = https://github.com/opencontainers/runc/archive
|
||||
RUNC_MASTER_SOURCE = $(RUNC_MASTER_VERSION).tar.gz
|
||||
RUNC_MASTER_LICENSE = Apache-2.0
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
config BR2_PACKAGE_VARLINK
|
||||
bool "varlink"
|
||||
default y
|
|
@ -1,4 +0,0 @@
|
|||
sha256 3857f109574750403b233b5fdf73f1852d8decc33dac8f73bd49f2003b69ad22 16.tar.gz
|
||||
sha256 0dcb451f32033154c56710c216e67f245923fe2b011321271f6670e5a2285ce6 17.tar.gz
|
||||
sha256 7a32543643116ad105da4ddb2f8030de7dcad1cdb3feb1a214ae5e7b65a6a198 18.tar.gz
|
||||
sha256 0e316138ef6abc34363b05d0caf6df2e389a93b832e8d971e3ae64b48ba96133 19.tar.gz
|
|
@ -1,9 +0,0 @@
|
|||
VARLINK_VERSION = 19
|
||||
VARLINK_SITE = https://github.com/varlink/libvarlink/archive
|
||||
VARLINK_SOURCE = $(VARLINK_VERSION).tar.gz
|
||||
VARLINK_LICENSE = Apache-2.0
|
||||
VARLINK_LICENSE_FILES = LICENSE
|
||||
|
||||
VARLINK_NEEDS_HOST_PYTHON = python3
|
||||
|
||||
$(eval $(meson-package))
|
|
@ -19,9 +19,9 @@
|
|||
|
||||
# start from ubuntu 20.04, this image is reasonably small as a starting point
|
||||
# for a kubernetes node image, it doesn't contain much we don't need
|
||||
FROM ubuntu:focal-20200925
|
||||
FROM ubuntu:focal-20201106
|
||||
|
||||
ARG BUILDKIT_VERSION="v0.7.2"
|
||||
ARG BUILDKIT_VERSION="v0.8.1"
|
||||
|
||||
# copy in static files (configs, scripts)
|
||||
COPY 10-network-security.conf /etc/sysctl.d/10-network-security.conf
|
||||
|
@ -123,19 +123,26 @@ RUN export ARCH=$(dpkg --print-architecture | sed 's/ppc64el/ppc64le/' | sed 's/
|
|||
RUN sh -c "echo 'deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_20.04/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list" && \
|
||||
curl -LO https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_20.04/Release.key && \
|
||||
apt-key add - < Release.key && \
|
||||
clean-install containers-common catatonit conmon containernetworking-plugins cri-tools podman-plugins varlink
|
||||
clean-install containers-common catatonit conmon containernetworking-plugins cri-tools podman-plugins
|
||||
|
||||
# install cri-o based on https://github.com/cri-o/cri-o/blob/release-1.18/README.md#installing-cri-o
|
||||
RUN sh -c "echo 'deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/1.18:/1.18.4/xUbuntu_20.04/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:1.18.list" && \
|
||||
curl -LO https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/1.18:/1.18.4/xUbuntu_20.04/Release.key && \
|
||||
# install cri-o based on https://github.com/cri-o/cri-o/blob/release-1.19/README.md#installing-cri-o
|
||||
RUN sh -c "echo 'deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/1.19/xUbuntu_20.04/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:1.18.list" && \
|
||||
curl -LO https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/1.19/xUbuntu_20.04/Release.key && \
|
||||
apt-key add - < Release.key && \
|
||||
clean-install cri-o cri-o-runc
|
||||
|
||||
# install podman
|
||||
RUN sh -c "echo 'deb https://dl.bintray.com/afbjorklund/podman focal main' > /etc/apt/sources.list.d/podman.list" && \
|
||||
curl -L https://bintray.com/user/downloadSubjectPublicKey?username=afbjorklund -o afbjorklund-public.key.asc && \
|
||||
apt-key add - < afbjorklund-public.key.asc && \
|
||||
clean-install podman=1.9.3~1
|
||||
RUN sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_20.04/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list" && \
|
||||
curl -LO https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_20.04/Release.key && \
|
||||
apt-key add - < Release.key && \
|
||||
clean-install podman && \
|
||||
addgroup --system podman && \
|
||||
mkdir -p /etc/systemd/system/podman.socket.d && \
|
||||
printf "[Socket]\nSocketMode=0660\nSocketUser=root\nSocketGroup=podman\n" \
|
||||
> /etc/systemd/system/podman.socket.d/override.conf && \
|
||||
mkdir -p /etc/tmpfiles.d && \
|
||||
echo "d /run/podman 0770 root podman" > /etc/tmpfiles.d/podman.conf && \
|
||||
systemd-tmpfiles --create
|
||||
|
||||
# automount service
|
||||
COPY automount/minikube-automount /usr/sbin/minikube-automount
|
||||
|
@ -153,7 +160,7 @@ RUN ln -fs /usr/lib/systemd/system/minikube-scheduled-stop.service \
|
|||
# disable non-docker runtimes by default
|
||||
RUN systemctl disable containerd && systemctl disable crio && rm /etc/crictl.yaml
|
||||
# enable docker which is default
|
||||
RUN systemctl enable docker
|
||||
RUN systemctl enable docker.service && systemctl enable podman.socket
|
||||
# making SSH work for docker container
|
||||
# based on https://github.com/rastasheep/ubuntu-sshd/blob/master/18.04/Dockerfile
|
||||
RUN mkdir /var/run/sshd
|
||||
|
@ -168,6 +175,7 @@ EXPOSE 22
|
|||
# create docker user for minikube ssh. to match VM using "docker" as username
|
||||
RUN adduser --ingroup docker --disabled-password --gecos '' docker
|
||||
RUN adduser docker sudo
|
||||
RUN adduser docker podman
|
||||
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
|
||||
USER docker
|
||||
RUN mkdir /home/docker/.ssh
|
||||
|
|
|
@ -19,6 +19,16 @@ set -o nounset
|
|||
set -o pipefail
|
||||
set -x
|
||||
|
||||
configure_proxy() {
|
||||
# ensure all processes receive the proxy settings by default
|
||||
# https://www.freedesktop.org/software/systemd/man/systemd-system.conf.html
|
||||
mkdir -p /etc/systemd/system.conf.d/
|
||||
cat <<EOF >/etc/systemd/system.conf.d/proxy-default-environment.conf
|
||||
[Manager]
|
||||
DefaultEnvironment="HTTP_PROXY=${HTTP_PROXY:-}" "HTTPS_PROXY=${HTTPS_PROXY:-}" "NO_PROXY=${NO_PROXY:-}"
|
||||
EOF
|
||||
}
|
||||
|
||||
update-alternatives() {
|
||||
echo "retryable update-alternatives: $*"
|
||||
local args=$*
|
||||
|
@ -48,7 +58,7 @@ fix_mount() {
|
|||
# This is a workaround to an AUFS bug that might cause `Text file
|
||||
# busy` on `mount` command below. See more details in
|
||||
# https://github.com/moby/moby/issues/9547
|
||||
if [[ "$(stat -f -c %T /bin/mount)" == 'aufs' ]]; then
|
||||
if [[ "$(stat -f -c %T "$(which mount)")" == 'aufs' ]]; then
|
||||
echo 'INFO: detected aufs, calling sync' >&2
|
||||
sync
|
||||
fi
|
||||
|
@ -174,16 +184,6 @@ fix_kmsg() {
|
|||
fi
|
||||
}
|
||||
|
||||
configure_proxy() {
|
||||
# ensure all processes receive the proxy settings by default
|
||||
# https://www.freedesktop.org/software/systemd/man/systemd-system.conf.html
|
||||
mkdir -p /etc/systemd/system.conf.d/
|
||||
cat <<EOF >/etc/systemd/system.conf.d/proxy-default-environment.conf
|
||||
[Manager]
|
||||
DefaultEnvironment="HTTP_PROXY=${HTTP_PROXY:-}" "HTTPS_PROXY=${HTTPS_PROXY:-}" "NO_PROXY=${NO_PROXY:-}"
|
||||
EOF
|
||||
}
|
||||
|
||||
select_iptables() {
|
||||
# based on: https://github.com/kubernetes/kubernetes/blob/ffe93b3979486feb41a0f85191bdd189cbd56ccc/build/debian-iptables/iptables-wrapper
|
||||
local mode=nft
|
||||
|
@ -229,7 +229,7 @@ enable_network_magic(){
|
|||
sed -e "s/${docker_embedded_dns_ip}/${docker_host_ip}/g" /etc/resolv.conf.original >/etc/resolv.conf
|
||||
|
||||
# fixup IPs in manifests ...
|
||||
curr_ipv4="$( (getent ahostsv4 $(hostname) | head -n1 | cut -d' ' -f1) || true)"
|
||||
curr_ipv4="$( (getent ahostsv4 "$(hostname)" | head -n1 | cut -d' ' -f1) || true)"
|
||||
echo "INFO: Detected IPv4 address: ${curr_ipv4}" >&2
|
||||
if [ -f /kind/old-ipv4 ]; then
|
||||
old_ipv4=$(cat /kind/old-ipv4)
|
||||
|
@ -249,7 +249,7 @@ enable_network_magic(){
|
|||
fi
|
||||
|
||||
# do IPv6
|
||||
curr_ipv6="$( (getent ahostsv6 $(hostname) | head -n1 | cut -d' ' -f1) || true)"
|
||||
curr_ipv6="$( (getent ahostsv6 "$(hostname)" | head -n1 | cut -d' ' -f1) || true)"
|
||||
echo "INFO: Detected IPv6 address: ${curr_ipv6}" >&2
|
||||
if [ -f /kind/old-ipv6 ]; then
|
||||
old_ipv6=$(cat /kind/old-ipv6)
|
||||
|
@ -269,15 +269,16 @@ enable_network_magic(){
|
|||
}
|
||||
|
||||
# run pre-init fixups
|
||||
select_iptables
|
||||
# NOTE: it's important that we do configure* first in this order to avoid races
|
||||
configure_proxy
|
||||
fix_kmsg
|
||||
fix_mount
|
||||
retryable_fix_cgroup_mounts
|
||||
fix_machine_id
|
||||
fix_product_name
|
||||
fix_product_uuid
|
||||
configure_proxy
|
||||
select_iptables
|
||||
enable_network_magic
|
||||
|
||||
# we want the command (expected to be systemd) to be PID1, so exec to it
|
||||
exec "$@"
|
||||
exec "$@"
|
||||
|
|
2
go.mod
2
go.mod
|
@ -12,6 +12,7 @@ require (
|
|||
github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d // indirect
|
||||
github.com/VividCortex/godaemon v0.0.0-20201030160542-15e3f4925a21
|
||||
github.com/blang/semver v3.5.0+incompatible
|
||||
github.com/briandowns/spinner v1.11.1
|
||||
github.com/c4milo/gotoolkit v0.0.0-20170318115440-bcc06269efa9 // indirect
|
||||
github.com/cenkalti/backoff v2.2.1+incompatible
|
||||
github.com/cenkalti/backoff/v4 v4.1.0
|
||||
|
@ -104,6 +105,7 @@ require (
|
|||
|
||||
replace (
|
||||
git.apache.org/thrift.git => github.com/apache/thrift v0.0.0-20180902110319-2566ecd5d999
|
||||
github.com/briandowns/spinner => github.com/alonyb/spinner v1.12.1
|
||||
github.com/docker/docker => github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7
|
||||
github.com/docker/machine => github.com/machine-drivers/machine v0.7.1-0.20200810185219-7d42fed1b770
|
||||
github.com/google/go-containerregistry => github.com/afbjorklund/go-containerregistry v0.0.0-20200902152226-fbad78ec2813
|
||||
|
|
2
go.sum
2
go.sum
|
@ -143,6 +143,8 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf h1:qet1QNfXsQxTZq
|
|||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
|
||||
github.com/alonyb/spinner v1.12.1 h1:zB6IQ29/kTR/NWHJhIgU2tXW+fhXa3K5zrDQMddd9H0=
|
||||
github.com/alonyb/spinner v1.12.1/go.mod h1:QOuQk7x+EaDASo80FEXwlwiA+j/PPIcX3FScO+3/ZPQ=
|
||||
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
|
||||
github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c=
|
||||
github.com/apex/log v1.1.4/go.mod h1:AlpoD9aScyQfJDVHmLMEcx4oU6LqzkWp4Mg9GdAcEvQ=
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
# OS_ARCH: The operating system and the architecture separated by a hyphen '-' (e.g. darwin-amd64, linux-amd64, windows-amd64)
|
||||
# VM_DRIVER: the driver to use for the test
|
||||
# EXTRA_START_ARGS: additional flags to pass into minikube start
|
||||
# EXTRA_ARGS: additional flags to pass into minikube
|
||||
# EXTRA_TEST_ARGS: additional flags to pass into go test
|
||||
# JOB_NAME: the name of the logfile and check name to update on github
|
||||
|
||||
readonly TEST_ROOT="${HOME}/minikube-integration"
|
||||
|
@ -30,19 +30,21 @@ export GOPATH="$HOME/go"
|
|||
export KUBECONFIG="${TEST_HOME}/kubeconfig"
|
||||
export PATH=$PATH:"/usr/local/bin/:/usr/local/go/bin/:$GOPATH/bin"
|
||||
|
||||
readonly TIMEOUT=${1:-70m}
|
||||
|
||||
if [ "$(uname)" != "Darwin" ]; then
|
||||
# install lsof for finding none driver procs, psmisc to use pstree in cronjobs
|
||||
sudo apt-get -y install lsof psmisc
|
||||
fi
|
||||
|
||||
# installing golang so we could do go get for gopogh
|
||||
sudo ./installers/check_install_golang.sh "1.15.2" "/usr/local" || true
|
||||
sudo ./installers/check_install_golang.sh "1.15.5" "/usr/local" || true
|
||||
|
||||
# install docker and kubectl if not present
|
||||
sudo ./installers/check_install_docker.sh
|
||||
|
||||
docker rm -f -v $(docker ps -aq) >/dev/null 2>&1 || true
|
||||
docker volume prune -f || true
|
||||
# let's just clean all docker artifacts up
|
||||
docker system prune --force --volumes || true
|
||||
docker system df || true
|
||||
|
||||
echo ">> Starting at $(date)"
|
||||
|
@ -221,17 +223,17 @@ fi
|
|||
|
||||
|
||||
# clean up none drivers binding on 8443
|
||||
none_procs=$(sudo lsof -i :8443 | tail -n +2 | awk '{print $2}' || true)
|
||||
if [[ "${none_procs}" != "" ]]; then
|
||||
echo "Found stale api servers listening on 8443 processes to kill: "
|
||||
for p in $none_procs
|
||||
do
|
||||
none_procs=$(sudo lsof -i :8443 | tail -n +2 | awk '{print $2}' || true)
|
||||
if [[ "${none_procs}" != "" ]]; then
|
||||
echo "Found stale api servers listening on 8443 processes to kill: "
|
||||
for p in $none_procs
|
||||
do
|
||||
echo "Kiling stale none driver: $p"
|
||||
sudo -E ps -f -p $p || true
|
||||
sudo -E kill $p || true
|
||||
sudo -E kill -9 $p || true
|
||||
done
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
function cleanup_stale_routes() {
|
||||
local show="netstat -rn -f inet"
|
||||
|
@ -295,7 +297,7 @@ fi
|
|||
touch "${TEST_OUT}"
|
||||
${SUDO_PREFIX}${E2E_BIN} \
|
||||
-minikube-start-args="--driver=${VM_DRIVER} ${EXTRA_START_ARGS}" \
|
||||
-test.timeout=70m -test.v \
|
||||
-test.timeout=${TIMEOUT} -test.v \
|
||||
${EXTRA_TEST_ARGS} \
|
||||
-binary="${MINIKUBE_BIN}" 2>&1 | tee "${TEST_OUT}"
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copyright 2019 The Kubernetes Authors All rights reserved.
|
||||
# Copyright 2020 The Kubernetes Authors All rights reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
|
@ -36,11 +36,83 @@ logger "cleanup_and_reboot is happening!"
|
|||
# kill jenkins to avoid an incoming request
|
||||
killall java
|
||||
|
||||
# clean minikube left overs
|
||||
echo -e "\ncleanup minikube..."
|
||||
for user in "jenkins" "root"; do
|
||||
minikube="$(sudo su - ${user} -c 'command -v minikube')"
|
||||
if [ ! -x "${minikube}" ]; then
|
||||
minikube="/tmp/minikube"
|
||||
curl -sfL https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 -o "${minikube}" && chmod +x "${minikube}" || true
|
||||
fi
|
||||
if [ -x "${minikube}" ]; then
|
||||
if sudo su - "${user}" -c "${minikube} delete --all --purge" >/dev/null 2>&1; then
|
||||
echo "successfully cleaned up minikube for ${user} user using ${minikube}"
|
||||
fi
|
||||
fi
|
||||
sudo killall --user "${user}" minikube >/dev/null 2>&1 || true
|
||||
done
|
||||
|
||||
# clean docker left overs
|
||||
docker rm -f -v $(docker ps -aq) >/dev/null 2>&1 || true
|
||||
docker volume prune -f || true
|
||||
docker volume ls || true
|
||||
docker system df || true
|
||||
echo -e "\ncleanup docker..."
|
||||
docker kill $(docker ps -aq) >/dev/null 2>&1 || true
|
||||
docker system prune --volumes --force || true
|
||||
|
||||
# clean KVM left overs
|
||||
echo -e "\ncleanup kvm..."
|
||||
overview() {
|
||||
echo -e "\n - KVM domains:"
|
||||
sudo virsh list --all || true
|
||||
echo " - KVM pools:"
|
||||
sudo virsh pool-list --all || true
|
||||
echo " - KVM networks:"
|
||||
sudo virsh net-list --all || true
|
||||
echo " - host networks:"
|
||||
sudo ip link show || true
|
||||
}
|
||||
echo -e "\nbefore the cleanup:"
|
||||
overview
|
||||
for DOM in $( sudo virsh list --all --name ); do
|
||||
if sudo virsh destroy "${DOM}"; then
|
||||
if sudo virsh undefine "${DOM}"; then
|
||||
echo "successfully deleted KVM domain:" "${DOM}"
|
||||
continue
|
||||
fi
|
||||
echo "unable to delete KVM domain:" "${DOM}"
|
||||
fi
|
||||
done
|
||||
#for POOL in $( sudo virsh pool-list --all --name ); do # better, but flag '--name' is not supported for 'virsh pool-list' command on older libvirt versions
|
||||
for POOL in $( sudo virsh pool-list --all | awk 'NR>2 {print $1}' ); do
|
||||
for VOL in $( sudo virsh vol-list "${POOL}" ); do
|
||||
if sudo virsh vol-delete --pool "${POOL}" "${VOLUME}"; then # flag '--delete-snapshots': "delete snapshots associated with volume (must be supported by storage driver)"
|
||||
echo "successfully deleted KVM pool/volume:" "${POOL}"/"${VOL}"
|
||||
continue
|
||||
fi
|
||||
echo "unable to delete KVM pool/volume:" "${POOL}"/"${VOL}"
|
||||
done
|
||||
done
|
||||
for NET in $( sudo virsh net-list --all --name ); do
|
||||
if [ "${NET}" != "default" ]; then
|
||||
if sudo virsh net-destroy "${NET}"; then
|
||||
if sudo virsh net-undefine "${NET}"; then
|
||||
echo "successfully deleted KVM network" "${NET}"
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
echo "unable to delete KVM network" "${NET}"
|
||||
fi
|
||||
done
|
||||
# DEFAULT_BRIDGE is a bridge connected to the 'default' KVM network
|
||||
DEFAULT_BRIDGE=$( sudo virsh net-info default | awk '{ if ($1 == "Bridge:") print $2 }' )
|
||||
echo "bridge connected to the 'default' KVM network to leave alone:" "${DEFAULT_BRIDGE}"
|
||||
for VIF in $( sudo ip link show | awk -v defvbr="${DEFAULT_BRIDGE}.*" -F': ' '$2 !~ defvbr { if ($2 ~ /virbr.*/ || $2 ~ /vnet.*/) print $2 }' ); do
|
||||
if sudo ip link delete "${VIF}"; then
|
||||
echo "successfully deleted KVM interface" "${VIF}"
|
||||
continue
|
||||
fi
|
||||
echo "unable to delete KVM interface" "${VIF}"
|
||||
done
|
||||
echo -e "\nafter the cleanup:"
|
||||
overview
|
||||
|
||||
# Linux-specific cleanup
|
||||
|
||||
|
@ -51,4 +123,4 @@ systemctl list-unit-files --state=enabled \
|
|||
| xargs systemctl disable
|
||||
|
||||
# update and reboot
|
||||
apt update -y && apt upgrade -y && reboot
|
||||
apt update -y && apt upgrade -y && apt-get autoclean && reboot
|
||||
|
|
|
@ -52,10 +52,15 @@ function check_and_install_golang() {
|
|||
function install_golang() {
|
||||
echo "Installing golang version: $1 on $2"
|
||||
pushd /tmp >/dev/null
|
||||
|
||||
INSTALLOS=linux
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
INSTALLOS=darwin
|
||||
fi
|
||||
# using sudo because previously installed versions might have been installed by a different user.
|
||||
# as it was the case on jenkins VM.
|
||||
sudo curl -qL -O "https://storage.googleapis.com/golang/go${1}.linux-amd64.tar.gz" &&
|
||||
sudo tar xfa go${1}.linux-amd64.tar.gz &&
|
||||
sudo curl -qL -O "https://storage.googleapis.com/golang/go${1}.${INSTALLOS}-amd64.tar.gz" &&
|
||||
sudo tar -xf go${1}.${INSTALLOS}-amd64.tar.gz &&
|
||||
sudo rm -rf "${2}/go" &&
|
||||
sudo mv go "${2}/" && sudo chown -R $(whoami): ${2}/go
|
||||
popd >/dev/null
|
||||
|
|
|
@ -29,7 +29,7 @@ set -e
|
|||
OS_ARCH="linux-amd64"
|
||||
VM_DRIVER="none"
|
||||
JOB_NAME="none_Linux"
|
||||
EXTRA_ARGS="--bootstrapper=kubeadm"
|
||||
EXTRA_START_ARGS="--bootstrapper=kubeadm"
|
||||
EXPECTED_DEFAULT_DRIVER="kvm2"
|
||||
|
||||
SUDO_PREFIX="sudo -E "
|
||||
|
@ -68,4 +68,7 @@ fi
|
|||
mkdir -p cron && gsutil -m rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES"
|
||||
sudo install cron/cleanup_and_reboot_Linux.sh /etc/cron.hourly/cleanup_and_reboot || echo "FAILED TO INSTALL CLEANUP"
|
||||
|
||||
# We need this for reasons now
|
||||
sudo sysctl fs.protected_regular=0
|
||||
|
||||
source ./common.sh
|
||||
|
|
|
@ -32,7 +32,7 @@ JOB_NAME="Experimental_Podman_Linux"
|
|||
mkdir -p cron && gsutil -qm rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES"
|
||||
sudo install cron/cleanup_and_reboot_Linux.sh /etc/cron.hourly/cleanup_and_reboot || echo "FAILED TO INSTALL CLEANUP"
|
||||
|
||||
EXTRA_ARGS="--container-runtime=containerd"
|
||||
EXTRA_START_ARGS="--container-runtime=containerd"
|
||||
|
||||
# remove possible left over podman containers
|
||||
sudo podman rm -f -v $(sudo podman ps -aq) || true
|
||||
|
|
|
@ -28,9 +28,10 @@ set -e
|
|||
OS_ARCH="linux-amd64"
|
||||
VM_DRIVER="virtualbox"
|
||||
JOB_NAME="VirtualBox_Linux"
|
||||
EXTRA_TEST_ARGS=""
|
||||
EXPECTED_DEFAULT_DRIVER="kvm2"
|
||||
|
||||
mkdir -p cron && gsutil -qm rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES"
|
||||
sudo install cron/cleanup_and_reboot_Linux.sh /etc/cron.hourly/cleanup_and_reboot || echo "FAILED TO INSTALL CLEANUP"
|
||||
|
||||
source ./common.sh
|
||||
source ./common.sh 2h
|
||||
|
|
|
@ -32,7 +32,7 @@ if [ "${ghprbPullId}" == "master" ]; then
|
|||
fi
|
||||
|
||||
jobs=(
|
||||
'HyperKit_macOS'
|
||||
'HyperKit_Functional_macOS'
|
||||
'Hyper-V_Windows'
|
||||
'VirtualBox_Linux'
|
||||
# 'VirtualBox_macOS'
|
||||
|
|
|
@ -28,9 +28,8 @@ set -e
|
|||
|
||||
OS_ARCH="darwin-amd64"
|
||||
VM_DRIVER="hyperkit"
|
||||
JOB_NAME="HyperKit_macOS"
|
||||
EXTRA_ARGS="--bootstrapper=kubeadm"
|
||||
EXTRA_START_ARGS=""
|
||||
JOB_NAME="HyperKit_Functional_macOS"
|
||||
EXTRA_TEST_ARGS="-test.run TestFunctional"
|
||||
EXPECTED_DEFAULT_DRIVER="hyperkit"
|
||||
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ set -e
|
|||
OS_ARCH="darwin-amd64"
|
||||
VM_DRIVER="virtualbox"
|
||||
JOB_NAME="VirtualBox_macOS"
|
||||
EXTRA_ARGS="--bootstrapper=kubeadm"
|
||||
EXTRA_START_ARGS="--bootstrapper=kubeadm"
|
||||
# hyperkit behaves better, so it has higher precedence.
|
||||
# Assumes that hyperkit is also installed on the VirtualBox CI host.
|
||||
EXPECTED_DEFAULT_DRIVER="hyperkit"
|
||||
|
|
|
@ -48,7 +48,9 @@ env BUILD_IN_DOCKER=y \
|
|||
all \
|
||||
out/minikube-installer.exe \
|
||||
"out/minikube_${DEB_VERSION}-0_amd64.deb" \
|
||||
"out/minikube_${DEB_VERSION}-0_arm64.deb" \
|
||||
"out/minikube-${RPM_VERSION}-0.x86_64.rpm" \
|
||||
"out/minikube-${RPM_VERSION}-0.aarch64.rpm" \
|
||||
"out/docker-machine-driver-kvm2_${DEB_VERSION}-0_amd64.deb" \
|
||||
"out/docker-machine-driver-kvm2-${RPM_VERSION}-0.x86_64.rpm"
|
||||
|
||||
|
@ -56,7 +58,9 @@ make checksum
|
|||
|
||||
# unversioned names to avoid updating upstream Kubernetes documentation each release
|
||||
cp "out/minikube_${DEB_VERSION}-0_amd64.deb" out/minikube_latest_amd64.deb
|
||||
cp "out/minikube_${DEB_VERSION}-0_arm64.deb" out/minikube_latest_arm64.deb
|
||||
cp "out/minikube-${RPM_VERSION}-0.x86_64.rpm" out/minikube-latest.x86_64.rpm
|
||||
cp "out/minikube-${RPM_VERSION}-0.aarch64.rpm" out/minikube-latest.aarch64.rpm
|
||||
|
||||
gsutil -m cp out/* "gs://$BUCKET/releases/$TAGNAME/"
|
||||
|
||||
|
|
|
@ -65,6 +65,10 @@ func execute() error {
|
|||
if projectID == "" {
|
||||
return fmt.Errorf("metrics collector requires a valid GCP project id set via the %s env variable", pkgtrace.ProjectEnvVar)
|
||||
}
|
||||
ctx := context.Background()
|
||||
if err := downloadMinikube(ctx, tmpFile); err != nil {
|
||||
return errors.Wrap(err, "downloading minikube")
|
||||
}
|
||||
|
||||
// Register the view. It is imperative that this step exists,
|
||||
// otherwise recorded metrics will be dropped and never exported.
|
||||
|
@ -77,44 +81,54 @@ func execute() error {
|
|||
if err := view.Register(v); err != nil {
|
||||
return errors.Wrap(err, "registering view")
|
||||
}
|
||||
for _, cr := range []string{"docker", "containerd", "crio"} {
|
||||
if err := exportMinikubeStart(ctx, projectID, cr); err != nil {
|
||||
log.Printf("error exporting minikube start data for runtime %v: %v", cr, err)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
sd, err := stackdriver.NewExporter(stackdriver.Options{
|
||||
ProjectID: projectID,
|
||||
// MetricPrefix helps uniquely identify your metrics.
|
||||
MetricPrefix: "minikube_start",
|
||||
// ReportingInterval sets the frequency of reporting metrics
|
||||
// to stackdriver backend.
|
||||
ReportingInterval: 1 * time.Second,
|
||||
DefaultMonitoringLabels: getLabels(),
|
||||
})
|
||||
func exportMinikubeStart(ctx context.Context, projectID, containerRuntime string) error {
|
||||
sd, err := getExporter(projectID, containerRuntime)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "getting stackdriver exporter")
|
||||
}
|
||||
// It is imperative to invoke flush before your main function exits
|
||||
defer sd.Flush()
|
||||
|
||||
// Register it as a trace exporter
|
||||
trace.RegisterExporter(sd)
|
||||
|
||||
if err := sd.StartMetricsExporter(); err != nil {
|
||||
return errors.Wrap(err, "starting metric exporter")
|
||||
}
|
||||
defer sd.StopMetricsExporter()
|
||||
ctx := context.Background()
|
||||
|
||||
// track minikube start time and record it to metrics collector
|
||||
st, err := minikubeStartTime(ctx, projectID, tmpFile)
|
||||
st, err := minikubeStartTime(ctx, projectID, tmpFile, containerRuntime)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "collecting start time")
|
||||
}
|
||||
fmt.Printf("Latency: %f\n", st)
|
||||
stats.Record(ctx, latencyS.M(st))
|
||||
time.Sleep(30 * time.Second)
|
||||
sd.Flush()
|
||||
sd.StopMetricsExporter()
|
||||
trace.UnregisterExporter(sd)
|
||||
return nil
|
||||
}
|
||||
|
||||
func getLabels() *stackdriver.Labels {
|
||||
func getExporter(projectID, containerRuntime string) (*stackdriver.Exporter, error) {
|
||||
return stackdriver.NewExporter(stackdriver.Options{
|
||||
ProjectID: projectID,
|
||||
// MetricPrefix helps uniquely identify your metrics.
|
||||
MetricPrefix: "minikube_start",
|
||||
// ReportingInterval sets the frequency of reporting metrics
|
||||
// to stackdriver backend.
|
||||
ReportingInterval: 1 * time.Second,
|
||||
DefaultMonitoringLabels: getLabels(containerRuntime),
|
||||
})
|
||||
}
|
||||
|
||||
func getLabels(containerRuntime string) *stackdriver.Labels {
|
||||
l := &stackdriver.Labels{}
|
||||
l.Set("container-runtime", containerRuntime, "container-runtime")
|
||||
if labels == "" {
|
||||
return l
|
||||
}
|
||||
|
@ -130,13 +144,10 @@ func getLabels() *stackdriver.Labels {
|
|||
return l
|
||||
}
|
||||
|
||||
func minikubeStartTime(ctx context.Context, projectID, minikubePath string) (float64, error) {
|
||||
if err := downloadMinikube(ctx, minikubePath); err != nil {
|
||||
return 0, errors.Wrap(err, "downloading minikube")
|
||||
}
|
||||
func minikubeStartTime(ctx context.Context, projectID, minikubePath, containerRuntime string) (float64, error) {
|
||||
defer deleteMinikube(ctx, minikubePath)
|
||||
|
||||
cmd := exec.CommandContext(ctx, minikubePath, "start", "--driver=docker", "-p", profile, "--memory=2000", "--trace=gcp")
|
||||
cmd := exec.CommandContext(ctx, minikubePath, "start", "--driver=docker", "-p", profile, "--memory=2000", "--trace=gcp", fmt.Sprintf("--container-runtime=%s", containerRuntime))
|
||||
cmd.Env = append(os.Environ(), fmt.Sprintf("%s=%s", pkgtrace.ProjectEnvVar, projectID))
|
||||
cmd.Stdout = os.Stderr
|
||||
cmd.Stderr = os.Stderr
|
||||
|
|
|
@ -181,7 +181,7 @@ func createImageTarball(tarballFilename, containerRuntime string) error {
|
|||
dirs = append(dirs, "./lib/containers")
|
||||
}
|
||||
|
||||
args := []string{"exec", profile, "sudo", "tar", "-I", "lz4", "-C", "/var", "-cvf", tarballFilename}
|
||||
args := []string{"exec", profile, "sudo", "tar", "-I", "lz4", "-C", "/var", "-cf", tarballFilename}
|
||||
args = append(args, dirs...)
|
||||
cmd := exec.Command("docker", args...)
|
||||
cmd.Stdout = os.Stdout
|
||||
|
|
|
@ -39,5 +39,6 @@ recent=$(git describe --abbrev=0)
|
|||
|
||||
"${DIR}/release-notes" kubernetes minikube --since $recent
|
||||
|
||||
echo "Thank you to our contributors for this release! "
|
||||
echo "Thank you to our contributors for this release!"
|
||||
echo ""
|
||||
git log "$recent".. --format="%aN" --reverse | sort | uniq | awk '{printf "- %s\n", $0 }'
|
||||
|
|
|
@ -216,12 +216,12 @@ func GHReleases(ctx context.Context, owner, repo string) (stable, latest string,
|
|||
// walk through the paginated list of up to ghSearchLimit newest releases
|
||||
opts := &github.ListOptions{PerPage: ghListPerPage}
|
||||
for (opts.Page+1)*ghListPerPage <= ghSearchLimit {
|
||||
rls, resp, err := ghc.Repositories.ListReleases(ctx, owner, repo, opts)
|
||||
rls, resp, err := ghc.Repositories.ListTags(ctx, owner, repo, opts)
|
||||
if err != nil {
|
||||
return "", "", err
|
||||
}
|
||||
for _, rl := range rls {
|
||||
ver := rl.GetName()
|
||||
ver := *rl.Name
|
||||
if !semver.IsValid(ver) {
|
||||
continue
|
||||
}
|
||||
|
|
|
@ -0,0 +1,108 @@
|
|||
/*
|
||||
Copyright 2020 The Kubernetes Authors All rights reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
Script expects the following env variables:
|
||||
- UPDATE_TARGET=<string>: optional - if unset/absent, default option is "fs"; valid options are:
|
||||
- "fs" - update only local filesystem repo files [default]
|
||||
- "gh" - update only remote GitHub repo files and create PR (if one does not exist already)
|
||||
- "all" - update local and remote repo files and create PR (if one does not exist already)
|
||||
- GITHUB_TOKEN=<string>: GitHub [personal] access token
|
||||
- note: GITHUB_TOKEN is required if UPDATE_TARGET is "gh" or "all"
|
||||
*/
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"golang.org/x/mod/semver"
|
||||
"k8s.io/klog/v2"
|
||||
|
||||
"k8s.io/minikube/hack/update"
|
||||
)
|
||||
|
||||
const (
|
||||
// default context timeout
|
||||
cxTimeout = 300 * time.Second
|
||||
)
|
||||
|
||||
var (
|
||||
schema = map[string]update.Item{
|
||||
".github/workflows/iso.yml": {
|
||||
Replace: map[string]string{
|
||||
`(?U)https://github.com/medyagh/gopogh/releases/download/.*/gopogh`: `https://github.com/medyagh/gopogh/releases/download/{{.StableVersion}}/gopogh`,
|
||||
},
|
||||
},
|
||||
".github/workflows/kic_image.yml": {
|
||||
Replace: map[string]string{
|
||||
`(?U)https://github.com/medyagh/gopogh/releases/download/.*/gopogh`: `https://github.com/medyagh/gopogh/releases/download/{{.StableVersion}}/gopogh`,
|
||||
},
|
||||
},
|
||||
".github/workflows/master.yml": {
|
||||
Replace: map[string]string{
|
||||
`(?U)https://github.com/medyagh/gopogh/releases/download/.*/gopogh`: `https://github.com/medyagh/gopogh/releases/download/{{.StableVersion}}/gopogh`,
|
||||
},
|
||||
},
|
||||
".github/workflows/pr.yml": {
|
||||
Replace: map[string]string{
|
||||
`(?U)https://github.com/medyagh/gopogh/releases/download/.*/gopogh`: `https://github.com/medyagh/gopogh/releases/download/{{.StableVersion}}/gopogh`,
|
||||
},
|
||||
},
|
||||
"hack/jenkins/common.sh": {
|
||||
Replace: map[string]string{
|
||||
`(?U)https://github.com/medyagh/gopogh/releases/download/.*/gopogh`: `https://github.com/medyagh/gopogh/releases/download/{{.StableVersion}}/gopogh`,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// PR data
|
||||
prBranchPrefix = "update-gopogh-version_" // will be appended with first 7 characters of the PR commit SHA
|
||||
prTitle = `update_gopogh_version: {stable: "{{.StableVersion}}"}`
|
||||
prIssue = 9850
|
||||
)
|
||||
|
||||
// Data holds stable gopogh version in semver format.
|
||||
type Data struct {
|
||||
StableVersion string `json:"stableVersion"`
|
||||
}
|
||||
|
||||
func main() {
|
||||
// set a context with defined timeout
|
||||
ctx, cancel := context.WithTimeout(context.Background(), cxTimeout)
|
||||
defer cancel()
|
||||
|
||||
// get gopogh stable version from https://github.com/medyagh/gopogh
|
||||
stable, err := gopoghVersion(ctx, "medyagh", "gopogh")
|
||||
if err != nil || stable == "" {
|
||||
klog.Fatalf("Unable to get gopogh stable version: %v", err)
|
||||
}
|
||||
data := Data{StableVersion: stable}
|
||||
klog.Infof("gopogh stable version: %s", data.StableVersion)
|
||||
|
||||
update.Apply(ctx, schema, data, prBranchPrefix, prTitle, prIssue)
|
||||
}
|
||||
|
||||
// gopoghVersion returns gopogh stable version in semver format.
|
||||
func gopoghVersion(ctx context.Context, owner, repo string) (stable string, err error) {
|
||||
// get Kubernetes versions from GitHub Releases
|
||||
stable, _, err = update.GHReleases(ctx, owner, repo)
|
||||
if err != nil || !semver.IsValid(stable) {
|
||||
return "", err
|
||||
}
|
||||
return stable, nil
|
||||
}
|
|
@ -88,8 +88,7 @@ func (i *Item) apply(data interface{}) error {
|
|||
if i.Content == nil {
|
||||
return fmt.Errorf("unable to update content: nothing to update")
|
||||
}
|
||||
org := string(i.Content)
|
||||
str := org
|
||||
str := string(i.Content)
|
||||
for src, dst := range i.Replace {
|
||||
out, err := ParseTmpl(dst, data, "")
|
||||
if err != nil {
|
||||
|
|
|
@ -3,7 +3,7 @@ Version: --VERSION--
|
|||
Section: base
|
||||
Priority: optional
|
||||
Architecture: --ARCH--
|
||||
Recommends: virtualbox
|
||||
Recommends: --RECOMMENDS--
|
||||
Maintainer: Thomas Strömberg <t+minikube@stromberg.org>
|
||||
Description: Minikube
|
||||
minikube is a tool that makes it easy to run Kubernetes locally.
|
||||
|
|
|
@ -17,9 +17,11 @@ limitations under the License.
|
|||
package kic
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net"
|
||||
"os/exec"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
|
@ -218,6 +220,33 @@ func (d *Driver) prepareSSH() error {
|
|||
return errors.Wrapf(err, "apply authorized_keys file ownership, output %s", rr.Output())
|
||||
}
|
||||
|
||||
if runtime.GOOS == "windows" {
|
||||
path, _ := exec.LookPath("powershell")
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 8*time.Second)
|
||||
defer cancel()
|
||||
|
||||
klog.Infof("ensuring only current user has permissions to key file located at : %s...", keyPath)
|
||||
|
||||
// Get the SID of the current user
|
||||
currentUserSidCmd := exec.CommandContext(ctx, path, "-NoProfile", "-NonInteractive", "([System.Security.Principal.WindowsIdentity]::GetCurrent()).User.Value")
|
||||
currentUserSidOut, currentUserSidErr := currentUserSidCmd.CombinedOutput()
|
||||
if currentUserSidErr != nil {
|
||||
klog.Warningf("unable to determine current user's SID. minikube tunnel may not work.")
|
||||
} else {
|
||||
icaclsArguments := fmt.Sprintf(`"%s" /grant:r *%s:F /inheritancelevel:r`, keyPath, strings.TrimSpace(string(currentUserSidOut)))
|
||||
icaclsCmd := exec.CommandContext(ctx, path, "-NoProfile", "-NonInteractive", "icacls.exe", icaclsArguments)
|
||||
icaclsCmdOut, icaclsCmdErr := icaclsCmd.CombinedOutput()
|
||||
|
||||
if icaclsCmdErr != nil {
|
||||
return errors.Wrap(icaclsCmdErr, "unable to execute icacls to set permissions")
|
||||
}
|
||||
|
||||
if !strings.Contains(string(icaclsCmdOut), "Successfully processed 1 files; Failed processing 0 files") {
|
||||
klog.Errorf("icacls failed applying permissions - err - [%s], output - [%s]", icaclsCmdErr, strings.TrimSpace(string(icaclsCmdOut)))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -296,7 +325,7 @@ func (d *Driver) Kill() error {
|
|||
klog.Warningf("couldn't shutdown the container, will continue with kill anyways: %v", err)
|
||||
}
|
||||
|
||||
cr := command.NewExecRunner() // using exec runner for interacting with dameon.
|
||||
cr := command.NewExecRunner(false) // using exec runner for interacting with dameon.
|
||||
if _, err := cr.RunCmd(oci.PrefixCmd(exec.Command(d.NodeConfig.OCIBinary, "kill", d.MachineName))); err != nil {
|
||||
return errors.Wrapf(err, "killing %q", d.MachineName)
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ import (
|
|||
var initialEnvs = make(map[string]string)
|
||||
|
||||
func init() {
|
||||
// docker
|
||||
for _, env := range constants.DockerDaemonEnvs {
|
||||
if v, set := os.LookupEnv(env); set {
|
||||
initialEnvs[env] = v
|
||||
|
@ -34,6 +35,15 @@ func init() {
|
|||
initialEnvs[exEnv] = v
|
||||
}
|
||||
}
|
||||
// podman
|
||||
env := constants.PodmanContainerHostEnv
|
||||
if v, set := os.LookupEnv(env); set {
|
||||
initialEnvs[env] = v
|
||||
}
|
||||
exEnv := constants.ExistingContainerHostEnv
|
||||
if v, set := os.LookupEnv(exEnv); set {
|
||||
initialEnvs[exEnv] = v
|
||||
}
|
||||
}
|
||||
|
||||
// InitialEnv returns the value of the environment variable env before any environment changes made by minikube
|
||||
|
|
|
@ -38,14 +38,21 @@ const firstSubnetAddr = "192.168.49.0"
|
|||
const defaultSubnetMask = 24
|
||||
|
||||
// name of the default bridge network, used to lookup the MTU (see #9528)
|
||||
const defaultBridgeName = "bridge"
|
||||
const dockerDefaultBridge = "bridge"
|
||||
|
||||
// name of the default bridge network
|
||||
const podmanDefaultBridge = "podman"
|
||||
|
||||
// CreateNetwork creates a network returns gateway and error, minikube creates one network per cluster
|
||||
func CreateNetwork(ociBin string, name string) (net.IP, error) {
|
||||
return createDockerNetwork(ociBin, name)
|
||||
}
|
||||
func CreateNetwork(ociBin string, clusterName string) (net.IP, error) {
|
||||
var defaultBridgeName string
|
||||
if ociBin == Docker {
|
||||
defaultBridgeName = dockerDefaultBridge
|
||||
}
|
||||
if ociBin == Podman {
|
||||
defaultBridgeName = podmanDefaultBridge
|
||||
}
|
||||
|
||||
func createDockerNetwork(ociBin string, clusterName string) (net.IP, error) {
|
||||
// check if the network already exists
|
||||
info, err := containerNetworkInspect(ociBin, clusterName)
|
||||
if err == nil {
|
||||
|
@ -124,6 +131,9 @@ func tryCreateDockerNetwork(ociBin string, subnetAddr string, subnetMask int, mt
|
|||
if strings.Contains(rr.Output(), "failed to allocate gateway") && strings.Contains(rr.Output(), "Address already in use") {
|
||||
return nil, ErrNetworkGatewayTaken
|
||||
}
|
||||
if strings.Contains(rr.Output(), "is being used by a network interface") {
|
||||
return nil, ErrNetworkGatewayTaken
|
||||
}
|
||||
return nil, errors.Wrapf(err, "create network %s", fmt.Sprintf("%s %s/%d", name, subnetAddr, subnetMask))
|
||||
}
|
||||
return gateway, nil
|
||||
|
@ -191,7 +201,7 @@ func dockerNetworkInspect(name string) (netInfo, error) {
|
|||
|
||||
func podmanNetworkInspect(name string) (netInfo, error) {
|
||||
var info = netInfo{name: name}
|
||||
cmd := exec.Command(Podman, "network", "inspect", name, "--format", `{{(index .IPAM.Config 0).Subnet}},{{(index .IPAM.Config 0).Gateway}}`)
|
||||
cmd := exec.Command(Podman, "network", "inspect", name, "--format", `{{range .plugins}}{{if eq .type "bridge"}}{{(index (index .ipam.ranges 0) 0).subnet}},{{(index (index .ipam.ranges 0) 0).gateway}}{{end}}{{end}}`)
|
||||
rr, err := runCmd(cmd)
|
||||
if err != nil {
|
||||
logDockerNetworkInspect(Podman, name)
|
||||
|
|
|
@ -522,7 +522,6 @@ func ListContainersByLabel(ociBin string, label string, warnSlow ...bool) ([]str
|
|||
// PointToHostDockerDaemon will unset env variables that point to docker inside minikube
|
||||
// to make sure it points to the docker daemon installed by user.
|
||||
func PointToHostDockerDaemon() error {
|
||||
|
||||
if p := os.Getenv(constants.MinikubeActiveDockerdEnv); p != "" {
|
||||
klog.Infof("shell is pointing to dockerd inside minikube. will unset to use host")
|
||||
for _, e := range constants.DockerDaemonEnvs {
|
||||
|
@ -531,7 +530,6 @@ func PointToHostDockerDaemon() error {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -551,18 +549,13 @@ func resetEnv(key string) error {
|
|||
|
||||
// PointToHostPodman will unset env variables that point to podman inside minikube
|
||||
func PointToHostPodman() error {
|
||||
p := os.Getenv(constants.MinikubeActivePodmanEnv)
|
||||
if p != "" {
|
||||
if p := os.Getenv(constants.MinikubeActivePodmanEnv); p != "" {
|
||||
klog.Infof("shell is pointing to podman inside minikube. will unset to use host")
|
||||
}
|
||||
|
||||
for i := range constants.PodmanRemoteEnvs {
|
||||
e := constants.PodmanRemoteEnvs[i]
|
||||
err := os.Setenv(e, "")
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "resetting %s env", e)
|
||||
for _, e := range constants.PodmanRemoteEnvs {
|
||||
if err := resetEnv(e); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -642,17 +635,25 @@ func iptablesFileExists(ociBin string, nameOrID string) bool {
|
|||
}
|
||||
|
||||
// DaemonHost returns the ip/hostname where OCI daemon service for driver is running
|
||||
// For Podman it's always DefaultBindIPV4
|
||||
// For Podman return the host part of CONTAINER_HOST environment variable if set
|
||||
// For Docker return the host part of DOCKER_HOST environment variable if set
|
||||
// or DefaultBindIPV4 otherwise
|
||||
func DaemonHost(driver string) string {
|
||||
if driver != Docker {
|
||||
return DefaultBindIPV4
|
||||
if driver == Podman {
|
||||
if dh := os.Getenv(constants.PodmanContainerHostEnv); dh != "" {
|
||||
if u, err := url.Parse(dh); err == nil {
|
||||
if u.Host != "" {
|
||||
return u.Hostname()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if dh := os.Getenv(constants.DockerHostEnv); dh != "" {
|
||||
if u, err := url.Parse(dh); err == nil {
|
||||
if u.Host != "" {
|
||||
return u.Hostname()
|
||||
if driver == Docker {
|
||||
if dh := os.Getenv(constants.DockerHostEnv); dh != "" {
|
||||
if u, err := url.Parse(dh); err == nil {
|
||||
if u.Host != "" {
|
||||
return u.Hostname()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -660,15 +661,21 @@ func DaemonHost(driver string) string {
|
|||
}
|
||||
|
||||
// IsExternalDaemonHost returns whether or not the OCI runtime is running on an external/virtual host
|
||||
// For Podman driver it's always false for now
|
||||
// For Podman driver return true if CONTAINER_HOST is set to a URI, and the URI contains a host item
|
||||
// For Docker driver return true if DOCKER_HOST is set to a URI, and the URI contains a host item
|
||||
func IsExternalDaemonHost(driver string) bool {
|
||||
if driver != Docker {
|
||||
return false
|
||||
if driver == Podman {
|
||||
if dh := os.Getenv(constants.PodmanContainerHostEnv); dh != "" {
|
||||
if u, err := url.Parse(dh); err == nil {
|
||||
return u.Host != ""
|
||||
}
|
||||
}
|
||||
}
|
||||
if dh := os.Getenv(constants.DockerHostEnv); dh != "" {
|
||||
if u, err := url.Parse(dh); err == nil {
|
||||
return u.Host != ""
|
||||
if driver == Docker {
|
||||
if dh := os.Getenv(constants.DockerHostEnv); dh != "" {
|
||||
if u, err := url.Parse(dh); err == nil {
|
||||
return u.Host != ""
|
||||
}
|
||||
}
|
||||
}
|
||||
return false
|
||||
|
|
|
@ -71,21 +71,66 @@ func TestPointToHostDockerDaemon(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestPointToHostPodmanEmpty(t *testing.T) {
|
||||
_ = os.Setenv("CONTAINER_HOST", "foo_host")
|
||||
_ = os.Setenv("MINIKUBE_ACTIVE_PODMAN", "minikube")
|
||||
|
||||
_ = os.Unsetenv("MINIKUBE_EXISTING_CONTAINER_HOST")
|
||||
|
||||
if err := PointToHostPodman(); err != nil {
|
||||
t.Fatalf("failed to set podman environment: got %v", err)
|
||||
}
|
||||
|
||||
for _, key := range []string{
|
||||
"CONTAINER_HOST",
|
||||
} {
|
||||
if v, set := os.LookupEnv(key); set {
|
||||
t.Errorf("%v env variable should not be set. got: %v", key, v)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestPointToHostPodman(t *testing.T) {
|
||||
_ = os.Setenv("CONTAINER_HOST", "foo_host")
|
||||
|
||||
_ = os.Setenv("MINIKUBE_EXISTING_CONTAINER_HOST", "bar_host")
|
||||
|
||||
if err := PointToHostPodman(); err != nil {
|
||||
t.Fatalf("failed to set podman environment: got %v", err)
|
||||
}
|
||||
|
||||
expected := []struct {
|
||||
key, value string
|
||||
}{
|
||||
{"CONTAINER_HOST", "bar_host"},
|
||||
}
|
||||
for _, exp := range expected {
|
||||
if v := os.Getenv(exp.key); v != exp.value {
|
||||
t.Errorf("invalid %v env variable. got: %v, want: %v", exp.value, v, exp.value)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestDaemonHost(t *testing.T) {
|
||||
tests := []struct {
|
||||
driver string
|
||||
containerHost string
|
||||
dockerHost string
|
||||
expectedAddr string
|
||||
expectedExternal bool
|
||||
}{
|
||||
{"", "", "127.0.0.1", false},
|
||||
{"docker", "tcp://1.1.1.1:2222/foo", "1.1.1.1", true},
|
||||
{"podman", "tcp://1.1.1.1:2222/foo", "127.0.0.1", false},
|
||||
{"_invalid_", "tcp://1.1.1.1:2222/foo", "127.0.0.1", false},
|
||||
{"docker", "unix:///var/run/something", "127.0.0.1", false},
|
||||
{"docker", "tcp://127.0.0.1/foo", "127.0.0.1", true},
|
||||
{"", "", "", "127.0.0.1", false},
|
||||
{"docker", "", "tcp://1.1.1.1:2222/foo", "1.1.1.1", true},
|
||||
{"docker", "ssh://127.0.0.1/bar", "", "127.0.0.1", false},
|
||||
{"podman", "", "tcp://1.1.1.1:2222/foo", "127.0.0.1", false},
|
||||
{"podman", "ssh://127.0.0.1/bar", "", "127.0.0.1", true},
|
||||
{"_invalid_", "", "tcp://1.1.1.1:2222/foo", "127.0.0.1", false},
|
||||
{"docker", "", "unix:///var/run/something", "127.0.0.1", false},
|
||||
{"docker", "", "tcp://127.0.0.1/foo", "127.0.0.1", true},
|
||||
{"docker", "", "ssh://127.0.0.1/bar", "127.0.0.1", true},
|
||||
}
|
||||
for _, test := range tests {
|
||||
_ = os.Setenv("CONTAINER_HOST", test.containerHost)
|
||||
_ = os.Setenv("DOCKER_HOST", test.dockerHost)
|
||||
if v := IsExternalDaemonHost(test.driver); v != test.expectedExternal {
|
||||
t.Errorf("invalid result of IsExternalDaemonHost. got: %v, want: %v", v, test.expectedExternal)
|
||||
|
|
|
@ -90,7 +90,7 @@ func ExtractTarballToVolume(ociBin string, tarballPath, volumeName, imageName st
|
|||
if ociBin == Podman && runtime.GOOS == "linux" {
|
||||
cmdArgs = append(cmdArgs, "--security-opt", "label=disable")
|
||||
}
|
||||
cmdArgs = append(cmdArgs, "-v", fmt.Sprintf("%s:/preloaded.tar:ro", tarballPath), "-v", fmt.Sprintf("%s:/extractDir", volumeName), imageName, "-I", "lz4", "-xvf", "/preloaded.tar", "-C", "/extractDir")
|
||||
cmdArgs = append(cmdArgs, "-v", fmt.Sprintf("%s:/preloaded.tar:ro", tarballPath), "-v", fmt.Sprintf("%s:/extractDir", volumeName), imageName, "-I", "lz4", "-xf", "/preloaded.tar", "-C", "/extractDir")
|
||||
cmd := exec.Command(ociBin, cmdArgs...)
|
||||
if _, err := runCmd(cmd); err != nil {
|
||||
return err
|
||||
|
|
|
@ -24,9 +24,9 @@ import (
|
|||
|
||||
const (
|
||||
// Version is the current version of kic
|
||||
Version = "v0.0.15-snapshot2"
|
||||
Version = "v0.0.15-snapshot4"
|
||||
// SHA of the kic base image
|
||||
baseImageSHA = "0973e4bcdfef0dc8c5a581ecfcca5e36fa6a1cc8773e832ecfd31de3d2b6bf46"
|
||||
baseImageSHA = "ef1f485b5a1cfa4c989bc05e153f0a8525968ec999e242efff871cbb31649c16"
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
|
@ -61,7 +61,7 @@ type Config struct {
|
|||
|
||||
// NewDriver returns a fully configured None driver
|
||||
func NewDriver(c Config) *Driver {
|
||||
runner := command.NewExecRunner()
|
||||
runner := command.NewExecRunner(true)
|
||||
runtime, err := cruntime.New(cruntime.Config{Type: c.ContainerRuntime, Runner: runner})
|
||||
// Libraries shouldn't panic, but there is no way for drivers to return error :(
|
||||
if err != nil {
|
||||
|
|
|
@ -489,6 +489,7 @@ func GenerateTemplateData(cfg config.KubernetesConfig) interface{} {
|
|||
ImageRepository string
|
||||
LoadBalancerStartIP string
|
||||
LoadBalancerEndIP string
|
||||
CustomIngressCert string
|
||||
StorageProvisionerVersion string
|
||||
}{
|
||||
Arch: a,
|
||||
|
@ -496,6 +497,7 @@ func GenerateTemplateData(cfg config.KubernetesConfig) interface{} {
|
|||
ImageRepository: cfg.ImageRepository,
|
||||
LoadBalancerStartIP: cfg.LoadBalancerStartIP,
|
||||
LoadBalancerEndIP: cfg.LoadBalancerEndIP,
|
||||
CustomIngressCert: cfg.CustomIngressCert,
|
||||
StorageProvisionerVersion: version.GetStorageProvisionerVersion(),
|
||||
}
|
||||
|
||||
|
|
|
@ -57,6 +57,7 @@ etcd:
|
|||
local:
|
||||
dataDir: {{.EtcdDataDir}}
|
||||
controllerManagerExtraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
schedulerExtraArgs:
|
||||
leader-elect: "false"
|
||||
|
|
|
@ -116,7 +116,7 @@ func GenerateKubeadmYAML(cc config.ClusterConfig, n config.Node, r cruntime.Mana
|
|||
EtcdDataDir: EtcdDataDir(),
|
||||
EtcdExtraArgs: etcdExtraArgs(k8s.ExtraOptions),
|
||||
ClusterName: cc.Name,
|
||||
//kubeadm uses NodeName as the --hostname-override parameter, so this needs to be the name of the machine
|
||||
// kubeadm uses NodeName as the --hostname-override parameter, so this needs to be the name of the machine
|
||||
NodeName: KubeNodeName(cc, n),
|
||||
CRISocket: r.SocketPath(),
|
||||
ImageRepository: k8s.ImageRepository,
|
||||
|
|
|
@ -29,6 +29,7 @@ etcd:
|
|||
local:
|
||||
dataDir: /var/lib/minikube/etcd
|
||||
controllerManagerExtraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
schedulerExtraArgs:
|
||||
leader-elect: "false"
|
||||
|
|
|
@ -29,6 +29,7 @@ etcd:
|
|||
local:
|
||||
dataDir: /var/lib/minikube/etcd
|
||||
controllerManagerExtraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
schedulerExtraArgs:
|
||||
leader-elect: "false"
|
||||
|
|
|
@ -25,6 +25,7 @@ apiServer:
|
|||
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
extraArgs:
|
||||
|
|
|
@ -25,6 +25,7 @@ apiServer:
|
|||
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
extraArgs:
|
||||
|
|
|
@ -25,6 +25,7 @@ apiServer:
|
|||
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
extraArgs:
|
||||
|
|
|
@ -27,6 +27,7 @@ apiServer:
|
|||
feature-gates: "a=b"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
feature-gates: "a=b"
|
||||
kube-api-burst: "32"
|
||||
leader-elect: "false"
|
||||
|
|
|
@ -25,6 +25,7 @@ apiServer:
|
|||
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
extraArgs:
|
||||
|
|
|
@ -25,6 +25,7 @@ apiServer:
|
|||
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
extraArgs:
|
||||
|
|
|
@ -25,6 +25,7 @@ apiServer:
|
|||
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
extraArgs:
|
||||
|
|
|
@ -26,6 +26,7 @@ apiServer:
|
|||
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
extraArgs:
|
||||
|
|
|
@ -26,6 +26,7 @@ apiServer:
|
|||
fail-no-swap: "true"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
kube-api-burst: "32"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
|
|
|
@ -25,6 +25,7 @@ apiServer:
|
|||
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
extraArgs:
|
||||
|
|
|
@ -25,6 +25,7 @@ apiServer:
|
|||
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
extraArgs:
|
||||
|
|
|
@ -25,6 +25,7 @@ apiServer:
|
|||
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
extraArgs:
|
||||
|
|
|
@ -27,6 +27,7 @@ apiServer:
|
|||
feature-gates: "a=b"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
feature-gates: "a=b"
|
||||
kube-api-burst: "32"
|
||||
leader-elect: "false"
|
||||
|
|
|
@ -25,6 +25,7 @@ apiServer:
|
|||
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
extraArgs:
|
||||
|
|
|
@ -25,6 +25,7 @@ apiServer:
|
|||
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
extraArgs:
|
||||
|
|
|
@ -25,6 +25,7 @@ apiServer:
|
|||
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
extraArgs:
|
||||
|
|
|
@ -26,6 +26,7 @@ apiServer:
|
|||
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
extraArgs:
|
||||
|
|
|
@ -26,6 +26,7 @@ apiServer:
|
|||
fail-no-swap: "true"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
kube-api-burst: "32"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue