Merge branch 'master' into master

pull/15235/head
Chris Kannon 2022-11-02 15:09:58 -04:00 committed by GitHub
commit 00486c3fd6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
37 changed files with 377 additions and 587 deletions

View File

@ -26,7 +26,7 @@ jobs:
c=$(git status --porcelain)
c="${c//$'\n'/'%0A'}"
c="${c//$'\r'/'%0D'}"
echo "::set-output name=changes::$c"
echo "changes=$c" >> $GITHUB_OUTPUT
- name: Create PR
if: ${{ steps.gendocs.outputs.changes != '' }}
uses: peter-evans/create-pull-request@b4d51739f96fca8047ad065eccef63442d8e99f7

View File

@ -25,7 +25,7 @@ jobs:
c=$(git status --porcelain)
c="${c//$'\n'/'%0A'}"
c="${c//$'\r'/'%0D'}"
echo "::set-output name=changes::$c"
echo "changes=$c" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.MINIKUBE_BOT_PAT }}
- name: Create PR

View File

@ -23,7 +23,7 @@ jobs:
id: timeToK8sBenchmark
run: |
./hack/benchmark/time-to-k8s/time-to-k8s.sh
echo "::set-output name=version::$(minikube version --short)"
echo "version=$(minikube version --short)" >> $GITHUB_OUTPUT
- name: Create PR
uses: peter-evans/create-pull-request@b4d51739f96fca8047ad065eccef63442d8e99f7
with:

View File

@ -22,7 +22,7 @@ jobs:
id: bumpGolang
run: |
make update-golang-version
echo "::set-output name=changes::$(git status --porcelain)"
echo "changes=$(git status --porcelain)" >> $GITHUB_OUTPUT
- name: Create PR
if: ${{ steps.bumpGolang.outputs.changes != '' }}
uses: peter-evans/create-pull-request@b4d51739f96fca8047ad065eccef63442d8e99f7

View File

@ -22,7 +22,7 @@ jobs:
id: bumpGolint
run: |
make update-golint-version
echo "::set-output name=changes::$(git status --porcelain)"
echo "changes=$(git status --porcelain)" >> $GITHUB_OUTPUT
- name: Create PR
if: ${{ steps.bumpGolint.outputs.changes != '' }}
uses: peter-evans/create-pull-request@b4d51739f96fca8047ad065eccef63442d8e99f7

View File

@ -22,7 +22,7 @@ jobs:
id: bumpGopogh
run: |
make update-gopogh-version
echo "::set-output name=changes::$(git status --porcelain)"
echo "changes=$(git status --porcelain)" >> $GITHUB_OUTPUT
- name: Create PR
if: ${{ steps.bumpGopogh.outputs.changes != '' }}
uses: peter-evans/create-pull-request@b4d51739f96fca8047ad065eccef63442d8e99f7

View File

@ -22,7 +22,7 @@ jobs:
id: bumpGotestsum
run: |
make update-gotestsum-version
echo "::set-output name=changes::$(git status --porcelain)"
echo "changes=$(git status --porcelain)" >> $GITHUB_OUTPUT
- name: Create PR
if: ${{ steps.bumpGotestsum.outputs.changes != '' }}
uses: peter-evans/create-pull-request@b4d51739f96fca8047ad065eccef63442d8e99f7

View File

@ -23,11 +23,11 @@ jobs:
run: |
t=$(make update-kubernetes-version)
t=$(echo $t | head -n 1)
echo "::set-output name=title::$t"
echo "title=$t" >> $GITHUB_OUTPUT
c=$(git status --porcelain)
c="${c//$'\n'/'%0A'}"
c="${c//$'\r'/'%0D'}"
echo "::set-output name=changes::$c"
echo "changes=$c" >> $GITHUB_OUTPUT
- name: Create PR
if: ${{ steps.bumpk8s.outputs.changes != '' }}
uses: peter-evans/create-pull-request@b4d51739f96fca8047ad065eccef63442d8e99f7

View File

@ -19,15 +19,15 @@ jobs:
with:
go-version: ${{env.GO_VERSION}}
- name: Bump Kubeadm Constants for Kubernetes Images
id: bumpKubAdmConsts
id: bumpKubeadmConsts
run: |
make update-kubeadm-constants
c=$(git status --porcelain)
c="${c//$'\n'/'%0A'}"
c="${c//$'\r'/'%0D'}"
echo "::set-output name=changes::$c"
echo "changes=$c" >> $GITHUB_OUTPUT
- name: Create PR
if: ${{ steps.bumpKubAdmConsts.outputs.changes != '' }}
if: ${{ steps.bumpKubeadmConsts.outputs.changes != '' }}
uses: peter-evans/create-pull-request@b4d51739f96fca8047ad065eccef63442d8e99f7
with:
token: ${{ secrets.MINIKUBE_BOT_PAT }}
@ -45,5 +45,5 @@ jobs:
Please only merge if all the tests pass.
```
${{ steps.bumpKubAdmConsts.outputs.changes }}
${{ steps.bumpKubeadmConsts.outputs.changes }}
```

View File

@ -27,7 +27,7 @@ jobs:
id: yearlyLeaderboard
run: |
make update-yearly-leaderboard
echo "::set-output name=changes::$(git status --porcelain)"
echo "changes=$(git status --porcelain)" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.MINIKUBE_BOT_PAT }}
- name: Create PR

View File

@ -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.27.0-1666206003-15159
ISO_VERSION ?= v1.27.0-1666976405-15232
# Dashes are valid in semver, but not Linux packaging. Use ~ to delimit alpha/beta
DEB_VERSION ?= $(subst -,~,$(RAW_VERSION))
DEB_REVISION ?= 0

View File

@ -77,7 +77,7 @@ func TestAddonsList(t *testing.T) {
Ambassador *interface{} `json:"ambassador"`
}
b := make([]byte, 571)
b := make([]byte, 590)
r, w, err := os.Pipe()
if err != nil {
t.Fatalf("failed to create pipe: %v", err)

View File

@ -151,4 +151,8 @@ var (
// HeadlampAssets assets for headlamp addon
//go:embed headlamp/*.yaml headlamp/*.tmpl
HeadlampAssets embed.FS
// CloudSpanner assets for cloud-spanner addon
//go:embed cloud-spanner/*.yaml
CloudSpanner embed.FS
)

View File

@ -0,0 +1,45 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: cloud-spanner-emulator
labels:
app: cloud-spanner-emulator
gcp-auth-skip-secret: "true"
kubernetes.io/minikube-addons-endpoint: cloud-spanner
spec:
replicas: 1
selector:
matchLabels:
app: cloud-spanner-emulator
template:
metadata:
labels:
app: cloud-spanner-emulator
spec:
containers:
- name: cloud-spanner-emulator
image: gcr.io/cloud-spanner-emulator/emulator:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9020
name: http
- containerPort: 9010
name: grpc
---
apiVersion: v1
kind: Service
metadata:
name: cloud-spanner-emulator
labels:
app: cloud-spanner-emulator
spec:
type: NodePort
ports:
- port: 9020
name: http
- port: 9010
name: grpc
selector:
app: cloud-spanner-emulator

View File

@ -1,4 +1,5 @@
CONFIG_FANOTIFY=y
CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_KPROBE_EVENTS=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_INFO_BTF=y

View File

@ -1,4 +1,5 @@
CONFIG_FANOTIFY=y
CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_KPROBE_EVENTS=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_INFO_BTF=y

View File

@ -37,7 +37,7 @@ RUN if [ "$PREBUILT_AUTO_PAUSE" != "true" ]; then cd ./cmd/auto-pause/ && go bui
# start from ubuntu 20.04, this image is reasonably small as a starting point
# for a kubernetes node image, it doesn't contain much we don't need
FROM ubuntu:focal-20220922 as kicbase
FROM ubuntu:focal-20221019 as kicbase
ARG BUILDKIT_VERSION="v0.10.3"
ARG FUSE_OVERLAYFS_VERSION="v1.7.1"

47
go.mod
View File

@ -5,7 +5,7 @@ go 1.19
require (
cloud.google.com/go/storage v1.27.0
contrib.go.opencensus.io/exporter/stackdriver v0.13.12
github.com/Delta456/box-cli-maker/v2 v2.2.2
github.com/Delta456/box-cli-maker/v2 v2.3.0
github.com/GoogleCloudPlatform/docker-credential-gcr v0.0.0-20210713212222-faed5e8b8ca2
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.10.1
github.com/Microsoft/hcsshim v0.8.17 // indirect
@ -23,7 +23,7 @@ require (
github.com/elazarl/goproxy v0.0.0-20210110162100-a92cc753f88e
github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3
github.com/google/go-cmp v0.5.9
github.com/google/go-containerregistry v0.11.0
github.com/google/go-containerregistry v0.12.0
github.com/google/slowjam v1.0.0
github.com/google/uuid v1.3.0
github.com/hashicorp/go-getter v1.6.2
@ -62,22 +62,22 @@ require (
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/spf13/cobra v1.6.0
github.com/spf13/cobra v1.6.1
github.com/spf13/pflag v1.0.5
github.com/spf13/viper v1.13.0
github.com/zchee/go-vmnet v0.0.0-20161021174912-97ebf9174097
go.opencensus.io v0.23.0
go.opentelemetry.io/otel v1.11.1
go.opentelemetry.io/otel/sdk v1.11.0
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.0.0-20220411220226-7b82a4e95df4
golang.org/x/exp v0.0.0-20220827204233-334a2380cb91
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4
golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783
golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0
golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211
golang.org/x/crypto v0.1.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/sync v0.1.0
golang.org/x/sys v0.1.0
golang.org/x/term v0.1.0
golang.org/x/text v0.4.0
gonum.org/v1/plot v0.12.0
google.golang.org/api v0.100.0
@ -101,7 +101,7 @@ require (
github.com/docker/go-connections v0.4.0
github.com/google/go-github/v43 v43.0.0
github.com/opencontainers/runc v1.1.4
github.com/santhosh-tekuri/jsonschema/v5 v5.0.1
github.com/santhosh-tekuri/jsonschema/v5 v5.0.2
)
require (
@ -114,7 +114,7 @@ require (
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.34.1 // indirect
github.com/MakeNowJust/heredoc v1.0.0 // indirect
github.com/Microsoft/go-winio v0.5.2 // indirect
github.com/Microsoft/go-winio v0.6.0 // indirect
github.com/PuerkitoBio/purell v1.1.1 // indirect
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
github.com/VividCortex/ewma v1.1.1 // indirect
@ -126,14 +126,14 @@ require (
github.com/cespare/xxhash/v2 v2.1.2 // indirect
github.com/containerd/cgroups v1.0.1 // indirect
github.com/containerd/containerd v1.5.2 // indirect
github.com/containerd/stargz-snapshotter/estargz v0.12.0 // indirect
github.com/containerd/stargz-snapshotter/estargz v0.12.1 // indirect
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
github.com/cyphar/filepath-securejoin v0.2.3 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/docker/cli v20.10.17+incompatible // indirect
github.com/docker/cli v20.10.20+incompatible // indirect
github.com/docker/distribution v2.8.1+incompatible // indirect
github.com/docker/docker-credential-helpers v0.6.4 // indirect
github.com/docker/docker-credential-helpers v0.7.0 // indirect
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
@ -157,22 +157,23 @@ require (
github.com/google/gofuzz v1.1.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.2.0 // indirect
github.com/googleapis/gax-go/v2 v2.6.0 // indirect
github.com/gookit/color v1.4.2 // indirect
github.com/gookit/color v1.5.2 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-safetemp v1.0.0 // indirect
github.com/hashicorp/go-version v1.2.1 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/huandu/xstrings v1.3.2 // indirect
github.com/imdario/mergo v0.3.11 // indirect
github.com/inconshreveable/mousetrap v1.0.1 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/compress v1.15.8 // indirect
github.com/klauspost/compress v1.15.11 // indirect
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
github.com/magiconair/properties v1.8.6 // indirect
github.com/mailru/easyjson v0.7.6 // indirect
github.com/mattn/go-colorable v0.1.12 // indirect
github.com/mattn/go-runewidth v0.0.13 // indirect
github.com/mattn/go-runewidth v0.0.14 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
github.com/miekg/dns v1.1.41 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
@ -184,8 +185,9 @@ require (
github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/muesli/reflow v0.3.0 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/opencontainers/image-spec v1.0.3-0.20220114050600-8b9d41f48198 // indirect
github.com/opencontainers/image-spec v1.1.0-rc2 // indirect
github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/pelletier/go-toml/v2 v2.0.5 // indirect
@ -206,14 +208,15 @@ require (
github.com/tklauser/numcpus v0.4.0 // indirect
github.com/ulikunitz/xz v0.5.8 // indirect
github.com/vbatts/tar-split v0.11.2 // indirect
github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 // 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/multierr v1.8.0 // indirect
go.uber.org/zap v1.19.0 // indirect
golang.org/x/image v0.0.0-20220902085622-e7cb96979f69 // indirect
golang.org/x/net v0.0.0-20221014081412-f15817d10f9b // indirect
golang.org/x/net v0.1.0 // indirect
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // 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

504
go.sum

File diff suppressed because it is too large Load Diff

View File

@ -73,7 +73,7 @@ var (
`GO_VERSION: .*`: `GO_VERSION: '{{.StableVersion}}'`,
},
},
".github/workflows/update-kubadm-constants.yml": {
".github/workflows/update-kubeadm-constants.yml": {
Replace: map[string]string{
`GO_VERSION: .*`: `GO_VERSION: '{{.StableVersion}}'`,
},

View File

@ -207,4 +207,9 @@ var Addons = []*Addon{
set: SetBool,
callbacks: []setFn{EnableOrDisableAddon},
},
{
name: "cloud-spanner",
set: SetBool,
callbacks: []setFn{EnableOrDisableAddon},
},
}

View File

@ -742,6 +742,13 @@ var Addons = map[string]*Addon{
map[string]string{
"Headlamp": "ghcr.io",
}),
"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",
}, map[string]string{
"CloudSpannerAddon": "gcr.io",
}),
}
// parseMapString creates a map based on `str` which is encoded as <key1>=<value1>,<key2>=<value2>,...

View File

@ -38,6 +38,7 @@ import (
"k8s.io/minikube/pkg/minikube/config"
"k8s.io/minikube/pkg/minikube/docker"
"k8s.io/minikube/pkg/minikube/download"
"k8s.io/minikube/pkg/minikube/image"
"k8s.io/minikube/pkg/minikube/style"
"k8s.io/minikube/pkg/minikube/sysinit"
)
@ -600,11 +601,12 @@ func (r *Docker) Preload(cc config.ClusterConfig) error {
func dockerImagesPreloaded(runner command.Runner, images []string) bool {
rr, err := runner.RunCmd(exec.Command("docker", "images", "--format", "{{.Repository}}:{{.Tag}}"))
if err != nil {
klog.Warning(err)
return false
}
preloadedImages := map[string]struct{}{}
for _, i := range strings.Split(rr.Stdout.String(), "\n") {
i = trimDockerIO(i)
i = image.TrimDockerIO(i)
preloadedImages[i] = struct{}{}
}
@ -612,7 +614,7 @@ func dockerImagesPreloaded(runner command.Runner, images []string) bool {
// Make sure images == imgs
for _, i := range images {
i = trimDockerIO(i)
i = image.TrimDockerIO(i)
if _, ok := preloadedImages[i]; !ok {
klog.Infof("%s wasn't preloaded", i)
return false
@ -644,13 +646,6 @@ func addDockerIO(name string) string {
return reg + "/" + img
}
// Remove docker.io prefix since it won't be included in images names
// when we call 'docker images'
func trimDockerIO(name string) string {
name = strings.TrimPrefix(name, "docker.io/")
return name
}
func dockerBoundToContainerd(runner command.Runner) bool {
// NOTE: assumes systemd
rr, err := runner.RunCmd(exec.Command("sudo", "systemctl", "cat", "docker.service"))

View File

@ -34,6 +34,7 @@ import (
"github.com/pkg/errors"
"k8s.io/klog/v2"
"k8s.io/minikube/pkg/minikube/detect"
"k8s.io/minikube/pkg/minikube/image"
"k8s.io/minikube/pkg/minikube/localpath"
)
@ -75,7 +76,7 @@ func ImageExistsInDaemon(img string) bool {
klog.Infof("Checking for %s in local docker daemon", img)
cmd := exec.Command("docker", "images", "--format", "{{.Repository}}:{{.Tag}}@{{.Digest}}")
if output, err := cmd.Output(); err == nil {
if strings.Contains(string(output), img) {
if strings.Contains(string(output), image.TrimDockerIO(img)) {
klog.Infof("Found %s in local docker daemon, skipping pull", img)
return true
}

View File

@ -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/15159"
isoBucket := "minikube-builds/iso/15232"
return []string{
fmt.Sprintf("https://storage.googleapis.com/%s/minikube-%s-%s.iso", isoBucket, v, runtime.GOARCH),
fmt.Sprintf("https://github.com/kubernetes/minikube/releases/download/%s/minikube-%s-%s.iso", v, v, runtime.GOARCH),

View File

@ -319,3 +319,9 @@ func normalizeTagName(image string) string {
}
return base + ":" + tag
}
// Remove docker.io prefix since it won't be included in image names
// when we call `docker images`.
func TrimDockerIO(name string) string {
return strings.TrimPrefix(name, "docker.io/")
}

View File

@ -0,0 +1,25 @@
.td-sidebar-nav {
padding-left: 0.625rem;
&__section {
@include media-breakpoint-up(md) {
& > ul {
padding-left: 1rem;
}
}
}
}
.td-sidebar-link__section {
position: relative;
&::before {
position: absolute;
left: -1rem;
content: '\29be';
}
&.active::before {
content: '\29bf';
}
}

View File

@ -10,21 +10,10 @@ The minikube ISO is booted by each hypervisor to provide a stable minimal Linux
## Prerequisites
* A recent GNU Make distribution (>=4.0)
* A recent Go distribution (>=1.16)
* If you are on Windows, you'll need Docker to be installed.
* If you are on Windows or Mac, you'll need Docker to be installed.
* 4GB of RAM
* Build tools:
```shell
sudo apt-get install build-essential gnupg2 p7zip-full git wget cpio python \
unzip bc gcc-multilib automake libtool locales
```
Additionally, if you are on Fedora, you will need to install `glibc-static`:
```shell
sudo dnf install -y glibc-static
```
## Downloading the source
@ -33,8 +22,9 @@ git clone https://github.com/kubernetes/minikube.git
cd minikube
```
### Building
## Building
### Building in Docker
To build for x86
```shell
$ make buildroot-image
@ -47,17 +37,31 @@ $ make buildroot-image
$ make out/minikube-arm64.iso
```
The build will occur inside a docker container. If you want to do this on
baremetal, replace `make out/minikube-<arch>.iso` with `IN_DOCKER=1 make out/minikube-<arch>.iso`.
The build will occur inside a docker container.
The bootable ISO image will be available in `out/minikube-<arch>.iso`.
### Using a local ISO image
### Building on Baremetal
If you want to do this on baremetal, replace `make out/minikube-<arch>.iso` with `IN_DOCKER=1 make out/minikube-<arch>.iso`.
* Prerequisite build tools to install:
```shell
sudo apt-get install build-essential gnupg2 p7zip-full git wget cpio python \
unzip bc gcc-multilib automake libtool locales
```
Additionally, if you are on Fedora, you will need to install `glibc-static`:
```shell
sudo dnf install -y glibc-static
```
## Using a local ISO image
```shell
$ ./out/minikube start --iso-url=file://$(pwd)/out/minikube-<arch>.iso
```
### Modifying buildroot components
## Modifying buildroot components
To change which Linux userland components are included by the guest VM, use this to modify the buildroot configuration:
@ -75,7 +79,7 @@ make savedefconfig
The changes will be reflected in the `minikube-iso/configs/minikube_defconfig` file.
### Adding kernel modules
## Adding kernel modules
To make kernel configuration changes and save them, execute:
@ -86,7 +90,7 @@ $ make linux-menuconfig
This will open the kernel configuration menu, and then save your changes to our
iso directory after they've been selected.
### Adding third-party packages
## Adding third-party packages
To add your own package to the minikube ISO, create a package directory under `iso/minikube-iso/package`. This directory will require at least 3 files:

View File

@ -87,7 +87,7 @@ weight: -99992022
</head>
<body>
<h1>kubernetes/minikube</h1>
<div class="subtitle">2022-01-01 &mdash; 2022-09-30</div>
<div class="subtitle">2022-01-01 &mdash; 2022-10-31</div>
<h2>Reviewers</h2>
@ -103,21 +103,21 @@ weight: -99992022
function drawreviewCounts() {
var data = new google.visualization.arrayToDataTable([
[{label:'',type:'string'},{label: '# of Merged PRs reviewed', type: 'number'}, { role: 'annotation' }],
["spowelljr", 50, "50"],
["medyagh", 35, "35"],
["klaases", 16, "16"],
["spowelljr", 56, "56"],
["medyagh", 43, "43"],
["klaases", 17, "17"],
["sharifelgamal", 13, "13"],
["afbjorklund", 11, "11"],
["t-inu", 7, "7"],
["atoato88", 7, "7"],
["t-inu", 7, "7"],
["jesperpedersen", 3, "3"],
["knrt10", 2, "2"],
["kakkoyun", 2, "2"],
["s-kawamura-w664", 2, "2"],
["AkihiroSuda", 2, "2"],
["vbezhenar", 1, "1"],
["mprimeaux", 1, "1"],
["AlexIoannides", 1, "1"],
["s-kawamura-w664", 2, "2"],
["knrt10", 2, "2"],
["criztovyl", 1, "1"],
["shu-mutou", 1, "1"],
["nixpanic", 1, "1"],
]);
@ -150,21 +150,21 @@ weight: -99992022
function drawreviewWords() {
var data = new google.visualization.arrayToDataTable([
[{label:'',type:'string'},{label: '# of words written in merged PRs', type: 'number'}, { role: 'annotation' }],
["spowelljr", 3856, "3856"],
["spowelljr", 4224, "4224"],
["medyagh", 1370, "1370"],
["t-inu", 1098, "1098"],
["medyagh", 1070, "1070"],
["afbjorklund", 684, "684"],
["s-kawamura-w664", 534, "534"],
["klaases", 467, "467"],
["klaases", 473, "473"],
["atoato88", 421, "421"],
["sharifelgamal", 394, "394"],
["mm0", 287, "287"],
["knrt10", 125, "125"],
["vbezhenar", 108, "108"],
["jesperpedersen", 65, "65"],
["kakkoyun", 49, "49"],
["AkihiroSuda", 27, "27"],
["mprimeaux", 24, "24"],
["shu-mutou", 24, "24"],
]);
@ -197,11 +197,11 @@ weight: -99992022
function drawreviewComments() {
var data = new google.visualization.arrayToDataTable([
[{label:'',type:'string'},{label: '# of Review Comments in merged PRs', type: 'number'}, { role: 'annotation' }],
["spowelljr", 100, "100"],
["medyagh", 34, "34"],
["spowelljr", 113, "113"],
["medyagh", 50, "50"],
["t-inu", 15, "15"],
["atoato88", 14, "14"],
["klaases", 11, "11"],
["klaases", 13, "13"],
["afbjorklund", 11, "11"],
["sharifelgamal", 7, "7"],
["AkihiroSuda", 5, "5"],
@ -209,9 +209,9 @@ weight: -99992022
["mprimeaux", 2, "2"],
["csantanapr", 1, "1"],
["vbezhenar", 1, "1"],
["criztovyl", 1, "1"],
["knrt10", 1, "1"],
["inductor", 1, "1"],
["nburlett", 0, "0"],
]);
@ -248,21 +248,21 @@ weight: -99992022
function drawprCounts() {
var data = new google.visualization.arrayToDataTable([
[{label:'',type:'string'},{label: '# of Pull Requests Merged', type: 'number'}, { role: 'annotation' }],
["spowelljr", 176, "176"],
["spowelljr", 198, "198"],
["sharifelgamal", 37, "37"],
["afbjorklund", 25, "25"],
["klaases", 18, "18"],
["jeffmaury", 16, "16"],
["klaases", 20, "20"],
["jeffmaury", 17, "17"],
["yosshy", 8, "8"],
["presztak", 7, "7"],
["prezha", 5, "5"],
["ckannon", 4, "4"],
["medyagh", 4, "4"],
["kadern0", 4, "4"],
["ziyi-xie", 3, "3"],
["zhan9san", 3, "3"],
["NikhilSharmaWe", 3, "3"],
["yolossn", 3, "3"],
["chungjin", 3, "3"],
["zhan9san", 3, "3"],
]);
@ -295,19 +295,19 @@ weight: -99992022
function drawprDeltas() {
var data = new google.visualization.arrayToDataTable([
[{label:'',type:'string'},{label: 'Lines of code (delta)', type: 'number'}, { role: 'annotation' }],
["spowelljr", 16418, "16418"],
["spowelljr", 17747, "17747"],
["sharifelgamal", 8526, "8526"],
["afbjorklund", 1850, "1850"],
["gAmUssA", 1574, "1574"],
["prezha", 1324, "1324"],
["ckannon", 642, "642"],
["eiffel-fl", 560, "560"],
["eiffel-fl", 629, "629"],
["chungjin", 499, "499"],
["klaases", 402, "402"],
["klaases", 412, "412"],
["presztak", 349, "349"],
["zhan9san", 332, "332"],
["NikhilSharmaWe", 264, "264"],
["naveensrinivasan", 264, "264"],
["NikhilSharmaWe", 264, "264"],
["yolossn", 249, "249"],
["Rabattkarte", 189, "189"],
@ -343,12 +343,13 @@ weight: -99992022
var data = new google.visualization.arrayToDataTable([
[{label:'',type:'string'},{label: 'Average PR size (added+changed)', type: 'number'}, { role: 'annotation' }],
["gAmUssA", 1573, "1573"],
["eiffel-fl", 221, "221"],
["sharifelgamal", 179, "179"],
["eiffel-fl", 169, "169"],
["eliaskoromilas", 168, "168"],
["F1ko", 143, "143"],
["prezha", 142, "142"],
["chungjin", 140, "140"],
["agarwalnit", 139, "139"],
["ckannon", 115, "115"],
["Rabattkarte", 108, "108"],
["tyabu12", 107, "107"],
@ -356,7 +357,6 @@ weight: -99992022
["naveensrinivasan", 85, "85"],
["kianmeng", 80, "80"],
["yolossn", 79, "79"],
["cdtomkins", 76, "76"],
]);
@ -393,21 +393,21 @@ weight: -99992022
function drawcomments() {
var data = new google.visualization.arrayToDataTable([
[{label:'',type:'string'},{label: '# of comments', type: 'number'}, { role: 'annotation' }],
["afbjorklund", 247, "247"],
["RA489", 166, "166"],
["klaases", 163, "163"],
["spowelljr", 128, "128"],
["afbjorklund", 271, "271"],
["RA489", 239, "239"],
["klaases", 212, "212"],
["spowelljr", 150, "150"],
["sharifelgamal", 57, "57"],
["medyagh", 28, "28"],
["medyagh", 31, "31"],
["zhan9san", 22, "22"],
["mprimeaux", 10, "10"],
["eiffel-fl", 10, "10"],
["fireinrain", 9, "9"],
["mprimeaux", 10, "10"],
["vroetman", 9, "9"],
["denisok", 8, "8"],
["fireinrain", 9, "9"],
["vrapolinario", 8, "8"],
["denisok", 8, "8"],
["kadern0", 7, "7"],
["nikimanoledaki", 7, "7"],
["yuzhaopeng", 7, "7"],
]);
@ -440,10 +440,11 @@ weight: -99992022
function drawcommentWords() {
var data = new google.visualization.arrayToDataTable([
[{label:'',type:'string'},{label: '# of words (excludes authored)', type: 'number'}, { role: 'annotation' }],
["afbjorklund", 11632, "11632"],
["spowelljr", 5950, "5950"],
["klaases", 5896, "5896"],
["afbjorklund", 12610, "12610"],
["klaases", 7872, "7872"],
["spowelljr", 6977, "6977"],
["blacksd", 4095, "4095"],
["kevinevans1", 2674, "2674"],
["cdbattags", 2055, "2055"],
["sharifelgamal", 1759, "1759"],
["zhan9san", 1679, "1679"],
@ -451,10 +452,9 @@ weight: -99992022
["danieldonoghue", 1535, "1535"],
["mesketh", 1252, "1252"],
["clarencesham", 1043, "1043"],
["medyagh", 805, "805"],
["RA489", 949, "949"],
["medyagh", 877, "877"],
["nikimanoledaki", 790, "790"],
["eiffel-fl", 769, "769"],
["vrapolinario", 752, "752"],
]);
@ -487,10 +487,10 @@ weight: -99992022
function drawissueCloser() {
var data = new google.visualization.arrayToDataTable([
[{label:'',type:'string'},{label: '# of issues closed (excludes authored)', type: 'number'}, { role: 'annotation' }],
["klaases", 192, "192"],
["spowelljr", 180, "180"],
["klaases", 237, "237"],
["spowelljr", 206, "206"],
["sharifelgamal", 44, "44"],
["medyagh", 25, "25"],
["medyagh", 27, "27"],
["afbjorklund", 5, "5"],
["prezha", 4, "4"],

View File

@ -44,6 +44,9 @@ tests the GCP Auth addon with either phony or real credentials and makes sure th
#### validateHeadlampAddon
#### validateCloudSpannerAddon
tests the cloud-spanner addon by ensuring the deployment and pod come up and addon disables
## TestCertOptions
makes sure minikube certs respect the --apiserver-ips and --apiserver-names parameters

View File

@ -0,0 +1,53 @@
---
title: "Using Cloud Spanner Addon"
linkTitle: "Cloud Spanner"
weight: 1
date: 2022-10-14
---
## Cloud Spanner Addon
[Cloud Spanner](https://cloud.google.com/spanner) is a fully managed relational database. The Cloud Spanner addon provides a local emulator to test your local application without incurring the cost of an actual spanner instance.
### Enable Cloud Spanner on minikube
To enable this addon, simply run:
```shell script
minikube addons enable cloud-spanner
```
### Cloud Spanner Endpoints
Cloud Spanner provides two different ports, HTTP and GRPC. List Cloud Spanner emulator urls by running:
``` shell
minikube service cloud-spanner-emulator
####################Sample Output#########################
|-----------|------------------------|-------------|---------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-----------|------------------------|-------------|---------------------------|
| default | cloud-spanner-emulator | http/9020 | http://192.168.49.2:30233 |
| | | grpc/9010 | http://192.168.49.2:30556 |
|-----------|------------------------|-------------|---------------------------|
[default cloud-spanner-emulator http/9020
grpc/9010 http://192.168.49.2:30233
http://192.168.49.2:30556]
```
### Using Cloud Spanner within a cluster
Cloud Spanner emulator can be used via endpoint `cloud-spanner-emulator:9020` for http clients and `cloud-spanner-emulator:9010` for grpc clients respectively. If you're using the standard client library for Cloud Spanner then set `SPANNER_EMULATOR_HOST` to the GRPC endpoint `cloud-spanner-emulator:9010`.
### Testing installation
```shell script
kubectl get pods -n cloud-spanner-emulator
```
If everything went well, there should be no errors about Cloud Spanner's installation in your minikube cluster.
### Disable Cloud Spanner
To disable this addon, simply run:
```shell script
minikube addons disable cloud-spanner
```

View File

@ -6,13 +6,15 @@ date: 2020-07-15
---
The gcp-auth addon automatically and dynamically configures pods to use your credentials, allowing applications to access Google Cloud services as if they were running within Google Cloud.
The `gcp-auth` addon automatically and dynamically configures pods to use your credentials, allowing applications to access Google Cloud services as if they were running within Google Cloud.
The addon normally uses the [Google Application Default Credentials](https://google.aip.dev/auth/4110) as configured with `gcloud auth application-default login`. If you already have a json credentials file you want specify, such as to use a service account, set the GOOGLE_APPLICATION_CREDENTIALS environment variable to point to that file.
The addon defaults to using your environment's [Application Default Credentials](https://google.aip.dev/auth/4110), which you can configure with `gcloud auth application-default login`.
Alternatively, you can specify a JSON credentials file (e.g. service account key) by setting the `GOOGLE_APPLICATION_CREDENTIALS` environment variable to the location of that file.
The addon normally uses the default gcloud project as configured with `gcloud config set project <project name>`. If you want to use a different project, set the `GOOGLE_CLOUD_PROJECT` environment variable to the desired project.
The addon also defaults to using your local gcloud project, which you can configure with `gcloud config set project <project name>`. You can override this by setting the `GOOGLE_CLOUD_PROJECT` environment variable to the name of the desired project.
Once the addon is enabled, pods in your cluster will be configured with environment variables (e.g. `GOOGLE_APPLICATION_DEFAULTS`, `GOOGLE_CLOUD_PROJECT`) that are automatically used by GCP client libraries. Additionally, the addon configures [registry pull secrets](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/), allowing your cluster to access the container images hosted in [Artifact Registry](https://cloud.google.com/artifact-registry) and [Google Container Registry](https://cloud.google.com/container-registry).
The pods are configured with the `GOOGLE_APPLICATION_DEFAULTS` environment variable is set, which is automatically used by GCP client libraries, and the `GOOGLE_CLOUD_PROJECT` environment variable is set, as are several other historical environment variables. The addon also configures [registry pull secrets](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) to allow the cluster to access container images hosted in your project's [Artifact Registry](https://cloud.google.com/artifact-registry) and [Google Container Registry](https://cloud.google.com/container-registry).
## Tutorial
@ -93,12 +95,14 @@ spec:
## Refreshing existing pods
If you had already deployed pods to your minikube cluster before enabling the gcp-auth addon, then these pods will not have any GCP credentials. There are two ways to solve this issue.
Pods that were deployed to your minikube cluster before the `gcp-auth` addon was enabled will not be configured with GCP credentials.
To resolve this problem, run:
1. If you use a Deployment to deploy your pods, just delete the existing pods with `kubectl delete pod <pod_name>`. The deployment will then automatically recreate the pod and it will have the correct credentials.
2. minikube can delete and recreate your pods for you, by running `minikube addons enable gcp-auth --refresh`. It does not matter if you have already enabled the addon or not.
`minikube addons enable gcp-auth --refresh`
## Adding new namespaces
If you have created a new namespace after enabling the gcp-auth addon, then the namespace will be missing the image pull secret. To resolve this issue run `minikube addons enable gcp-auth --refresh`.
Namespaces that are added after enabling gcp-auth addon will not be configured with the image pull secret.
To resolve this problem, run:
`minikube addons enable gcp-auth --refresh`

View File

@ -1,5 +1,5 @@
<!-- start: minikube override head-end partial -->
<link href="https://fonts.googleapis.com/css2?family=Lora&family=Open+Sans:wght@600;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Lora:wght@400;500;600;700&family=Open+Sans:wght@600;700&display=swap" rel="stylesheet">
<link href="/css/tabs.css" rel="stylesheet">
<script src="/js/tabs.js"></script>
<script src="/js/quiz.js"></script>

View File

@ -63,7 +63,6 @@ $showSection }}
href="{{ $s.RelPermalink }}"
class="align-left pl-0 pr-2{{ if not $expandSection }} collapsed{{ end }}{{ if $activeSection}} active{{ end }} td-sidebar-link td-sidebar-link__section"
>
{{ if $activeSection}} &#10687; {{ else }} &#10686; {{ end }}
{{$s.LinkTitle }}</a
>
</li>

View File

@ -66,7 +66,7 @@ func TestAddons(t *testing.T) {
t.Fatalf("Failed setting GOOGLE_CLOUD_PROJECT env var: %v", err)
}
args := append([]string{"start", "-p", profile, "--wait=true", "--memory=4000", "--alsologtostderr", "--addons=registry", "--addons=metrics-server", "--addons=volumesnapshots", "--addons=csi-hostpath-driver", "--addons=gcp-auth"}, StartArgs()...)
args := append([]string{"start", "-p", profile, "--wait=true", "--memory=4000", "--alsologtostderr", "--addons=registry", "--addons=metrics-server", "--addons=volumesnapshots", "--addons=csi-hostpath-driver", "--addons=gcp-auth", "--addons=cloud-spanner"}, StartArgs()...)
if !NoneDriver() { // none driver does not support ingress
args = append(args, "--addons=ingress", "--addons=ingress-dns")
}
@ -97,6 +97,7 @@ func TestAddons(t *testing.T) {
{"Olm", validateOlmAddon},
{"CSI", validateCSIDriverAndSnapshots},
{"Headlamp", validateHeadlampAddon},
{"CloudSpanner", validateCloudSpannerAddon},
}
for _, tc := range tests {
tc := tc
@ -743,3 +744,22 @@ func validateHeadlampAddon(ctx context.Context, t *testing.T, profile string) {
t.Fatalf("failed waiting for headlamp pod: %v", err)
}
}
// validateCloudSpannerAddon tests the cloud-spanner addon by ensuring the deployment and pod come up and addon disables
func validateCloudSpannerAddon(ctx context.Context, t *testing.T, profile string) {
defer PostMortemLogs(t, profile)
client, err := kapi.Client(profile)
if err != nil {
t.Fatalf("failed to get Kubernetes client for %s: %v", profile, err)
}
if err := kapi.WaitForDeploymentToStabilize(client, "default", "cloud-spanner-emulator", Minutes(6)); err != nil {
t.Errorf("failed waiting for cloud-spanner-emulator deployment to stabilize: %v", err)
}
if _, err := PodWait(ctx, t, profile, "default", "app=cloud-spanner-emulator", Minutes(6)); err != nil {
t.Errorf("failed waiting for app=cloud-spanner-emulator pod: %v", err)
}
if rr, err := Run(t, exec.CommandContext(ctx, Target(), "addons", "disable", "cloud-spanner", "-p", profile)); err != nil {
t.Errorf("failed to disable cloud-spanner addon: args %q : %v", rr.Command(), err)
}
}

View File

@ -148,7 +148,7 @@
"Deleting container \"{{.name}}\" ...": "Suppression du conteneur \"{{.name}}\" ...",
"Deleting existing cluster {{.name}} with different driver {{.driver_name}} due to --delete-on-failure flag set by the user. ": "Suppression du cluster existant {{.name}} avec un pilote différent {{.driver_name}} en raison de l'indicateur --delete-on-failure défini par l'utilisateur.",
"Deleting node {{.name}} from cluster {{.cluster}}": "Suppression de noeuds {{.name}} de cluster {{.cluster}}",
"Directory to output licenses to": "",
"Directory to output licenses to": "Répertoire de sortie des licences",
"Disable checking for the availability of hardware virtualization before the vm is started (virtualbox driver only)": "Désactive la vérification de la disponibilité de la virtualisation du matériel avant le démarrage de la VM (pilote virtualbox uniquement).",
"Disable dynamic memory in your VM manager, or pass in a larger --memory value": "Désactivez la mémoire dynamique dans votre gestionnaire de machine virtuelle ou transmettez une valeur --memory plus grande",
"Disables the addon w/ADDON_NAME within minikube (example: minikube addons disable dashboard). For a list of available addons use: minikube addons list ": "Désactive le module w/ADDON_NAME dans minikube (exemple : minikube addons disable dashboard). Pour une liste des addons disponibles, utilisez : minikube addons list",
@ -255,7 +255,7 @@
"Failed to delete cluster: {{.error}}": "Échec de la suppression du cluster : {{.error}}",
"Failed to delete images": "Échec de la suppression des images",
"Failed to delete images from config": "Échec de la suppression des images de la configuration",
"Failed to download licenses": "",
"Failed to download licenses": "Échec du téléchargement des licences",
"Failed to enable container runtime": "Échec de l'activation de l'environnement d'exécution du conteneur",
"Failed to get bootstrapper": "Échec de l'obtention du programme d'amorçage",
"Failed to get command runner": "Impossible d'obtenir le lanceur de commandes",
@ -291,7 +291,7 @@
"Filter to use only VM Drivers": "Filtrer pour n'utiliser que les pilotes VM",
"Flags": "Indicateurs",
"Follow": "Suivre",
"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": "",
"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": "Pour une meilleure expérience, il est recommandé d'utiliser Docker Engine au lieu de Docker Desktop.\nInstructions d'installation de Docker Engine : https://docs.docker.com/engine/install/#server",
"For improved {{.driver}} performance, {{.fix}}": "Pour de meilleures performances {{.driver}}, {{.fix}}",
"For more information see: https://minikube.sigs.k8s.io/docs/drivers/{{.driver}}": "Pour plus d'informations, voir : https://minikube.sigs.k8s.io/docs/drivers/{{.driver}}",
"For more information, see: https://minikube.sigs.k8s.io/docs/reference/drivers/none/": "Pour plus d'informations, voir : https://minikube.sigs.k8s.io/docs/reference/drivers/none/",
@ -450,7 +450,7 @@
"Output format. Accepted values: [json, yaml]": "Format de sortie. Valeurs acceptées : [json, yaml]",
"Output format. Accepted values: [json]": "Format de sortie. Valeurs acceptées : [json]",
"Outputs minikube shell completion for the given shell (bash, zsh or fish)\n\n\tThis depends on the bash-completion binary. Example installation instructions:\n\tOS X:\n\t\t$ brew install bash-completion\n\t\t$ source $(brew --prefix)/etc/bash_completion\n\t\t$ minikube completion bash \u003e ~/.minikube-completion # for bash users\n\t\t$ minikube completion zsh \u003e ~/.minikube-completion # for zsh users\n\t\t$ source ~/.minikube-completion\n\t\t$ minikube completion fish \u003e ~/.config/fish/completions/minikube.fish # for fish users\n\tUbuntu:\n\t\t$ apt-get install bash-completion\n\t\t$ source /etc/bash_completion\n\t\t$ source \u003c(minikube completion bash) # for bash users\n\t\t$ source \u003c(minikube completion zsh) # for zsh users\n\t\t$ minikube completion fish \u003e ~/.config/fish/completions/minikube.fish # for fish users\n\n\tAdditionally, you may want to output the completion to a file and source in your .bashrc\n\n\tNote for zsh users: [1] zsh completions are only supported in versions of zsh \u003e= 5.2\n\tNote for fish users: [2] please refer to this docs for more details https://fishshell.com/docs/current/#tab-completion\n": "Affiche la complétion du shell minikube pour le shell donné (bash, zsh ou fish)\n\n\tCela dépend du binaire bash-completion. Exemple d'instructions d'installation :\n\tOS X :\n\t\t$ brew install bash-completion\n\t\t$ source $(brew --prefix)/etc/bash_completion\n\t\t$ minikube completion bash \u003e ~/.minikube-completion # pour les utilisateurs bash\n\t\t$ minikube completion zsh \u003e ~/.minikube-completion # pour les utilisateurs zsh\n\t\t$ source ~/.minikube-completion\n\t\t$ minikube completion fish \u003e ~/.config/fish/completions/minikube.fish # pour les utilisateurs de fish\n\tUbuntu:\n\t\t$ apt-get install bash-completion\n\t \t$ source /etc/bash_completion\n\t\t$ source \u003c(minikube completion bash) # pour les utilisateurs bash\n\t\t$ source \u003c(minikube completion zsh) # pour les utilisateurs zsh\n\t \t$ minikube completion fish \u003e ~/.config/fish/completions/minikube.fish # pour les utilisateurs de fish\n\n\tDe plus, vous voudrez peut-être sortir la complétion dans un fichier et une source dans votre .bashrc\n n\tRemarque pour les utilisateurs de zsh : [1] les complétions zsh ne sont prises en charge que dans les versions de zsh \u003e= 5.2\n\tRemarque pour les utilisateurs de fish : [2] veuillez vous référer à cette documentation pour plus de détails https://fishshell.com/docs/current/#tab-completion\n",
"Outputs the licenses of dependencies to a directory": "",
"Outputs the licenses of dependencies to a directory": "Copie les licences des dépendances dans un répertoire",
"Overwrite image even if same image:tag name exists": "Écraser l'image même si la même image:balise existe",
"Path to socket vmnet binary": "Chemin d'accès au binaire socket vmnet",
"Path to the Dockerfile to use (optional)": "Chemin d'accès au Dockerfile à utiliser (facultatif)",

View File

@ -101,16 +101,16 @@
"CGroup allocation is not available in your environment, You might be running minikube in a nested container. Try running:\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t": "",
"CGroup allocation is not available in your environment. You might be running minikube in a nested container. Try running:\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t": "",
"CNI plug-in to use. Valid options: auto, bridge, calico, cilium, flannel, kindnet, or path to a CNI manifest (default: auto)": "",
"Cache image from docker daemon": "",
"Cache image from remote registry": "",
"Cache image to docker daemon": "",
"Cache image to remote registry": "",
"Cannot find directory {{.path}} for copy": "",
"Cache image from docker daemon": "从 docker daemon 中缓存镜像",
"Cache image from remote registry": "远程仓库中缓存镜像",
"Cache image to docker daemon": "缓存镜像到 docker daemon",
"Cache image to remote registry": "缓存镜像到远程仓库",
"Cannot find directory {{.path}} for copy": "找不到用来复制的 {{.path}} 目录",
"Cannot find directory {{.path}} for mount": "找不到用来挂载的 {{.path}} 目录",
"Cannot use both --output and --format options": "不能同时使用 --output 和 --format 选项",
"Cannot use the option --no-kubernetes on the {{.name}} driver": "",
"Certificate {{.certPath}} has expired. Generating a new one...": "",
"Check if you have unnecessary pods running by running 'kubectl get po -A": "",
"Cannot use the option --no-kubernetes on the {{.name}} driver": "无法使用 {{.name}} 驱动程序上的 -no-kubernetes 选项",
"Certificate {{.certPath}} has expired. Generating a new one...": "证书 {{.certPath}} 已过期,生成一个新证书...",
"Check if you have unnecessary pods running by running 'kubectl get po -A": "通过运行 'kubectl get po -A' 检查是否有不必要的pod正在运行",
"Check output of 'journalctl -xeu kubelet', try passing --extra-config=kubelet.cgroup-driver=systemd to minikube start": "检查 'journalctl -xeu kubelet' 的输出,尝试启动 minikube 时添加参数 --extra-config=kubelet.cgroup-driver=systemd",
"Check that SELinux is disabled, and that the provided apiserver flags are valid": "检查 SELinux 是否禁用,且提供的 apiserver 标志是否有效",
"Check that libvirt is setup properly": "检查 libvirt 是否正确设置",