Merge branch 'master' of github.com:kubernetes/minikube into gcp-sa
commit
4dd89f8713
|
@ -1,5 +1,6 @@
|
|||
name: build
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name: "generate-docs"
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name: "update-leaderboard"
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
tags-ignore:
|
||||
- 'v*-beta.*'
|
||||
|
@ -19,6 +20,8 @@ jobs:
|
|||
run: |
|
||||
make update-leaderboard
|
||||
echo "::set-output name=changes::$(git status --porcelain)"
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.MINIKUBE_BOT_PAT }}
|
||||
- name: Create PR
|
||||
if: ${{ steps.leaderboard.outputs.changes != '' }}
|
||||
uses: peter-evans/create-pull-request@v3
|
||||
|
@ -37,4 +40,4 @@ jobs:
|
|||
This PR is auto-generated by the [update-leaderboard](https://github.com/kubernetes/minikube/blob/master/.github/workflows/leaderboard.yml) CI workflow.
|
||||
```
|
||||
${{ steps.leaderboard.outputs.changes }}
|
||||
```
|
||||
```
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name: Master
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name: PR
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
paths:
|
||||
- "go.mod"
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name: PR_Verified
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
paths:
|
||||
- "go.mod"
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name: "time-to-k8s benchmark"
|
||||
on:
|
||||
workflow_dispatch:
|
||||
release:
|
||||
types: [released]
|
||||
env:
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name: Translations Validation
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
paths:
|
||||
- "translations/**"
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name: "Tweet the release"
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
tags:
|
||||
- 'v*'
|
||||
|
@ -15,4 +16,4 @@ jobs:
|
|||
consumer-key: ${{ secrets.TWITTER_API_KEY }}
|
||||
consumer-secret: ${{ secrets.TWITTER_API_SECRET }}
|
||||
access-token: ${{ secrets.TWITTER_ACCESS_TOKEN }}
|
||||
access-token-secret: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}
|
||||
access-token-secret: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
name: "update-kubernetes-versions"
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
# every Monday at around 1 am pacific/8 am UTC
|
||||
- cron: "0 8 * * 1"
|
||||
|
|
|
@ -24,6 +24,7 @@ import (
|
|||
"os/exec"
|
||||
"os/user"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
|
@ -44,7 +45,8 @@ import (
|
|||
)
|
||||
|
||||
var (
|
||||
dashboardURLMode bool
|
||||
dashboardURLMode bool
|
||||
dashboardExposedPort int
|
||||
// Matches: 127.0.0.1:8001
|
||||
// TODO(tstromberg): Get kubectl to implement a stable supported output format.
|
||||
hostPortRe = regexp.MustCompile(`127.0.0.1:\d{4,}`)
|
||||
|
@ -65,6 +67,10 @@ var dashboardCmd = &cobra.Command{
|
|||
}
|
||||
}
|
||||
|
||||
if dashboardExposedPort < 0 || dashboardExposedPort > 65535 {
|
||||
exit.Message(reason.HostKubectlProxy, "Invalid port")
|
||||
}
|
||||
|
||||
kubectlVersion := co.Config.KubernetesConfig.KubernetesVersion
|
||||
var err error
|
||||
|
||||
|
@ -92,7 +98,7 @@ var dashboardCmd = &cobra.Command{
|
|||
}
|
||||
|
||||
out.ErrT(style.Launch, "Launching proxy ...")
|
||||
p, hostPort, err := kubectlProxy(kubectlVersion, cname)
|
||||
p, hostPort, err := kubectlProxy(kubectlVersion, cname, dashboardExposedPort)
|
||||
if err != nil {
|
||||
exit.Error(reason.HostKubectlProxy, "kubectl proxy", err)
|
||||
}
|
||||
|
@ -126,10 +132,10 @@ var dashboardCmd = &cobra.Command{
|
|||
}
|
||||
|
||||
// kubectlProxy runs "kubectl proxy", returning host:port
|
||||
func kubectlProxy(kubectlVersion string, contextName string) (*exec.Cmd, string, error) {
|
||||
func kubectlProxy(kubectlVersion string, contextName string, port int) (*exec.Cmd, string, error) {
|
||||
// port=0 picks a random system port
|
||||
|
||||
kubectlArgs := []string{"--context", contextName, "proxy", "--port=0"}
|
||||
kubectlArgs := []string{"--context", contextName, "proxy", "--port", strconv.Itoa(port)}
|
||||
|
||||
var cmd *exec.Cmd
|
||||
if kubectl, err := exec.LookPath("kubectl"); err == nil {
|
||||
|
@ -217,4 +223,5 @@ func checkURL(url string) error {
|
|||
|
||||
func init() {
|
||||
dashboardCmd.Flags().BoolVar(&dashboardURLMode, "url", false, "Display dashboard URL instead of opening a browser")
|
||||
dashboardCmd.Flags().IntVar(&dashboardExposedPort, "port", 0, "Exposed port of the proxyfied dashboard. Set to 0 to pick a random port.")
|
||||
}
|
||||
|
|
|
@ -1274,26 +1274,36 @@ func validateRegistryMirror() {
|
|||
|
||||
// This function validates if the --image-repository
|
||||
// args match the format of registry.cn-hangzhou.aliyuncs.com/google_containers
|
||||
func validateImageRepository(imagRepo string) (vaildImageRepo string) {
|
||||
// also "<hostname>[:<port>]"
|
||||
func validateImageRepository(imageRepo string) (validImageRepo string) {
|
||||
|
||||
if strings.ToLower(imagRepo) == "auto" {
|
||||
vaildImageRepo = "auto"
|
||||
if strings.ToLower(imageRepo) == "auto" {
|
||||
validImageRepo = "auto"
|
||||
}
|
||||
URL, err := url.Parse(imagRepo)
|
||||
URL, err := url.Parse(imageRepo)
|
||||
|
||||
if err != nil {
|
||||
klog.Errorln("Error Parsing URL: ", err)
|
||||
}
|
||||
// tips when imagRepo ended with a trailing /.
|
||||
if strings.HasSuffix(imagRepo, "/") {
|
||||
out.Infof("The --image-repository flag your provided ended with a trailing / that could cause conflict in kuberentes, removed automatically")
|
||||
}
|
||||
// tips when imageRepo started with scheme.
|
||||
if URL.Scheme != "" {
|
||||
out.Infof("The --image-repository flag your provided contains Scheme: {{.scheme}}, it will be as a domian, removed automatically", out.V{"scheme": URL.Scheme})
|
||||
|
||||
var imageRepoPort string
|
||||
|
||||
if URL.Port() != "" && strings.Contains(imageRepo, ":"+URL.Port()) {
|
||||
imageRepoPort = ":" + URL.Port()
|
||||
}
|
||||
|
||||
vaildImageRepo = URL.Hostname() + strings.TrimSuffix(URL.Path, "/")
|
||||
return
|
||||
// tips when imageRepo ended with a trailing /.
|
||||
if strings.HasSuffix(imageRepo, "/") {
|
||||
out.Infof("The --image-repository flag your provided ended with a trailing / that could cause conflict in kuberentes, removed automatically")
|
||||
}
|
||||
// tips when imageRepo started with scheme such as http(s).
|
||||
if URL.Scheme != "" {
|
||||
out.Infof("The --image-repository flag your provided contains Scheme: {{.scheme}}, which will be removed automatically", out.V{"scheme": URL.Scheme})
|
||||
}
|
||||
|
||||
validImageRepo = URL.Hostname() + imageRepoPort + strings.TrimSuffix(URL.Path, "/")
|
||||
|
||||
return validImageRepo
|
||||
}
|
||||
|
||||
// This function validates if the --listen-address
|
||||
|
|
|
@ -320,40 +320,44 @@ func TestBaseImageFlagDriverCombo(t *testing.T) {
|
|||
func TestValidateImageRepository(t *testing.T) {
|
||||
var tests = []struct {
|
||||
imageRepository string
|
||||
vaildImageRepository string
|
||||
validImageRepository string
|
||||
}{
|
||||
{
|
||||
imageRepository: "auto",
|
||||
vaildImageRepository: "auto",
|
||||
validImageRepository: "auto",
|
||||
},
|
||||
{
|
||||
imageRepository: "http://registry.test.com/google_containers/",
|
||||
vaildImageRepository: "registry.test.com/google_containers",
|
||||
validImageRepository: "registry.test.com/google_containers",
|
||||
},
|
||||
{
|
||||
imageRepository: "https://registry.test.com/google_containers/",
|
||||
vaildImageRepository: "registry.test.com/google_containers",
|
||||
validImageRepository: "registry.test.com/google_containers",
|
||||
},
|
||||
{
|
||||
imageRepository: "registry.test.com/google_containers/",
|
||||
vaildImageRepository: "registry.test.com/google_containers",
|
||||
validImageRepository: "registry.test.com/google_containers",
|
||||
},
|
||||
{
|
||||
imageRepository: "http://registry.test.com/google_containers",
|
||||
vaildImageRepository: "registry.test.com/google_containers",
|
||||
validImageRepository: "registry.test.com/google_containers",
|
||||
},
|
||||
{
|
||||
imageRepository: "https://registry.test.com/google_containers",
|
||||
vaildImageRepository: "registry.test.com/google_containers",
|
||||
validImageRepository: "registry.test.com/google_containers",
|
||||
},
|
||||
{
|
||||
imageRepository: "https://registry.test.com:6666/google_containers",
|
||||
validImageRepository: "registry.test.com:6666/google_containers",
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
t.Run(test.imageRepository, func(t *testing.T) {
|
||||
vaildImageRepository := validateImageRepository(test.imageRepository)
|
||||
if vaildImageRepository != test.vaildImageRepository {
|
||||
validImageRepository := validateImageRepository(test.imageRepository)
|
||||
if validImageRepository != test.validImageRepository {
|
||||
t.Errorf("validateImageRepository(imageRepo=%v): got %v, expected %v",
|
||||
test.imageRepository, vaildImageRepository, test.vaildImageRepository)
|
||||
test.imageRepository, validImageRepository, test.validImageRepository)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -131,4 +131,8 @@ var (
|
|||
// CsiHostpathDriverAssets assets for csi-hostpath-driver addon
|
||||
//go:embed csi-hostpath-driver/deploy/*.tmpl csi-hostpath-driver/rbac/*.tmpl
|
||||
CsiHostpathDriverAssets embed.FS
|
||||
|
||||
// PortainerAssets assets for portainer addon
|
||||
//go:embed portainer/portainer.yaml.tmpl
|
||||
PortainerAssets embed.FS
|
||||
)
|
||||
|
|
|
@ -0,0 +1,143 @@
|
|||
---
|
||||
# Source: portainer/templates/namespace.yaml
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: portainer
|
||||
---
|
||||
# Source: portainer/templates/serviceaccount.yaml
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: portainer-sa-clusteradmin
|
||||
namespace: portainer
|
||||
labels:
|
||||
app.kubernetes.io/name: portainer
|
||||
app.kubernetes.io/instance: portainer
|
||||
app.kubernetes.io/version: "ce-latest-ee-2.4.0"
|
||||
---
|
||||
# Source: portainer/templates/pvc.yaml
|
||||
kind: "PersistentVolumeClaim"
|
||||
apiVersion: "v1"
|
||||
metadata:
|
||||
name: portainer
|
||||
namespace: portainer
|
||||
annotations:
|
||||
volume.alpha.kubernetes.io/storage-class: "generic"
|
||||
labels:
|
||||
io.portainer.kubernetes.application.stack: portainer
|
||||
app.kubernetes.io/name: portainer
|
||||
app.kubernetes.io/instance: portainer
|
||||
app.kubernetes.io/version: "ce-latest-ee-2.4.0"
|
||||
spec:
|
||||
accessModes:
|
||||
- "ReadWriteOnce"
|
||||
resources:
|
||||
requests:
|
||||
storage: "10Gi"
|
||||
---
|
||||
# Source: portainer/templates/rbac.yaml
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: portainer
|
||||
labels:
|
||||
app.kubernetes.io/name: portainer
|
||||
app.kubernetes.io/instance: portainer
|
||||
app.kubernetes.io/version: "ce-latest-ee-2.4.0"
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: cluster-admin
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
namespace: portainer
|
||||
name: portainer-sa-clusteradmin
|
||||
---
|
||||
# Source: portainer/templates/service.yaml
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: portainer
|
||||
namespace: portainer
|
||||
labels:
|
||||
io.portainer.kubernetes.application.stack: portainer
|
||||
app.kubernetes.io/name: portainer
|
||||
app.kubernetes.io/instance: portainer
|
||||
app.kubernetes.io/version: "ce-latest-ee-2.4.0"
|
||||
kubernetes.io/minikube-addons-endpoint: portainer
|
||||
spec:
|
||||
type: NodePort
|
||||
ports:
|
||||
- port: 9000
|
||||
targetPort: 9000
|
||||
protocol: TCP
|
||||
name: http
|
||||
nodePort: 30777
|
||||
- port: 30776
|
||||
targetPort: 30776
|
||||
protocol: TCP
|
||||
name: edge
|
||||
nodePort: 30776
|
||||
selector:
|
||||
app.kubernetes.io/name: portainer
|
||||
app.kubernetes.io/instance: portainer
|
||||
---
|
||||
# Source: portainer/templates/deployment.yaml
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: portainer
|
||||
namespace: portainer
|
||||
labels:
|
||||
io.portainer.kubernetes.application.stack: portainer
|
||||
app.kubernetes.io/name: portainer
|
||||
app.kubernetes.io/instance: portainer
|
||||
app.kubernetes.io/version: "ce-latest-ee-2.4.0"
|
||||
spec:
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: "Recreate"
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: portainer
|
||||
app.kubernetes.io/instance: portainer
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: portainer
|
||||
app.kubernetes.io/instance: portainer
|
||||
spec:
|
||||
nodeSelector:
|
||||
{}
|
||||
serviceAccountName: portainer-sa-clusteradmin
|
||||
volumes:
|
||||
- name: "data"
|
||||
persistentVolumeClaim:
|
||||
claimName: portainer
|
||||
containers:
|
||||
- name: portainer
|
||||
image: "portainer/portainer-ce:latest"
|
||||
imagePullPolicy: Always
|
||||
args: [ '--tunnel-port','30776' ]
|
||||
volumeMounts:
|
||||
- name: data
|
||||
mountPath: /data
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 9000
|
||||
protocol: TCP
|
||||
- name: tcp-edge
|
||||
containerPort: 8000
|
||||
protocol: TCP
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: 9000
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: 9000
|
||||
resources:
|
||||
{}
|
||||
|
|
@ -31,15 +31,6 @@ install_minikube() {
|
|||
sudo install ./out/minikube /usr/local/bin/minikube
|
||||
}
|
||||
|
||||
config_git() {
|
||||
git config user.name "minikube-bot"
|
||||
git config user.email "minikube-bot@google.com"
|
||||
}
|
||||
|
||||
create_branch() {
|
||||
git checkout -b addTimeToK8s"$1"
|
||||
}
|
||||
|
||||
run_benchmark() {
|
||||
pwd
|
||||
( cd ./hack/benchmark/time-to-k8s/time-to-k8s-repo/ &&
|
||||
|
@ -55,19 +46,16 @@ create_page() {
|
|||
printf -- "---\ntitle: \"%s Benchmark\"\nlinkTitle: \"%s Benchmark\"\nweight: 1\n---\n\n![time-to-k8s](/images/benchmarks/timeToK8s/%s.png)\n" "$1" "$1" "$1" > ./site/content/en/docs/benchmarks/timeToK8s/"$1".md
|
||||
}
|
||||
|
||||
commit_changes() {
|
||||
git add ./site/static/images/benchmarks/timeToK8s/"$1".png ./site/content/en/docs/benchmarks/timeToK8s/"$1".md
|
||||
git commit -m "add time-to-k8s benchmark for $1"
|
||||
cleanup() {
|
||||
rm ./hack/benchmark/time-to-k8s/time-to-k8s-repo/output.csv
|
||||
}
|
||||
|
||||
install_kind
|
||||
install_k3d
|
||||
install_minikube
|
||||
config_git
|
||||
|
||||
VERSION=$(minikube version --short)
|
||||
create_branch "$VERSION"
|
||||
run_benchmark
|
||||
generate_chart "$VERSION"
|
||||
create_page "$VERSION"
|
||||
commit_changes "$VERSION"
|
||||
cleanup
|
||||
|
|
|
@ -0,0 +1,78 @@
|
|||
# Copyright 2019 The Kubernetes Authors All rights reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
mkdir -p out
|
||||
|
||||
(New-Object Net.WebClient).DownloadFile("https://github.com/medyagh/gopogh/releases/download/v0.8.0/gopogh.exe", "C:\Go\bin\gopogh.exe")
|
||||
|
||||
gsutil.cmd -m cp gs://minikube-builds/$env:MINIKUBE_LOCATION/minikube-windows-amd64.exe out/
|
||||
gsutil.cmd -m cp gs://minikube-builds/$env:MINIKUBE_LOCATION/e2e-windows-amd64.exe out/
|
||||
gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/testdata .
|
||||
gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/windows_integration_setup.ps1 out/
|
||||
gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/windows_integration_teardown.ps1 out/
|
||||
|
||||
./out/minikube-windows-amd64.exe delete --all
|
||||
|
||||
./out/windows_integration_setup.ps1
|
||||
|
||||
$started=Get-Date -UFormat %s
|
||||
|
||||
out/e2e-windows-amd64.exe --minikube-start-args="--driver=$driver" --binary=out/minikube-windows-amd64.exe --test.v --test.timeout=$timeout | Tee-Object -FilePath testout.txt
|
||||
|
||||
$env:result=$lastexitcode
|
||||
# If the last exit code was 0->success, x>0->error
|
||||
If($env:result -eq 0){
|
||||
$env:status="success"
|
||||
echo "minikube: SUCCESS"
|
||||
} Else {
|
||||
$env:status="failure"
|
||||
echo "minikube: FAIL"
|
||||
}
|
||||
|
||||
$ended=Get-Date -UFormat %s
|
||||
$elapsed=$ended-$started
|
||||
$elapsed=$elapsed/60
|
||||
$elapsed=[math]::Round($elapsed, 2)
|
||||
|
||||
Get-Content testout.txt -Encoding ASCII | go tool test2json -t | Out-File -FilePath testout.json -Encoding ASCII
|
||||
|
||||
$gopogh_status=gopogh --in testout.json --out_html testout.html --out_summary testout_summary.json --name "$env:JOB_NAME" -pr $env:MINIKUBE_LOCATION --repo github.com/kubernetes/minikube/ --details $env:COMMIT
|
||||
|
||||
$failures=echo $gopogh_status | jq '.NumberOfFail'
|
||||
$tests=echo $gopogh_status | jq '.NumberOfTests'
|
||||
$bad_status="$failures / $tests failures"
|
||||
|
||||
$description="$status in $elapsed minute(s)."
|
||||
If($env:status -eq "failure") {
|
||||
$description="completed with $bad_status in $elapsed minute(s)."
|
||||
}
|
||||
echo $description
|
||||
|
||||
$env:SHORT_COMMIT=$env:COMMIT.substring(0, 7)
|
||||
$gcs_bucket="minikube-builds/logs/$env:MINIKUBE_LOCATION/$env:SHORT_COMMIT"
|
||||
|
||||
#Upload logs to gcs
|
||||
gsutil -qm cp testout.txt gs://$gcs_bucket/${env:JOB_NAME}out.txt
|
||||
gsutil -qm cp testout.json gs://$gcs_bucket/${env:JOB_NAME}.json
|
||||
gsutil -qm cp testout.html gs://$gcs_bucket/${env:JOB_NAME}.html
|
||||
gsutil -qm cp testout_summary.json gs://$gcs_bucket/${env:JOB_NAME}_summary.json
|
||||
|
||||
$env:target_url="https://storage.googleapis.com/$gcs_bucket/$env:JOB_NAME.html"
|
||||
# Update the PR with the new info
|
||||
$json = "{`"state`": `"$env:status`", `"description`": `"Jenkins: $description`", `"target_url`": `"$env:target_url`", `"context`": `"${env:JOB_NAME}`"}"
|
||||
Invoke-WebRequest -Uri "https://api.github.com/repos/kubernetes/minikube/statuses/$env:COMMIT`?access_token=$env:access_token" -Body $json -ContentType "application/json" -Method Post -usebasicparsing
|
||||
|
||||
./out/windows_integration_teardown.ps1
|
||||
|
||||
Exit $env:result
|
|
@ -91,7 +91,7 @@ else
|
|||
fi
|
||||
|
||||
# installing golang so we could do go get for gopogh
|
||||
sudo ARCH="$ARCH"./installers/check_install_golang.sh "1.16.4" "/usr/local" || true
|
||||
./installers/check_install_golang.sh "1.16.4" "/usr/local" || true
|
||||
|
||||
# install docker and kubectl if not present
|
||||
sudo ARCH="$ARCH" ./installers/check_install_docker.sh || true
|
||||
|
@ -444,11 +444,11 @@ if [ -z "${EXTERNAL}" ]; then
|
|||
echo ">> public URL: ${REPORT_URL_BASE}/${JOB_GCS_BUCKET}.json"
|
||||
gsutil -qm cp "${JSON_OUT}" "gs://${JOB_GCS_BUCKET}.json" || true
|
||||
|
||||
echo ">> uploading ${HTML_OUT} to ${REPORT_URL_BASE}/${JOB_GCS_BUCKET}.html"
|
||||
echo ">> uploading ${HTML_OUT} to gs://${JOB_GCS_BUCKET}.html"
|
||||
echo ">> public URL: ${REPORT_URL_BASE}/${JOB_GCS_BUCKET}.html"
|
||||
gsutil -qm cp "${HTML_OUT}" "gs://${JOB_GCS_BUCKET}.html" || true
|
||||
|
||||
echo ">> uploading ${SUMMARY_OUT} to ${REPORT_URL_BASE}/${JOB_GCS_BUCKET}_summary.json"
|
||||
echo ">> uploading ${SUMMARY_OUT} to gs://${JOB_GCS_BUCKET}_summary.json"
|
||||
echo ">> public URL: ${REPORT_URL_BASE}/${JOB_GCS_BUCKET}_summary.json"
|
||||
gsutil -qm cp "${SUMMARY_OUT}" "gs://${JOB_GCS_BUCKET}_summary.json" || true
|
||||
else
|
||||
|
|
|
@ -67,20 +67,28 @@ function check_and_install_golang() {
|
|||
|
||||
# install_golang takes two parameters version and path to install.
|
||||
function install_golang() {
|
||||
echo "Installing golang version: $1 on $2"
|
||||
pushd /tmp >/dev/null
|
||||
local -r GO_VER="$1"
|
||||
local -r GO_DIR="$2/go"
|
||||
echo "Installing golang version: $GO_VER in $GO_DIR"
|
||||
|
||||
INSTALLOS=linux
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
INSTALLOS=darwin
|
||||
fi
|
||||
|
||||
local -r GO_TGZ="go${GO_VER}.${INSTALLOS}-${ARCH}.tar.gz"
|
||||
pushd /tmp
|
||||
|
||||
# using sudo because previously installed versions might have been installed by a different user.
|
||||
# as it was the case on jenkins VM.
|
||||
sudo curl -qL -O "https://storage.googleapis.com/golang/go${1}.${INSTALLOS}-${ARCH}.tar.gz" &&
|
||||
sudo tar -xzf go${1}.${INSTALLOS}-${ARCH}.tar.gz &&
|
||||
sudo rm -rf "${2}/go" &&
|
||||
sudo mv go "${2}/" && sudo chown -R $(whoami): ${2}/go
|
||||
sudo rm -rf "$GO_TGZ"
|
||||
curl -qL -O "https://storage.googleapis.com/golang/$GO_TGZ"
|
||||
sudo rm -rf "$GO_DIR"
|
||||
sudo mkdir -p "$GO_DIR"
|
||||
sudo tar -C "$GO_DIR" --strip-components=1 -xzf "$GO_TGZ"
|
||||
|
||||
popd >/dev/null
|
||||
echo "installed in $GO_DIR: $($GO_DIR/bin/go version)"
|
||||
}
|
||||
|
||||
check_and_install_golang
|
||||
|
|
|
@ -31,7 +31,7 @@ jobs=(
|
|||
# 'Hyper-V_Windows'
|
||||
# 'VirtualBox_Linux'
|
||||
# 'VirtualBox_macOS'
|
||||
'VirtualBox_Windows'
|
||||
# 'VirtualBox_Windows'
|
||||
# 'KVM-GPU_Linux' - Disabled
|
||||
'KVM_Linux'
|
||||
'KVM_Linux_containerd'
|
||||
|
@ -49,7 +49,7 @@ jobs=(
|
|||
'Docker_Cloud_Shell'
|
||||
)
|
||||
|
||||
SHORT_COMMIT=${ghprbActualCommit:0:7}
|
||||
SHORT_COMMIT=${THE_COMMIT:0:7}
|
||||
STARTED_LIST_REMOTE="gs://minikube-builds/logs/${ghprbPullId}/${SHORT_COMMIT}/started_environments_${BUILD_NUMBER}.txt"
|
||||
printf "%s\n" "${jobs[@]}" | gsutil cp - "${STARTED_LIST_REMOTE}"
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ TMP_DATA=$(mktemp)
|
|||
# 3) Sort by environment, then test name.
|
||||
# 4) Store in file $TMP_DATA.
|
||||
gsutil cat $(< "${ENVIRONMENT_LIST}" sed -r "s/^/gs:\\/\\/minikube-builds\\/logs\\/${PR_NUMBER}\\/${SHORT_COMMIT}\\/; s/$/_summary.json/") \
|
||||
| $DIR/process_data.sh \
|
||||
| "$DIR/process_data.sh" \
|
||||
| sed -n -r -e "s/[0-9a-f]*,[0-9-]*,([a-zA-Z\/_0-9-]*),([a-zA-Z\/_0-9-]*),Failed,[.0-9]*/\1:\2/p" \
|
||||
| sort -t, -k\
|
||||
> "$TMP_DATA"
|
||||
|
@ -85,6 +85,6 @@ fi
|
|||
printf "\n\nTo see the flake rates of all tests on $ENVIRONMENT, click [here](https:\/\/storage.googleapis.com\/minikube-flake-rate\/flake_chart.html?env=$ENVIRONMENT)." >> "$TMP_COMMENT"
|
||||
|
||||
# install gh if not present
|
||||
$DIR/../installers/check_install_gh.sh
|
||||
"$DIR/../installers/check_install_gh.sh"
|
||||
|
||||
gh pr comment "https://github.com/kubernetes/minikube/pull/$PR_NUMBER" --body "$(cat $TMP_COMMENT)"
|
||||
|
|
|
@ -54,9 +54,11 @@ gsutil cat "${FINISHED_LIST_REMOTE}"\
|
|||
| uniq > "${FINISHED_LIST}"
|
||||
|
||||
STARTED_COUNT=$(echo "${STARTED_LIST}" | wc -l)
|
||||
FINISHED_COUNT=$(\
|
||||
FINISHED_LIST_JOINED=$(\
|
||||
echo "${STARTED_LIST}"\
|
||||
| join - "${FINISHED_LIST}"\
|
||||
| join - "${FINISHED_LIST}")
|
||||
FINISHED_COUNT=$(\
|
||||
echo "${FINISHED_LIST_JOINED}"\
|
||||
| wc -l)
|
||||
|
||||
if [ ${STARTED_COUNT} -ne ${FINISHED_COUNT} ]; then
|
||||
|
@ -68,6 +70,7 @@ fi
|
|||
gsutil rm "${BUCKET_PATH}/started_environments_${ROOT_JOB_ID}.txt"
|
||||
|
||||
# At this point, we know all integration tests are done and we can process all summaries safely.
|
||||
echo "${FINISHED_LIST_JOINED}" > ${FINISHED_LIST}
|
||||
|
||||
# Get directory of this script.
|
||||
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
|
|
|
@ -16,6 +16,12 @@ $test_home="$env:HOMEDRIVE$env:HOMEPATH\minikube-integration"
|
|||
$env:KUBECONFIG="$test_home\kubeconfig"
|
||||
$env:MINIKUBE_HOME="$test_home\.minikube"
|
||||
|
||||
if ($driver -eq "docker") {
|
||||
# Remove unused images and containers
|
||||
docker system prune --all --force --volumes
|
||||
docker ps -aq | ForEach -Process {docker rm -fv $_}
|
||||
}
|
||||
|
||||
# delete in case previous test was unexpectedly ended and teardown wasn't run
|
||||
rm -r -Force $test_home
|
||||
mkdir -p $test_home
|
||||
|
|
|
@ -14,4 +14,12 @@
|
|||
|
||||
$test_home="$env:HOMEDRIVE$env:HOMEPATH\minikube-integration"
|
||||
|
||||
if ($driver -eq "docker") {
|
||||
# Remove unused images and containers
|
||||
docker system prune --all --force
|
||||
|
||||
# Just shutdown Docker, it's safer than anything else
|
||||
Get-Process "*Docker Desktop*" | Stop-Process
|
||||
}
|
||||
|
||||
rm -r -Force $test_home
|
||||
|
|
|
@ -14,15 +14,10 @@
|
|||
|
||||
mkdir -p out
|
||||
|
||||
(New-Object Net.WebClient).DownloadFile("https://github.com/medyagh/gopogh/releases/download/v0.8.0/gopogh.exe", "C:\Go\bin\gopogh.exe")
|
||||
(New-Object Net.WebClient).DownloadFile("https://dl.k8s.io/release/v1.20.0/bin/windows/amd64/kubectl.exe", "C:\Program Files\Docker\Docker\resources\bin\kubectl.exe")
|
||||
|
||||
gsutil.cmd -m cp gs://minikube-builds/$env:MINIKUBE_LOCATION/minikube-windows-amd64.exe out/
|
||||
gsutil.cmd -m cp gs://minikube-builds/$env:MINIKUBE_LOCATION/e2e-windows-amd64.exe out/
|
||||
gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/testdata .
|
||||
gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/setup_docker_desktop_windows.ps1 out/
|
||||
gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/windows_integration_setup.ps1 out/
|
||||
gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/windows_integration_teardown.ps1 out/
|
||||
gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/common.ps1 out/
|
||||
|
||||
$env:SHORT_COMMIT=$env:COMMIT.substring(0, 7)
|
||||
$gcs_bucket="minikube-builds/logs/$env:MINIKUBE_LOCATION/$env:SHORT_COMMIT"
|
||||
|
@ -39,65 +34,8 @@ If ($lastexitcode -gt 0) {
|
|||
Exit $lastexitcode
|
||||
}
|
||||
|
||||
./out/minikube-windows-amd64.exe delete --all
|
||||
$driver="docker"
|
||||
$timeout="180m"
|
||||
$env:JOB_NAME="Docker_Windows"
|
||||
|
||||
# Remove unused images and containers
|
||||
docker system prune --all --force --volumes
|
||||
|
||||
./out/windows_integration_setup.ps1
|
||||
|
||||
docker ps -aq | ForEach -Process {docker rm -fv $_}
|
||||
|
||||
$started=Get-Date -UFormat %s
|
||||
|
||||
out/e2e-windows-amd64.exe --minikube-start-args="--driver=docker" --binary=out/minikube-windows-amd64.exe --test.v --test.timeout=180m | Tee-Object -FilePath testout.txt
|
||||
$env:result=$lastexitcode
|
||||
# If the last exit code was 0->success, x>0->error
|
||||
If($env:result -eq 0){
|
||||
$env:status="success"
|
||||
echo "minikube: SUCCESS"
|
||||
} Else {
|
||||
$env:status="failure"
|
||||
echo "minikube: FAIL"
|
||||
}
|
||||
|
||||
$ended=Get-Date -UFormat %s
|
||||
$elapsed=$ended-$started
|
||||
$elapsed=$elapsed/60
|
||||
$elapsed=[math]::Round($elapsed, 2)
|
||||
|
||||
Get-Content testout.txt -Encoding ASCII | go tool test2json -t | Out-File -FilePath testout.json -Encoding ASCII
|
||||
|
||||
$gopogh_status=gopogh --in testout.json --out_html testout.html --out_summary testout_summary.json --name "Docker_Windows" -pr $env:MINIKUBE_LOCATION --repo github.com/kubernetes/minikube/ --details $env:COMMIT
|
||||
|
||||
$failures=echo $gopogh_status | jq '.NumberOfFail'
|
||||
$tests=echo $gopogh_status | jq '.NumberOfTests'
|
||||
$bad_status="$failures / $tests failures"
|
||||
|
||||
$description="$status in $elapsed minute(s)."
|
||||
If($env:status -eq "failure") {
|
||||
$description="completed with $bad_status in $elapsed minute(s)."
|
||||
}
|
||||
echo $description
|
||||
|
||||
$env:target_url="https://storage.googleapis.com/$gcs_bucket/Docker_Windows.html"
|
||||
|
||||
#Upload logs to gcs
|
||||
gsutil -qm cp testout.txt gs://$gcs_bucket/Docker_Windowsout.txt
|
||||
gsutil -qm cp testout.json gs://$gcs_bucket/Docker_Windows.json
|
||||
gsutil -qm cp testout.html gs://$gcs_bucket/Docker_Windows.html
|
||||
gsutil -qm cp testout_summary.json gs://$gcs_bucket/Docker_Windows_summary.json
|
||||
|
||||
# Update the PR with the new info
|
||||
$json = "{`"state`": `"$env:status`", `"description`": `"Jenkins: $description`", `"target_url`": `"$env:target_url`", `"context`": `"Docker_Windows`"}"
|
||||
Invoke-WebRequest -Uri "https://api.github.com/repos/kubernetes/minikube/statuses/$env:COMMIT`?access_token=$env:access_token" -Body $json -ContentType "application/json" -Method Post -usebasicparsing
|
||||
|
||||
# Remove unused images and containers
|
||||
docker system prune --all --force
|
||||
|
||||
# Just shutdown Docker, it's safer than anything else
|
||||
Get-Process "*Docker Desktop*" | Stop-Process
|
||||
|
||||
./out/windows_integration_teardown.ps1
|
||||
|
||||
Exit $env:result
|
||||
. ./out/common.ps1
|
||||
|
|
|
@ -12,31 +12,10 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
(New-Object Net.WebClient).DownloadFile("https://github.com/medyagh/gopogh/releases/download/v0.8.0/gopogh.exe", "C:\Go\bin\gopogh.exe")
|
||||
gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/common.ps1 out/
|
||||
|
||||
mkdir -p out
|
||||
gsutil.cmd -m cp gs://minikube-builds/$env:MINIKUBE_LOCATION/minikube-windows-amd64.exe out/
|
||||
gsutil.cmd -m cp gs://minikube-builds/$env:MINIKUBE_LOCATION/e2e-windows-amd64.exe out/
|
||||
gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/testdata .
|
||||
gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/windows_integration_setup.ps1 out/
|
||||
gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/windows_integration_teardown.ps1 out/
|
||||
$driver="hyperv"
|
||||
$timeout="65m"
|
||||
$env:JOB_NAME="Hyper-V_Windows"
|
||||
|
||||
./out/minikube-windows-amd64.exe delete --all
|
||||
|
||||
./out/windows_integration_setup.ps1
|
||||
|
||||
out/e2e-windows-amd64.exe -minikube-start-args="--driver=hyperv" -binary=out/minikube-windows-amd64.exe -test.v -test.timeout=65m
|
||||
$env:result=$lastexitcode
|
||||
# If the last exit code was 0->success, x>0->error
|
||||
If($env:result -eq 0){$env:status="success"}
|
||||
Else {$env:status="failure"}
|
||||
|
||||
# $env:SHORT_COMMIT=$env:COMMIT.substring(0, 7)
|
||||
# to be used later to implement https://github.com/kubernetes/minikube/issues/6593
|
||||
$env:target_url="https://storage.googleapis.com/minikube-builds/logs/$env:MINIKUBE_LOCATION/Hyper-V_Windows.txt"
|
||||
$json = "{`"state`": `"$env:status`", `"description`": `"Jenkins`", `"target_url`": `"$env:target_url`", `"context`": `"Hyper-V_Windows`"}"
|
||||
Invoke-WebRequest -Uri "https://api.github.com/repos/kubernetes/minikube/statuses/$env:COMMIT`?access_token=$env:access_token" -Body $json -ContentType "application/json" -Method Post -usebasicparsing
|
||||
|
||||
./out/windows_integration_teardown.ps1
|
||||
|
||||
Exit $env:result
|
||||
. ./out/common.ps1
|
||||
|
|
|
@ -12,32 +12,10 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
(New-Object Net.WebClient).DownloadFile("https://github.com/medyagh/gopogh/releases/download/v0.8.0/gopogh.exe", "C:\Go\bin\gopogh.exe")
|
||||
gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/common.ps1 out/
|
||||
|
||||
$driver="virtualbox"
|
||||
$timeout="30m"
|
||||
$env:JOB_NAME="VirtualBox_Windows"
|
||||
|
||||
mkdir -p out
|
||||
gsutil.cmd -m cp gs://minikube-builds/$env:MINIKUBE_LOCATION/minikube-windows-amd64.exe out/
|
||||
gsutil.cmd -m cp gs://minikube-builds/$env:MINIKUBE_LOCATION/e2e-windows-amd64.exe out/
|
||||
gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/testdata .
|
||||
gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/windows_integration_setup.ps1 out/
|
||||
gsutil.cmd -m cp -r gs://minikube-builds/$env:MINIKUBE_LOCATION/windows_integration_teardown.ps1 out/
|
||||
|
||||
./out/minikube-windows-amd64.exe delete
|
||||
|
||||
./out/windows_integration_setup.ps1
|
||||
|
||||
out/e2e-windows-amd64.exe -minikube-start-args="--driver=virtualbox" -binary=out/minikube-windows-amd64.exe -test.v -test.timeout=30m
|
||||
$env:result=$lastexitcode
|
||||
# If the last exit code was 0->success, x>0->error
|
||||
If($env:result -eq 0){$env:status="success"}
|
||||
Else {$env:status="failure"}
|
||||
|
||||
# $env:SHORT_COMMIT=$env:COMMIT.substring(0, 7)
|
||||
# to be used later
|
||||
$env:target_url="https://storage.googleapis.com/minikube-builds/logs/$env:MINIKUBE_LOCATION/VirtualBox_Windows.txt"
|
||||
$json = "{`"state`": `"$env:status`", `"description`": `"Jenkins`", `"target_url`": `"$env:target_url`", `"context`": `"VirtualBox_Windows`"}"
|
||||
Invoke-WebRequest -Uri "https://api.github.com/repos/kubernetes/minikube/statuses/$env:COMMIT`?access_token=$env:access_token" -Body $json -ContentType "application/json" -Method Post -usebasicparsing
|
||||
|
||||
./out/windows_integration_teardown.ps1
|
||||
|
||||
Exit $env:result
|
||||
. ./out/common.ps1
|
||||
|
|
|
@ -18,11 +18,6 @@ set -eu -o pipefail
|
|||
|
||||
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||
|
||||
if ! [[ -r "${DIR}/gh_token.txt" ]]; then
|
||||
echo "Missing '${DIR}/gh_token.txt'. Please create a GitHub token at https://github.com/settings/tokens and store in '${DIR}/gh_token.txt'."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
install_pullsheet() {
|
||||
pullsheet_workdir="$(mktemp -d)"
|
||||
trap 'rm -rf -- ${pullsheet_workdir}' RETURN
|
||||
|
@ -69,11 +64,23 @@ tags_with_range=$(
|
|||
destination="$DIR/../site/content/en/docs/contrib/leaderboard"
|
||||
mkdir -p "$destination"
|
||||
|
||||
TMP_TOKEN=$(mktemp)
|
||||
gh auth status -t 2>&1 | sed -n -r 's/^.*Token: ([a-zA-Z0-9_]*)/\1/p' > "$TMP_TOKEN"
|
||||
if [ ! -s "$TMP_TOKEN" ]; then
|
||||
echo "Failed to acquire token from 'gh auth'. Ensure 'gh' is authenticated." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
# Ensure the token is deleted when the script exits, so the token is not leaked.
|
||||
function cleanup_token() {
|
||||
rm -f "$TMP_TOKEN"
|
||||
}
|
||||
trap cleanup_token EXIT
|
||||
|
||||
while read -r tag_index tag_name tag_start tag_end; do
|
||||
echo "Generating leaderboard for" "$tag_name" "(from $tag_start to $tag_end)"
|
||||
# Print header for page.
|
||||
printf -- "---\ntitle: \"$tag_name - $tag_end\"\nlinkTitle: \"$tag_name - $tag_end\"\nweight: $tag_index\n---\n" > "$destination/$tag_name.html"
|
||||
# Add pullsheet content (deleting the lines consisting of the command used to generate it).
|
||||
$DIR/pullsheet leaderboard --token-path "$DIR/gh_token.txt" --repos kubernetes/minikube --since "$tag_start" --until "$tag_end" --logtostderr=false --stderrthreshold=2 \
|
||||
$DIR/pullsheet leaderboard --token-path "$TMP_TOKEN" --repos kubernetes/minikube --since "$tag_start" --until "$tag_end" --logtostderr=false --stderrthreshold=2 \
|
||||
| sed -r -e "/Command\-line/,/pullsheet/d" >> "$destination/$tag_name.html"
|
||||
done <<< "$tags_with_range"
|
||||
|
|
|
@ -187,4 +187,9 @@ var Addons = []*Addon{
|
|||
validations: []setFn{IsVolumesnapshotsEnabled},
|
||||
callbacks: []setFn{EnableOrDisableAddon, verifyAddonStatus},
|
||||
},
|
||||
{
|
||||
name: "portainer",
|
||||
set: SetBool,
|
||||
callbacks: []setFn{EnableOrDisableAddon},
|
||||
},
|
||||
}
|
||||
|
|
|
@ -666,6 +666,13 @@ var Addons = map[string]*Addon{
|
|||
"Snapshotter": "k8s.gcr.io",
|
||||
"Provisioner": "k8s.gcr.io",
|
||||
}),
|
||||
"portainer": NewAddon([]*BinAsset{
|
||||
MustBinAsset(addons.PortainerAssets,
|
||||
"portainer/portainer.yaml.tmpl",
|
||||
vmpath.GuestAddonsDir,
|
||||
"portainer.yaml",
|
||||
"0640"),
|
||||
}, false, "portainer", "portainer.io", nil, nil),
|
||||
}
|
||||
|
||||
// parseMapString creates a map based on `str` which is encoded as <key1>=<value1>,<key2>=<value2>,...
|
||||
|
|
|
@ -138,19 +138,19 @@ func storageProvisioner(mirror string) string {
|
|||
// dashboardFrontend returns the image used for the dashboard frontend
|
||||
func dashboardFrontend(repo string) string {
|
||||
if repo == "" {
|
||||
repo = "docker.io/kubernetesui"
|
||||
repo = "docker.io"
|
||||
}
|
||||
// See 'kubernetes-dashboard' in deploy/addons/dashboard/dashboard-dp.yaml
|
||||
return path.Join(repo, "dashboard:v2.1.0")
|
||||
return path.Join(repo, "kubernetesui", "dashboard:v2.1.0")
|
||||
}
|
||||
|
||||
// dashboardMetrics returns the image used for the dashboard metrics scraper
|
||||
func dashboardMetrics(repo string) string {
|
||||
if repo == "" {
|
||||
repo = "docker.io/kubernetesui"
|
||||
repo = "docker.io"
|
||||
}
|
||||
// See 'dashboard-metrics-scraper' in deploy/addons/dashboard/dashboard-dp.yaml
|
||||
return path.Join(repo, "metrics-scraper:v1.0.4")
|
||||
return path.Join(repo, "kubernetesui", "metrics-scraper:v1.0.4")
|
||||
}
|
||||
|
||||
// KindNet returns the image used for kindnet
|
||||
|
|
|
@ -96,9 +96,9 @@ func TestAuxiliary(t *testing.T) {
|
|||
|
||||
func TestAuxiliaryMirror(t *testing.T) {
|
||||
want := []string{
|
||||
"test.mirror/storage-provisioner:" + version.GetStorageProvisionerVersion(),
|
||||
"test.mirror/dashboard:v2.1.0",
|
||||
"test.mirror/metrics-scraper:v1.0.4",
|
||||
"test.mirror/k8s-minikube/storage-provisioner:" + version.GetStorageProvisionerVersion(),
|
||||
"test.mirror/kubernetesui/dashboard:v2.1.0",
|
||||
"test.mirror/kubernetesui/metrics-scraper:v1.0.4",
|
||||
}
|
||||
got := auxiliary("test.mirror")
|
||||
if diff := cmp.Diff(want, got); diff != "" {
|
||||
|
|
|
@ -54,9 +54,9 @@ func TestKubeadmImages(t *testing.T) {
|
|||
"mirror.k8s.io/coredns:1.6.2",
|
||||
"mirror.k8s.io/etcd:3.3.15-0",
|
||||
"mirror.k8s.io/pause:3.1",
|
||||
"mirror.k8s.io/storage-provisioner:" + version.GetStorageProvisionerVersion(),
|
||||
"mirror.k8s.io/dashboard:v2.1.0",
|
||||
"mirror.k8s.io/metrics-scraper:v1.0.4",
|
||||
"mirror.k8s.io/k8s-minikube/storage-provisioner:" + version.GetStorageProvisionerVersion(),
|
||||
"mirror.k8s.io/kubernetesui/dashboard:v2.1.0",
|
||||
"mirror.k8s.io/kubernetesui/metrics-scraper:v1.0.4",
|
||||
}},
|
||||
{"v1.15.0", "", false, []string{
|
||||
"k8s.gcr.io/kube-proxy:v1.15.0",
|
||||
|
|
|
@ -16,6 +16,8 @@ limitations under the License.
|
|||
|
||||
package images
|
||||
|
||||
import "path"
|
||||
|
||||
// DefaultKubernetesRepo is the default Kubernetes repository
|
||||
const DefaultKubernetesRepo = "k8s.gcr.io"
|
||||
|
||||
|
@ -29,8 +31,8 @@ func kubernetesRepo(mirror string) string {
|
|||
|
||||
// minikubeRepo returns the official minikube repository, or an alternate
|
||||
func minikubeRepo(mirror string) string {
|
||||
if mirror != "" {
|
||||
return mirror
|
||||
if mirror == "" {
|
||||
mirror = "gcr.io"
|
||||
}
|
||||
return "gcr.io/k8s-minikube"
|
||||
return path.Join(mirror, "k8s-minikube")
|
||||
}
|
||||
|
|
|
@ -208,7 +208,6 @@ func testPreloadExistsCaching(t *testing.T) {
|
|||
checkCalled := false
|
||||
checkRemotePreloadExists = func(k8sVersion, containerRuntime string) bool {
|
||||
checkCalled = true
|
||||
setPreloadState(k8sVersion, containerRuntime, doesPreloadExist)
|
||||
return doesPreloadExist
|
||||
}
|
||||
existence := PreloadExists("v1", "c1", "docker", true)
|
||||
|
|
|
@ -106,19 +106,16 @@ var checkRemotePreloadExists = func(k8sVersion, containerRuntime string) bool {
|
|||
resp, err := http.Head(url)
|
||||
if err != nil {
|
||||
klog.Warningf("%s fetch error: %v", url, err)
|
||||
setPreloadState(k8sVersion, containerRuntime, false)
|
||||
return false
|
||||
}
|
||||
|
||||
// note: err won't be set if it's a 404
|
||||
if resp.StatusCode != 200 {
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
klog.Warningf("%s status code: %d", url, resp.StatusCode)
|
||||
setPreloadState(k8sVersion, containerRuntime, false)
|
||||
return false
|
||||
}
|
||||
|
||||
klog.Infof("Found remote preload: %s", url)
|
||||
setPreloadState(k8sVersion, containerRuntime, true)
|
||||
return true
|
||||
}
|
||||
|
||||
|
@ -152,7 +149,9 @@ func PreloadExists(k8sVersion, containerRuntime, driverName string, forcePreload
|
|||
return true
|
||||
}
|
||||
|
||||
return checkRemotePreloadExists(k8sVersion, containerRuntime)
|
||||
existence := checkRemotePreloadExists(k8sVersion, containerRuntime)
|
||||
setPreloadState(k8sVersion, containerRuntime, existence)
|
||||
return existence
|
||||
}
|
||||
|
||||
var checkPreloadExists = PreloadExists
|
||||
|
|
|
@ -120,7 +120,7 @@ func beginDownloadKicBaseImage(g *errgroup.Group, cc *config.ClusterConfig, down
|
|||
g.Go(func() error {
|
||||
baseImg := cc.KicBaseImage
|
||||
if baseImg == kic.BaseImage && len(cc.KubernetesConfig.ImageRepository) != 0 {
|
||||
baseImg = strings.Replace(baseImg, "gcr.io/k8s-minikube", cc.KubernetesConfig.ImageRepository, 1)
|
||||
baseImg = strings.Replace(baseImg, "gcr.io", cc.KubernetesConfig.ImageRepository, 1)
|
||||
cc.KicBaseImage = baseImg
|
||||
}
|
||||
var finalImg string
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
title: "v1.22.0 Benchmark"
|
||||
linkTitle: "v1.22.0 Benchmark"
|
||||
weight: 1
|
||||
---
|
||||
|
||||
![time-to-k8s](/images/benchmarks/timeToK8s/v1.22.0.png)
|
|
@ -20,7 +20,8 @@ minikube dashboard [flags]
|
|||
### Options
|
||||
|
||||
```
|
||||
--url Display dashboard URL instead of opening a browser
|
||||
--port int Exposed port of the proxyfied dashboard. Set to 0 to pick a random port.
|
||||
--url Display dashboard URL instead of opening a browser
|
||||
```
|
||||
|
||||
### Options inherited from parent commands
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
|
@ -815,7 +815,7 @@ func validateDashboardCmd(ctx context.Context, t *testing.T, profile string) {
|
|||
mctx, cancel := context.WithTimeout(ctx, Seconds(300))
|
||||
defer cancel()
|
||||
|
||||
args := []string{"dashboard", "--url", "-p", profile, "--alsologtostderr", "-v=1"}
|
||||
args := []string{"dashboard", "--url", "--port", "36195", "-p", profile, "--alsologtostderr", "-v=1"}
|
||||
ss, err := Start(t, exec.CommandContext(mctx, Target(), args...))
|
||||
if err != nil {
|
||||
t.Errorf("failed to run minikube dashboard. args %q : %v", args, err)
|
||||
|
|
|
@ -215,6 +215,7 @@
|
|||
"Existing disk is missing new features ({{.error}}). To upgrade, run 'minikube delete'": "",
|
||||
"Exiting": "Wird beendet",
|
||||
"Exiting due to {{.fatal_code}}: {{.fatal_msg}}": "",
|
||||
"Exposed port of the proxyfied dashboard. Set to 0 to pick a random port.": "",
|
||||
"External Adapter on which external switch will be created if no external switch is found. (hyperv driver only)": "",
|
||||
"Fail check if container paused": "",
|
||||
"Failed runtime": "",
|
||||
|
@ -333,6 +334,7 @@
|
|||
"Install VirtualBox and ensure it is in the path, or select an alternative value for --driver": "",
|
||||
"Install the latest hyperkit binary, and run 'minikube delete'": "",
|
||||
"Invalid Container Runtime: \"{{.runtime}}\". Valid runtimes are: {{.validOptions}}": "",
|
||||
"Invalid port": "",
|
||||
"Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "",
|
||||
"Istio needs {{.minMem}}MB of memory -- your configuration only allocates {{.memory}}MB": "",
|
||||
"It seems that you are running in GCE, which means authentication should work without the GCP Auth addon. If you would still like to authenticate using a credentials file, use the --force flag.": "",
|
||||
|
@ -585,7 +587,7 @@
|
|||
"The '{{.name}} driver does not support multiple profiles: https://minikube.sigs.k8s.io/docs/reference/drivers/none/": "",
|
||||
"The '{{.name}}' driver does not respect the --cpus flag": "",
|
||||
"The '{{.name}}' driver does not respect the --memory flag": "",
|
||||
"The --image-repository flag your provided contains Scheme: {{.scheme}}, it will be as a domian, removed automatically": "",
|
||||
"The --image-repository flag your provided contains Scheme: {{.scheme}}, which will be removed automatically": "",
|
||||
"The --image-repository flag your provided ended with a trailing / that could cause conflict in kuberentes, removed automatically": "",
|
||||
"The CIDR to be used for service cluster IPs.": "Die CIDR, die für Service-Cluster-IPs verwendet werden soll.",
|
||||
"The CIDR to be used for the minikube VM (virtualbox driver only)": "Die CIDR, die für die minikube-VM verwendet werden soll (nur Virtualbox-Treiber)",
|
||||
|
|
|
@ -220,6 +220,7 @@
|
|||
"Existing disk is missing new features ({{.error}}). To upgrade, run 'minikube delete'": "",
|
||||
"Exiting": "Saliendo",
|
||||
"Exiting due to {{.fatal_code}}: {{.fatal_msg}}": "",
|
||||
"Exposed port of the proxyfied dashboard. Set to 0 to pick a random port.": "",
|
||||
"External Adapter on which external switch will be created if no external switch is found. (hyperv driver only)": "",
|
||||
"Fail check if container paused": "",
|
||||
"Failed runtime": "",
|
||||
|
@ -338,6 +339,7 @@
|
|||
"Install VirtualBox and ensure it is in the path, or select an alternative value for --driver": "",
|
||||
"Install the latest hyperkit binary, and run 'minikube delete'": "",
|
||||
"Invalid Container Runtime: \"{{.runtime}}\". Valid runtimes are: {{.validOptions}}": "",
|
||||
"Invalid port": "",
|
||||
"Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "",
|
||||
"Istio needs {{.minMem}}MB of memory -- your configuration only allocates {{.memory}}MB": "",
|
||||
"It seems that you are running in GCE, which means authentication should work without the GCP Auth addon. If you would still like to authenticate using a credentials file, use the --force flag.": "",
|
||||
|
@ -590,7 +592,7 @@
|
|||
"The '{{.name}} driver does not support multiple profiles: https://minikube.sigs.k8s.io/docs/reference/drivers/none/": "",
|
||||
"The '{{.name}}' driver does not respect the --cpus flag": "",
|
||||
"The '{{.name}}' driver does not respect the --memory flag": "",
|
||||
"The --image-repository flag your provided contains Scheme: {{.scheme}}, it will be as a domian, removed automatically": "",
|
||||
"The --image-repository flag your provided contains Scheme: {{.scheme}}, which will be removed automatically": "",
|
||||
"The --image-repository flag your provided ended with a trailing / that could cause conflict in kuberentes, removed automatically": "",
|
||||
"The CIDR to be used for service cluster IPs.": "El CIDR de las IP del clúster de servicio.",
|
||||
"The CIDR to be used for the minikube VM (virtualbox driver only)": "El CIDR de la VM de minikube (solo con el controlador de Virtualbox)",
|
||||
|
|
|
@ -218,6 +218,7 @@
|
|||
"Existing disk is missing new features ({{.error}}). To upgrade, run 'minikube delete'": "Il manque de nouvelles fonctionnalités sur le disque existant ({{.error}}). Pour mettre à niveau, exécutez 'minikube delete'",
|
||||
"Exiting": "Fermeture…",
|
||||
"Exiting due to {{.fatal_code}}: {{.fatal_msg}}": "Fermeture en raison de {{.fatal_code}} : {{.fatal_msg}}",
|
||||
"Exposed port of the proxyfied dashboard. Set to 0 to pick a random port.": "",
|
||||
"External Adapter on which external switch will be created if no external switch is found. (hyperv driver only)": "L'adaptateur externe sur lequel un commutateur externe sera créé si aucun commutateur externe n'est trouvé. (pilote hyperv uniquement)",
|
||||
"Fail check if container paused": "Échec de la vérification si le conteneur est en pause",
|
||||
"Failed runtime": "Échec de l'exécution",
|
||||
|
@ -337,6 +338,7 @@
|
|||
"Install VirtualBox and ensure it is in the path, or select an alternative value for --driver": "Installez VirtualBox et assurez-vous qu'il est dans le chemin, ou sélectionnez une valeur alternative pour --driver",
|
||||
"Install the latest hyperkit binary, and run 'minikube delete'": "Installez le dernier binaire hyperkit et exécutez 'minikube delete'",
|
||||
"Invalid Container Runtime: \"{{.runtime}}\". Valid runtimes are: {{.validOptions}}": "Exécution de conteneur non valide : \"{{.runtime}}\". Les environnements d'exécution valides sont : {{.validOptions}}",
|
||||
"Invalid port": "",
|
||||
"Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "Istio a besoin de {{.minCPUs}} processeurs -- votre configuration n'alloue que {{.cpus}} processeurs",
|
||||
"Istio needs {{.minMem}}MB of memory -- your configuration only allocates {{.memory}}MB": "Istio a besoin de {{.minMem}}Mo de mémoire -- votre configuration n'alloue que {{.memory}}Mo",
|
||||
"It seems that you are running in GCE, which means authentication should work without the GCP Auth addon. If you would still like to authenticate using a credentials file, use the --force flag.": "Il semble que vous exécutiez GCE, ce qui signifie que l'authentification devrait fonctionner sans le module GCP Auth. Si vous souhaitez toujours vous authentifier à l'aide d'un fichier d'informations d'identification, utilisez l'indicateur --force.",
|
||||
|
@ -591,6 +593,7 @@
|
|||
"The '{{.name}}' driver does not respect the --cpus flag": "Le pilote '{{.name}}' ne respecte pas l'indicateur --cpus",
|
||||
"The '{{.name}}' driver does not respect the --memory flag": "Le pilote '{{.name}}' ne respecte pas l'indicateur --memory",
|
||||
"The --image-repository flag your provided contains Scheme: {{.scheme}}, it will be as a domian, removed automatically": "L'indicateur --image-repository que vous avez fourni contient le schéma : {{.scheme}}, ce sera en tant que domaine, supprimé automatiquement",
|
||||
"The --image-repository flag your provided contains Scheme: {{.scheme}}, which will be removed automatically": "",
|
||||
"The --image-repository flag your provided ended with a trailing / that could cause conflict in kuberentes, removed automatically": "L'indicateur --image-repository que vous avez fourni s'est terminé par un / qui pourrait provoquer un conflit dans kubernetes, supprimé automatiquement",
|
||||
"The CIDR to be used for service cluster IPs.": "Méthode CIDR à exploiter pour les adresses IP des clusters du service.",
|
||||
"The CIDR to be used for the minikube VM (virtualbox driver only)": "Méthode CIDR à exploiter pour la VM minikube (pilote virtualbox uniquement).",
|
||||
|
|
|
@ -208,6 +208,7 @@
|
|||
"Exiting": "終了しています",
|
||||
"Exiting due to {{.fatal_code}}: {{.fatal_msg}}": "",
|
||||
"Exiting.": "終了しています",
|
||||
"Exposed port of the proxyfied dashboard. Set to 0 to pick a random port.": "",
|
||||
"External Adapter on which external switch will be created if no external switch is found. (hyperv driver only)": "",
|
||||
"Fail check if container paused": "",
|
||||
"Failed runtime": "",
|
||||
|
@ -324,6 +325,7 @@
|
|||
"Install VirtualBox and ensure it is in the path, or select an alternative value for --driver": "",
|
||||
"Install the latest hyperkit binary, and run 'minikube delete'": "",
|
||||
"Invalid Container Runtime: \"{{.runtime}}\". Valid runtimes are: {{.validOptions}}": "",
|
||||
"Invalid port": "",
|
||||
"Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "",
|
||||
"Istio needs {{.minMem}}MB of memory -- your configuration only allocates {{.memory}}MB": "",
|
||||
"It seems that you are running in GCE, which means authentication should work without the GCP Auth addon. If you would still like to authenticate using a credentials file, use the --force flag.": "",
|
||||
|
@ -585,7 +587,7 @@
|
|||
"The '{{.name}} driver does not support multiple profiles: https://minikube.sigs.k8s.io/docs/reference/drivers/none/": "",
|
||||
"The '{{.name}}' driver does not respect the --cpus flag": "",
|
||||
"The '{{.name}}' driver does not respect the --memory flag": "",
|
||||
"The --image-repository flag your provided contains Scheme: {{.scheme}}, it will be as a domian, removed automatically": "",
|
||||
"The --image-repository flag your provided contains Scheme: {{.scheme}}, which will be removed automatically": "",
|
||||
"The --image-repository flag your provided ended with a trailing / that could cause conflict in kuberentes, removed automatically": "",
|
||||
"The CIDR to be used for service cluster IPs.": "サービス クラスタ IP に使用される CIDR",
|
||||
"The CIDR to be used for the minikube VM (virtualbox driver only)": "minikube VM に使用される CIDR(virtualbox ドライバのみ)",
|
||||
|
|
|
@ -232,6 +232,7 @@
|
|||
"Executing \"{{.command}}\" took an unusually long time: {{.duration}}": "",
|
||||
"Existing disk is missing new features ({{.error}}). To upgrade, run 'minikube delete'": "",
|
||||
"Exiting due to {{.fatal_code}}: {{.fatal_msg}}": "",
|
||||
"Exposed port of the proxyfied dashboard. Set to 0 to pick a random port.": "",
|
||||
"External Adapter on which external switch will be created if no external switch is found. (hyperv driver only)": "",
|
||||
"Fail check if container paused": "",
|
||||
"Failed runtime": "런타임이 실패하였습니다",
|
||||
|
@ -355,6 +356,7 @@
|
|||
"Install VirtualBox and ensure it is in the path, or select an alternative value for --driver": "",
|
||||
"Install the latest hyperkit binary, and run 'minikube delete'": "",
|
||||
"Invalid Container Runtime: \"{{.runtime}}\". Valid runtimes are: {{.validOptions}}": "",
|
||||
"Invalid port": "",
|
||||
"Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "",
|
||||
"Istio needs {{.minMem}}MB of memory -- your configuration only allocates {{.memory}}MB": "",
|
||||
"It seems that you are running in GCE, which means authentication should work without the GCP Auth addon. If you would still like to authenticate using a credentials file, use the --force flag.": "",
|
||||
|
@ -604,7 +606,7 @@
|
|||
"The '{{.name}} driver does not support multiple profiles: https://minikube.sigs.k8s.io/docs/reference/drivers/none/": "",
|
||||
"The '{{.name}}' driver does not respect the --cpus flag": "",
|
||||
"The '{{.name}}' driver does not respect the --memory flag": "",
|
||||
"The --image-repository flag your provided contains Scheme: {{.scheme}}, it will be as a domian, removed automatically": "",
|
||||
"The --image-repository flag your provided contains Scheme: {{.scheme}}, which will be removed automatically": "",
|
||||
"The --image-repository flag your provided ended with a trailing / that could cause conflict in kuberentes, removed automatically": "",
|
||||
"The CIDR to be used for service cluster IPs.": "",
|
||||
"The CIDR to be used for the minikube VM (virtualbox driver only)": "",
|
||||
|
|
|
@ -223,6 +223,7 @@
|
|||
"Executing \"{{.command}}\" took an unusually long time: {{.duration}}": "",
|
||||
"Existing disk is missing new features ({{.error}}). To upgrade, run 'minikube delete'": "",
|
||||
"Exiting due to {{.fatal_code}}: {{.fatal_msg}}": "",
|
||||
"Exposed port of the proxyfied dashboard. Set to 0 to pick a random port.": "",
|
||||
"External Adapter on which external switch will be created if no external switch is found. (hyperv driver only)": "",
|
||||
"Fail check if container paused": "",
|
||||
"Failed runtime": "",
|
||||
|
@ -342,6 +343,7 @@
|
|||
"Install VirtualBox and ensure it is in the path, or select an alternative value for --driver": "",
|
||||
"Install the latest hyperkit binary, and run 'minikube delete'": "",
|
||||
"Invalid Container Runtime: \"{{.runtime}}\". Valid runtimes are: {{.validOptions}}": "",
|
||||
"Invalid port": "",
|
||||
"Invalid size passed in argument: {{.error}}": "Nieprawidłowy rozmiar przekazany w argumencie: {{.error}}",
|
||||
"Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "",
|
||||
"Istio needs {{.minMem}}MB of memory -- your configuration only allocates {{.memory}}MB": "",
|
||||
|
@ -605,7 +607,7 @@
|
|||
"The '{{.name}} driver does not support multiple profiles: https://minikube.sigs.k8s.io/docs/reference/drivers/none/": "",
|
||||
"The '{{.name}}' driver does not respect the --cpus flag": "",
|
||||
"The '{{.name}}' driver does not respect the --memory flag": "",
|
||||
"The --image-repository flag your provided contains Scheme: {{.scheme}}, it will be as a domian, removed automatically": "",
|
||||
"The --image-repository flag your provided contains Scheme: {{.scheme}}, which will be removed automatically": "",
|
||||
"The --image-repository flag your provided ended with a trailing / that could cause conflict in kuberentes, removed automatically": "",
|
||||
"The CIDR to be used for service cluster IPs.": "",
|
||||
"The CIDR to be used for the minikube VM (virtualbox driver only)": "",
|
||||
|
|
|
@ -201,6 +201,7 @@
|
|||
"Executing \"{{.command}}\" took an unusually long time: {{.duration}}": "",
|
||||
"Existing disk is missing new features ({{.error}}). To upgrade, run 'minikube delete'": "",
|
||||
"Exiting due to {{.fatal_code}}: {{.fatal_msg}}": "",
|
||||
"Exposed port of the proxyfied dashboard. Set to 0 to pick a random port.": "",
|
||||
"External Adapter on which external switch will be created if no external switch is found. (hyperv driver only)": "",
|
||||
"Fail check if container paused": "",
|
||||
"Failed runtime": "",
|
||||
|
@ -312,6 +313,7 @@
|
|||
"Install VirtualBox and ensure it is in the path, or select an alternative value for --driver": "",
|
||||
"Install the latest hyperkit binary, and run 'minikube delete'": "",
|
||||
"Invalid Container Runtime: \"{{.runtime}}\". Valid runtimes are: {{.validOptions}}": "",
|
||||
"Invalid port": "",
|
||||
"Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "",
|
||||
"Istio needs {{.minMem}}MB of memory -- your configuration only allocates {{.memory}}MB": "",
|
||||
"It seems that you are running in GCE, which means authentication should work without the GCP Auth addon. If you would still like to authenticate using a credentials file, use the --force flag.": "",
|
||||
|
@ -551,7 +553,7 @@
|
|||
"The '{{.name}} driver does not support multiple profiles: https://minikube.sigs.k8s.io/docs/reference/drivers/none/": "",
|
||||
"The '{{.name}}' driver does not respect the --cpus flag": "",
|
||||
"The '{{.name}}' driver does not respect the --memory flag": "",
|
||||
"The --image-repository flag your provided contains Scheme: {{.scheme}}, it will be as a domian, removed automatically": "",
|
||||
"The --image-repository flag your provided contains Scheme: {{.scheme}}, which will be removed automatically": "",
|
||||
"The --image-repository flag your provided ended with a trailing / that could cause conflict in kuberentes, removed automatically": "",
|
||||
"The CIDR to be used for service cluster IPs.": "",
|
||||
"The CIDR to be used for the minikube VM (virtualbox driver only)": "",
|
||||
|
|
|
@ -280,6 +280,7 @@
|
|||
"Exiting due to driver incompatibility": "由于驱动程序不兼容而退出",
|
||||
"Exiting due to {{.fatal_code}}: {{.fatal_msg}}": "",
|
||||
"Exiting.": "正在退出。",
|
||||
"Exposed port of the proxyfied dashboard. Set to 0 to pick a random port.": "",
|
||||
"External Adapter on which external switch will be created if no external switch is found. (hyperv driver only)": "",
|
||||
"Fail check if container paused": "",
|
||||
"Failed runtime": "",
|
||||
|
@ -414,6 +415,7 @@
|
|||
"Install VirtualBox and ensure it is in the path, or select an alternative value for --driver": "",
|
||||
"Install the latest hyperkit binary, and run 'minikube delete'": "",
|
||||
"Invalid Container Runtime: \"{{.runtime}}\". Valid runtimes are: {{.validOptions}}": "",
|
||||
"Invalid port": "",
|
||||
"Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "",
|
||||
"Istio needs {{.minMem}}MB of memory -- your configuration only allocates {{.memory}}MB": "",
|
||||
"It seems that you are running in GCE, which means authentication should work without the GCP Auth addon. If you would still like to authenticate using a credentials file, use the --force flag.": "",
|
||||
|
@ -692,7 +694,7 @@
|
|||
"The '{{.name}} driver does not support multiple profiles: https://minikube.sigs.k8s.io/docs/reference/drivers/none/": "",
|
||||
"The '{{.name}}' driver does not respect the --cpus flag": "",
|
||||
"The '{{.name}}' driver does not respect the --memory flag": "",
|
||||
"The --image-repository flag your provided contains Scheme: {{.scheme}}, it will be as a domian, removed automatically": "",
|
||||
"The --image-repository flag your provided contains Scheme: {{.scheme}}, which will be removed automatically": "",
|
||||
"The --image-repository flag your provided ended with a trailing / that could cause conflict in kuberentes, removed automatically": "",
|
||||
"The CIDR to be used for service cluster IPs.": "需要用于服务集群 IP 的 CIDR。",
|
||||
"The CIDR to be used for the minikube VM (virtualbox driver only)": "需要用于 minikube 虚拟机的 CIDR(仅限 virtualbox 驱动程序)",
|
||||
|
|
Loading…
Reference in New Issue