Merge branch 'master' into master
commit
00486c3fd6
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 }}
|
||||
```
|
|
@ -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
|
||||
|
|
2
Makefile
2
Makefile
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
)
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
47
go.mod
|
@ -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
|
||||
|
|
|
@ -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}}'`,
|
||||
},
|
||||
|
|
|
@ -207,4 +207,9 @@ var Addons = []*Addon{
|
|||
set: SetBool,
|
||||
callbacks: []setFn{EnableOrDisableAddon},
|
||||
},
|
||||
{
|
||||
name: "cloud-spanner",
|
||||
set: SetBool,
|
||||
callbacks: []setFn{EnableOrDisableAddon},
|
||||
},
|
||||
}
|
||||
|
|
|
@ -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>,...
|
||||
|
|
|
@ -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"))
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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/")
|
||||
}
|
||||
|
|
|
@ -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';
|
||||
}
|
||||
}
|
|
@ -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:
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ weight: -99992022
|
|||
</head>
|
||||
<body>
|
||||
<h1>kubernetes/minikube</h1>
|
||||
<div class="subtitle">2022-01-01 — 2022-09-30</div>
|
||||
<div class="subtitle">2022-01-01 — 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"],
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
```
|
|
@ -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`
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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}} ⦿ {{ else }} ⦾ {{ end }}
|
||||
{{$s.LinkTitle }}</a
|
||||
>
|
||||
</li>
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)",
|
||||
|
|
|
@ -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 是否正确设置",
|
||||
|
|
Loading…
Reference in New Issue