Merge branch 'master' into master
commit
2a86770a92
|
@ -12,7 +12,7 @@ on:
|
|||
- "!deploy/iso/**"
|
||||
env:
|
||||
GOPROXY: https://proxy.golang.org
|
||||
GO_VERSION: '1.19.2'
|
||||
GO_VERSION: '1.19.3'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ on:
|
|||
- master
|
||||
env:
|
||||
GOPROXY: https://proxy.golang.org
|
||||
GO_VERSION: '1.19.2'
|
||||
GO_VERSION: '1.19.3'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
|
@ -26,7 +26,10 @@ jobs:
|
|||
c=$(git status --porcelain)
|
||||
c="${c//$'\n'/'%0A'}"
|
||||
c="${c//$'\r'/'%0D'}"
|
||||
echo "changes=$c" >> $GITHUB_OUTPUT
|
||||
# The following is to support multiline with GITHUB_OUTPUT, see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
|
||||
echo "changes<<EOF" >> $GITHUB_OUTPUT
|
||||
echo "$c" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
- name: Create PR
|
||||
if: ${{ steps.gendocs.outputs.changes != '' }}
|
||||
uses: peter-evans/create-pull-request@b4d51739f96fca8047ad065eccef63442d8e99f7
|
||||
|
|
|
@ -22,7 +22,7 @@ on:
|
|||
- deleted
|
||||
env:
|
||||
GOPROXY: https://proxy.golang.org
|
||||
GO_VERSION: '1.19.2'
|
||||
GO_VERSION: '1.19.3'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
|
|
@ -6,7 +6,7 @@ on:
|
|||
- 'v*-beta.*'
|
||||
env:
|
||||
GOPROXY: https://proxy.golang.org
|
||||
GO_VERSION: '1.19.2'
|
||||
GO_VERSION: '1.19.3'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
|
@ -25,7 +25,10 @@ jobs:
|
|||
c=$(git status --porcelain)
|
||||
c="${c//$'\n'/'%0A'}"
|
||||
c="${c//$'\r'/'%0D'}"
|
||||
echo "changes=$c" >> $GITHUB_OUTPUT
|
||||
# The following is to support multiline with GITHUB_OUTPUT, see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
|
||||
echo "changes<<EOF" >> $GITHUB_OUTPUT
|
||||
echo "$c" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.MINIKUBE_BOT_PAT }}
|
||||
- name: Create PR
|
||||
|
|
|
@ -14,7 +14,7 @@ on:
|
|||
- "!deploy/iso/**"
|
||||
env:
|
||||
GOPROXY: https://proxy.golang.org
|
||||
GO_VERSION: '1.19.2'
|
||||
GO_VERSION: '1.19.3'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ on:
|
|||
- "!deploy/iso/**"
|
||||
env:
|
||||
GOPROXY: https://proxy.golang.org
|
||||
GO_VERSION: '1.19.2'
|
||||
GO_VERSION: '1.19.3'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ on:
|
|||
- cron: "0 2,14 * * *"
|
||||
env:
|
||||
GOPROXY: https://proxy.golang.org
|
||||
GO_VERSION: '1.19.2'
|
||||
GO_VERSION: '1.19.3'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ on:
|
|||
- cron: "0 2,14 * * *"
|
||||
env:
|
||||
GOPROXY: https://proxy.golang.org
|
||||
GO_VERSION: '1.19.2'
|
||||
GO_VERSION: '1.19.3'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ on:
|
|||
types: [released]
|
||||
env:
|
||||
GOPROXY: https://proxy.golang.org
|
||||
GO_VERSION: '1.19.2'
|
||||
GO_VERSION: '1.19.3'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ on:
|
|||
- "translations/**"
|
||||
env:
|
||||
GOPROXY: https://proxy.golang.org
|
||||
GO_VERSION: '1.19.2'
|
||||
GO_VERSION: '1.19.3'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ on:
|
|||
- cron: "0 9 * * 1"
|
||||
env:
|
||||
GOPROXY: https://proxy.golang.org
|
||||
GO_VERSION: '1.19.2'
|
||||
GO_VERSION: '1.19.3'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
|
@ -22,7 +22,10 @@ jobs:
|
|||
id: bumpGolang
|
||||
run: |
|
||||
make update-golang-version
|
||||
echo "changes=$(git status --porcelain)" >> $GITHUB_OUTPUT
|
||||
# The following is to support multiline with GITHUB_OUTPUT, see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
|
||||
echo "changes<<EOF" >> $GITHUB_OUTPUT
|
||||
echo "$(git status --porcelain)" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
- name: Create PR
|
||||
if: ${{ steps.bumpGolang.outputs.changes != '' }}
|
||||
uses: peter-evans/create-pull-request@b4d51739f96fca8047ad065eccef63442d8e99f7
|
||||
|
|
|
@ -6,7 +6,7 @@ on:
|
|||
- cron: "0 10 * * 1"
|
||||
env:
|
||||
GOPROXY: https://proxy.golang.org
|
||||
GO_VERSION: '1.19.2'
|
||||
GO_VERSION: '1.19.3'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
|
@ -22,7 +22,10 @@ jobs:
|
|||
id: bumpGolint
|
||||
run: |
|
||||
make update-golint-version
|
||||
echo "changes=$(git status --porcelain)" >> $GITHUB_OUTPUT
|
||||
# The following is to support multiline with GITHUB_OUTPUT, see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
|
||||
echo "changes<<EOF" >> $GITHUB_OUTPUT
|
||||
echo "$(git status --porcelain)" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
- name: Create PR
|
||||
if: ${{ steps.bumpGolint.outputs.changes != '' }}
|
||||
uses: peter-evans/create-pull-request@b4d51739f96fca8047ad065eccef63442d8e99f7
|
||||
|
|
|
@ -6,7 +6,7 @@ on:
|
|||
- cron: "0 9 * * 1"
|
||||
env:
|
||||
GOPROXY: https://proxy.golang.org
|
||||
GO_VERSION: '1.19.2'
|
||||
GO_VERSION: '1.19.3'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
|
@ -22,7 +22,10 @@ jobs:
|
|||
id: bumpGopogh
|
||||
run: |
|
||||
make update-gopogh-version
|
||||
echo "changes=$(git status --porcelain)" >> $GITHUB_OUTPUT
|
||||
# The following is to support multiline with GITHUB_OUTPUT, see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
|
||||
echo "changes<<EOF" >> $GITHUB_OUTPUT
|
||||
echo "$(git status --porcelain)" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
- name: Create PR
|
||||
if: ${{ steps.bumpGopogh.outputs.changes != '' }}
|
||||
uses: peter-evans/create-pull-request@b4d51739f96fca8047ad065eccef63442d8e99f7
|
||||
|
|
|
@ -6,7 +6,7 @@ on:
|
|||
- cron: "0 10 * * 1"
|
||||
env:
|
||||
GOPROXY: https://proxy.golang.org
|
||||
GO_VERSION: '1.19.2'
|
||||
GO_VERSION: '1.19.3'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
|
@ -22,7 +22,10 @@ jobs:
|
|||
id: bumpGotestsum
|
||||
run: |
|
||||
make update-gotestsum-version
|
||||
echo "changes=$(git status --porcelain)" >> $GITHUB_OUTPUT
|
||||
# The following is to support multiline with GITHUB_OUTPUT, see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
|
||||
echo "changes<<EOF" >> $GITHUB_OUTPUT
|
||||
echo "$(git status --porcelain)" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
- name: Create PR
|
||||
if: ${{ steps.bumpGotestsum.outputs.changes != '' }}
|
||||
uses: peter-evans/create-pull-request@b4d51739f96fca8047ad065eccef63442d8e99f7
|
||||
|
|
|
@ -6,7 +6,7 @@ on:
|
|||
- cron: "0 8 * * 1"
|
||||
env:
|
||||
GOPROXY: https://proxy.golang.org
|
||||
GO_VERSION: '1.19.2'
|
||||
GO_VERSION: '1.19.3'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
|
@ -27,7 +27,10 @@ jobs:
|
|||
c=$(git status --porcelain)
|
||||
c="${c//$'\n'/'%0A'}"
|
||||
c="${c//$'\r'/'%0D'}"
|
||||
echo "changes=$c" >> $GITHUB_OUTPUT
|
||||
# The following is to support multiline with GITHUB_OUTPUT, see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
|
||||
echo "changes<<EOF" >> $GITHUB_OUTPUT
|
||||
echo "$c" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
- name: Create PR
|
||||
if: ${{ steps.bumpk8s.outputs.changes != '' }}
|
||||
uses: peter-evans/create-pull-request@b4d51739f96fca8047ad065eccef63442d8e99f7
|
||||
|
|
|
@ -6,7 +6,7 @@ on:
|
|||
- cron: "0 6 * * 1"
|
||||
env:
|
||||
GOPROXY: https://proxy.golang.org
|
||||
GO_VERSION: '1.19.2'
|
||||
GO_VERSION: '1.19.3'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
|
@ -25,7 +25,10 @@ jobs:
|
|||
c=$(git status --porcelain)
|
||||
c="${c//$'\n'/'%0A'}"
|
||||
c="${c//$'\r'/'%0D'}"
|
||||
echo "changes=$c" >> $GITHUB_OUTPUT
|
||||
# The following is to support multiline with GITHUB_OUTPUT, see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
|
||||
echo "changes<<EOF" >> $GITHUB_OUTPUT
|
||||
echo "$c" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
- name: Create PR
|
||||
if: ${{ steps.bumpKubeadmConsts.outputs.changes != '' }}
|
||||
uses: peter-evans/create-pull-request@b4d51739f96fca8047ad065eccef63442d8e99f7
|
||||
|
|
|
@ -6,7 +6,7 @@ on:
|
|||
- cron: "0 0 2 * *"
|
||||
env:
|
||||
GOPROXY: https://proxy.golang.org
|
||||
GO_VERSION: '1.19.2'
|
||||
GO_VERSION: '1.19.3'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
|
@ -27,7 +27,10 @@ jobs:
|
|||
id: yearlyLeaderboard
|
||||
run: |
|
||||
make update-yearly-leaderboard
|
||||
echo "changes=$(git status --porcelain)" >> $GITHUB_OUTPUT
|
||||
# The following is to support multiline with GITHUB_OUTPUT, see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
|
||||
echo "changes<<EOF" >> $GITHUB_OUTPUT
|
||||
echo "$(git status --porcelain)" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.MINIKUBE_BOT_PAT }}
|
||||
- name: Create PR
|
||||
|
|
64
CHANGELOG.md
64
CHANGELOG.md
|
@ -1,5 +1,69 @@
|
|||
# Release Notes
|
||||
|
||||
## Version 1.28.0 - 2022-11-04
|
||||
|
||||
**SECURITY WARNING:** Log4j CVEs were detected in an image the `efk` addon uses, if you don't use the `efk` addon no action is required. If you use the addon we recommend running `minikube addons disable efk` to terminate the vulnerable pods.
|
||||
See [#15280](https://github.com/kubernetes/minikube/issues/15280) for more details.
|
||||
|
||||
Security:
|
||||
* Prevent enabling `efk` addon due to containing Log4j CVE [#15281](https://github.com/kubernetes/minikube/pull/15281)
|
||||
|
||||
Features:
|
||||
* Auto select network on QEMU [#15266](https://github.com/kubernetes/minikube/pull/15266)
|
||||
* Implement mounting on QEMU with socket_vmnet [#15108](https://github.com/kubernetes/minikube/pull/15108)
|
||||
* Added cloud-spanner emulator addon [#15160](https://github.com/kubernetes/minikube/pull/15160)
|
||||
* Add `minikube license` command [#15158](https://github.com/kubernetes/minikube/pull/15158)
|
||||
|
||||
Minor Improvements:
|
||||
* Allow port forwarding on Linux with Docker Desktop [#15126](https://github.com/kubernetes/minikube/pull/15126)
|
||||
* Add back service to mount VirtualBox host directory into the guest. [#14784](https://github.com/kubernetes/minikube/pull/14784)
|
||||
* ISO: Add FANOTIFY_ACCESS_PERMISSIONS to kernel configs [#15232](https://github.com/kubernetes/minikube/pull/15232)
|
||||
* When enabling addon warn if addon has no associated Github username [#15081](https://github.com/kubernetes/minikube/pull/15081)
|
||||
|
||||
Bug Fixes:
|
||||
* Fix detecting preload cache of size 0 as valid [#15256](https://github.com/kubernetes/minikube/pull/15256)
|
||||
* Fix always writing to daemon by trimming `docker.io` from image name [#14956](https://github.com/kubernetes/minikube/pull/14956)
|
||||
* Fix minikube tunnel repeated printout of status [#14933](https://github.com/kubernetes/minikube/pull/14933)
|
||||
|
||||
Version Upgrades:
|
||||
* Upgrade Portainer addon to 2.15.1 & HTTPS access enabled [#15172](https://github.com/kubernetes/minikube/pull/15172)
|
||||
* Upgrade Headlamp addon to 0.13.0 [#15186](https://github.com/kubernetes/minikube/pull/15186)
|
||||
* ISO: Upgrade Docker from 20.10.18 to 20.10.20 [#15159](https://github.com/kubernetes/minikube/pull/15159)
|
||||
* KIC: Upgrade base image from ubuntu:focal-20220826 to ubuntu:focal-20220922 [#15075](https://github.com/kubernetes/minikube/pull/15075)
|
||||
* KCI: Upgrade base image from ubuntu:focal-20220922 to ubuntu:focal-20221019 [#15219](https://github.com/kubernetes/minikube/pull/15219)
|
||||
|
||||
For a more detailed changelog, including changes occurring in pre-release versions, see [CHANGELOG.md](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md).
|
||||
|
||||
Thank you to our contributors for this release!
|
||||
|
||||
- Chris Kannon
|
||||
- Francis Laniel
|
||||
- Jeff MAURY
|
||||
- Jevon Tane
|
||||
- Medya Ghazizadeh
|
||||
- Nitin Agarwal
|
||||
- Oldřich Jedlička
|
||||
- Rahil Patel
|
||||
- Steven Powell
|
||||
- Tian
|
||||
- Yue Yang
|
||||
- joaquimrocha
|
||||
- klaases
|
||||
- shixiuguo
|
||||
|
||||
Thank you to our PR reviewers for this release!
|
||||
|
||||
- spowelljr (25 comments)
|
||||
- medyagh (14 comments)
|
||||
|
||||
Thank you to our triage members for this release!
|
||||
|
||||
- RA489 (64 comments)
|
||||
- klaases (39 comments)
|
||||
- afbjorklund (23 comments)
|
||||
- spowelljr (22 comments)
|
||||
- medyagh (4 comments)
|
||||
|
||||
## Version 1.27.1 - 2022-10-07
|
||||
|
||||
Features (Experimental):
|
||||
|
|
15
Makefile
15
Makefile
|
@ -14,8 +14,8 @@
|
|||
|
||||
# Bump these on release - and please check ISO_VERSION for correctness.
|
||||
VERSION_MAJOR ?= 1
|
||||
VERSION_MINOR ?= 27
|
||||
VERSION_BUILD ?= 1
|
||||
VERSION_MINOR ?= 28
|
||||
VERSION_BUILD ?= 0
|
||||
RAW_VERSION=$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_BUILD)
|
||||
VERSION ?= v$(RAW_VERSION)
|
||||
|
||||
|
@ -23,7 +23,7 @@ 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.28.0-1667831044-15235
|
||||
ISO_VERSION ?= v1.28.0-1668110411-15341
|
||||
|
||||
# Dashes are valid in semver, but not Linux packaging. Use ~ to delimit alpha/beta
|
||||
DEB_VERSION ?= $(subst -,~,$(RAW_VERSION))
|
||||
|
@ -34,7 +34,7 @@ RPM_REVISION ?= 0
|
|||
|
||||
# used by hack/jenkins/release_build_and_upload.sh and KVM_BUILD_IMAGE, see also BUILD_IMAGE below
|
||||
# update this only by running `make update-golang-version`
|
||||
GO_VERSION ?= 1.19.2
|
||||
GO_VERSION ?= 1.19.3
|
||||
# update this only by running `make update-golang-version`
|
||||
GO_K8S_VERSION_PREFIX ?= v1.25.0
|
||||
|
||||
|
@ -45,7 +45,7 @@ KVM_GO_VERSION ?= $(GO_VERSION:.0=)
|
|||
INSTALL_SIZE ?= $(shell du out/minikube-windows-amd64.exe | cut -f1)
|
||||
BUILDROOT_BRANCH ?= 2021.02.12
|
||||
# the go version on the line below is for the ISO and does not need to be updated often
|
||||
GOLANG_OPTIONS = GO_VERSION=1.19.2 GO_HASH_FILE=$(PWD)/deploy/iso/minikube-iso/go.hash
|
||||
GOLANG_OPTIONS = GO_VERSION=1.19.3 GO_HASH_FILE=$(PWD)/deploy/iso/minikube-iso/go.hash
|
||||
BUILDROOT_OPTIONS = BR2_EXTERNAL=../../deploy/iso/minikube-iso $(GOLANG_OPTIONS)
|
||||
REGISTRY ?= gcr.io/k8s-minikube
|
||||
|
||||
|
@ -110,7 +110,7 @@ SHA512SUM=$(shell command -v sha512sum || echo "shasum -a 512")
|
|||
GVISOR_TAG ?= latest
|
||||
|
||||
# auto-pause-hook tag to push changes to
|
||||
AUTOPAUSE_HOOK_TAG ?= v0.0.2
|
||||
AUTOPAUSE_HOOK_TAG ?= v0.0.3
|
||||
|
||||
# prow-test tag to push changes to
|
||||
PROW_TEST_TAG ?= v0.0.3
|
||||
|
@ -927,10 +927,11 @@ endif
|
|||
|
||||
|
||||
site/themes/docsy/assets/vendor/bootstrap/package.js: ## update the website docsy theme git submodule
|
||||
git submodule update -f --init --recursive
|
||||
git submodule update -f --init
|
||||
|
||||
out/hugo/hugo:
|
||||
mkdir -p out
|
||||
(cd site/themes/docsy && npm install)
|
||||
test -d out/hugo || git clone https://github.com/gohugoio/hugo.git out/hugo
|
||||
(cd out/hugo && go build --tags extended)
|
||||
|
||||
|
|
|
@ -68,9 +68,7 @@ func createTestConfig(t *testing.T) {
|
|||
t.Helper()
|
||||
td := t.TempDir()
|
||||
|
||||
if err := os.Setenv(localpath.MinikubeHome, td); err != nil {
|
||||
t.Fatalf("error setting up test environment. could not set %s due to %+v", localpath.MinikubeHome, err)
|
||||
}
|
||||
t.Setenv(localpath.MinikubeHome, td)
|
||||
|
||||
// Not necessary, but it is a handy random alphanumeric
|
||||
if err := os.MkdirAll(localpath.MakeMiniPath("config"), 0777); err != nil {
|
||||
|
|
|
@ -86,9 +86,7 @@ func TestDeleteProfile(t *testing.T) {
|
|||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if err := os.Setenv(localpath.MinikubeHome, td); err != nil {
|
||||
t.Errorf("setenv: %v", err)
|
||||
}
|
||||
t.Setenv(localpath.MinikubeHome, td)
|
||||
|
||||
beforeProfiles, err := fileNames(filepath.Join(localpath.MiniPath(), "profiles"))
|
||||
if err != nil {
|
||||
|
@ -163,9 +161,7 @@ func TestDeleteAllProfiles(t *testing.T) {
|
|||
t.Fatalf("copy: %v", err)
|
||||
}
|
||||
|
||||
if err := os.Setenv(localpath.MinikubeHome, td); err != nil {
|
||||
t.Errorf("error setting up test environment. could not set %s", localpath.MinikubeHome)
|
||||
}
|
||||
t.Setenv(localpath.MinikubeHome, td)
|
||||
|
||||
pFiles, err := fileNames(filepath.Join(localpath.MiniPath(), "profiles"))
|
||||
if err != nil {
|
||||
|
|
|
@ -19,7 +19,6 @@ package cmd
|
|||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
|
@ -443,7 +442,7 @@ func TestValidDockerProxy(t *testing.T) {
|
|||
}
|
||||
|
||||
for _, tc := range tests {
|
||||
os.Setenv("ALL_PROXY", tc.proxy)
|
||||
t.Setenv("ALL_PROXY", tc.proxy)
|
||||
valid := isValidDockerProxy("ALL_PROXY")
|
||||
if tc.isValid && valid != tc.isValid {
|
||||
t.Errorf("Expect %#v to be valid docker proxy", tc.proxy)
|
||||
|
|
|
@ -282,7 +282,6 @@ func init() {
|
|||
updateCheckCmd,
|
||||
versionCmd,
|
||||
optionsCmd,
|
||||
licenseCmd,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
@ -290,6 +289,7 @@ func init() {
|
|||
|
||||
// Ungrouped commands will show up in the "Other Commands" section
|
||||
RootCmd.AddCommand(completionCmd)
|
||||
RootCmd.AddCommand(licenseCmd)
|
||||
templates.ActsAsRootCommand(RootCmd, []string{"options"}, groups...)
|
||||
|
||||
if err := viper.BindPFlags(RootCmd.PersistentFlags()); err != nil {
|
||||
|
|
|
@ -1428,7 +1428,7 @@ func validateChangedMemoryFlags(drvName string) {
|
|||
if err != nil {
|
||||
klog.Warningf("Unable to query memory limits: %+v", err)
|
||||
}
|
||||
req = noLimitMemory(sysLimit, containerLimit)
|
||||
req = noLimitMemory(sysLimit, containerLimit, drvName)
|
||||
} else {
|
||||
req, err = util.CalculateSizeInMB(memString)
|
||||
if err != nil {
|
||||
|
@ -1438,12 +1438,18 @@ func validateChangedMemoryFlags(drvName string) {
|
|||
validateRequestedMemorySize(req, drvName)
|
||||
}
|
||||
|
||||
func noLimitMemory(sysLimit int, containerLimit int) int {
|
||||
func noLimitMemory(sysLimit, containerLimit int, drvName string) int {
|
||||
if containerLimit != 0 {
|
||||
return containerLimit
|
||||
}
|
||||
// Recommend 1GB to handle OS/VM overhead
|
||||
return sysLimit - 1024
|
||||
sysOverhead := 1024
|
||||
if drvName == "virtualbox" {
|
||||
// VirtualBox fully allocates all requested memory on start, it doesn't dynamically allocate when needed like other drivers
|
||||
// Because of this allow more system overhead to prevent out of memory issues
|
||||
sysOverhead = 1536
|
||||
}
|
||||
return sysLimit - sysOverhead
|
||||
}
|
||||
|
||||
// This function validates if the --registry-mirror
|
||||
|
|
|
@ -369,7 +369,7 @@ func getMemorySize(cmd *cobra.Command, drvName string) int {
|
|||
memString := viper.GetString(memory)
|
||||
var err error
|
||||
if memString == constants.MaxResources {
|
||||
mem = noLimitMemory(sysLimit, containerLimit)
|
||||
mem = noLimitMemory(sysLimit, containerLimit, drvName)
|
||||
} else {
|
||||
mem, err = pkgutil.CalculateSizeInMB(memString)
|
||||
if err != nil {
|
||||
|
@ -620,9 +620,18 @@ func generateNewConfigFromFlags(cmd *cobra.Command, k8sVersion string, rtime str
|
|||
}
|
||||
out.Styled(style.Notice, "Using {{.driver_name}} driver with root privileges", out.V{"driver_name": driver.FullName(drvName)})
|
||||
}
|
||||
// for btrfs: if k8s < v1.25.0-beta.0 set kubelet's LocalStorageCapacityIsolation feature gate flag to false,
|
||||
// and if k8s >= v1.25.0-beta.0 (when it went ga and removed as feature gate), set kubelet's localStorageCapacityIsolation option (via kubeadm config) to false.
|
||||
// ref: https://github.com/kubernetes/minikube/issues/14728#issue-1327885840
|
||||
if si.StorageDriver == "btrfs" {
|
||||
if semver.MustParse(strings.TrimPrefix(k8sVersion, version.VersionPrefix)).LT(semver.MustParse("1.25.0-beta.0")) {
|
||||
klog.Info("auto-setting LocalStorageCapacityIsolation to false because using btrfs storage driver")
|
||||
cc.KubernetesConfig.FeatureGates = addFeatureGate(cc.KubernetesConfig.FeatureGates, "LocalStorageCapacityIsolation=false")
|
||||
} else if !cc.KubernetesConfig.ExtraOptions.Exists("kubelet.localStorageCapacityIsolation=false") {
|
||||
if err := cc.KubernetesConfig.ExtraOptions.Set("kubelet.localStorageCapacityIsolation=false"); err != nil {
|
||||
exit.Error(reason.InternalConfigSet, "failed to set extra option", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
if runtime.GOOS == "linux" && si.DockerOS == "Docker Desktop" {
|
||||
out.WarningT("For an improved experience it's recommended to use Docker Engine instead of Docker Desktop.\nDocker Engine installation instructions: https://docs.docker.com/engine/install/#server")
|
||||
|
|
|
@ -18,7 +18,6 @@ package cmd
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
|
@ -172,13 +171,6 @@ func TestGenerateCfgFromFlagsHTTPProxyHandling(t *testing.T) {
|
|||
// Set default disk size value in lieu of flag init
|
||||
viper.SetDefault(humanReadableDiskSize, defaultDiskSize)
|
||||
|
||||
originalEnv := os.Getenv("HTTP_PROXY")
|
||||
defer func() {
|
||||
err := os.Setenv("HTTP_PROXY", originalEnv)
|
||||
if err != nil {
|
||||
t.Fatalf("Error reverting env HTTP_PROXY to it's original value. Got err: %s", err)
|
||||
}
|
||||
}()
|
||||
k8sVersion := constants.NewestKubernetesVersion
|
||||
rtime := constants.DefaultContainerRuntime
|
||||
var tests = []struct {
|
||||
|
@ -222,9 +214,7 @@ func TestGenerateCfgFromFlagsHTTPProxyHandling(t *testing.T) {
|
|||
for _, test := range tests {
|
||||
t.Run(test.description, func(t *testing.T) {
|
||||
cmd := &cobra.Command{}
|
||||
if err := os.Setenv("HTTP_PROXY", test.proxy); err != nil {
|
||||
t.Fatalf("Unexpected error setting HTTP_PROXY: %v", err)
|
||||
}
|
||||
t.Setenv("HTTP_PROXY", test.proxy)
|
||||
|
||||
cfg.DockerEnv = []string{} // clear docker env to avoid pollution
|
||||
proxy.SetDockerEnv()
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
FROM golang:1.19.2
|
||||
FROM golang:1.19.3
|
||||
ADD auto-pause-hook /auto-pause-hook
|
||||
|
|
|
@ -19,7 +19,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: cloud-spanner-emulator
|
||||
image: gcr.io/cloud-spanner-emulator/emulator:latest
|
||||
image: {{.CustomRegistries.CloudSpanner | default .ImageRepository | default .Registries.CloudSpanner}}{{.Images.CloudSpanner}}
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- containerPort: 9020
|
||||
|
|
|
@ -109,7 +109,7 @@ rules:
|
|||
- apiGroups:
|
||||
- ""
|
||||
resourceNames:
|
||||
- ingress-controller-leader
|
||||
- ingress-nginx-leader
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
|
@ -121,6 +121,21 @@ rules:
|
|||
- configmaps
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- coordination.k8s.io
|
||||
resourceNames:
|
||||
- ingress-nginx-leader
|
||||
resources:
|
||||
- leases
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- apiGroups:
|
||||
- coordination.k8s.io
|
||||
resources:
|
||||
- leases
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
|
@ -128,6 +143,14 @@ rules:
|
|||
verbs:
|
||||
- create
|
||||
- patch
|
||||
- apiGroups:
|
||||
- discovery.k8s.io
|
||||
resources:
|
||||
- endpointslices
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- get
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
|
@ -167,6 +190,13 @@ rules:
|
|||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- coordination.k8s.io
|
||||
resources:
|
||||
- leases
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
|
@ -216,6 +246,14 @@ rules:
|
|||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- discovery.k8s.io
|
||||
resources:
|
||||
- endpointslices
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- get
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
|
@ -429,7 +467,7 @@ spec:
|
|||
containers:
|
||||
- args:
|
||||
- /nginx-ingress-controller
|
||||
- --election-id=ingress-controller-leader
|
||||
- --election-id=ingress-nginx-leader
|
||||
{{- if eq .IngressAPIVersion "v1"}}
|
||||
- --controller-class=k8s.io/ingress-nginx
|
||||
- --watch-ingress-without-class=true
|
||||
|
|
|
@ -17,3 +17,4 @@ sha256 02b79d5e2b07b5e64cd28f1fe84395ee11eef95fc49fd923a9ab93022b148be6 v1.5.11.
|
|||
sha256 f422e21e35705d1e741c1f3280813e43f811eaff4dcc5cdafac8b8952b15f468 v1.6.4.tar.gz
|
||||
sha265 27afb673c20d53aa5c31aec07b38eb7e4dc911e7e1f0c76fac9513bbf070bd24 v1.6.6.tar.gz
|
||||
sha256 f5f938513c28377f64f85e84f2750d39f26b01262f3a062b7e8ce35b560ca407 v1.6.8.tar.gz
|
||||
sha256 a034b2273533207d5d96bef8bd3fce1efff85139815efb756d90c705ae1a05ce v1.6.9.tar.gz
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
# containerd
|
||||
#
|
||||
################################################################################
|
||||
CONTAINERD_BIN_AARCH64_VERSION = v1.6.8
|
||||
CONTAINERD_BIN_AARCH64_COMMIT = 9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6
|
||||
CONTAINERD_BIN_AARCH64_VERSION = v1.6.9
|
||||
CONTAINERD_BIN_AARCH64_COMMIT = 1c90a442489720eec95342e1789ee8a5e1b9536f
|
||||
CONTAINERD_BIN_AARCH64_SITE = https://github.com/containerd/containerd/archive
|
||||
CONTAINERD_BIN_AARCH64_SOURCE = $(CONTAINERD_BIN_AARCH64_VERSION).tar.gz
|
||||
CONTAINERD_BIN_AARCH64_DEPENDENCIES = host-go libgpgme
|
||||
|
|
|
@ -5,3 +5,4 @@ sha256 249244024b507a6599084522cc73e73993349d13264505b387593f2b2ed603e6 docker-2
|
|||
sha256 aa2b2da571fb9160df87fd5a831f203fb97655e35fb9c4e8d46e72078ae16acf docker-20.10.18.tgz
|
||||
sha256 a04414b3fcf537f0cff17cf01e2b7cb3e39013c10d12e7959547f11aaf71f63c docker-20.10.19.tgz
|
||||
sha256 ef69a2a8ddb87026a8b19e240b2ae3087764b7285860df7faee24e04024f2eb7 docker-20.10.20.tgz
|
||||
sha256 b4ceb6151d4dd1bfc7557f5fe0317e29cfcac91f798c34fae7dee891a811f8ee docker-20.10.21.tgz
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#
|
||||
################################################################################
|
||||
|
||||
DOCKER_BIN_AARCH64_VERSION = 20.10.20
|
||||
DOCKER_BIN_AARCH64_VERSION = 20.10.21
|
||||
DOCKER_BIN_AARCH64_SITE = https://download.docker.com/linux/static/stable/aarch64
|
||||
DOCKER_BIN_AARCH64_SOURCE = docker-$(DOCKER_BIN_AARCH64_VERSION).tgz
|
||||
|
||||
|
|
|
@ -17,3 +17,4 @@ sha256 02b79d5e2b07b5e64cd28f1fe84395ee11eef95fc49fd923a9ab93022b148be6 v1.5.11.
|
|||
sha256 f422e21e35705d1e741c1f3280813e43f811eaff4dcc5cdafac8b8952b15f468 v1.6.4.tar.gz
|
||||
sha256 27afb673c20d53aa5c31aec07b38eb7e4dc911e7e1f0c76fac9513bbf070bd24 v1.6.6.tar.gz
|
||||
sha256 f5f938513c28377f64f85e84f2750d39f26b01262f3a062b7e8ce35b560ca407 v1.6.8.tar.gz
|
||||
sha256 a034b2273533207d5d96bef8bd3fce1efff85139815efb756d90c705ae1a05ce v1.6.9.tar.gz
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
# containerd
|
||||
#
|
||||
################################################################################
|
||||
CONTAINERD_BIN_VERSION = v1.6.8
|
||||
CONTAINERD_BIN_COMMIT = 9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6
|
||||
CONTAINERD_BIN_VERSION = v1.6.9
|
||||
CONTAINERD_BIN_COMMIT = 1c90a442489720eec95342e1789ee8a5e1b9536f
|
||||
CONTAINERD_BIN_SITE = https://github.com/containerd/containerd/archive
|
||||
CONTAINERD_BIN_SOURCE = $(CONTAINERD_BIN_VERSION).tar.gz
|
||||
CONTAINERD_BIN_DEPENDENCIES = host-go libgpgme
|
||||
|
|
|
@ -41,3 +41,4 @@ sha256 969210917b5548621a2b541caf00f86cc6963c6cf0fb13265b9731c3b98974d9 docker-
|
|||
sha256 0629b063fa3aa5660f3fb96f67edb0e20e92d5050b82403f95faf1c142177401 docker-20.10.18.tgz
|
||||
sha256 ddcd732baaa03958cc8f326a5dca09bcd8f348bb7d2737aaf67bbdd7d80302d1 docker-20.10.19.tgz
|
||||
sha256 a303cee9125c89abbbb6c4f044b3e2c01c7895e373b90d8de16a7ed25bb2530a docker-20.10.20.tgz
|
||||
sha256 2582bed8772b283bda9d4565c0af76ee653c93d93dc6b8d0aad795d731a1bb81 docker-20.10.21.tgz
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#
|
||||
################################################################################
|
||||
|
||||
DOCKER_BIN_VERSION = 20.10.20
|
||||
DOCKER_BIN_VERSION = 20.10.21
|
||||
DOCKER_BIN_SITE = https://download.docker.com/linux/static/stable/x86_64
|
||||
DOCKER_BIN_SOURCE = docker-$(DOCKER_BIN_VERSION).tgz
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[Unit]
|
||||
Description=Hyper-V FCOPY Daemon
|
||||
Documentation=https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/integration-services#hyper-v-guest-service-interface
|
||||
Documentation=https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/integration-services#hyper-v-guest-service-interface
|
||||
BindsTo=sys-devices-virtual-misc-vmbus\x21hv_fcopy.device
|
||||
|
||||
[Service]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[Unit]
|
||||
Description=Hyper-V Key Value Pair Daemon
|
||||
Documentation=https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/integration-services#hyper-v-data-exchange-service-kvp
|
||||
Documentation=https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/integration-services#hyper-v-data-exchange-service-kvp
|
||||
BindsTo=sys-devices-virtual-misc-vmbus\x21hv_kvp.device
|
||||
|
||||
[Service]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[Unit]
|
||||
Description=Hyper-V VSS Daemon
|
||||
Documentation=https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/integration-services#hyper-v-volume-shadow-copy-requestor
|
||||
Documentation=https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/integration-services#hyper-v-volume-shadow-copy-requestor
|
||||
BindsTo=sys-devices-virtual-misc-vmbus\x21hv_vss.device
|
||||
|
||||
[Service]
|
||||
|
|
|
@ -3,4 +3,5 @@ sha256 3a70e5055509f347c0fb831ca07a2bf3b531068f349b14a3c652e9b5b67beb5d go1.17
|
|||
sha256 0012386ddcbb5f3350e407c679923811dbd283fcdc421724931614a842ecbc2d go1.18.3.src.tar.gz
|
||||
sha256 27871baa490f3401414ad793fba49086f6c855b1c584385ed7771e1204c7e179 go1.19.1.src.tar.gz
|
||||
sha256 2ce930d70a931de660fdaf271d70192793b1b240272645bf0275779f6704df6b go1.19.2.src.tar.gz
|
||||
sha256 18ac263e39210bcf68d85f4370e97fb1734166995a1f63fb38b4f6e07d90d212 go1.19.3.src.tar.gz
|
||||
sha256 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 LICENSE
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
|
||||
# multi-stage docker build so we can build auto-pause for arm64
|
||||
FROM golang:1.19.2 as auto-pause
|
||||
FROM golang:1.19.3 as auto-pause
|
||||
WORKDIR /src
|
||||
# auto-pause depends on core minikube code so we need to pass the whole source code as the context
|
||||
# copy in the minimal amount of source code possible
|
||||
|
|
|
@ -1,4 +1,30 @@
|
|||
[
|
||||
{
|
||||
"checksums": {
|
||||
"amd64": {
|
||||
"darwin": "667ab2baeae7829392533a9ef733e94ea88c87a8edf38ee088d349077152cc95",
|
||||
"linux": "58cead5ece9815a61d4be253a07b2385f8cf373d9e1eba5c9783444e4e9e2d8e",
|
||||
"windows": "65304e5c5c98a688fb0abc2d76d77b3b441f9501d6dfa71d96a0532f4114d34c"
|
||||
},
|
||||
"arm": {
|
||||
"linux": "802af1d58e5707f2c1e2253f88dadf79bbde25bd803ad726d68ef21eb2b2b75a"
|
||||
},
|
||||
"arm64": {
|
||||
"darwin": "8dc1b6018ce7ba344394e26dac62a7db477dbfcba63d9cdf55ea8e0c2fc755f4",
|
||||
"linux": "648d09c00ceee3b53d60ea92796c772abcb42bd9bb7e871fe0b233e39a4675ce"
|
||||
},
|
||||
"ppc64le": {
|
||||
"linux": "27b4d08b98711ab89306e92085d7dd129339c170483d1c54343a71dfa75b4cc7"
|
||||
},
|
||||
"s390x": {
|
||||
"linux": "3067c320e521b6ad1642b50eb955305ec7cefca54b53f73713494a857b1431a0"
|
||||
},
|
||||
"darwin": "667ab2baeae7829392533a9ef733e94ea88c87a8edf38ee088d349077152cc95",
|
||||
"linux": "58cead5ece9815a61d4be253a07b2385f8cf373d9e1eba5c9783444e4e9e2d8e",
|
||||
"windows": "65304e5c5c98a688fb0abc2d76d77b3b441f9501d6dfa71d96a0532f4114d34c"
|
||||
},
|
||||
"name": "v1.28.0"
|
||||
},
|
||||
{
|
||||
"checksums": {
|
||||
"amd64": {
|
||||
|
|
|
@ -1,4 +1,12 @@
|
|||
[
|
||||
{
|
||||
"checksums": {
|
||||
"darwin": "667ab2baeae7829392533a9ef733e94ea88c87a8edf38ee088d349077152cc95",
|
||||
"linux": "58cead5ece9815a61d4be253a07b2385f8cf373d9e1eba5c9783444e4e9e2d8e",
|
||||
"windows": "65304e5c5c98a688fb0abc2d76d77b3b441f9501d6dfa71d96a0532f4114d34c"
|
||||
},
|
||||
"name": "v1.28.0"
|
||||
},
|
||||
{
|
||||
"checksums": {
|
||||
"darwin": "aa60ff42b4d60b1a65552a5f527d78f68efa887e1eab0af013996badfbccc3c8",
|
||||
|
|
47
go.mod
47
go.mod
|
@ -3,7 +3,7 @@ module k8s.io/minikube
|
|||
go 1.19
|
||||
|
||||
require (
|
||||
cloud.google.com/go/storage v1.27.0
|
||||
cloud.google.com/go/storage v1.28.0
|
||||
contrib.go.opencensus.io/exporter/stackdriver v0.13.12
|
||||
github.com/Delta456/box-cli-maker/v2 v2.3.0
|
||||
github.com/GoogleCloudPlatform/docker-credential-gcr v0.0.0-20210713212222-faed5e8b8ca2
|
||||
|
@ -24,7 +24,7 @@ require (
|
|||
github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3
|
||||
github.com/google/go-cmp v0.5.9
|
||||
github.com/google/go-containerregistry v0.12.0
|
||||
github.com/google/slowjam v1.0.0
|
||||
github.com/google/slowjam v1.0.1
|
||||
github.com/google/uuid v1.3.0
|
||||
github.com/hashicorp/go-getter v1.6.2
|
||||
github.com/hashicorp/go-retryablehttp v0.7.1
|
||||
|
@ -61,33 +61,33 @@ require (
|
|||
github.com/pmezard/go-difflib v1.0.0
|
||||
github.com/russross/blackfriday v1.6.0 // indirect
|
||||
github.com/samalba/dockerclient v0.0.0-20160414174713-91d7393ff859 // indirect
|
||||
github.com/shirou/gopsutil/v3 v3.22.9
|
||||
github.com/shirou/gopsutil/v3 v3.22.10
|
||||
github.com/spf13/cobra v1.6.1
|
||||
github.com/spf13/pflag v1.0.5
|
||||
github.com/spf13/viper v1.13.0
|
||||
github.com/spf13/viper v1.14.0
|
||||
github.com/zchee/go-vmnet v0.0.0-20161021174912-97ebf9174097
|
||||
go.opencensus.io v0.23.0
|
||||
go.opencensus.io v0.24.0
|
||||
go.opentelemetry.io/otel v1.11.1
|
||||
go.opentelemetry.io/otel/sdk v1.11.1
|
||||
go.opentelemetry.io/otel/trace v1.11.1
|
||||
golang.org/x/build v0.0.0-20190927031335-2835ba2e683f
|
||||
golang.org/x/crypto v0.1.0
|
||||
golang.org/x/crypto v0.2.0
|
||||
golang.org/x/exp v0.0.0-20220909182711-5c715a9e8561
|
||||
golang.org/x/mod v0.6.0
|
||||
golang.org/x/oauth2 v0.1.0
|
||||
golang.org/x/oauth2 v0.2.0
|
||||
golang.org/x/sync v0.1.0
|
||||
golang.org/x/sys v0.1.0
|
||||
golang.org/x/term v0.1.0
|
||||
golang.org/x/sys v0.2.0
|
||||
golang.org/x/term v0.2.0
|
||||
golang.org/x/text v0.4.0
|
||||
gonum.org/v1/plot v0.12.0
|
||||
google.golang.org/api v0.100.0
|
||||
google.golang.org/api v0.102.0
|
||||
gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0
|
||||
k8s.io/api v0.25.3
|
||||
k8s.io/apimachinery v0.25.3
|
||||
k8s.io/client-go v0.25.3
|
||||
k8s.io/api v0.25.4
|
||||
k8s.io/apimachinery v0.25.4
|
||||
k8s.io/client-go v0.25.4
|
||||
k8s.io/cluster-bootstrap v0.0.0
|
||||
k8s.io/component-base v0.25.3
|
||||
k8s.io/component-base v0.25.4
|
||||
k8s.io/klog/v2 v2.80.1
|
||||
k8s.io/kubectl v0.25.3
|
||||
k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed
|
||||
|
@ -106,8 +106,9 @@ require (
|
|||
|
||||
require (
|
||||
cloud.google.com/go v0.104.0 // indirect
|
||||
cloud.google.com/go/compute v1.10.0 // indirect
|
||||
cloud.google.com/go/iam v0.3.0 // indirect
|
||||
cloud.google.com/go/compute v1.12.1 // indirect
|
||||
cloud.google.com/go/compute/metadata v0.2.1 // indirect
|
||||
cloud.google.com/go/iam v0.5.0 // indirect
|
||||
cloud.google.com/go/monitoring v1.1.0 // indirect
|
||||
cloud.google.com/go/trace v1.2.0 // indirect
|
||||
git.sr.ht/~sbinet/gg v0.3.1 // indirect
|
||||
|
@ -137,7 +138,7 @@ require (
|
|||
github.com/emicklei/go-restful/v3 v3.8.0 // indirect
|
||||
github.com/evanphx/json-patch v4.12.0+incompatible // indirect
|
||||
github.com/fatih/color v1.13.0 // indirect
|
||||
github.com/fsnotify/fsnotify v1.5.4 // indirect
|
||||
github.com/fsnotify/fsnotify v1.6.0 // indirect
|
||||
github.com/go-fonts/liberation v0.2.0 // indirect
|
||||
github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81 // indirect
|
||||
github.com/go-logr/logr v1.2.3 // indirect
|
||||
|
@ -200,7 +201,7 @@ require (
|
|||
github.com/rivo/uniseg v0.2.0 // indirect
|
||||
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
||||
github.com/sirupsen/logrus v1.9.0 // indirect
|
||||
github.com/spf13/afero v1.8.2 // indirect
|
||||
github.com/spf13/afero v1.9.2 // indirect
|
||||
github.com/spf13/cast v1.5.0 // indirect
|
||||
github.com/spf13/jwalterweatherman v1.1.0 // indirect
|
||||
github.com/subosito/gotenv v1.4.1 // indirect
|
||||
|
@ -210,16 +211,16 @@ require (
|
|||
github.com/vbatts/tar-split v0.11.2 // indirect
|
||||
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
|
||||
github.com/yusufpapurcu/wmi v1.2.2 // indirect
|
||||
go.uber.org/atomic v1.7.0 // indirect
|
||||
go.uber.org/atomic v1.9.0 // indirect
|
||||
go.uber.org/multierr v1.8.0 // indirect
|
||||
go.uber.org/zap v1.19.0 // indirect
|
||||
go.uber.org/zap v1.21.0 // indirect
|
||||
golang.org/x/image v0.0.0-20220902085622-e7cb96979f69 // indirect
|
||||
golang.org/x/net v0.1.0 // indirect
|
||||
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
|
||||
golang.org/x/net v0.2.0 // indirect
|
||||
golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect
|
||||
golang.org/x/tools v0.1.12 // indirect
|
||||
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
|
||||
google.golang.org/appengine v1.6.7 // indirect
|
||||
google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a // indirect
|
||||
google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e // indirect
|
||||
google.golang.org/grpc v1.50.1 // indirect
|
||||
google.golang.org/protobuf v1.28.1 // indirect
|
||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||
|
|
103
go.sum
103
go.sum
|
@ -41,12 +41,14 @@ cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4g
|
|||
cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
|
||||
cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow=
|
||||
cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM=
|
||||
cloud.google.com/go/compute v1.10.0 h1:aoLIYaA1fX3ywihqpBk2APQKOo20nXsp1GEZQbx5Jk4=
|
||||
cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU=
|
||||
cloud.google.com/go/compute v1.12.1 h1:gKVJMEyqV5c/UnpzjjQbo3Rjvvqpr9B1DFSbJC4OXr0=
|
||||
cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU=
|
||||
cloud.google.com/go/compute/metadata v0.2.1 h1:efOwf5ymceDhK6PKMnnrTHP4pppY5L22mle96M1yP48=
|
||||
cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM=
|
||||
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
|
||||
cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
|
||||
cloud.google.com/go/iam v0.3.0 h1:exkAomrVUuzx9kWFI1wm3KI0uoDeUFPB4kKGzx6x+Gc=
|
||||
cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY=
|
||||
cloud.google.com/go/iam v0.5.0 h1:fz9X5zyTWBmamZsqvqZqD7khbifcZF/q+Z1J8pfhIUg=
|
||||
cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc=
|
||||
cloud.google.com/go/monitoring v1.1.0 h1:ZnyNdf/XRcynMmKzRSNTOdOyYPs6G7do1l2D2hIvIKo=
|
||||
cloud.google.com/go/monitoring v1.1.0/go.mod h1:L81pzz7HKn14QCMaCs6NTQkdBnE87TElyanS95vIcl4=
|
||||
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
|
||||
|
@ -59,8 +61,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl
|
|||
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
|
||||
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
||||
cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
|
||||
cloud.google.com/go/storage v1.27.0 h1:YOO045NZI9RKfCj1c5A/ZtuuENUc8OAW+gHdGnDgyMQ=
|
||||
cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s=
|
||||
cloud.google.com/go/storage v1.28.0 h1:DLrIZ6xkeZX6K70fU/boWx5INJumt6f+nwwWSHXzzGY=
|
||||
cloud.google.com/go/storage v1.28.0/go.mod h1:qlgZML35PXA3zoEnIkiPLY4/TOkUleufRlu6qmcf7sI=
|
||||
cloud.google.com/go/trace v1.0.0/go.mod h1:4iErSByzxkyHWzzlAj63/Gmjz0NH1ASqhJguHpGcr6A=
|
||||
cloud.google.com/go/trace v1.2.0 h1:oIaB4KahkIUOpLSAAjEJ8y2desbjY/x/RfP4O3KAtTI=
|
||||
cloud.google.com/go/trace v1.2.0/go.mod h1:Wc8y/uYyOhPy12KEnXG9XGrvfMz5F5SrYecQlbW1rwM=
|
||||
|
@ -416,8 +418,8 @@ github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM
|
|||
github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=
|
||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
||||
github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI=
|
||||
github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU=
|
||||
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
|
||||
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
|
||||
github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA=
|
||||
github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
|
||||
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||
|
@ -584,8 +586,8 @@ github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLe
|
|||
github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||
github.com/google/slowjam v1.0.0 h1:dA9flW4oGTJcSy8FpEvdq8JKwPFVgqYwMmjhqlb2L+s=
|
||||
github.com/google/slowjam v1.0.0/go.mod h1:mNktULbvWfYVMKKmpt94Rp3jMtmhQZLS0iR+W84S0mM=
|
||||
github.com/google/slowjam v1.0.1 h1:RrR0qrKELIC1iv7r1FgbtohxDl6QytIj67B9brpgrdg=
|
||||
github.com/google/slowjam v1.0.1/go.mod h1:13Ws7TkS56WroVpQFout67W7EjTn+VUVhKxJqPgopWg=
|
||||
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
|
@ -754,12 +756,10 @@ github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7
|
|||
github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA=
|
||||
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
|
||||
github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho=
|
||||
github.com/maruel/panicparse v1.5.0/go.mod h1:aOutY/MUjdj80R0AEVI9qE2zHqig+67t2ffUDDiLzAM=
|
||||
github.com/mattbaird/jsonpatch v0.0.0-20200820163806-098863c1fc24 h1:uYuGXJBAi1umT+ZS4oQJUgKtfXCAYTR+n9zw1ViT0vA=
|
||||
github.com/mattbaird/jsonpatch v0.0.0-20200820163806-098863c1fc24/go.mod h1:M1qoD/MqPgTZIk0EWKB38wE28ACRfVcn+cU08jyArI0=
|
||||
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
||||
github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||
github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||
github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||
github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40=
|
||||
|
@ -780,7 +780,6 @@ github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vq
|
|||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI=
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
|
||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
|
||||
github.com/miekg/dns v1.1.29/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
|
||||
github.com/miekg/dns v1.1.41 h1:WMszZWJG0XmzbK9FEmzH2TVcqYzFesusSIB41b8KHxY=
|
||||
github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI=
|
||||
|
@ -986,8 +985,8 @@ github.com/sayboras/dockerclient v1.0.0 h1:awHcxOzTP07Gl1SJAhkTCTagyJwgA6f/Az/Z4
|
|||
github.com/sayboras/dockerclient v1.0.0/go.mod h1:mUmEoqt0b+uQg57s006FsvL4mybi+N5wINLDBGtaPTY=
|
||||
github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
|
||||
github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg=
|
||||
github.com/shirou/gopsutil/v3 v3.22.9 h1:yibtJhIVEMcdw+tCTbOPiF1VcsuDeTE4utJ8Dm4c5eA=
|
||||
github.com/shirou/gopsutil/v3 v3.22.9/go.mod h1:bBYl1kjgEJpWpxeHmLI+dVHWtyAwfcmSBLDsp2TNT8A=
|
||||
github.com/shirou/gopsutil/v3 v3.22.10 h1:4KMHdfBRYXGF9skjDWiL4RA2N+E8dRdodU/bOZpPoVg=
|
||||
github.com/shirou/gopsutil/v3 v3.22.10/go.mod h1:QNza6r4YQoydyCfo6rH0blGfKahgibh4dQmV5xdFkQk=
|
||||
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
||||
github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
|
||||
github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc=
|
||||
|
@ -1009,8 +1008,8 @@ github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4k
|
|||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
||||
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
|
||||
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
||||
github.com/spf13/afero v1.8.2 h1:xehSyVa0YnHWsJ49JFljMpg1HX19V6NDZ1fkm1Xznbo=
|
||||
github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo=
|
||||
github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw=
|
||||
github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
|
||||
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
||||
github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
|
||||
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
|
||||
|
@ -1029,8 +1028,8 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn
|
|||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
|
||||
github.com/spf13/viper v1.13.0 h1:BWSJ/M+f+3nmdz9bxB+bWX28kkALN2ok11D0rSo8EJU=
|
||||
github.com/spf13/viper v1.13.0/go.mod h1:Icm2xNL3/8uyh/wFuB1jI7TiTNKp8632Nwegu+zgdYw=
|
||||
github.com/spf13/viper v1.14.0 h1:Rg7d3Lo706X9tHsJMUjdiwMpHB7W8WnSVOssIY+JElU=
|
||||
github.com/spf13/viper v1.14.0/go.mod h1:WT//axPky3FdvXHzGw33dNdXXXfFQqmEalje+egj8As=
|
||||
github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8=
|
||||
github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
|
||||
github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
|
@ -1038,6 +1037,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
|
|||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||
github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
|
@ -1046,8 +1046,9 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5
|
|||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
|
||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs=
|
||||
github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
|
||||
github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
|
||||
|
@ -1112,8 +1113,9 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
|||
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
|
||||
go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M=
|
||||
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
|
||||
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
|
||||
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
|
||||
go.opentelemetry.io/otel v1.11.1 h1:4WLLAmcfkmDk2ukNXJyq3/kiz/3UzCaYq6PskJsaou4=
|
||||
go.opentelemetry.io/otel v1.11.1/go.mod h1:1nNhXBbWSD0nsL38H6btgnFN2k4i0sNLHNNMZMSbUGE=
|
||||
go.opentelemetry.io/otel/sdk v1.11.1 h1:F7KmQgoHljhUuJyA+9BiU+EkJfyX5nVVF4wyzWZpKxs=
|
||||
|
@ -1123,17 +1125,18 @@ go.opentelemetry.io/otel/trace v1.11.1/go.mod h1:f/Q9G7vzk5u91PhbmKbg1Qn0rzH1LJ4
|
|||
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
|
||||
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
|
||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
|
||||
go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
|
||||
go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||
go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
|
||||
go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk=
|
||||
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
|
||||
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
|
||||
go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8=
|
||||
go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak=
|
||||
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
||||
go.uber.org/zap v1.19.0 h1:mZQZefskPPCMIBCSEH0v2/iUqqLrYtaeqwD6FUGUnFE=
|
||||
go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
||||
go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8=
|
||||
go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw=
|
||||
go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE=
|
||||
golang.org/x/build v0.0.0-20190927031335-2835ba2e683f h1:hXVePvSFG7tPGX4Pwk1d10ePFfoTCc0QmISfpKOHsS8=
|
||||
golang.org/x/build v0.0.0-20190927031335-2835ba2e683f/go.mod h1:fYw7AShPAhGMdXqA9gRadk/CcMsvLlClpE5oBwnS3dM=
|
||||
|
@ -1158,8 +1161,8 @@ golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm
|
|||
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU=
|
||||
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
|
||||
golang.org/x/crypto v0.2.0 h1:BRXPfhNivWL5Yq0BGQ39a2sW6t44aODpfxkWjYdzewE=
|
||||
golang.org/x/crypto v0.2.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||
|
@ -1263,8 +1266,8 @@ golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qx
|
|||
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.1.0 h1:hZ/3BUoy5aId7sCpA/Tc5lt8DkFgdVS2onTpJsZ/fl0=
|
||||
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
|
||||
golang.org/x/net v0.2.0 h1:sZfSu1wtKLGlWI4ZZayP0ck9Y73K1ynO6gqzTdBVdPU=
|
||||
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
|
@ -1283,8 +1286,8 @@ golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ
|
|||
golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.1.0 h1:isLCZuhj4v+tYv7eskaN4v/TM+A1begWWgyVJDdl1+Y=
|
||||
golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A=
|
||||
golang.org/x/oauth2 v0.2.0 h1:GtQkldQ9m7yvzCL1V+LrYow3Khe0eJH0w7RbX/VbaIU=
|
||||
golang.org/x/oauth2 v0.2.0/go.mod h1:Cwn6afJ8jrQwYMxQDTpISoXmXW9I6qF6vDeuuoX3Ibs=
|
||||
golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
|
@ -1409,21 +1412,22 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc
|
|||
golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220517195934-5e4e11fc645e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U=
|
||||
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A=
|
||||
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.0.0-20221017184919-83659145692c/go.mod h1:VTIZ7TEbF0BS9Sv9lPTvGbtW8i4z6GGbJBCM37uMCzY=
|
||||
golang.org/x/term v0.1.0 h1:g6Z6vPFA9dYBAF7DWcH6sCcOntplXsDKcliusYijMlw=
|
||||
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.2.0 h1:z85xZCsEl7bi/KwbNADeBYoOP0++7W1ipu+aGnpwzRM=
|
||||
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
|
||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
|
@ -1440,8 +1444,8 @@ golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxb
|
|||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 h1:vVKdlvoWBphwdxWKrFZEuM0kGgGLxUOYcY4U/2Vjg44=
|
||||
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20220609170525-579cf78fd858 h1:Dpdu/EMxGMFgq0CeYMh4fazTD2vtlZRYE7wyynxJb9U=
|
||||
golang.org/x/time v0.0.0-20220609170525-579cf78fd858/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
|
@ -1463,7 +1467,6 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw
|
|||
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
|
@ -1551,8 +1554,8 @@ google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3h
|
|||
google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo=
|
||||
google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g=
|
||||
google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA=
|
||||
google.golang.org/api v0.100.0 h1:LGUYIrbW9pzYQQ8NWXlaIVkgnfubVBZbMFb9P8TK374=
|
||||
google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70=
|
||||
google.golang.org/api v0.102.0 h1:JxJl2qQ85fRMPNvlZY/enexbxpCjLwGhZUtgfGeQ51I=
|
||||
google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo=
|
||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
|
@ -1636,8 +1639,8 @@ google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ6
|
|||
google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
|
||||
google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
|
||||
google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
|
||||
google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a h1:GH6UPn3ixhWcKDhpnEC55S75cerLPdpp3hrhfKYjZgw=
|
||||
google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM=
|
||||
google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e h1:S9GbmC1iCgvbLyAokVCwiO6tVIrU9Y7c5oMx1V/ki/Y=
|
||||
google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s=
|
||||
google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
|
||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||
|
@ -1747,15 +1750,15 @@ k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo=
|
|||
k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ=
|
||||
k8s.io/api v0.20.6/go.mod h1:X9e8Qag6JV/bL5G6bU8sdVRltWKmdHsFUGS3eVndqE8=
|
||||
k8s.io/api v0.22.4/go.mod h1:Rgs+9gIGYC5laXQSZZ9JqT5NevNgoGiOdVWi1BAB3qk=
|
||||
k8s.io/api v0.25.3 h1:Q1v5UFfYe87vi5H7NU0p4RXC26PPMT8KOpr1TLQbCMQ=
|
||||
k8s.io/api v0.25.3/go.mod h1:o42gKscFrEVjHdQnyRenACrMtbuJsVdP+WVjqejfzmI=
|
||||
k8s.io/api v0.25.4 h1:3YO8J4RtmG7elEgaWMb4HgmpS2CfY1QlaOz9nwB+ZSs=
|
||||
k8s.io/api v0.25.4/go.mod h1:IG2+RzyPQLllQxnhzD8KQNEu4c4YvyDTpSMztf4A0OQ=
|
||||
k8s.io/apimachinery v0.19.1/go.mod h1:DnPGDnARWFvYa3pMHgSxtbZb7gpzzAZ1pTfaUNDVlmA=
|
||||
k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
|
||||
k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU=
|
||||
k8s.io/apimachinery v0.20.6/go.mod h1:ejZXtW1Ra6V1O5H8xPBGz+T3+4gfkTCeExAHKU57MAc=
|
||||
k8s.io/apimachinery v0.22.4/go.mod h1:yU6oA6Gnax9RrxGzVvPFFJ+mpnW6PBSqp0sx0I0HHW0=
|
||||
k8s.io/apimachinery v0.25.3 h1:7o9ium4uyUOM76t6aunP0nZuex7gDf8VGwkR5RcJnQc=
|
||||
k8s.io/apimachinery v0.25.3/go.mod h1:jaF9C/iPNM1FuLl7Zuy5b9v+n35HGSh6AQ4HYRkCqwo=
|
||||
k8s.io/apimachinery v0.25.4 h1:CtXsuaitMESSu339tfhVXhQrPET+EiWnIY1rcurKnAc=
|
||||
k8s.io/apimachinery v0.25.4/go.mod h1:jaF9C/iPNM1FuLl7Zuy5b9v+n35HGSh6AQ4HYRkCqwo=
|
||||
k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU=
|
||||
k8s.io/apiserver v0.20.4/go.mod h1:Mc80thBKOyy7tbvFtB4kJv1kbdD0eIH8k8vianJcbFM=
|
||||
k8s.io/apiserver v0.20.6/go.mod h1:QIJXNt6i6JB+0YQRNcS0hdRHJlMhflFmsBDeSgT1r8Q=
|
||||
|
@ -1763,15 +1766,15 @@ k8s.io/client-go v0.19.1/go.mod h1:AZOIVSI9UUtQPeJD3zJFp15CEhSjRgAuQP5PWRJrCIQ=
|
|||
k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y=
|
||||
k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k=
|
||||
k8s.io/client-go v0.20.6/go.mod h1:nNQMnOvEUEsOzRRFIIkdmYOjAZrC8bgq0ExboWSU1I0=
|
||||
k8s.io/client-go v0.25.3 h1:oB4Dyl8d6UbfDHD8Bv8evKylzs3BXzzufLiO27xuPs0=
|
||||
k8s.io/client-go v0.25.3/go.mod h1:t39LPczAIMwycjcXkVc+CB+PZV69jQuNx4um5ORDjQA=
|
||||
k8s.io/client-go v0.25.4 h1:3RNRDffAkNU56M/a7gUfXaEzdhZlYhoW8dgViGy5fn8=
|
||||
k8s.io/client-go v0.25.4/go.mod h1:8trHCAC83XKY0wsBIpbirZU4NTUpbuhc2JnI7OruGZw=
|
||||
k8s.io/cluster-bootstrap v0.22.4 h1:2ZhV/1K4GiCrnmDHHbBnN3bERWn+Nxrtxmxp6uYYThI=
|
||||
k8s.io/cluster-bootstrap v0.22.4/go.mod h1:fTQZ6u9G6fg2LHhB8nEgZLnXIhCDSRYuLUUS5pgW8RY=
|
||||
k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk=
|
||||
k8s.io/component-base v0.20.4/go.mod h1:t4p9EdiagbVCJKrQ1RsA5/V4rFQNDfRlevJajlGwgjI=
|
||||
k8s.io/component-base v0.20.6/go.mod h1:6f1MPBAeI+mvuts3sIdtpjljHWBQ2cIy38oBIWMYnrM=
|
||||
k8s.io/component-base v0.25.3 h1:UrsxciGdrCY03ULT1h/S/gXFCOPnLhUVwSyx+hM/zq4=
|
||||
k8s.io/component-base v0.25.3/go.mod h1:WYoS8L+IlTZgU7rhAl5Ctpw0WdMxDfCC5dkxcEFa/TI=
|
||||
k8s.io/component-base v0.25.4 h1:n1bjg9Yt+G1C0WnIDJmg2fo6wbEU1UGMRiQSjmj7hNQ=
|
||||
k8s.io/component-base v0.25.4/go.mod h1:nnZJU8OP13PJEm6/p5V2ztgX2oyteIaAGKGMYb2L2cY=
|
||||
k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM=
|
||||
k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI=
|
||||
k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI=
|
||||
|
|
|
@ -1,22 +1,28 @@
|
|||
# System Tray Icon
|
||||
# minikube GUI
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- minikube setup and available on your path, follow the [Getting Start doc](https://minikube.sigs.k8s.io/docs/start/) if not already done
|
||||
|
||||
## Running
|
||||
|
||||
Open in [Qt Creator](https://doc.qt.io/qtcreator/) GUI:
|
||||
### From binary (end-user)
|
||||
|
||||
View our documentation for downloading and running the GUI: [Setting Up minikube GUI](https://minikube.sigs.k8s.io/docs/tutorials/setup_minikube_gui/)
|
||||
|
||||
### From Qt Creator
|
||||
|
||||
Open in [Qt Creator](https://doc.qt.io/qtcreator/) via:
|
||||
|
||||
```shell
|
||||
qtcreator systray.pro
|
||||
qtcreator minikube.pro
|
||||
```
|
||||
|
||||
Or on the command line:
|
||||
### From Command Line
|
||||
|
||||
```console
|
||||
$ qmake
|
||||
$ make
|
||||
...
|
||||
$ ./systray
|
||||
$ ./minikube
|
||||
```
|
||||
|
||||
----
|
||||
|
||||
See <https://doc.qt.io/qt-5/qtwidgets-desktop-systray-example.html>
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit a1f382413bb7f572f198167f58fbb3abbf51d38b
|
||||
Subproject commit 552fcb3a171f6216f233dfdba5dce9aca1efda50
|
|
@ -30,7 +30,7 @@ function Write-GithubStatus {
|
|||
$env:SHORT_COMMIT=$env:COMMIT.substring(0, 7)
|
||||
$gcs_bucket="minikube-builds/logs/$env:MINIKUBE_LOCATION/$env:ROOT_JOB_ID"
|
||||
$env:MINIKUBE_SUPPRESS_DOCKER_PERFORMANCE="true"
|
||||
$GoVersion = "1.19.2"
|
||||
$GoVersion = "1.19.3"
|
||||
|
||||
# Docker's kubectl breaks things, and comes earlier in the path than the regular kubectl. So download the expected kubectl and replace Docker's version.
|
||||
$KubeVersion = (Invoke-WebRequest -Uri 'https://storage.googleapis.com/kubernetes-release/release/stable.txt' -UseBasicParsing).Content
|
||||
|
|
|
@ -22,7 +22,7 @@ if (($# < 1)); then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
VERSION_TO_INSTALL=1.19.2
|
||||
VERSION_TO_INSTALL=1.19.3
|
||||
INSTALL_PATH=${1}
|
||||
|
||||
function current_arch() {
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
[build]
|
||||
base = "site/"
|
||||
publish = "site/public/"
|
||||
command = "pwd && cd themes/docsy && git submodule update -f --init && cd ../.. && hugo"
|
||||
command = "pwd && cd themes/docsy && npm install && git submodule update -f --init && cd ../.. && hugo"
|
||||
|
||||
[build.environment]
|
||||
HUGO_VERSION = "0.83.1"
|
||||
NODE_VERSION = "14.21.1"
|
||||
HUGO_VERSION = "0.105.0"
|
||||
|
||||
[context.production.environment]
|
||||
HUGO_ENV = "production"
|
||||
|
|
|
@ -32,9 +32,7 @@ func createTestProfile(t *testing.T) string {
|
|||
t.Helper()
|
||||
td := t.TempDir()
|
||||
|
||||
if err := os.Setenv(localpath.MinikubeHome, td); err != nil {
|
||||
t.Errorf("error setting up test environment. could not set %s", localpath.MinikubeHome)
|
||||
}
|
||||
t.Setenv(localpath.MinikubeHome, td)
|
||||
|
||||
// Not necessary, but it is a handy random alphanumeric
|
||||
name := filepath.Base(td)
|
||||
|
|
|
@ -22,10 +22,10 @@ import (
|
|||
)
|
||||
|
||||
func TestPointToHostDockerDaemonEmpty(t *testing.T) {
|
||||
_ = os.Setenv("DOCKER_HOST", "foo_host")
|
||||
_ = os.Setenv("DOCKER_CERT_PATH", "foo_cert_path")
|
||||
_ = os.Setenv("DOCKER_TLS_VERIFY", "foo_tls_verify")
|
||||
_ = os.Setenv("MINIKUBE_ACTIVE_DOCKERD", "minikube")
|
||||
t.Setenv("DOCKER_HOST", "foo_host")
|
||||
t.Setenv("DOCKER_CERT_PATH", "foo_cert_path")
|
||||
t.Setenv("DOCKER_TLS_VERIFY", "foo_tls_verify")
|
||||
t.Setenv("MINIKUBE_ACTIVE_DOCKERD", "minikube")
|
||||
|
||||
_ = os.Unsetenv("MINIKUBE_EXISTING_DOCKER_HOST")
|
||||
_ = os.Unsetenv("MINIKUBE_EXISTING_DOCKER_CERT_PATH")
|
||||
|
@ -45,13 +45,14 @@ func TestPointToHostDockerDaemonEmpty(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestPointToHostDockerDaemon(t *testing.T) {
|
||||
_ = os.Setenv("DOCKER_HOST", "foo_host")
|
||||
_ = os.Setenv("DOCKER_CERT_PATH", "foo_cert_path")
|
||||
_ = os.Setenv("DOCKER_TLS_VERIFY", "foo_tls_verify")
|
||||
t.Setenv("DOCKER_HOST", "foo_host")
|
||||
t.Setenv("DOCKER_CERT_PATH", "foo_cert_path")
|
||||
t.Setenv("DOCKER_TLS_VERIFY", "foo_tls_verify")
|
||||
t.Setenv("MINIKUBE_ACTIVE_DOCKERD", "minikube")
|
||||
|
||||
_ = os.Setenv("MINIKUBE_EXISTING_DOCKER_HOST", "bar_host")
|
||||
_ = os.Setenv("MINIKUBE_EXISTING_DOCKER_CERT_PATH", "bar_cert_path")
|
||||
_ = os.Setenv("MINIKUBE_EXISTING_DOCKER_TLS_VERIFY", "bar_tls_verify")
|
||||
t.Setenv("MINIKUBE_EXISTING_DOCKER_HOST", "bar_host")
|
||||
t.Setenv("MINIKUBE_EXISTING_DOCKER_CERT_PATH", "bar_cert_path")
|
||||
t.Setenv("MINIKUBE_EXISTING_DOCKER_TLS_VERIFY", "bar_tls_verify")
|
||||
|
||||
if err := PointToHostDockerDaemon(); err != nil {
|
||||
t.Fatalf("failed to set docker environment: got %v", err)
|
||||
|
@ -72,8 +73,8 @@ func TestPointToHostDockerDaemon(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestPointToHostPodmanEmpty(t *testing.T) {
|
||||
_ = os.Setenv("CONTAINER_HOST", "foo_host")
|
||||
_ = os.Setenv("MINIKUBE_ACTIVE_PODMAN", "minikube")
|
||||
t.Setenv("CONTAINER_HOST", "foo_host")
|
||||
t.Setenv("MINIKUBE_ACTIVE_PODMAN", "minikube")
|
||||
|
||||
_ = os.Unsetenv("MINIKUBE_EXISTING_CONTAINER_HOST")
|
||||
|
||||
|
@ -91,9 +92,10 @@ func TestPointToHostPodmanEmpty(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestPointToHostPodman(t *testing.T) {
|
||||
_ = os.Setenv("CONTAINER_HOST", "foo_host")
|
||||
t.Setenv("CONTAINER_HOST", "foo_host")
|
||||
t.Setenv("MINIKUBE_ACTIVE_PODMAN", "minikube")
|
||||
|
||||
_ = os.Setenv("MINIKUBE_EXISTING_CONTAINER_HOST", "bar_host")
|
||||
t.Setenv("MINIKUBE_EXISTING_CONTAINER_HOST", "bar_host")
|
||||
|
||||
if err := PointToHostPodman(); err != nil {
|
||||
t.Fatalf("failed to set podman environment: got %v", err)
|
||||
|
@ -130,8 +132,8 @@ func TestDaemonHost(t *testing.T) {
|
|||
{"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)
|
||||
t.Setenv("CONTAINER_HOST", test.containerHost)
|
||||
t.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)
|
||||
}
|
||||
|
|
|
@ -120,7 +120,7 @@ var Addons = map[string]*Addon{
|
|||
|
||||
// GuestPersistentDir
|
||||
}, false, "auto-pause", "Google", "", "", map[string]string{
|
||||
"AutoPauseHook": "k8s-minikube/auto-pause-hook:v0.0.2@sha256:c76be418df5ca9c66d0d11c2c68461acbf4072c1cdfc17e64729c5ef4d5a4128",
|
||||
"AutoPauseHook": "k8s-minikube/auto-pause-hook:v0.0.3@sha256:2ff12878e569802afa75baf65701ab913a88fe61a1cbb22fdc852b1345af2a5c",
|
||||
}, map[string]string{
|
||||
"AutoPauseHook": "gcr.io",
|
||||
}),
|
||||
|
@ -247,16 +247,16 @@ var Addons = map[string]*Addon{
|
|||
"ingress-deploy.yaml",
|
||||
"0640"),
|
||||
}, false, "ingress", "Kubernetes", "", "https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/", map[string]string{
|
||||
// https://github.com/kubernetes/ingress-nginx/blob/c32f9a43279425920c41ba2e54dfcb1a54c0daf7/deploy/static/provider/kind/deploy.yaml#L834
|
||||
"IngressController": "ingress-nginx/controller:v1.2.1@sha256:5516d103a9c2ecc4f026efbd4b40662ce22dc1f824fb129ed121460aaa5c47f8",
|
||||
// https://github.com/kubernetes/ingress-nginx/blob/fc38b9f2aa2d68ee00c417cf97e727b77a00c175/deploy/static/provider/kind/deploy.yaml#L621
|
||||
"KubeWebhookCertgenCreate": "ingress-nginx/kube-webhook-certgen:v1.1.1@sha256:64d8c73dca984af206adf9d6d7e46aa550362b1d7a01f3a0a91b20cc67868660",
|
||||
// https://github.com/kubernetes/ingress-nginx/blob/fc38b9f2aa2d68ee00c417cf97e727b77a00c175/deploy/static/provider/kind/deploy.yaml#L673
|
||||
"KubeWebhookCertgenPatch": "ingress-nginx/kube-webhook-certgen:v1.1.1@sha256:64d8c73dca984af206adf9d6d7e46aa550362b1d7a01f3a0a91b20cc67868660",
|
||||
// https://github.com/kubernetes/ingress-nginx/blob/63dbbdbb3a099417f411fbd1d684fa2a287c96cd/deploy/static/provider/kind/deploy.yaml#L458
|
||||
"IngressController": "ingress-nginx/controller:v1.5.1@sha256:4ba73c697770664c1e00e9f968de14e08f606ff961c76e5d7033a4a9c593c629",
|
||||
// https://github.com/kubernetes/ingress-nginx/blob/63dbbdbb3a099417f411fbd1d684fa2a287c96cd/deploy/static/provider/kind/deploy.yaml#L565
|
||||
"KubeWebhookCertgenCreate": "ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f",
|
||||
// https://github.com/kubernetes/ingress-nginx/blob/63dbbdbb3a099417f411fbd1d684fa2a287c96cd/deploy/static/provider/kind/deploy.yaml#L614
|
||||
"KubeWebhookCertgenPatch": "ingress-nginx/kube-webhook-certgen:v20220916-gd32f8c343@sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f",
|
||||
}, map[string]string{
|
||||
"IngressController": "k8s.gcr.io",
|
||||
"KubeWebhookCertgenCreate": "k8s.gcr.io",
|
||||
"KubeWebhookCertgenPatch": "k8s.gcr.io",
|
||||
"IngressController": "registry.k8s.io",
|
||||
"KubeWebhookCertgenCreate": "registry.k8s.io",
|
||||
"KubeWebhookCertgenPatch": "registry.k8s.io",
|
||||
}),
|
||||
"istio-provisioner": NewAddon([]*BinAsset{
|
||||
MustBinAsset(addons.IstioProvisionerAssets,
|
||||
|
@ -296,7 +296,7 @@ var Addons = map[string]*Addon{
|
|||
"pod.yaml",
|
||||
"0640"),
|
||||
}, false, "kubevirt", "3rd party (KubeVirt)", "", "https://minikube.sigs.k8s.io/docs/tutorials/kubevirt/", map[string]string{
|
||||
"Kubectl": "bitnami/kubectl:1.17@sha256:de642e973d3d0ef60e4d0a1f92286a9fdae245535c5990d4762bbe86fcf95887",
|
||||
"Kubectl": "bitnami/kubectl:1.24.7@sha256:195f5a7a40cfb06e308701ae850abfa436d23baf9d39c0282298e540c9d07863",
|
||||
}, map[string]string{
|
||||
"Kubectl": "docker.io",
|
||||
}),
|
||||
|
@ -745,9 +745,9 @@ var Addons = map[string]*Addon{
|
|||
"cloud-spanner": NewAddon([]*BinAsset{
|
||||
MustBinAsset(addons.CloudSpanner, "cloud-spanner/deployment.yaml", vmpath.GuestAddonsDir, "deployment.yaml", "6040"),
|
||||
}, false, "cloud-spanner", "Google", "", "https://minikube.sigs.k8s.io/docs/handbook/addons/cloud-spanner/", map[string]string{
|
||||
"CloudSpannerAddon": "cloud-spanner-emulator/emulator",
|
||||
"CloudSpanner": "cloud-spanner-emulator/emulator:1.4.6@sha256:b9341271be665a97f8ef778a752f0f63bea8c8a90bcdf79c03fb6c3444a8478d",
|
||||
}, map[string]string{
|
||||
"CloudSpannerAddon": "gcr.io",
|
||||
"CloudSpanner": "gcr.io",
|
||||
}),
|
||||
}
|
||||
|
||||
|
|
|
@ -78,6 +78,9 @@ authentication:
|
|||
x509:
|
||||
clientCAFile: {{.ClientCAFile}}
|
||||
cgroupDriver: {{.CgroupDriver}}
|
||||
{{- range $key, $val := .KubeletConfigOpts}}
|
||||
{{$key}}: {{$val}}
|
||||
{{- end}}
|
||||
clusterDomain: "{{if .DNSDomain}}{{.DNSDomain}}{{else}}cluster.local{{end}}"
|
||||
# disable disk resource management by default
|
||||
imageGCHighThresholdPercent: 100
|
||||
|
|
|
@ -109,6 +109,7 @@ func GenerateKubeadmYAML(cc config.ClusterConfig, n config.Node, r cruntime.Mana
|
|||
ControlPlaneAddress string
|
||||
KubeProxyOptions map[string]string
|
||||
ResolvConfSearchRegression bool
|
||||
KubeletConfigOpts map[string]string
|
||||
}{
|
||||
CertDir: vmpath.GuestKubernetesCertsDir,
|
||||
ServiceCIDR: constants.DefaultServiceCIDR,
|
||||
|
@ -133,6 +134,7 @@ func GenerateKubeadmYAML(cc config.ClusterConfig, n config.Node, r cruntime.Mana
|
|||
ControlPlaneAddress: constants.ControlPlaneAlias,
|
||||
KubeProxyOptions: createKubeProxyOptions(k8s.ExtraOptions),
|
||||
ResolvConfSearchRegression: HasResolvConfSearchRegression(k8s.KubernetesVersion),
|
||||
KubeletConfigOpts: kubeletConfigOpts(k8s.ExtraOptions),
|
||||
}
|
||||
|
||||
if k8s.ServiceCIDR != "" {
|
||||
|
@ -215,3 +217,17 @@ func HasResolvConfSearchRegression(k8sVersion string) bool {
|
|||
}
|
||||
return versionSemver.EQ(semver.Version{Major: 1, Minor: 25})
|
||||
}
|
||||
|
||||
// kubeletConfigOpts extracts only those kubelet extra options allowed by kubeletConfigParams.
|
||||
func kubeletConfigOpts(extraOpts config.ExtraOptionSlice) map[string]string {
|
||||
args := map[string]string{}
|
||||
for _, eo := range extraOpts {
|
||||
if eo.Component != Kubelet {
|
||||
continue
|
||||
}
|
||||
if config.ContainsParam(kubeletConfigParams, eo.Key) {
|
||||
args[eo.Key] = eo.Value
|
||||
}
|
||||
}
|
||||
return args
|
||||
}
|
||||
|
|
|
@ -307,3 +307,27 @@ func TestEtcdExtraArgs(t *testing.T) {
|
|||
t.Errorf("machines mismatch (-want +got):\n%s", diff)
|
||||
}
|
||||
}
|
||||
|
||||
func TestKubeletConfig(t *testing.T) {
|
||||
expected := map[string]string{
|
||||
"localStorageCapacityIsolation": "false",
|
||||
}
|
||||
extraOpts := append(getExtraOpts(), []config.ExtraOption{
|
||||
{
|
||||
Component: Kubelet,
|
||||
Key: "unsupported-config-option",
|
||||
Value: "any",
|
||||
}, {
|
||||
Component: Kubelet,
|
||||
Key: "localStorageCapacityIsolation",
|
||||
Value: "false",
|
||||
}, {
|
||||
Component: Kubelet,
|
||||
Key: "kubelet.cgroups-per-qos",
|
||||
Value: "false",
|
||||
}}...)
|
||||
actual := kubeletConfigOpts(extraOpts)
|
||||
if diff := cmp.Diff(expected, actual); diff != "" {
|
||||
t.Errorf("machines mismatch (-want +got):\n%s", diff)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,6 +36,11 @@ import (
|
|||
"k8s.io/minikube/pkg/util"
|
||||
)
|
||||
|
||||
// kubeletConfigParams are the only allowed kubelet parameters for kubeadmin config file and not to be used as kubelet flags
|
||||
var kubeletConfigParams = []string{
|
||||
"localStorageCapacityIsolation",
|
||||
}
|
||||
|
||||
func extraKubeletOpts(mc config.ClusterConfig, nc config.Node, r cruntime.Manager) (map[string]string, error) {
|
||||
k8s := mc.KubernetesConfig
|
||||
version, err := util.ParseKubernetesVersion(k8s.KubernetesVersion)
|
||||
|
@ -95,6 +100,11 @@ func extraKubeletOpts(mc config.ClusterConfig, nc config.Node, r cruntime.Manage
|
|||
extraOpts["feature-gates"] = kubeletFeatureArgs
|
||||
}
|
||||
|
||||
// filter out non-flag extra kubelet config options
|
||||
for _, opt := range kubeletConfigParams {
|
||||
delete(extraOpts, opt)
|
||||
}
|
||||
|
||||
return extraOpts, nil
|
||||
}
|
||||
|
||||
|
|
|
@ -129,10 +129,10 @@ data:
|
|||
sidecar-istio-proxy-image: "cilium/istio_proxy"
|
||||
|
||||
# Name of the cluster. Only relevant when building a mesh of clusters.
|
||||
cluster-name: default
|
||||
cluster-name: cluster
|
||||
# Unique ID of the cluster. Must be unique across all conneted clusters and
|
||||
# in the range of 1 and 255. Only relevant when building a mesh of clusters.
|
||||
cluster-id: ""
|
||||
cluster-id: "1"
|
||||
|
||||
# Encapsulation mode for communication between nodes
|
||||
# Possible values:
|
||||
|
@ -299,6 +299,22 @@ rules:
|
|||
- list
|
||||
- watch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
# To remove node taints
|
||||
- nodes
|
||||
# To set NetworkUnavailable false on startup
|
||||
- nodes/status
|
||||
verbs:
|
||||
- patch
|
||||
- apiGroups:
|
||||
- discovery.k8s.io
|
||||
resources:
|
||||
|
@ -444,7 +460,7 @@ spec:
|
|||
httpGet:
|
||||
host: '127.0.0.1'
|
||||
path: /healthz
|
||||
port: 9876
|
||||
port: 9879
|
||||
scheme: HTTP
|
||||
httpHeaders:
|
||||
- name: "brief"
|
||||
|
@ -461,7 +477,7 @@ spec:
|
|||
httpGet:
|
||||
host: '127.0.0.1'
|
||||
path: /healthz
|
||||
port: 9876
|
||||
port: 9879
|
||||
scheme: HTTP
|
||||
httpHeaders:
|
||||
- name: "brief"
|
||||
|
@ -508,7 +524,7 @@ spec:
|
|||
key: custom-cni-conf
|
||||
name: cilium-config
|
||||
optional: true
|
||||
image: "quay.io/cilium/cilium:v1.9.9@sha256:a85d5cff13f8231c2e267d9fc3c6e43d24be4a75dac9f641c11ec46e7f17624d"
|
||||
image: "quay.io/cilium/cilium:v1.12.3@sha256:30de50c4dc0a1e1077e9e7917a54d5cab253058b3f779822aec00f5c817ca826"
|
||||
imagePullPolicy: IfNotPresent
|
||||
lifecycle:
|
||||
postStart:
|
||||
|
@ -570,7 +586,7 @@ spec:
|
|||
# same directory where we install cilium cni plugin so that exec permissions
|
||||
# are available.
|
||||
- 'cp /usr/bin/cilium-mount /hostbin/cilium-mount && nsenter --cgroup=/hostproc/1/ns/cgroup --mount=/hostproc/1/ns/mnt "${BIN_PATH}/cilium-mount" $CGROUP_ROOT; rm /hostbin/cilium-mount'
|
||||
image: "quay.io/cilium/cilium:v1.9.9@sha256:a85d5cff13f8231c2e267d9fc3c6e43d24be4a75dac9f641c11ec46e7f17624d"
|
||||
image: "quay.io/cilium/cilium:v1.12.3@sha256:30de50c4dc0a1e1077e9e7917a54d5cab253058b3f779822aec00f5c817ca826"
|
||||
imagePullPolicy: IfNotPresent
|
||||
volumeMounts:
|
||||
- mountPath: /hostproc
|
||||
|
@ -600,7 +616,7 @@ spec:
|
|||
key: wait-bpf-mount
|
||||
name: cilium-config
|
||||
optional: true
|
||||
image: "quay.io/cilium/cilium:v1.9.9@sha256:a85d5cff13f8231c2e267d9fc3c6e43d24be4a75dac9f641c11ec46e7f17624d"
|
||||
image: "quay.io/cilium/cilium:v1.12.3@sha256:30de50c4dc0a1e1077e9e7917a54d5cab253058b3f779822aec00f5c817ca826"
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: clean-cilium-state
|
||||
securityContext:
|
||||
|
@ -762,7 +778,7 @@ spec:
|
|||
key: debug
|
||||
name: cilium-config
|
||||
optional: true
|
||||
image: "quay.io/cilium/operator-generic:v1.9.9@sha256:3726a965cd960295ca3c5e7f2b543c02096c0912c6652eb8bbb9ce54bcaa99d8"
|
||||
image: "quay.io/cilium/operator-generic:v1.12.3@sha256:816ec1da586139b595eeb31932c61a7c13b07fb4a0255341c0e0f18608e84eff"
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: cilium-operator
|
||||
livenessProbe:
|
||||
|
|
|
@ -284,13 +284,10 @@ func TestGetPrimaryControlPlane(t *testing.T) {
|
|||
}
|
||||
|
||||
for _, tc := range tests {
|
||||
t.Run(tc.description, func(t *testing.T) {
|
||||
// To save converted config file from old style config at ./testdata/.minikube,
|
||||
// rather than at env(MINIKUBE_HOME) which depends on test environment
|
||||
originalMinikubeHomeEnv := os.Getenv("MINIKUBE_HOME")
|
||||
err = os.Setenv("MINIKUBE_HOME", miniDir)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to set ENV \"MINIKUBE_HOME\" for %s", miniDir)
|
||||
}
|
||||
t.Setenv("MINIKUBE_HOME", miniDir)
|
||||
|
||||
cc, err := DefaultLoader.LoadConfigFromFile(tc.profile, miniDir)
|
||||
if err != nil {
|
||||
|
@ -300,6 +297,14 @@ func TestGetPrimaryControlPlane(t *testing.T) {
|
|||
// temporarily copy the original profile config
|
||||
originalFilePath := profileFilePath(tc.profile, miniDir)
|
||||
tempFilePath := filepath.Join(miniDir, "profiles", tc.profile, "config_temp.json")
|
||||
t.Cleanup(func() {
|
||||
// reset profile config
|
||||
err = os.Rename(tempFilePath, originalFilePath)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to move temporal config file (%s) to original file path (%s)",
|
||||
tempFilePath, originalFilePath)
|
||||
}
|
||||
})
|
||||
|
||||
d, err := os.ReadFile(originalFilePath)
|
||||
if err != nil {
|
||||
|
@ -329,20 +334,6 @@ func TestGetPrimaryControlPlane(t *testing.T) {
|
|||
if n.Port != tc.expectedPort {
|
||||
t.Errorf("Unexpected name. expected: %d, got: %d", tc.expectedPort, n.Port)
|
||||
}
|
||||
|
||||
defer func() {
|
||||
// reset profile config
|
||||
err = os.Rename(tempFilePath, originalFilePath)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to move temporal config file (%s) to original file path (%s)",
|
||||
tempFilePath, originalFilePath)
|
||||
}
|
||||
|
||||
// reset env(MINIKUBE_HOME)
|
||||
err = os.Setenv("MINIKUBE_HOME", originalMinikubeHomeEnv)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to reset ENV \"MINIKUBE_HOME\" to original value (%s)", originalMinikubeHomeEnv)
|
||||
}
|
||||
}()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ const fileScheme = "file"
|
|||
// DefaultISOURLs returns a list of ISO URL's to consult by default, in priority order
|
||||
func DefaultISOURLs() []string {
|
||||
v := version.GetISOVersion()
|
||||
isoBucket := "minikube-builds/iso/15235"
|
||||
isoBucket := "minikube-builds/iso/15341"
|
||||
|
||||
return []string{
|
||||
fmt.Sprintf("https://storage.googleapis.com/%s/minikube-%s-%s.iso", isoBucket, v, runtime.GOARCH),
|
||||
|
|
|
@ -456,7 +456,7 @@ func TestUpdateIP(t *testing.T) {
|
|||
},
|
||||
}
|
||||
|
||||
os.Setenv(localpath.MinikubeHome, "/home/la-croix")
|
||||
t.Setenv(localpath.MinikubeHome, "/home/la-croix")
|
||||
|
||||
for _, test := range tests {
|
||||
test := test
|
||||
|
@ -492,8 +492,7 @@ func TestUpdateIP(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestMissingContext(t *testing.T) {
|
||||
t.Parallel()
|
||||
os.Setenv(localpath.MinikubeHome, "/home/la-croix")
|
||||
t.Setenv(localpath.MinikubeHome, "/home/la-croix")
|
||||
configFilename := tempFile(t, kubeConfigMissingContext)
|
||||
defer os.Remove(configFilename)
|
||||
if _, err := UpdateEndpoint("minikube", "192.168.10.100", 8080, configFilename, nil); err != nil {
|
||||
|
@ -796,7 +795,7 @@ func TestGetKubeConfigPath(t *testing.T) {
|
|||
}
|
||||
|
||||
for _, test := range tests {
|
||||
os.Setenv(clientcmd.RecommendedConfigPathEnvVar, test.input)
|
||||
t.Setenv(clientcmd.RecommendedConfigPathEnvVar, test.input)
|
||||
if result := PathFromEnv(); result != os.ExpandEnv(test.want) {
|
||||
t.Errorf("Expected first split chunk, got: %s", result)
|
||||
}
|
||||
|
|
|
@ -18,7 +18,6 @@ package localpath
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strings"
|
||||
|
@ -70,17 +69,10 @@ func TestMiniPath(t *testing.T) {
|
|||
{"/tmp/", "/tmp"},
|
||||
{"", homedir.HomeDir()},
|
||||
}
|
||||
originalEnv := os.Getenv(MinikubeHome)
|
||||
defer func() { // revert to pre-test env var
|
||||
err := os.Setenv(MinikubeHome, originalEnv)
|
||||
if err != nil {
|
||||
t.Fatalf("Error reverting env %s to its original value (%s) var after test ", MinikubeHome, originalEnv)
|
||||
}
|
||||
}()
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.env, func(t *testing.T) {
|
||||
expectedPath := filepath.Join(tc.basePath, ".minikube")
|
||||
os.Setenv(MinikubeHome, tc.env)
|
||||
t.Setenv(MinikubeHome, tc.env)
|
||||
path := MiniPath()
|
||||
if path != expectedPath {
|
||||
t.Errorf("MiniPath expected to return '%s', but got '%s'", expectedPath, path)
|
||||
|
|
|
@ -18,7 +18,6 @@ package machine
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
|
@ -85,9 +84,6 @@ func TestCopyBinary(t *testing.T) {
|
|||
func TestCacheBinariesForBootstrapper(t *testing.T) {
|
||||
download.DownloadMock = download.CreateDstDownloadMock
|
||||
|
||||
oldMinikubeHome := os.Getenv("MINIKUBE_HOME")
|
||||
defer os.Setenv("MINIKUBE_HOME", oldMinikubeHome)
|
||||
|
||||
minikubeHome := t.TempDir()
|
||||
|
||||
var tc = []struct {
|
||||
|
@ -110,7 +106,7 @@ func TestCacheBinariesForBootstrapper(t *testing.T) {
|
|||
}
|
||||
for _, test := range tc {
|
||||
t.Run(test.version, func(t *testing.T) {
|
||||
os.Setenv("MINIKUBE_HOME", test.minikubeHome)
|
||||
t.Setenv("MINIKUBE_HOME", test.minikubeHome)
|
||||
err := CacheBinariesForBootstrapper(test.version, test.clusterBootstrapper, nil, "")
|
||||
if err != nil && !test.err {
|
||||
t.Fatalf("Got unexpected error %v", err)
|
||||
|
@ -134,11 +130,8 @@ func TestExcludedBinariesNotDownloaded(t *testing.T) {
|
|||
return download.CreateDstDownloadMock(src, dst)
|
||||
}
|
||||
|
||||
oldMinikubeHome := os.Getenv("MINIKUBE_HOME")
|
||||
defer os.Setenv("MINIKUBE_HOME", oldMinikubeHome)
|
||||
|
||||
minikubeHome := t.TempDir()
|
||||
os.Setenv("MINIKUBE_HOME", minikubeHome)
|
||||
t.Setenv("MINIKUBE_HOME", minikubeHome)
|
||||
|
||||
if err := CacheBinariesForBootstrapper("v1.16.0", clusterBootstrapper, []string{binaryToExclude}, ""); err != nil {
|
||||
t.Errorf("Failed to cache binaries: %v", err)
|
||||
|
|
|
@ -123,8 +123,8 @@ func TestRunDriver(t *testing.T) {
|
|||
// called with the proper environment variables, we setup the libmachine driver.
|
||||
testutil.MakeTempDir(t)
|
||||
|
||||
os.Setenv(localbinary.PluginEnvKey, localbinary.PluginEnvVal)
|
||||
os.Setenv(localbinary.PluginEnvDriverName, driver.VirtualBox)
|
||||
t.Setenv(localbinary.PluginEnvKey, localbinary.PluginEnvVal)
|
||||
t.Setenv(localbinary.PluginEnvDriverName, driver.VirtualBox)
|
||||
|
||||
// Capture stdout and reset it later.
|
||||
old := os.Stdout
|
||||
|
|
|
@ -60,7 +60,7 @@ func TestOutT(t *testing.T) {
|
|||
for _, override := range []bool{true, false} {
|
||||
t.Run(fmt.Sprintf("%s-override-%v", tc.message, override), func(t *testing.T) {
|
||||
// Set MINIKUBE_IN_STYLE=<override>
|
||||
os.Setenv(OverrideEnv, strconv.FormatBool(override))
|
||||
t.Setenv(OverrideEnv, strconv.FormatBool(override))
|
||||
f := tests.NewFakeFile()
|
||||
SetOutFile(f)
|
||||
Step(tc.style, tc.message, tc.params)
|
||||
|
@ -78,7 +78,7 @@ func TestOutT(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestOut(t *testing.T) {
|
||||
os.Setenv(OverrideEnv, "")
|
||||
t.Setenv(OverrideEnv, "")
|
||||
|
||||
testCases := []struct {
|
||||
format string
|
||||
|
@ -108,7 +108,7 @@ func TestOut(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestErr(t *testing.T) {
|
||||
os.Setenv(OverrideEnv, "0")
|
||||
t.Setenv(OverrideEnv, "0")
|
||||
f := tests.NewFakeFile()
|
||||
SetErrFile(f)
|
||||
Err("xyz123 %s\n", "%s%%%d")
|
||||
|
|
|
@ -134,17 +134,7 @@ func TestCheckEnv(t *testing.T) {
|
|||
}
|
||||
for _, tc := range testCases {
|
||||
t.Run(fmt.Sprintf("%s in %s", tc.ip, tc.envName), func(t *testing.T) {
|
||||
originalEnv := os.Getenv(tc.envName)
|
||||
defer func() { // revert to pre-test env var
|
||||
err := os.Setenv(tc.envName, originalEnv)
|
||||
if err != nil {
|
||||
t.Fatalf("Error reverting env (%s) to its original value (%s) var after test ", tc.envName, originalEnv)
|
||||
}
|
||||
}()
|
||||
|
||||
if err := os.Setenv(tc.envName, tc.mockEnvValue); err != nil {
|
||||
t.Error("Error setting env var for taste case")
|
||||
}
|
||||
t.Setenv(tc.envName, tc.mockEnvValue)
|
||||
if got := checkEnv(tc.ip, tc.envName); got != tc.want {
|
||||
t.Errorf("CheckEnv(%v,%v) got %v ; want is %v", tc.ip, tc.envName, got, tc.want)
|
||||
}
|
||||
|
@ -166,17 +156,8 @@ func TestIsIPExcluded(t *testing.T) {
|
|||
{"foo", "1.2.3.4", false},
|
||||
}
|
||||
for _, tc := range testCases {
|
||||
originalEnv := os.Getenv("NO_PROXY")
|
||||
defer func() { // revert to pre-test env var
|
||||
err := os.Setenv("NO_PROXY", originalEnv)
|
||||
if err != nil {
|
||||
t.Fatalf("Error reverting env NO_PROXY to its original value (%s) var after test ", originalEnv)
|
||||
}
|
||||
}()
|
||||
t.Run(fmt.Sprintf("exclude %s NO_PROXY(%v)", tc.ip, tc.env), func(t *testing.T) {
|
||||
if err := os.Setenv("NO_PROXY", tc.env); err != nil {
|
||||
t.Errorf("Error during setting env: %v", err)
|
||||
}
|
||||
t.Setenv("NO_PROXY", tc.env)
|
||||
if excluded := IsIPExcluded(tc.ip); excluded != tc.excluded {
|
||||
t.Fatalf("IsIPExcluded(%v) should return %v. NO_PROXY=%v", tc.ip, tc.excluded, tc.env)
|
||||
}
|
||||
|
@ -196,18 +177,9 @@ func TestExcludeIP(t *testing.T) {
|
|||
{"foo", "", true},
|
||||
{"foo", "1.2.3.4", true},
|
||||
}
|
||||
originalEnv := os.Getenv("NO_PROXY")
|
||||
defer func() { // revert to pre-test env var
|
||||
err := os.Setenv("NO_PROXY", originalEnv)
|
||||
if err != nil {
|
||||
t.Fatalf("Error reverting env NO_PROXY to its original value (%s) var after test ", originalEnv)
|
||||
}
|
||||
}()
|
||||
for _, tc := range testCases {
|
||||
t.Run(fmt.Sprintf("exclude %s NO_PROXY(%s)", tc.ip, tc.env), func(t *testing.T) {
|
||||
if err := os.Setenv("NO_PROXY", tc.env); err != nil {
|
||||
t.Errorf("Error during setting env: %v", err)
|
||||
}
|
||||
t.Setenv("NO_PROXY", tc.env)
|
||||
err := ExcludeIP(tc.ip)
|
||||
if err != nil && !tc.wantAErr {
|
||||
t.Errorf("ExcludeIP(%v) returned unexpected error %v", tc.ip, err)
|
||||
|
|
|
@ -557,14 +557,6 @@ func revertK8sClient(k K8sClient) {
|
|||
}
|
||||
|
||||
func TestGetCoreClient(t *testing.T) {
|
||||
originalEnv := os.Getenv("KUBECONFIG")
|
||||
defer func() {
|
||||
err := os.Setenv("KUBECONFIG", originalEnv)
|
||||
if err != nil {
|
||||
t.Fatalf("Error reverting env KUBECONFIG to its original value. Got err (%s)", err)
|
||||
}
|
||||
}()
|
||||
|
||||
mockK8sConfig := `apiVersion: v1
|
||||
clusters:
|
||||
- cluster:
|
||||
|
@ -616,7 +608,7 @@ users:
|
|||
if err != nil {
|
||||
t.Fatalf("Unexpected error when writing to file %v. Error: %v", test.kubeconfigPath, err)
|
||||
}
|
||||
os.Setenv("KUBECONFIG", mockK8sConfigPath)
|
||||
t.Setenv("KUBECONFIG", mockK8sConfigPath)
|
||||
|
||||
k8s := K8sClientGetter{}
|
||||
_, err = k8s.GetCoreClient("minikube")
|
||||
|
|
|
@ -123,10 +123,7 @@ set -e bar;`},
|
|||
}
|
||||
|
||||
func TestDetectSet(t *testing.T) {
|
||||
orgShellEnv := os.Getenv("SHELL")
|
||||
defer os.Setenv("SHELL", orgShellEnv)
|
||||
|
||||
os.Setenv("SHELL", "/bin/bash")
|
||||
t.Setenv("SHELL", "/bin/bash")
|
||||
if s, err := Detect(); err != nil {
|
||||
t.Fatalf("unexpected error: '%v' during shell detection. Returned shell: %s", err, s)
|
||||
} else if s == "" {
|
||||
|
|
|
@ -235,7 +235,7 @@ func TestGetStoragev1(t *testing.T) {
|
|||
defer os.Remove(configFile.Name())
|
||||
for _, test := range tests {
|
||||
t.Run(test.description, func(t *testing.T) {
|
||||
if err := setK8SConfig(test.config, configFile.Name()); err != nil {
|
||||
if err := setK8SConfig(t, test.config, configFile.Name()); err != nil {
|
||||
t.Fatalf(err.Error())
|
||||
}
|
||||
|
||||
|
@ -251,13 +251,13 @@ func TestGetStoragev1(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func setK8SConfig(config, kubeconfigPath string) error {
|
||||
func setK8SConfig(t *testing.T, config, kubeconfigPath string) error {
|
||||
mockK8sConfigByte := []byte(config)
|
||||
mockK8sConfigPath := kubeconfigPath
|
||||
err := os.WriteFile(mockK8sConfigPath, mockK8sConfigByte, 0644)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Unexpected error when writing to file %v. Error: %v", kubeconfigPath, err)
|
||||
}
|
||||
os.Setenv("KUBECONFIG", mockK8sConfigPath)
|
||||
t.Setenv("KUBECONFIG", mockK8sConfigPath)
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -129,9 +129,7 @@ func TestMaybeChownDirRecursiveToMinikubeUser(t *testing.T) {
|
|||
}
|
||||
|
||||
if os.Getenv("CHANGE_MINIKUBE_NONE_USER") == "" {
|
||||
if err := os.Setenv("CHANGE_MINIKUBE_NONE_USER", "1"); nil != err {
|
||||
t.Error("failed to set env: CHANGE_MINIKUBE_NONE_USER")
|
||||
}
|
||||
t.Setenv("CHANGE_MINIKUBE_NONE_USER", "1")
|
||||
}
|
||||
|
||||
if os.Getenv("SUDO_USER") == "" {
|
||||
|
@ -139,11 +137,7 @@ func TestMaybeChownDirRecursiveToMinikubeUser(t *testing.T) {
|
|||
if nil != err {
|
||||
t.Error("fail to get user")
|
||||
}
|
||||
os.Setenv("SUDO_USER", user.Username)
|
||||
err = os.Setenv("SUDO_USER", user.Username)
|
||||
if nil != err {
|
||||
t.Error("failed to set env: SUDO_USER")
|
||||
}
|
||||
t.Setenv("SUDO_USER", user.Username)
|
||||
}
|
||||
|
||||
cases := []struct {
|
||||
|
|
|
@ -11,7 +11,7 @@ minikube quickly sets up a local Kubernetes cluster on macOS, Linux, and Windows
|
|||
|
||||
![Screenshot](/images/screenshot.png)
|
||||
|
||||
🎉 Latest Release: v1.27.1 - Oct 07, 2022 ([changelog](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md))
|
||||
🎉 Latest Release: v1.28.0 - Nov 04, 2022 ([changelog](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md))
|
||||
|
||||
## Highlights
|
||||
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
title: "v1.28.0 Benchmark"
|
||||
linkTitle: "v1.28.0 Benchmark"
|
||||
weight: -20221104
|
||||
---
|
||||
|
||||
![time-to-k8s](/images/benchmarks/timeToK8s/v1.28.0-time.png)
|
||||
|
||||
| | minikube version: v1.28.0 | kind v0.17.0 go1.19.2 linux/amd64 | k3d version v5.4.6 |
|
||||
|----------------------|---------------------------|-----------------------------------|--------------------|
|
||||
| Command Exec | 28.848 | 19.486 | 14.791 |
|
||||
| API Server Answering | 0.069 | 0.075 | 0.094 |
|
||||
| Kubernetes SVC | 0.066 | 0.064 | 0.062 |
|
||||
| DNS SVC | 0.065 | 0.062 | 0.059 |
|
||||
| App Running | 18.409 | 26.851 | 13.316 |
|
||||
| DNS Answering | 4.162 | 1.137 | 2.340 |
|
||||
| Total | 51.619 | 47.676 | 30.663 |
|
||||
|
||||
|
||||
|
||||
![cpu-to-k8s](/images/benchmarks/timeToK8s/v1.28.0-cpu.png)
|
||||
|
||||
| | minikube version: v1.28.0 | kind v0.17.0 go1.19.2 linux/amd64 | k3d version v5.4.6 |
|
||||
|--------------------|---------------------------|-----------------------------------|--------------------|
|
||||
| CPU Utilization(%) | 39.645 | 45.967 | 45.781 |
|
||||
| CPU Time(seconds) | 20.052 | 21.956 | 14.047 |
|
||||
|
|
@ -0,0 +1,474 @@
|
|||
---
|
||||
title: "v1.28.0 - 2022-11-04"
|
||||
linkTitle: "v1.28.0 - 2022-11-04"
|
||||
weight: -110
|
||||
---
|
||||
<html>
|
||||
<head>
|
||||
<title>kubernetes/minikube - Leaderboard</title>
|
||||
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap" rel="stylesheet">
|
||||
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
|
||||
<script type="text/javascript">
|
||||
google.charts.load("current", {packages:["corechart"]});
|
||||
</script>
|
||||
<style>
|
||||
body {
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
background-color: #f7f7fa;
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: rgba(66,133,244);
|
||||
margin-bottom: 0em;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
color: rgba(23,90,201);
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
pre {
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
color: #666;
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
h2.cli {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.board p {
|
||||
font-size: small;
|
||||
color: #999;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
.board {
|
||||
clear: right;
|
||||
display: inline-block;
|
||||
padding: 0.5em;
|
||||
margin: 0.5em;
|
||||
background-color: #fff;
|
||||
}
|
||||
.board:nth-child(4n+3) {
|
||||
border: 2px solid rgba(66,133,244,0.25);
|
||||
color: rgba(66,133,244);
|
||||
}
|
||||
|
||||
.board:nth-child(4n+2) {
|
||||
border: 2px solid rgba(219,68,55,0.25);
|
||||
color: rgba rgba(219,68,55);
|
||||
}
|
||||
|
||||
.board:nth-child(4n+1) {
|
||||
border: 2px solid rgba(244,160,0,0.25);
|
||||
color: rgba(244,160,0);
|
||||
}
|
||||
|
||||
.board:nth-child(4n) {
|
||||
border: 2px solid rgba(15,157,88,0.25);
|
||||
color: rgba(15,157,88);
|
||||
}
|
||||
|
||||
h3 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>kubernetes/minikube</h1>
|
||||
<div class="subtitle">2022-10-07 — 2022-11-04</div>
|
||||
|
||||
|
||||
<h2>Reviewers</h2>
|
||||
|
||||
|
||||
<div class="board">
|
||||
<h3>Most Influential</h3>
|
||||
<p># of Merged PRs reviewed</p>
|
||||
<div id="chart_reviewCounts" style="width: 450px; height: 350px;"></div>
|
||||
<script type="text/javascript">
|
||||
google.charts.setOnLoadCallback(drawreviewCounts);
|
||||
|
||||
function drawreviewCounts() {
|
||||
var data = new google.visualization.arrayToDataTable([
|
||||
[{label:'',type:'string'},{label: '# of Merged PRs reviewed', type: 'number'}, { role: 'annotation' }],
|
||||
["spowelljr", 9, "9"],
|
||||
["medyagh", 8, "8"],
|
||||
|
||||
]);
|
||||
|
||||
var options = {
|
||||
axisTitlesPosition: 'none',
|
||||
|
||||
bars: 'horizontal', // Required for Material Bar Charts.
|
||||
axes: {
|
||||
x: {
|
||||
y: { side: 'top'} // Top x-axis.
|
||||
}
|
||||
},
|
||||
legend: { position: "none" },
|
||||
bar: { groupWidth: "85%" }
|
||||
};
|
||||
|
||||
var chart = new google.visualization.BarChart(document.getElementById('chart_reviewCounts'));
|
||||
chart.draw(data, options);
|
||||
};
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<div class="board">
|
||||
<h3>Most Helpful</h3>
|
||||
<p># of words written in merged PRs</p>
|
||||
<div id="chart_reviewWords" style="width: 450px; height: 350px;"></div>
|
||||
<script type="text/javascript">
|
||||
google.charts.setOnLoadCallback(drawreviewWords);
|
||||
|
||||
function drawreviewWords() {
|
||||
var data = new google.visualization.arrayToDataTable([
|
||||
[{label:'',type:'string'},{label: '# of words written in merged PRs', type: 'number'}, { role: 'annotation' }],
|
||||
["spowelljr", 720, "720"],
|
||||
["medyagh", 218, "218"],
|
||||
|
||||
]);
|
||||
|
||||
var options = {
|
||||
axisTitlesPosition: 'none',
|
||||
|
||||
bars: 'horizontal', // Required for Material Bar Charts.
|
||||
axes: {
|
||||
x: {
|
||||
y: { side: 'top'} // Top x-axis.
|
||||
}
|
||||
},
|
||||
legend: { position: "none" },
|
||||
bar: { groupWidth: "85%" }
|
||||
};
|
||||
|
||||
var chart = new google.visualization.BarChart(document.getElementById('chart_reviewWords'));
|
||||
chart.draw(data, options);
|
||||
};
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<div class="board">
|
||||
<h3>Most Demanding</h3>
|
||||
<p># of Review Comments in merged PRs</p>
|
||||
<div id="chart_reviewComments" style="width: 450px; height: 350px;"></div>
|
||||
<script type="text/javascript">
|
||||
google.charts.setOnLoadCallback(drawreviewComments);
|
||||
|
||||
function drawreviewComments() {
|
||||
var data = new google.visualization.arrayToDataTable([
|
||||
[{label:'',type:'string'},{label: '# of Review Comments in merged PRs', type: 'number'}, { role: 'annotation' }],
|
||||
["spowelljr", 14, "14"],
|
||||
["medyagh", 11, "11"],
|
||||
|
||||
]);
|
||||
|
||||
var options = {
|
||||
axisTitlesPosition: 'none',
|
||||
|
||||
bars: 'horizontal', // Required for Material Bar Charts.
|
||||
axes: {
|
||||
x: {
|
||||
y: { side: 'top'} // Top x-axis.
|
||||
}
|
||||
},
|
||||
legend: { position: "none" },
|
||||
bar: { groupWidth: "85%" }
|
||||
};
|
||||
|
||||
var chart = new google.visualization.BarChart(document.getElementById('chart_reviewComments'));
|
||||
chart.draw(data, options);
|
||||
};
|
||||
</script>
|
||||
</div>
|
||||
|
||||
|
||||
<h2>Pull Requests</h2>
|
||||
|
||||
|
||||
<div class="board">
|
||||
<h3>Most Active</h3>
|
||||
<p># of Pull Requests Merged</p>
|
||||
<div id="chart_prCounts" style="width: 450px; height: 350px;"></div>
|
||||
<script type="text/javascript">
|
||||
google.charts.setOnLoadCallback(drawprCounts);
|
||||
|
||||
function drawprCounts() {
|
||||
var data = new google.visualization.arrayToDataTable([
|
||||
[{label:'',type:'string'},{label: '# of Pull Requests Merged', type: 'number'}, { role: 'annotation' }],
|
||||
["spowelljr", 16, "16"],
|
||||
["rahil-p", 3, "3"],
|
||||
["jeffmaury", 2, "2"],
|
||||
["klaases", 2, "2"],
|
||||
["eiffel-fl", 2, "2"],
|
||||
["medyagh", 2, "2"],
|
||||
["agarwalnit", 1, "1"],
|
||||
["joaquimrocha", 1, "1"],
|
||||
["zdxgs", 1, "1"],
|
||||
["g1eny0ung", 1, "1"],
|
||||
["oldium", 1, "1"],
|
||||
["jevontane", 1, "1"],
|
||||
["LJTian", 1, "1"],
|
||||
["ckannon", 1, "1"],
|
||||
|
||||
]);
|
||||
|
||||
var options = {
|
||||
axisTitlesPosition: 'none',
|
||||
|
||||
bars: 'horizontal', // Required for Material Bar Charts.
|
||||
axes: {
|
||||
x: {
|
||||
y: { side: 'top'} // Top x-axis.
|
||||
}
|
||||
},
|
||||
legend: { position: "none" },
|
||||
bar: { groupWidth: "85%" }
|
||||
};
|
||||
|
||||
var chart = new google.visualization.BarChart(document.getElementById('chart_prCounts'));
|
||||
chart.draw(data, options);
|
||||
};
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<div class="board">
|
||||
<h3>Big Movers</h3>
|
||||
<p>Lines of code (delta)</p>
|
||||
<div id="chart_prDeltas" style="width: 450px; height: 350px;"></div>
|
||||
<script type="text/javascript">
|
||||
google.charts.setOnLoadCallback(drawprDeltas);
|
||||
|
||||
function drawprDeltas() {
|
||||
var data = new google.visualization.arrayToDataTable([
|
||||
[{label:'',type:'string'},{label: 'Lines of code (delta)', type: 'number'}, { role: 'annotation' }],
|
||||
["spowelljr", 537, "537"],
|
||||
["agarwalnit", 141, "141"],
|
||||
["eiffel-fl", 75, "75"],
|
||||
["rahil-p", 66, "66"],
|
||||
["ckannon", 44, "44"],
|
||||
["jevontane", 40, "40"],
|
||||
["g1eny0ung", 21, "21"],
|
||||
["oldium", 13, "13"],
|
||||
["klaases", 10, "10"],
|
||||
["medyagh", 7, "7"],
|
||||
["joaquimrocha", 2, "2"],
|
||||
["LJTian", 0, "0"],
|
||||
["jeffmaury", 0, "0"],
|
||||
["zdxgs", 0, "0"],
|
||||
|
||||
]);
|
||||
|
||||
var options = {
|
||||
axisTitlesPosition: 'none',
|
||||
|
||||
bars: 'horizontal', // Required for Material Bar Charts.
|
||||
axes: {
|
||||
x: {
|
||||
y: { side: 'top'} // Top x-axis.
|
||||
}
|
||||
},
|
||||
legend: { position: "none" },
|
||||
bar: { groupWidth: "85%" }
|
||||
};
|
||||
|
||||
var chart = new google.visualization.BarChart(document.getElementById('chart_prDeltas'));
|
||||
chart.draw(data, options);
|
||||
};
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<div class="board">
|
||||
<h3>Most difficult to review</h3>
|
||||
<p>Average PR size (added+changed)</p>
|
||||
<div id="chart_prSize" style="width: 450px; height: 350px;"></div>
|
||||
<script type="text/javascript">
|
||||
google.charts.setOnLoadCallback(drawprSize);
|
||||
|
||||
function drawprSize() {
|
||||
var data = new google.visualization.arrayToDataTable([
|
||||
[{label:'',type:'string'},{label: 'Average PR size (added+changed)', type: 'number'}, { role: 'annotation' }],
|
||||
["agarwalnit", 139, "139"],
|
||||
["eiffel-fl", 35, "35"],
|
||||
["spowelljr", 28, "28"],
|
||||
["jevontane", 25, "25"],
|
||||
["ckannon", 24, "24"],
|
||||
["rahil-p", 15, "15"],
|
||||
["g1eny0ung", 11, "11"],
|
||||
["oldium", 7, "7"],
|
||||
["klaases", 4, "4"],
|
||||
["medyagh", 1, "1"],
|
||||
["joaquimrocha", 1, "1"],
|
||||
["LJTian", 0, "0"],
|
||||
["jeffmaury", 0, "0"],
|
||||
["zdxgs", 0, "0"],
|
||||
|
||||
]);
|
||||
|
||||
var options = {
|
||||
axisTitlesPosition: 'none',
|
||||
|
||||
bars: 'horizontal', // Required for Material Bar Charts.
|
||||
axes: {
|
||||
x: {
|
||||
y: { side: 'top'} // Top x-axis.
|
||||
}
|
||||
},
|
||||
legend: { position: "none" },
|
||||
bar: { groupWidth: "85%" }
|
||||
};
|
||||
|
||||
var chart = new google.visualization.BarChart(document.getElementById('chart_prSize'));
|
||||
chart.draw(data, options);
|
||||
};
|
||||
</script>
|
||||
</div>
|
||||
|
||||
|
||||
<h2>Issues</h2>
|
||||
|
||||
|
||||
<div class="board">
|
||||
<h3>Most Active</h3>
|
||||
<p># of comments</p>
|
||||
<div id="chart_comments" style="width: 450px; height: 350px;"></div>
|
||||
<script type="text/javascript">
|
||||
google.charts.setOnLoadCallback(drawcomments);
|
||||
|
||||
function drawcomments() {
|
||||
var data = new google.visualization.arrayToDataTable([
|
||||
[{label:'',type:'string'},{label: '# of comments', type: 'number'}, { role: 'annotation' }],
|
||||
["RA489", 63, "63"],
|
||||
["klaases", 39, "39"],
|
||||
["afbjorklund", 23, "23"],
|
||||
["spowelljr", 22, "22"],
|
||||
["medyagh", 4, "4"],
|
||||
["coy18", 2, "2"],
|
||||
["josepdcs", 2, "2"],
|
||||
["git-zjx", 2, "2"],
|
||||
["gobraves", 1, "1"],
|
||||
["linux019", 1, "1"],
|
||||
["zioproto", 1, "1"],
|
||||
["lucastheisen", 1, "1"],
|
||||
["amitmavgupta", 1, "1"],
|
||||
["imflash217", 1, "1"],
|
||||
["moeshinyo", 1, "1"],
|
||||
|
||||
]);
|
||||
|
||||
var options = {
|
||||
axisTitlesPosition: 'none',
|
||||
|
||||
bars: 'horizontal', // Required for Material Bar Charts.
|
||||
axes: {
|
||||
x: {
|
||||
y: { side: 'top'} // Top x-axis.
|
||||
}
|
||||
},
|
||||
legend: { position: "none" },
|
||||
bar: { groupWidth: "85%" }
|
||||
};
|
||||
|
||||
var chart = new google.visualization.BarChart(document.getElementById('chart_comments'));
|
||||
chart.draw(data, options);
|
||||
};
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<div class="board">
|
||||
<h3>Most Helpful</h3>
|
||||
<p># of words (excludes authored)</p>
|
||||
<div id="chart_commentWords" style="width: 450px; height: 350px;"></div>
|
||||
<script type="text/javascript">
|
||||
google.charts.setOnLoadCallback(drawcommentWords);
|
||||
|
||||
function drawcommentWords() {
|
||||
var data = new google.visualization.arrayToDataTable([
|
||||
[{label:'',type:'string'},{label: '# of words (excludes authored)', type: 'number'}, { role: 'annotation' }],
|
||||
["kevinevans1", 2674, "2674"],
|
||||
["klaases", 1655, "1655"],
|
||||
["spowelljr", 1034, "1034"],
|
||||
["afbjorklund", 986, "986"],
|
||||
["kertzi", 759, "759"],
|
||||
["git-zjx", 700, "700"],
|
||||
["rraval", 326, "326"],
|
||||
["RA489", 287, "287"],
|
||||
["coy18", 230, "230"],
|
||||
["eric-saintetienne", 197, "197"],
|
||||
["daro1337", 178, "178"],
|
||||
["roy-work", 105, "105"],
|
||||
["josepdcs", 96, "96"],
|
||||
["medyagh", 90, "90"],
|
||||
["zioproto", 69, "69"],
|
||||
|
||||
]);
|
||||
|
||||
var options = {
|
||||
axisTitlesPosition: 'none',
|
||||
|
||||
bars: 'horizontal', // Required for Material Bar Charts.
|
||||
axes: {
|
||||
x: {
|
||||
y: { side: 'top'} // Top x-axis.
|
||||
}
|
||||
},
|
||||
legend: { position: "none" },
|
||||
bar: { groupWidth: "85%" }
|
||||
};
|
||||
|
||||
var chart = new google.visualization.BarChart(document.getElementById('chart_commentWords'));
|
||||
chart.draw(data, options);
|
||||
};
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<div class="board">
|
||||
<h3>Top Closers</h3>
|
||||
<p># of issues closed (excludes authored)</p>
|
||||
<div id="chart_issueCloser" style="width: 450px; height: 350px;"></div>
|
||||
<script type="text/javascript">
|
||||
google.charts.setOnLoadCallback(drawissueCloser);
|
||||
|
||||
function drawissueCloser() {
|
||||
var data = new google.visualization.arrayToDataTable([
|
||||
[{label:'',type:'string'},{label: '# of issues closed (excludes authored)', type: 'number'}, { role: 'annotation' }],
|
||||
["klaases", 26, "26"],
|
||||
["spowelljr", 22, "22"],
|
||||
|
||||
]);
|
||||
|
||||
var options = {
|
||||
axisTitlesPosition: 'none',
|
||||
|
||||
bars: 'horizontal', // Required for Material Bar Charts.
|
||||
axes: {
|
||||
x: {
|
||||
y: { side: 'top'} // Top x-axis.
|
||||
}
|
||||
},
|
||||
legend: { position: "none" },
|
||||
bar: { groupWidth: "85%" }
|
||||
};
|
||||
|
||||
var chart = new google.visualization.BarChart(document.getElementById('chart_issueCloser'));
|
||||
chart.draw(data, options);
|
||||
};
|
||||
</script>
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -38,7 +38,8 @@ The QEMU driver has two networking options, `user` & `socket_vmnet`.
|
|||
The `user` network is not a dedicated network, it doesn't support some networking commands such as `minikube service` and `minikube tunnel`, and its IP address is not reachable from the host.
|
||||
{{% /tab %}}
|
||||
{{% tab "socket_vmnet - experimental/needs installation" %}}
|
||||
##### Requirements
|
||||
|
||||
### Requirements
|
||||
|
||||
Requires macOS 10.15 or later and socket_vmnet.
|
||||
|
||||
|
@ -48,7 +49,8 @@ git clone https://github.com/lima-vm/socket_vmnet.git && cd socket_vmnet
|
|||
sudo make PREFIX=/opt/socket_vmnet install
|
||||
```
|
||||
|
||||
##### Usage
|
||||
### Usage
|
||||
|
||||
```shell
|
||||
minikube start --driver qemu --network socket_vmnet
|
||||
```
|
||||
|
@ -63,21 +65,24 @@ The `socket_vmnet` network is a dedicated network and supports the `minikube ser
|
|||
|
||||
When using the `user` network (default) the guest uses **only** the first `nameserver` entry in the hosts `/etc/resolv.conf` for DNS lookup. If your first `nameserver` entry is a corporate/internal DNS it's likely it will cause an issue. If you see the warning `❗ This VM is having trouble accessing https://registry.k8s.io` on `minikube start` you are likely being affected by this. This may prevent your cluster from starting entirely and you won't be able to pull remote images. More details can be found at: [#15021](https://github.com/kubernetes/minikube/issues/15021)
|
||||
|
||||
##### Workarounds:
|
||||
#### Workarounds:
|
||||
|
||||
1. If possible, reorder your `/etc/resolv.conf` to have a general `nameserver` entry first (eg. `8.8.8.8`) and reboot your machine.
|
||||
2. Use `--network=socket_vmnet`
|
||||
|
||||
### 2. `/var/db/dhcpd_leases` errors
|
||||
|
||||
If you're seeing errors related to `/var/db/dhcpd_leases` we recommend the following:
|
||||
|
||||
1. Uninstall `socket_vmnet`:
|
||||
|
||||
```shell
|
||||
cd socket_vmnet
|
||||
sudo make uninstll
|
||||
sudo rm /var/run/socket_vmnet
|
||||
sudo make uninstall
|
||||
```
|
||||
2. Reboot
|
||||
3. Reinsitall `socket_vmnet`:
|
||||
3. Reinstall `socket_vmnet`:
|
||||
|
||||
```shell
|
||||
cd socket_vmnet
|
||||
sudo make install
|
||||
|
|
|
@ -53,13 +53,10 @@ Services of type `NodePort` can be exposed via the `minikube service <service-na
|
|||
3. Check Node Port
|
||||
|
||||
```shell
|
||||
kubectl get svc
|
||||
```
|
||||
<pre>
|
||||
$ kc get svc
|
||||
AME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||
$ kubectl get svc
|
||||
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||
hello-minikube1 NodePort 10.100.238.34 <none> 8080:31389/TCP 3s
|
||||
</pre>
|
||||
```
|
||||
|
||||
4. Run service tunnel
|
||||
|
||||
|
|
|
@ -534,6 +534,8 @@ minikube dashboard
|
|||
|
||||
<h2 class="step"><span class="fa-stack fa-1x"><i class="fa fa-circle fa-stack-2x"></i><strong class="fa-stack-1x text-primary">4</strong></span>Deploy applications</h2>
|
||||
|
||||
{{% tabs %}}
|
||||
{{% tab Service %}}
|
||||
Create a sample deployment and expose it on port 80:
|
||||
|
||||
```shell
|
||||
|
@ -562,9 +564,8 @@ kubectl port-forward service/hello-minikube 7080:80
|
|||
Tada! Your application is now available at [http://localhost:7080/](http://localhost:7080/).
|
||||
|
||||
You should be able to see the request metadata from nginx such as the `CLIENT VALUES`, `SERVER VALUES`, `HEADERS RECEIVED` and the `BODY` in the application output. Try changing the path of the request and observe the changes in the `CLIENT VALUES`. Similarly, you can do a POST request to the same and observe the body show up in `BODY` section of the output.
|
||||
|
||||
### LoadBalancer deployments
|
||||
|
||||
{{% /tab %}}
|
||||
{{% tab LoadBalancer %}}
|
||||
To access a LoadBalancer deployment, use the "minikube tunnel" command. Here is an example deployment:
|
||||
|
||||
```shell
|
||||
|
@ -585,6 +586,103 @@ kubectl get services balanced
|
|||
```
|
||||
|
||||
Your deployment is now available at <EXTERNAL-IP>:80
|
||||
{{% /tab %}}
|
||||
{{% tab Ingress %}}
|
||||
Enable ingress addon:
|
||||
```shell
|
||||
minikube addons enable ingress
|
||||
```
|
||||
|
||||
The following example creates simple echo-server services and an Ingress object to route to these services.
|
||||
```shell
|
||||
kind: Pod
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: foo-app
|
||||
labels:
|
||||
app: foo
|
||||
spec:
|
||||
containers:
|
||||
- name: foo-app
|
||||
image: docker.io/ealen/echo-server:0.7.0
|
||||
---
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: foo-service
|
||||
spec:
|
||||
selector:
|
||||
app: foo
|
||||
ports:
|
||||
# Default port used by the image
|
||||
- port: 80
|
||||
---
|
||||
kind: Pod
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: bar-app
|
||||
labels:
|
||||
app: bar
|
||||
spec:
|
||||
containers:
|
||||
- name: bar-app
|
||||
image: docker.io/ealen/echo-server:0.7.0
|
||||
---
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: bar-service
|
||||
spec:
|
||||
selector:
|
||||
app: bar
|
||||
ports:
|
||||
# Default port used by the image
|
||||
- port: 80
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: example-ingress
|
||||
spec:
|
||||
rules:
|
||||
- http:
|
||||
paths:
|
||||
- pathType: Prefix
|
||||
path: "/foo"
|
||||
backend:
|
||||
service:
|
||||
name: foo-service
|
||||
port:
|
||||
number: 80
|
||||
- pathType: Prefix
|
||||
path: "/bar"
|
||||
backend:
|
||||
service:
|
||||
name: bar-service
|
||||
port:
|
||||
number: 80
|
||||
---
|
||||
```
|
||||
|
||||
Apply the contents
|
||||
```shell
|
||||
kubectl apply -f https://storage.googleapis.com/minikube-site-examples/ingress-example.yaml
|
||||
```
|
||||
|
||||
Wait for ingress address
|
||||
```shell
|
||||
kubectl get ingress
|
||||
NAME CLASS HOSTS ADDRESS PORTS AGE
|
||||
example-ingress nginx * <your_ip_here> 80 5m45s
|
||||
```
|
||||
|
||||
Now verify that the ingress works
|
||||
```shell
|
||||
curl <ip_from_above>/foo
|
||||
curl <ip_from_above>/bar
|
||||
```
|
||||
{{% /tab %}}
|
||||
{{% /tabs %}}
|
||||
|
||||
<h2 class="step"><span class="fa-stack fa-1x"><i class="fa fa-circle fa-stack-2x"></i><strong class="fa-stack-1x text-primary">5</strong></span>Manage your cluster</h2>
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ date: 2022-02-25
|
|||
|
||||
## Before You Begin
|
||||
|
||||
- You will need to already have minikube setup on your machine, follow the [Getting Start doc]({{< ref "/docs/commands/start" >}}) if not already done.
|
||||
- minikube setup and available on your path, follow the [Getting Start doc]({{< ref "/docs/start" >}}) if not already done
|
||||
|
||||
## Steps
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
|
@ -1 +1 @@
|
|||
Subproject commit 2536303cad19991c673037f4f16332075141364a
|
||||
Subproject commit f27daed90073fb74ca3afdc0250910abcfaa6bea
|
|
@ -89,8 +89,7 @@ func TestSkaffold(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
oldPath := os.Getenv("PATH")
|
||||
os.Setenv("PATH", fmt.Sprintf("%s%s%s", filepath.Dir(abs), pathSeparator, os.Getenv("PATH")))
|
||||
t.Setenv("PATH", fmt.Sprintf("%s%s%s", filepath.Dir(abs), pathSeparator, os.Getenv("PATH")))
|
||||
|
||||
// make sure 'docker' and 'minikube' are now in PATH
|
||||
for _, binary := range []string{"minikube", "docker"} {
|
||||
|
@ -100,10 +99,6 @@ func TestSkaffold(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
defer func() {
|
||||
os.Setenv("PATH", oldPath)
|
||||
}()
|
||||
|
||||
// make sure "skaffold run" exits without failure
|
||||
cmd := exec.CommandContext(ctx, tf.Name(), "run", "--minikube-profile", profile, "--kube-context", profile, "--status-check=true", "--port-forward=false", "--interactive=false")
|
||||
cmd.Dir = "testdata/skaffold"
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
"--kvm-numa-count range is 1-8": "la tranche de --kvm-numa-count est 1 à 8",
|
||||
"--network flag is only valid with the docker/podman and KVM drivers, it will be ignored": "l'indicateur --network est valide uniquement avec les pilotes docker/podman et KVM, il va être ignoré",
|
||||
"--network flag is only valid with the docker/podman, KVM and Qemu drivers, it will be ignored": "L'indicateur --network n'est valide qu'avec les pilotes docker/podman, KVM et Qemu, il sera ignoré",
|
||||
"--network with QEMU must be 'user' or 'socket_vmnet'": "",
|
||||
"--network with QEMU must be 'user' or 'socket_vmnet'": "--network avec QEMU doit être 'user' ou 'socket_vmnet'",
|
||||
"1) Recreate the cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube delete {{.profile}}\n\t\t minikube start {{.profile}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) Create a second cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) Use the existing cluster at version Kubernetes {{.old}}, by running:\n\t \n\t\t minikube start {{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t\t": "1) Recréez le cluster avec Kubernetes {{.new}}, en exécutant :\n\t \n\t\t minikube delete {{.profile}}\n\t\t minikube start {{.profile}} - -kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) Créez un deuxième cluster avec Kubernetes {{.new}}, en exécutant :\n\t \n \t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) Utiliser le cluster existant à la version Kubernetes {{.old}}, en exécutant :\n\t \n\t\t minikube start {{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t \t",
|
||||
"1) Recreate the cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube delete{{.profile}}\n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) Create a second cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) Use the existing cluster at version Kubernetes {{.old}}, by running:\n\t \n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t\t": "1) Recréez le cluster avec Kubernetes {{.new}}, en exécutant :\n\t \n\t\t minikube delete {{.profile}}\n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) Créez un deuxième cluster avec Kubernetes {{.new}}, en exécutant :\n\t \n \t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) Utiliser le cluster existant à la version Kubernetes {{.old}}, en exécutant :\n\t \n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t \t",
|
||||
"1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"CPUs\" slider bar to 2 or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "1. Cliquez sur l'icône de menu \"Docker for Desktop\"\n\t\t\t2. Cliquez sur \"Preferences\"\n\t\t\t3. Cliquez sur \"Ressources\"\n\t\t\t4. Augmentez la barre de défilement \"CPU\" à 2 ou plus\n\t\t\t5. Cliquez sur \"Apply \u0026 Restart\"",
|
||||
|
@ -74,7 +74,7 @@
|
|||
"Auto-pause is already enabled.": "La pause automatique est déjà activée.",
|
||||
"Automatically selected the {{.driver}} driver": "Choix automatique du pilote {{.driver}}",
|
||||
"Automatically selected the {{.driver}} driver. Other choices: {{.alternates}}": "Choix automatique du pilote {{.driver}}. Autres choix: {{.alternates}}",
|
||||
"Automatically selected the {{.network}} network": "",
|
||||
"Automatically selected the {{.network}} network": "Sélection automatique du réseau {{.network}}",
|
||||
"Available Commands": "Commandes disponibles",
|
||||
"Basic Commands:": "Commandes basiques :",
|
||||
"Because you are using a Docker driver on {{.operating_system}}, the terminal needs to be open to run it.": "Comme vous utilisez un pilote Docker sur {{.operating_system}}, le terminal doit être ouvert pour l'exécuter.",
|
||||
|
@ -719,7 +719,7 @@
|
|||
"The service namespace": "L'espace de nom du service",
|
||||
"The service/ingress {{.resource}} requires privileged ports to be exposed: {{.ports}}": "Le service/ingress {{.resource}} nécessite l'exposition des ports privilégiés : {{.ports}}",
|
||||
"The services namespace": "L'espace de noms des services",
|
||||
"The socket_vmnet network is only supported on macOS": "",
|
||||
"The socket_vmnet network is only supported on macOS": "Le réseau socket_vmnet n'est pris en charge que sur macOS",
|
||||
"The time interval for each check that wait performs in seconds": "L'intervalle de temps pour chaque contrôle que wait effectue en secondes",
|
||||
"The value passed to --format is invalid": "La valeur passée à --format n'est pas valide",
|
||||
"The value passed to --format is invalid: {{.error}}": "La valeur passée à --format n'est pas valide : {{.error}}",
|
||||
|
@ -864,7 +864,7 @@
|
|||
"You are trying to run a windows .exe binary inside WSL. For better integration please use a Linux binary instead (Download at https://minikube.sigs.k8s.io/docs/start/.). Otherwise if you still want to do this, you can do it using --force": "Vous essayez d'exécuter un binaire Windows .exe dans WSL. Pour une meilleure intégration, veuillez utiliser un binaire Linux à la place (Télécharger sur https://minikube.sigs.k8s.io/docs/start/.). Sinon, si vous voulez toujours le faire, vous pouvez le faire en utilisant --force",
|
||||
"You are trying to run amd64 binary on M1 system. Please consider running darwin/arm64 binary instead (Download at {{.url}}.)": "Vous essayez d'exécuter le binaire amd64 sur le système M1. Veuillez utiliser le binaire darwin/arm64 à la place (télécharger sur {{.url}}.)",
|
||||
"You are trying to run the amd64 binary on an M1 system.\nPlease consider running the darwin/arm64 binary instead.\nDownload at {{.url}}": "Vous essayez d'exécuter le binaire amd64 sur un système M1.\nVeuillez envisager d'exécuter le binaire darwin/arm64 à la place.\nTéléchargez sur {{.url}}",
|
||||
"You are using the QEMU driver without a dedicated network, which doesn't support `minikube service` \u0026 `minikube tunnel` commands.": "",
|
||||
"You are using the QEMU driver without a dedicated network, which doesn't support `minikube service` \u0026 `minikube tunnel` commands.": "Vous utilisez le pilote QEMU sans réseau dédié, qui ne prend pas en charge les commandes `minikube service` \u0026 `minikube tunnel`.",
|
||||
"You are using the QEMU driver without a dedicated network, which doesn't support `minikube service` \u0026 `minikube tunnel` commands.\nTo try the experimental dedicated network see: https://minikube.sigs.k8s.io/docs/drivers/qemu/#networking": "Vous utilisez le pilote QEMU sans réseau dédié, qui ne prend pas en charge les commandes `minikube service` \u0026 `minikube tunnel`.\nPour essayer le réseau dédié expérimental, voir : https://minikube.sigs.k8s.io/docs /drivers/qemu/#networking",
|
||||
"You can create one using 'minikube start'.\n\t\t": "Vous pouvez en créer un en utilisant 'minikube start'.\n\t\t",
|
||||
"You can delete them using the following command(s): ": "Vous pouvez les supprimer à l'aide de la ou des commandes suivantes :",
|
||||
|
@ -906,7 +906,7 @@
|
|||
"config modifies minikube config files using subcommands like \"minikube config set driver kvm2\"\nConfigurable fields: \n\n": "config modifie les fichiers de configuration de minikube à l'aide de sous-commandes telles que \"minikube config set driver kvm2\"\nChamps configurables : \n\n",
|
||||
"config view failed": "échec de la vue de configuration",
|
||||
"containers paused status: {{.paused}}": "état des conteneurs en pause : {{.paused}}",
|
||||
"dashboard": "",
|
||||
"dashboard": "tableau de bord",
|
||||
"dashboard service is not running: {{.error}}": "le service de tableau de bord ne fonctionne pas : {{.error}}",
|
||||
"delete ctx": "supprimer ctx",
|
||||
"deleting node": "suppression d'un nœud",
|
||||
|
@ -933,7 +933,7 @@
|
|||
"failed to set cloud shell kubelet config options": "échec de la définition des options de configuration cloud shell kubelet",
|
||||
"failed to set extra option": "impossible de définir une option supplémentaire",
|
||||
"failed to start node": "échec du démarrage du nœud",
|
||||
"false": "",
|
||||
"false": "faux",
|
||||
"fish completion failed": "la complétion fish a échoué",
|
||||
"fish completion.": "complétion fish.",
|
||||
"if true, will embed the certs in kubeconfig.": "si vrai, intégrera les certificats dans kubeconfig.",
|
||||
|
@ -989,12 +989,12 @@
|
|||
"scheduled stop is not supported on the none driver, skipping scheduling": "l'arrêt programmé n'est pas pris en charge sur le pilote none, programmation non prise en compte",
|
||||
"service {{.namespace_name}}/{{.service_name}} has no node port": "le service {{.namespace_name}}/{{.service_name}} n'a pas de port de nœud",
|
||||
"set tunnel bind address, empty or '*' indicates the tunnel should be available for all interfaces": "définit l'adresse de liaison du tunnel, vide ou '*' indique que le tunnel doit être disponible pour toutes les interfaces",
|
||||
"socket_vmnet was not found on the system, resolve by:\n\n\t\tOption 1) Installing socket_vmnet:\n\n\t\t https://minikube.sigs.k8s.io/docs/drivers/qemu/#networking\n\n\t\tOption 2) Using the user network:\n\n\t\t minikube start{{.profile}} --driver qemu --network user": "",
|
||||
"socket_vmnet was not found on the system, resolve by:\n\n\t\tOption 1) Installing socket_vmnet:\n\n\t\t https://minikube.sigs.k8s.io/docs/drivers/qemu/#networking\n\n\t\tOption 2) Using the user network:\n\n\t\t minikube start{{.profile}} --driver qemu --network user": "socket_vmnet n'a pas été trouvé sur le système, résolvez le par :\n\n\t\tOption 1) Installation de socket_vmnet :\n\n\t\t https://minikube.sigs.k8s.io/docs/drivers/qemu/ #networking\n\n\t\tOption 2) Utilisation du réseau utilisateur :\n\n\t\t minikube start{{.profile}} --driver qemu --network user",
|
||||
"stat failed": "stat en échec",
|
||||
"status json failure": "état du JSON en échec",
|
||||
"status text failure": "état du texte en échec",
|
||||
"too many arguments ({{.ArgCount}}).\nusage: minikube config set PROPERTY_NAME PROPERTY_VALUE": "trop d'arguments ({{.ArgCount}}).\nusage : jeu de configuration de minikube PROPERTY_NAME PROPERTY_VALUE",
|
||||
"true": "",
|
||||
"true": "vrai",
|
||||
"tunnel creates a route to services deployed with type LoadBalancer and sets their Ingress to their ClusterIP. for a detailed example see https://minikube.sigs.k8s.io/docs/tasks/loadbalancer": "le tunnel crée une route vers les services déployés avec le type LoadBalancer et définit leur Ingress sur leur ClusterIP. Pour un exemple détaillé, voir https://minikube.sigs.k8s.io/docs/tasks/loadbalancer",
|
||||
"unable to bind flags": "impossible de lier les configurations",
|
||||
"unable to daemonize: {{.err}}": "impossible de démoniser : {{.err}}",
|
||||
|
|
Loading…
Reference in New Issue