Merge branch 'master' of github.com:kubernetes/minikube into add-kubectl
commit
d2073c1191
69
CHANGELOG.md
69
CHANGELOG.md
|
@ -1,5 +1,74 @@
|
|||
# Release Notes
|
||||
|
||||
## Version 1.13.0 - TBD
|
||||
|
||||
## Features
|
||||
|
||||
* Update default Kubernetes version to v1.19.0 🎉 [#9050](https://github.com/kubernetes/minikube/pull/9050)
|
||||
* start: Support for mounting host volumes on start with docker driver [#8159](https://github.com/kubernetes/minikube/pull/8159)
|
||||
* start: Add a machine readable reason to all error paths [#9126](https://github.com/kubernetes/minikube/pull/9126)
|
||||
* stop: add --keep-context-active flag [#9044](https://github.com/kubernetes/minikube/pull/9044)
|
||||
* kubectl: Invoke kubectl if minikube binary is named 'kubectl' [#8872](https://github.com/kubernetes/minikube/pull/8872)
|
||||
|
||||
## Bug fixes
|
||||
|
||||
* docker: Choose the appropriate bridge interface when multiple exist [#9062](https://github.com/kubernetes/minikube/pull/9062)
|
||||
* cache: Fix "cache add" for local images by cherry-picking go-containerregistry fix [#9160](https://github.com/kubernetes/minikube/pull/9160)
|
||||
* update-context: Fix nil pointer dereference [#8989](https://github.com/kubernetes/minikube/pull/8989)
|
||||
* start: Fix --extra-config for scheduler/controllerManager by removing hardcoded values [#9136](https://github.com/kubernetes/minikube/pull/9136)
|
||||
* start: Fix --memory flag parsing in minikube start [#9033](https://github.com/kubernetes/minikube/pull/9033)
|
||||
* start: Improve overlay module check (behavior & UX) [#9163](https://github.com/kubernetes/minikube/pull/9163)
|
||||
* gcp-auth addon: trim whitespace when setting gcp project id [#9164](https://github.com/kubernetes/minikube/pull/9164)
|
||||
* cni: Allow flannel CNI to work with kicbase by fixing IP conflict [#9046](https://github.com/kubernetes/minikube/pull/9046)
|
||||
* cni: fix multiple node calico-node not ready [#9019](https://github.com/kubernetes/minikube/pull/9019)
|
||||
* kic: Retry fix_cgroup on failure [#8974](https://github.com/kubernetes/minikube/pull/8974)
|
||||
* json: fix type for kubectl version mismatch to warning [#9157](https://github.com/kubernetes/minikube/pull/9157)
|
||||
* json: fix type for latest minikube availability message [#9109](https://github.com/kubernetes/minikube/pull/9109)
|
||||
* addon-manager: Add namespace to persistent volume path [#9128](https://github.com/kubernetes/minikube/pull/9128)
|
||||
* ssh: respect native-ssh flag [#8907](https://github.com/kubernetes/minikube/pull/8907)
|
||||
|
||||
## Other improvements
|
||||
|
||||
* kic: Disable swap in Docker & podman containers [#9149](https://github.com/kubernetes/minikube/pull/9149)
|
||||
* kic: prioritize /etc/hosts over dns [#9029](https://github.com/kubernetes/minikube/pull/9029)
|
||||
* start: Repair kubecontext before checking cluster health [#9143](https://github.com/kubernetes/minikube/pull/9143)
|
||||
* start: Don't enable kubelet until after kubeadm generates config [#9111](https://github.com/kubernetes/minikube/pull/9111)
|
||||
* start: Add -o shorthand option for --output [#9097](https://github.com/kubernetes/minikube/pull/9097)
|
||||
* ux: Add MINIKUBE_IN_STYLE auto-detection for Windows terminal [#9127](https://github.com/kubernetes/minikube/pull/9127)
|
||||
* ux: Warn if /var disk space is full and add a solution message [#9028](https://github.com/kubernetes/minikube/pull/9028)
|
||||
* iso Upgrade falco-module to version 0.24.0 [#9068](https://github.com/kubernetes/minikube/pull/9068)
|
||||
* status: `minikube status` should display InsufficientStorage status [#9034](https://github.com/kubernetes/minikube/pull/9034)
|
||||
* perf: set proxy-refresh-interval=70000 for etcd to improve CPU overhead [#8850](https://github.com/kubernetes/minikube/pull/8850)
|
||||
* json: buffer download progress every second [#9099](https://github.com/kubernetes/minikube/pull/9099)
|
||||
* localization: Fix typos in pl translation [#9168](https://github.com/kubernetes/minikube/pull/9168)
|
||||
* dashboard: Update dashboard to v2.0.3 [#9129](https://github.com/kubernetes/minikube/pull/9129)
|
||||
|
||||
Thank you to our many wonderful contributors for this release!
|
||||
|
||||
- AlexanderChen1989
|
||||
- Ambor
|
||||
- Anders F Björklund
|
||||
- Anshul Sirur
|
||||
- Asare Worae
|
||||
- Chang-Woo Rhee
|
||||
- Evgeny Shmarnev
|
||||
- Jose Donizetti
|
||||
- Kazuki Suda
|
||||
- Li Zhijian
|
||||
- Marcin Niemira
|
||||
- Markus Frosch
|
||||
- Medya Ghazizadeh
|
||||
- Pablo Caderno
|
||||
- Priya Wadhwa
|
||||
- Sharif Elgamal
|
||||
- Thomas Strömberg
|
||||
- anencore94
|
||||
- mckrl
|
||||
- ollipa
|
||||
- staticdev
|
||||
- vinu2003
|
||||
- zhanwang
|
||||
|
||||
## Version 1.12.3 - 2020-08-12
|
||||
|
||||
Features:
|
||||
|
|
6
Makefile
6
Makefile
|
@ -14,8 +14,8 @@
|
|||
|
||||
# Bump these on release - and please check ISO_VERSION for correctness.
|
||||
VERSION_MAJOR ?= 1
|
||||
VERSION_MINOR ?= 12
|
||||
VERSION_BUILD ?= 3
|
||||
VERSION_MINOR ?= 13
|
||||
VERSION_BUILD ?= 0
|
||||
RAW_VERSION=$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_BUILD)
|
||||
VERSION ?= v$(RAW_VERSION)
|
||||
|
||||
|
@ -23,7 +23,7 @@ KUBERNETES_VERSION ?= $(shell egrep "DefaultKubernetesVersion =" pkg/minikube/co
|
|||
KIC_VERSION ?= $(shell egrep "Version =" pkg/drivers/kic/types.go | cut -d \" -f2)
|
||||
|
||||
# Default to .0 for higher cache hit rates, as build increments typically don't require new ISO versions
|
||||
ISO_VERSION ?= v$(VERSION_MAJOR).$(VERSION_MINOR).2
|
||||
ISO_VERSION ?= v$(VERSION_MAJOR).$(VERSION_MINOR).0
|
||||
# Dashes are valid in semver, but not Linux packaging. Use ~ to delimit alpha/beta
|
||||
DEB_VERSION ?= $(subst -,~,$(RAW_VERSION))
|
||||
RPM_VERSION ?= $(DEB_VERSION)
|
||||
|
|
|
@ -206,14 +206,27 @@ func runStart(cmd *cobra.Command, args []string) {
|
|||
}
|
||||
}
|
||||
|
||||
if existing != nil && existing.KubernetesConfig.ContainerRuntime == "crio" && driver.IsKIC(existing.Driver) {
|
||||
// Stop and start again if it's crio because it's broken above v1.17.3
|
||||
out.WarningT("Due to issues with CRI-O post v1.17.3, we need to restart your cluster.")
|
||||
out.WarningT("See details at https://github.com/kubernetes/minikube/issues/8861")
|
||||
stopProfile(existing.Name)
|
||||
starter, err = provisionWithDriver(cmd, ds, existing)
|
||||
if err != nil {
|
||||
exit.Error(reason.GuestProvision, "error provisioning host", err)
|
||||
if existing != nil && driver.IsKIC(existing.Driver) {
|
||||
if viper.GetBool(createMount) {
|
||||
mount := viper.GetString(mountString)
|
||||
if len(existing.ContainerVolumeMounts) != 1 || existing.ContainerVolumeMounts[0] != mount {
|
||||
exit.Message(reason.GuestMountConflict, "Sorry, {{.driver}} does not allow mounts to be changed after container creation (previous mount: '{{.old}}', new mount: '{{.new}})'", out.V{
|
||||
"driver": existing.Driver,
|
||||
"new": mount,
|
||||
"old": existing.ContainerVolumeMounts[0],
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
if existing.KubernetesConfig.ContainerRuntime == "crio" {
|
||||
// Stop and start again if it's crio because it's broken above v1.17.3
|
||||
out.WarningT("Due to issues with CRI-O post v1.17.3, we need to restart your cluster.")
|
||||
out.WarningT("See details at https://github.com/kubernetes/minikube/issues/8861")
|
||||
stopProfile(existing.Name)
|
||||
starter, err = provisionWithDriver(cmd, ds, existing)
|
||||
if err != nil {
|
||||
exit.Error(reason.GuestProvision, "error provisioning host", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -388,18 +401,19 @@ func displayEnviron(env []string) {
|
|||
}
|
||||
|
||||
func showKubectlInfo(kcs *kubeconfig.Settings, k8sVersion string, machineName string) error {
|
||||
register.Reg.SetStep(register.Done)
|
||||
if kcs.KeepContext {
|
||||
out.T(style.Kubectl, "To connect to this cluster, use: kubectl --context={{.name}}", out.V{"name": kcs.ClusterName})
|
||||
} else {
|
||||
out.T(style.Ready, `Done! kubectl is now configured to use "{{.name}}"`, out.V{"name": machineName})
|
||||
}
|
||||
// To be shown at the end, regardless of exit path
|
||||
defer func() {
|
||||
register.Reg.SetStep(register.Done)
|
||||
if kcs.KeepContext {
|
||||
out.T(style.Kubectl, "To connect to this cluster, use: --context={{.name}}", out.V{"name": kcs.ClusterName})
|
||||
} else {
|
||||
out.T(style.Ready, `Done! kubectl is now configured to use "{{.name}}" by default`, out.V{"name": machineName})
|
||||
}
|
||||
}()
|
||||
|
||||
path, err := exec.LookPath("kubectl")
|
||||
if err != nil {
|
||||
out.ErrT(style.Kubectl, "Kubectl not found in your path")
|
||||
out.ErrT(style.Workaround, "You can use kubectl inside minikube. For more information, visit https://minikube.sigs.k8s.io/docs/handbook/kubectl/")
|
||||
out.ErrT(style.Tip, "For best results, install kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl/")
|
||||
out.T(style.Tip, "kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'")
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -419,10 +433,9 @@ func showKubectlInfo(kcs *kubeconfig.Settings, k8sVersion string, machineName st
|
|||
|
||||
if client.Major != cluster.Major || minorSkew > 1 {
|
||||
out.Ln("")
|
||||
out.WarningT("{{.path}} is version {{.client_version}}, which may be incompatible with Kubernetes {{.cluster_version}}.",
|
||||
out.WarningT("{{.path}} is version {{.client_version}}, which may have incompatibilites with Kubernetes {{.cluster_version}}.",
|
||||
out.V{"path": path, "client_version": client, "cluster_version": cluster})
|
||||
out.WarningT("You can also use 'minikube kubectl -- get pods' to invoke a matching version",
|
||||
out.V{"path": path, "client_version": client})
|
||||
out.T(style.Tip, "Want kubectl {{.version}}? Try 'minikube kubectl -- get pods -A'", out.V{"version": k8sVersion})
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -648,11 +661,7 @@ func validateDriver(ds registry.DriverState, existing *config.ClusterConfig) {
|
|||
glog.Infof("status for %s: %+v", name, st)
|
||||
|
||||
if st.NeedsImprovement {
|
||||
out.WarnReason(reason.Kind{
|
||||
ID: fmt.Sprintf("PROVIDER_%s_IMPROVEMENT", strings.ToUpper(name)),
|
||||
Advice: translate.T(st.Fix),
|
||||
Style: style.Improvement,
|
||||
}, `The '{{.driver}}' driver reported a performance issue`, out.V{"driver": name})
|
||||
out.T(style.Improvement, `For improved {{.driver}} performance, {{.fix}}`, out.V{"driver": driver.FullName(ds.Name), "fix": translate.T(st.Fix)})
|
||||
}
|
||||
|
||||
if st.Error == nil {
|
||||
|
@ -868,15 +877,6 @@ func validateRequestedMemorySize(req int, drvName string) {
|
|||
out.WarnReason(reason.RsrcInsufficientReqMemory, "Requested memory allocation ({{.requested}}MB) is less than the recommended minimum {{.recommend}}MB. Deployments may fail.", out.V{"requested": req, "recommend": minRecommendedMem})
|
||||
}
|
||||
|
||||
if driver.IsDockerDesktop(drvName) && containerLimit < 2997 && sysLimit > 8000 { // for users with more than 8 GB advice 3 GB
|
||||
r := reason.RsrcInsufficientDarwinDockerMemory
|
||||
if runtime.GOOS == "Windows" {
|
||||
r = reason.RsrcInsufficientWindowsDockerMemory
|
||||
}
|
||||
r.Style = style.Improvement
|
||||
out.WarnReason(r, "Docker Desktop has access to only {{.size}}MiB of the {{.sys}}MiB in available system memory. Consider increasing this for improved performance.", out.V{"size": containerLimit, "sys": sysLimit, "recommend": "3 GB"})
|
||||
}
|
||||
|
||||
advised := suggestMemoryAllocation(sysLimit, containerLimit, viper.GetInt(nodes))
|
||||
if req > sysLimit {
|
||||
exitIfNotForced(reason.Kind{ID: "RSRC_OVER_ALLOC_MEM", Advice: "Start minikube with less memory allocated: 'minikube start --memory={{.advised}}mb'"},
|
||||
|
|
|
@ -66,8 +66,8 @@ if ! [[ ${VERSION_BUILD} =~ ^[0-9]+$ ]]; then
|
|||
exit 0
|
||||
fi
|
||||
|
||||
echo "Updating Docker images ..."
|
||||
make push-gvisor-addon-image push-storage-provisioner-image
|
||||
#echo "Updating Docker images ..."
|
||||
#make push-gvisor-addon-image push-storage-provisioner-image
|
||||
|
||||
echo "Updating latest bucket for ${VERSION} release ..."
|
||||
gsutil cp -r "gs://${BUCKET}/releases/${TAGNAME}/*" "gs://${BUCKET}/releases/latest/"
|
||||
|
|
|
@ -81,14 +81,6 @@ func (d *Driver) Create() error {
|
|||
APIServerPort: d.NodeConfig.APIServerPort,
|
||||
}
|
||||
|
||||
defaultNetwork := d.MachineName
|
||||
if err := oci.CreateNetwork(defaultNetwork, oci.DefaultIPRange, oci.DefaultGateway); err != nil {
|
||||
glog.Warningf("unable to create docker network; node ip may not be stable: %v", err)
|
||||
} else {
|
||||
params.Network = defaultNetwork
|
||||
params.IP = oci.DefaultIP
|
||||
}
|
||||
|
||||
// control plane specific options
|
||||
params.PortMappings = append(params.PortMappings, oci.PortMapping{
|
||||
ListenAddress: oci.DefaultBindIPV4,
|
||||
|
|
|
@ -72,11 +72,6 @@ func profileInContainers(profile string, containers []string) bool {
|
|||
// gets the ip from user's host docker
|
||||
func dockerGatewayIP(profile string) (net.IP, error) {
|
||||
var bridgeID string
|
||||
// check if using custom network first
|
||||
if networkExists(profile) {
|
||||
ip := net.ParseIP(DefaultGateway)
|
||||
return ip, nil
|
||||
}
|
||||
rr, err := runCmd(exec.Command(Docker, "network", "ls", "--filter", "name=bridge", "--format", "{{.ID}}"))
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "get network bridge")
|
||||
|
@ -195,43 +190,3 @@ func dockerContainerIP(name string) (string, string, error) {
|
|||
|
||||
return ips[0], ips[1], nil
|
||||
}
|
||||
|
||||
// CreateNetwork creates a network
|
||||
func CreateNetwork(name, ipRange, gateway string) error {
|
||||
// check if the network already exists
|
||||
if networkExists(name) {
|
||||
return nil
|
||||
}
|
||||
|
||||
subnet := fmt.Sprintf("--subnet=%s", ipRange)
|
||||
_, err := runCmd(exec.Command(Docker, "network", "create", "--driver=bridge", subnet, "--gateway", gateway, name))
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "error creating network")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// removeNetwork removes a network
|
||||
func removeNetwork(name string) error {
|
||||
if !networkExists(name) {
|
||||
return nil
|
||||
}
|
||||
_, err := runCmd(exec.Command(Docker, "network", "remove", name))
|
||||
return err
|
||||
}
|
||||
|
||||
func networkExists(name string) bool {
|
||||
rr, err := runCmd(exec.Command(Docker, "network", "ls", "--format", "{{.Name}}"))
|
||||
if err != nil {
|
||||
glog.Warningf("error listing networks: %v", err)
|
||||
return false
|
||||
}
|
||||
networks := strings.Split(rr.Output(), "\n")
|
||||
for _, n := range networks {
|
||||
if strings.Trim(n, "\n") == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
|
|
@ -66,8 +66,9 @@ func DeleteContainersByLabel(ociBin string, label string) []error {
|
|||
}
|
||||
|
||||
if _, err := runCmd(exec.Command(ociBin, "rm", "-f", "-v", c)); err != nil {
|
||||
deleteErrs = append(deleteErrs, errors.Wrapf(err, "delete container %s", c))
|
||||
deleteErrs = append(deleteErrs, errors.Wrapf(err, "delete container %s: output %s", c, err))
|
||||
}
|
||||
|
||||
}
|
||||
return deleteErrs
|
||||
}
|
||||
|
@ -88,9 +89,6 @@ func DeleteContainer(ociBin string, name string) error {
|
|||
if _, err := runCmd(exec.Command(ociBin, "rm", "-f", "-v", name)); err != nil {
|
||||
return errors.Wrapf(err, "delete %s", name)
|
||||
}
|
||||
if err := removeNetwork(name); err != nil {
|
||||
return errors.Wrap(err, "removing network")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -153,12 +151,6 @@ func CreateContainerNode(p CreateParams) error {
|
|||
runArgs = append(runArgs, "--volume", fmt.Sprintf("%s:/var:exec", p.Name))
|
||||
}
|
||||
if p.OCIBinary == Docker {
|
||||
// on linux, we can provide a static IP for docker
|
||||
if runtime.GOOS == "linux" && p.Network != "" && p.IP != "" {
|
||||
runArgs = append(runArgs, "--network", p.Network)
|
||||
runArgs = append(runArgs, "--ip", p.IP)
|
||||
}
|
||||
|
||||
runArgs = append(runArgs, "--volume", fmt.Sprintf("%s:/var", p.Name))
|
||||
// ignore apparmore github actions docker: https://github.com/kubernetes/minikube/issues/7624
|
||||
runArgs = append(runArgs, "--security-opt", "apparmor=unconfined")
|
||||
|
@ -177,9 +169,14 @@ func CreateContainerNode(p CreateParams) error {
|
|||
|
||||
if p.OCIBinary == Podman && memcgSwap { // swap is required for memory
|
||||
runArgs = append(runArgs, fmt.Sprintf("--memory=%s", p.Memory))
|
||||
// Disable swap by setting the value to match
|
||||
runArgs = append(runArgs, fmt.Sprintf("--memory-swap=%s", p.Memory))
|
||||
}
|
||||
if p.OCIBinary == Docker { // swap is only required for --memory-swap
|
||||
|
||||
if p.OCIBinary == Docker {
|
||||
runArgs = append(runArgs, fmt.Sprintf("--memory=%s", p.Memory))
|
||||
// Disable swap by setting the value to match
|
||||
runArgs = append(runArgs, fmt.Sprintf("--memory-swap=%s", p.Memory))
|
||||
}
|
||||
|
||||
// https://www.freedesktop.org/wiki/Software/systemd/ContainerInterface/
|
||||
|
|
|
@ -38,12 +38,6 @@ const (
|
|||
nodeRoleLabelKey = "role.minikube.sigs.k8s.io"
|
||||
// CreatedByLabelKey is applied to any container/volume that is created by minikube created_by.minikube.sigs.k8s.io=true
|
||||
CreatedByLabelKey = "created_by.minikube.sigs.k8s.io"
|
||||
// DefaultGateway is the default gateway for the docker network created by the kic driver on linux
|
||||
DefaultGateway = "192.168.39.1"
|
||||
// DefaultIPRange is the default IP range for the docker network created by the kic driver on linux
|
||||
DefaultIPRange = "192.168.39.0/24"
|
||||
// DefaultIP is the default IP for the docker network created by the kic driver on linux
|
||||
DefaultIP = "192.168.39.2"
|
||||
)
|
||||
|
||||
// CreateParams are parameters needed to create a container
|
||||
|
@ -61,8 +55,6 @@ type CreateParams struct {
|
|||
Envs map[string]string // environment variables to pass to the container
|
||||
ExtraArgs []string // a list of any extra option to pass to oci binary during creation time, for example --expose 8080...
|
||||
OCIBinary string // docker or podman
|
||||
Network string // network used by the container
|
||||
IP string // container ip address
|
||||
}
|
||||
|
||||
// createOpt is an option for Create
|
||||
|
|
|
@ -178,9 +178,9 @@ func FullName(name string) string {
|
|||
switch name {
|
||||
case oci.Docker:
|
||||
if IsDockerDesktop(name) {
|
||||
return "Docker for Desktop"
|
||||
return "Docker Desktop"
|
||||
}
|
||||
return "Docker Service"
|
||||
return "Docker"
|
||||
default:
|
||||
return strings.Title(name)
|
||||
}
|
||||
|
|
|
@ -57,8 +57,10 @@ var rootCauses = []string{
|
|||
`Failed to initialize CSINodeInfo.*forbidden`,
|
||||
`Failed to admit pod`,
|
||||
`failed to "StartContainer"`,
|
||||
`Failed to start ContainerManager`,
|
||||
`kubelet.*forbidden.*cannot \w+ resource`,
|
||||
`leases.*forbidden.*cannot \w+ resource`,
|
||||
`failed to start daemon`,
|
||||
}
|
||||
|
||||
// rootCauseRe combines rootCauses into a single regex
|
||||
|
|
|
@ -49,6 +49,8 @@ func TestIsProblem(t *testing.T) {
|
|||
{"regular scheduler services init", false, ` k8s.io/client-go/informers/factory.go:135: Failed to list *v1.Service: services is forbidden: User "system:kube-scheduler" cannot list resource "services" in API group "" at the cluster scope`},
|
||||
{"regular scheduler nodes init", false, `k8s.io/client-go/informers/factory.go:135: Failed to list *v1.Node: nodes is forbidden: User "system:kube-scheduler" cannot list resource "nodes" in API group "" at the cluster scope`},
|
||||
{"kubelet rbac fail", true, `k8s.io/kubernetes/pkg/kubelet/kubelet.go:526: Failed to list *v1.Node: nodes "m01" is forbidden: User "system:node:m01" cannot list resource "nodes" in API group "" at the cluster scope`},
|
||||
{"kubelet pids cgroup", true, `Failed to start ContainerManager failed to initialize top level QOS containers: failed to update top level Burstable QOS cgroup : failed to set supported cgroup subsystems for cgroup [kubepods burstable]: failed to find subsystem mount for required subsystem: pids`},
|
||||
{"docker cgroups v2 fail", true, `failed to start daemon: Devices cgroup isn't mounted`},
|
||||
}
|
||||
for _, tc := range tests {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
|
|
|
@ -409,7 +409,7 @@ func startHost(api libmachine.API, cc *config.ClusterConfig, n *config.Node, del
|
|||
|
||||
// Don't use host.Driver to avoid nil pointer deref
|
||||
drv := cc.Driver
|
||||
out.ErrT(style.Sad, `Failed to start {{.driver}} {{.driver_type}}. "{{.cmd}}" may fix it: {{.error}}`, out.V{"driver": drv, "driver_type": driver.MachineType(drv), "cmd": mustload.ExampleCmd(cc.Name, "start"), "error": err})
|
||||
out.ErrT(style.Sad, `Failed to start {{.driver}} {{.driver_type}}. Running "{{.cmd}}" may fix it: {{.error}}`, out.V{"driver": drv, "driver_type": driver.MachineType(drv), "cmd": mustload.ExampleCmd(cc.Name, "delete"), "error": err})
|
||||
return host, exists, err
|
||||
}
|
||||
|
||||
|
|
|
@ -191,6 +191,25 @@ var hostIssues = []match{
|
|||
},
|
||||
Regexp: re(`Container.*is not running.*chown docker:docker`),
|
||||
},
|
||||
{
|
||||
Kind: Kind{
|
||||
ID: "HOST_PIDS_CGROUP",
|
||||
ExitCode: ExHostUnsupported,
|
||||
Advice: "Ensure that the required 'pids' cgroup is enabled on your host: grep pids /proc/cgroups",
|
||||
Issues: []int{6411},
|
||||
},
|
||||
Regexp: re(`failed to find subsystem mount for required subsystem: pids`),
|
||||
GOOS: []string{"linux"},
|
||||
},
|
||||
{
|
||||
Kind: Kind{
|
||||
ID: "HOST_HOME_PERMISSION",
|
||||
ExitCode: ExGuestPermission,
|
||||
Advice: "Your user lacks permissions to the minikube profile directory. Run: 'sudo chown -R $USER $HOME/.minikube; chmod -R u+wrx $HOME/.minikube' to fix",
|
||||
Issues: []int{9165},
|
||||
},
|
||||
Regexp: re(`/.minikube/.*: permission denied`),
|
||||
},
|
||||
}
|
||||
|
||||
// providerIssues are failures relating to a driver provider
|
||||
|
@ -237,6 +256,28 @@ var providerIssues = []match{
|
|||
},
|
||||
Regexp: re(`executing "" at <index (index .NetworkSettings.Ports "22/tcp") 0>`),
|
||||
},
|
||||
{
|
||||
Kind: Kind{
|
||||
ID: "PR_DOCKER_MOUNTS_EOF",
|
||||
ExitCode: ExProviderError,
|
||||
Advice: "Reset Docker to factory defaults",
|
||||
Issues: []int{8832},
|
||||
URL: "https://docs.docker.com/docker-for-mac/#reset",
|
||||
},
|
||||
GOOS: []string{"darwin"},
|
||||
Regexp: re(`docker:.*Mounts denied: EOF`),
|
||||
},
|
||||
{
|
||||
Kind: Kind{
|
||||
ID: "PR_DOCKER_MOUNTS_EOF",
|
||||
ExitCode: ExProviderError,
|
||||
Advice: "Reset Docker to factory defaults",
|
||||
Issues: []int{8832},
|
||||
URL: "https://docs.docker.com/docker-for-windows/#reset",
|
||||
},
|
||||
GOOS: []string{"windows"},
|
||||
Regexp: re(`docker:.*Mounts denied: EOF`),
|
||||
},
|
||||
|
||||
// Hyperkit hypervisor
|
||||
{
|
||||
|
@ -303,6 +344,28 @@ var providerIssues = []match{
|
|||
Regexp: re(`The requested operation requires elevation.`),
|
||||
GOOS: []string{"windows"},
|
||||
},
|
||||
{
|
||||
Kind: Kind{
|
||||
ID: "PR_POWERSHELL_CONSTRAINED",
|
||||
ExitCode: ExProviderPermission,
|
||||
Advice: "PowerShell is running in constrained mode, which is incompatible with Hyper-V scripting.",
|
||||
Issues: []int{7990, 6098},
|
||||
URL: "https://devblogs.microsoft.com/powershell/powershell-constrained-language-mode/",
|
||||
},
|
||||
Regexp: re(`MethodInvocationNotSupportedInConstrainedLanguage`),
|
||||
GOOS: []string{"windows"},
|
||||
},
|
||||
{
|
||||
Kind: Kind{
|
||||
ID: "PR_HYPERV_MODULE_NOT_INSTALLED",
|
||||
ExitCode: ExProviderNotFound,
|
||||
Advice: "Run: 'Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Tools-All'",
|
||||
Issues: []int{9040},
|
||||
URL: "https://www.altaro.com/hyper-v/install-hyper-v-powershell-module/",
|
||||
},
|
||||
Regexp: re(`Hyper-V PowerShell Module is not available`),
|
||||
GOOS: []string{"windows"},
|
||||
},
|
||||
|
||||
// KVM hypervisor
|
||||
{
|
||||
|
@ -857,6 +920,33 @@ var guestIssues = []match{
|
|||
Regexp: re(`The process cannot access the file because it is being used by another process`),
|
||||
GOOS: []string{"windows"},
|
||||
},
|
||||
{
|
||||
Kind: Kind{
|
||||
ID: "GUEST_NOT_FOUND",
|
||||
ExitCode: ExGuestNotFound,
|
||||
Advice: "minikube is missing files relating to your guest environment. This can be fixed by running 'minikube delete'",
|
||||
Issues: []int{9130},
|
||||
},
|
||||
Regexp: re(`config.json: The system cannot find the file specified`),
|
||||
},
|
||||
{
|
||||
Kind: Kind{
|
||||
ID: "GUEST_SSH_CERT_NOT_FOUND",
|
||||
ExitCode: ExGuestNotFound,
|
||||
Advice: "minikube is missing files relating to your guest environment. This can be fixed by running 'minikube delete'",
|
||||
Issues: []int{9130},
|
||||
},
|
||||
Regexp: re(`id_rsa: no such file or directory`),
|
||||
},
|
||||
{
|
||||
Kind: Kind{
|
||||
ID: "GUEST_CONFIG_CORRUPT",
|
||||
ExitCode: ExGuestConfig,
|
||||
Advice: "The existing node configuration appears to be corrupt. Run 'minikube delete'",
|
||||
Issues: []int{9175},
|
||||
},
|
||||
Regexp: re(`configuration.*corrupt`),
|
||||
},
|
||||
}
|
||||
|
||||
// runtimeIssues are container runtime issues (containerd, docker, etc)
|
||||
|
@ -865,7 +955,7 @@ var runtimeIssues = []match{
|
|||
Kind: Kind{
|
||||
ID: "RT_DOCKER_RESTART",
|
||||
ExitCode: ExRuntimeError,
|
||||
Advice: "Remove the incompatible --docker-opt flag if one was provided",
|
||||
Advice: "Remove the invalid --docker-opt or --insecure-registry flag if one was provided",
|
||||
Issues: []int{7070},
|
||||
},
|
||||
Regexp: re(`systemctl -f restart docker`),
|
||||
|
@ -962,6 +1052,16 @@ var controlPlaneIssues = []match{
|
|||
},
|
||||
Regexp: re(`dnsDomain: Invalid`),
|
||||
},
|
||||
{
|
||||
Kind: Kind{
|
||||
ID: "K8S_INVALID_CERT_HOSTNAME",
|
||||
ExitCode: ExControlPlaneConfig,
|
||||
Advice: "The certificate hostname provided appears to be invalid (may be a minikube bug, try 'minikube delete')",
|
||||
NewIssueLink: true,
|
||||
Issues: []int{9175},
|
||||
},
|
||||
Regexp: re(`apiServer.certSANs: Invalid value`),
|
||||
},
|
||||
}
|
||||
|
||||
// serviceIssues are issues with services running on top of Kubernetes
|
||||
|
|
|
@ -62,6 +62,9 @@ VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component MachineWrap,
|
|||
{6109, "", "INET_DOWNLOAD_BLOCKED", `Failed to update cluster: downloading binaries: downloading kubelet: Error downloading kubelet v1.16.2: failed to download: failed to download to temp file: failed to copy contents: read tcp 192.168.0.106:61314->172.217.166.176:443: wsarecv: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.`},
|
||||
{6109, "", "INET_DOWNLOAD_BLOCKED", `Failed to update cluster: downloading binaries: downloading kubeadm: Error downloading kubeadm v1.17.0: failed to download: failed to download to temp file: failed to copy contents: read tcp [2606:a000:81c5:1e00:349a:26c0:7ea6:bbf1]:55317->[2607:f8b0:4004:815::2010]:443: wsarecv: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.`},
|
||||
{4277, "linux", "PR_KVM_MSR", `Unable to start VM: start: Error creating VM: virError(Code=1, Domain=10, Message='internal error: qemu unexpectedly closed the monitor: 2019-05-17T02:20:07.980140Z qemu-system-x86_64: error: failed to set MSR 0x38d to 0x0 qemu-system-x86_64: /build/qemu-lXHhGe/qemu-2.11+dfsg/target/i386/kvm.c:1807: kvm_put_msrs: Assertion ret == cpu->kvm_msr_buf->nmsrs failed.`},
|
||||
{8832, "macos", "PR_DOCKER_MOUNTS_EOF", `docker: Error response from daemon: Mounts denied: EOF.`},
|
||||
{9165, "", "HOST_HOME_PERMISSION", `open /Users/conradwt/.minikube/profiles/gcloud-local-dev/config.json: permission denied`},
|
||||
{9175, "", "GUEST_CONFIG_CORRUPT", " updating control plane: generating kubeadm cfg: generating extra component config for kubeadm: controlPlane configuration is corrupt: no name: {Name: IP: Port:8443 KubernetesVersion:v1.19.0 ControlPlane:true Worker:true}"},
|
||||
}
|
||||
for _, tc := range tests {
|
||||
t.Run(tc.want, func(t *testing.T) {
|
||||
|
|
|
@ -214,6 +214,7 @@ var (
|
|||
GuestDeletion = Kind{ID: "GUEST_DELETION", ExitCode: ExGuestError}
|
||||
GuestLoadHost = Kind{ID: "GUEST_LOAD_HOST", ExitCode: ExGuestError}
|
||||
GuestMount = Kind{ID: "GUEST_MOUNT", ExitCode: ExGuestError}
|
||||
GuestMountConflict = Kind{ID: "GUEST_MOUNT_CONFLICT", ExitCode: ExGuestConflict}
|
||||
GuestNodeAdd = Kind{ID: "GUEST_NODE_ADD", ExitCode: ExGuestError}
|
||||
GuestNodeDelete = Kind{ID: "GUEST_NODE_DELETE", ExitCode: ExGuestError}
|
||||
GuestNodeProvision = Kind{ID: "GUEST_NODE_PROVISION", ExitCode: ExGuestError}
|
||||
|
|
|
@ -19,6 +19,7 @@ package docker
|
|||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"os"
|
||||
"os/exec"
|
||||
"runtime"
|
||||
"strings"
|
||||
|
@ -119,42 +120,24 @@ func status() registry.State {
|
|||
func checkNeedsImprovement() registry.State {
|
||||
if runtime.GOOS == "linux" {
|
||||
return checkOverlayMod()
|
||||
} // TODO #8540: on non-linux check if docker desktop has enough CPU/memory
|
||||
}
|
||||
return registry.State{Installed: true, Healthy: true}
|
||||
}
|
||||
|
||||
// checkOverlayMod checks if
|
||||
func checkOverlayMod() registry.State {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 6*time.Second)
|
||||
defer cancel()
|
||||
cmd := exec.CommandContext(ctx, "modprobe", "overlay")
|
||||
_, err := cmd.Output()
|
||||
if err != nil {
|
||||
// try a different way
|
||||
cmd = exec.CommandContext(ctx, "uname", "-r")
|
||||
out, err := cmd.Output()
|
||||
if ctx.Err() == context.DeadlineExceeded {
|
||||
glog.Warningf("%q timed out checking for ", strings.Join(cmd.Args, " "))
|
||||
return registry.State{NeedsImprovement: true, Installed: true, Healthy: true, Fix: "enable overlayfs kernel module on your Linux"}
|
||||
}
|
||||
if err != nil {
|
||||
glog.Warningf("couldn't verify the linux distro's uname : %s", err)
|
||||
return registry.State{NeedsImprovement: true, Installed: true, Healthy: true, Fix: "enable overlayfs kernel module on your Linux"}
|
||||
}
|
||||
path := fmt.Sprintf("/lib/modules/%s/modules.builtin", string(out))
|
||||
cmd = exec.CommandContext(ctx, "cat", path)
|
||||
out, err = cmd.Output()
|
||||
if err != nil {
|
||||
glog.Warningf("overlay module was not found in %q", path)
|
||||
return registry.State{NeedsImprovement: true, Installed: true, Healthy: true, Fix: "enable overlayfs kernel module on your Linux"}
|
||||
}
|
||||
if strings.Contains(string(out), "overlay") { // success
|
||||
return registry.State{NeedsImprovement: false, Installed: true, Healthy: true}
|
||||
}
|
||||
glog.Warningf("overlay module was not found")
|
||||
return registry.State{NeedsImprovement: true, Installed: true, Healthy: true}
|
||||
if _, err := os.Stat("/sys/module/overlay"); err == nil {
|
||||
glog.Info("overlay module found")
|
||||
return registry.State{Installed: true, Healthy: true}
|
||||
}
|
||||
return registry.State{Installed: true, Healthy: true}
|
||||
|
||||
if _, err := os.Stat("/sys/module/overlay2"); err == nil {
|
||||
glog.Info("overlay2 module found")
|
||||
return registry.State{Installed: true, Healthy: true}
|
||||
}
|
||||
|
||||
glog.Warningf("overlay modules were not found")
|
||||
return registry.State{NeedsImprovement: true, Installed: true, Healthy: true, Fix: "enable the overlay Linux kernel module using 'modprobe overlay'"}
|
||||
}
|
||||
|
||||
// suggestFix matches a stderr with possible fix for the docker driver
|
||||
|
|
|
@ -65,7 +65,7 @@ minikube start [flags]
|
|||
--insecure-registry strings Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added.
|
||||
--install-addons If set, install addons. Defaults to true. (default true)
|
||||
--interactive Allow user prompts for more information (default true)
|
||||
--iso-url strings Locations to fetch the minikube ISO from. (default [https://storage.googleapis.com/minikube/iso/minikube-v1.12.2.iso,https://github.com/kubernetes/minikube/releases/download/v1.12.2/minikube-v1.12.2.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.12.2.iso])
|
||||
--iso-url strings Locations to fetch the minikube ISO from. (default [https://storage.googleapis.com/minikube/iso/minikube-v1.13.0.iso,https://github.com/kubernetes/minikube/releases/download/v1.13.0/minikube-v1.13.0.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.13.0.iso])
|
||||
--keep-context This will keep the existing kubectl context and will create a minikube context.
|
||||
--kubernetes-version string The Kubernetes version that the minikube VM will use (ex: v1.2.3, 'stable' for v1.19.0, 'latest' for v1.19.0). Defaults to 'stable'.
|
||||
--kvm-gpu Enable experimental NVIDIA GPU support in minikube
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"\"The '{{.minikube_addon}}' addon is disabled": "",
|
||||
"\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "",
|
||||
"\"{{.machineName}}\" does not exist, nothing to stop": "",
|
||||
"\"{{.minikube_addon}}\" was successfully disabled": "\"{{.minikube_addon}}\" został wyłaczony",
|
||||
"\"{{.minikube_addon}}\" was successfully disabled": "\"{{.minikube_addon}}\" został wyłączony",
|
||||
"\"{{.name}}\" profile does not exist": "Profil \"{{.name}}\" nie istnieje",
|
||||
"\"{{.name}}\" profile does not exist, trying anyways.": "",
|
||||
"\"{{.profile_name}}\" VM does not exist, nothing to stop": "Maszyna wirtualna \"{{.profile_name}}\" nie istnieje. Nie można zatrzymać",
|
||||
|
@ -42,11 +42,11 @@
|
|||
"Aliases": "Aliasy",
|
||||
"Allow user prompts for more information": "",
|
||||
"Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \\\"auto\\\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "",
|
||||
"Amount of RAM allocated to the minikube VM (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g)": "Ilość zarezerwowanej pamieci RAM dla maszyny wirtualnej minikube (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or )",
|
||||
"Amount of RAM allocated to the minikube VM (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g).": "Ilość zarezerwowanej pamieci RAM dla maszyny wirtualnej minikube (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or )",
|
||||
"Amount of RAM allocated to the minikube VM (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g)": "Ilość zarezerwowanej pamięci RAM dla maszyny wirtualnej minikube (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or )",
|
||||
"Amount of RAM allocated to the minikube VM (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g).": "Ilość zarezerwowanej pamięci RAM dla maszyny wirtualnej minikube (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or )",
|
||||
"Amount of RAM to allocate to Kubernetes (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g).": "",
|
||||
"Amount of time to wait for a service in seconds": "Czas oczekiwania na serwis w sekundach",
|
||||
"Amount of time to wait for service in seconds": "Czas oczekiwania na servis w sekundach",
|
||||
"Amount of time to wait for service in seconds": "Czas oczekiwania na serwis w sekundach",
|
||||
"Another hypervisor, such as VirtualBox, is conflicting with KVM. Please stop the other hypervisor, or use --driver to switch to it.": "",
|
||||
"Another program is using a file required by minikube. If you are using Hyper-V, try stopping the minikube VM from within the Hyper-V manager": "",
|
||||
"Automatically selected the {{.driver}} driver": "",
|
||||
|
@ -57,14 +57,14 @@
|
|||
"Bind Address: {{.Address}}": "",
|
||||
"Both driver={{.driver}} and vm-driver={{.vmd}} have been set.\n\n Since vm-driver is deprecated, minikube will default to driver={{.driver}}.\n\n If vm-driver is set in the global config, please run \"minikube config unset vm-driver\" to resolve this warning.": "",
|
||||
"CNI plug-in to use. Valid options: auto, bridge, calico, cilium, flannel, kindnet, or path to a CNI manifest (default: auto)": "",
|
||||
"Cannot find directory {{.path}} for mount": "Nie można odnoleść folderu {{.path}} do zamontowania",
|
||||
"Cannot find directory {{.path}} for mount": "Nie można odnaleźć folderu {{.path}} do zamontowania",
|
||||
"Cannot use both --output and --format options": "",
|
||||
"Check if you have unnecessary pods running by running 'kubectl get po -A": "",
|
||||
"Check output of 'journalctl -xeu kubelet', try passing --extra-config=kubelet.cgroup-driver=systemd to minikube start": "",
|
||||
"Check that SELinux is disabled, and that the provided apiserver flags are valid": "",
|
||||
"Check that minikube is running and that you have specified the correct namespace (-n flag) if required.": "Upewnij się że minikube zpstało uruchomione i że podano poprawną przestrzeń nazw(-n flag) celem zamontowania",
|
||||
"Check that minikube is running and that you have specified the correct namespace (-n flag) if required.": "Upewnij się, że minikube zostało uruchomione i że podano poprawną przestrzeń nazw (flaga -n) celem zamontowania",
|
||||
"Check that the provided apiserver flags are valid, and that SELinux is disabled": "",
|
||||
"Check that your --kubernetes-version has a leading 'v'. For example: 'v1.1.14'": "Upewnij się że --kubernetes-version ma 'v' z przodu. Na przykład `v1.1.14`",
|
||||
"Check that your --kubernetes-version has a leading 'v'. For example: 'v1.1.14'": "Upewnij się, że --kubernetes-version ma 'v' z przodu. Na przykład `v1.1.14`",
|
||||
"Check your firewall rules for interference, and run 'virt-host-validate' to check for KVM configuration issues. If you are running minikube within a VM, consider using --driver=none": "",
|
||||
"Choose a smaller value for --memory, such as 2000": "",
|
||||
"Configuration and Management Commands:": "Polecenia konfiguracji i zarządzania",
|
||||
|
@ -73,8 +73,8 @@
|
|||
"Configure environment to use minikube's Docker daemon": "",
|
||||
"Configure environment to use minikube's Podman service": "",
|
||||
"Configures the addon w/ADDON_NAME within minikube (example: minikube addons configure registry-creds). For a list of available addons use: minikube addons list": "",
|
||||
"Configuring environment for Kubernetes {{.k8sVersion}} on {{.runtime}} {{.runtimeVersion}}": "Konfiguruje środowisko dla: Kubernetesa w wersji {{.k8sVersion}} na {{.runtime}} {{.runtimeVersion}}",
|
||||
"Configuring local host environment ...": "Konfiguruje lokalne środowisko hosta",
|
||||
"Configuring environment for Kubernetes {{.k8sVersion}} on {{.runtime}} {{.runtimeVersion}}": "Konfigurowanie środowiska dla Kubernetesa w wersji {{.k8sVersion}} na {{.runtime}} {{.runtimeVersion}}",
|
||||
"Configuring local host environment ...": "Konfigurowanie lokalnego środowiska hosta...",
|
||||
"Configuring {{.name}} (Container Networking Interface) ...": "",
|
||||
"Confirm that you have a working internet connection and that your VM has not run out of resources by using: 'minikube logs'": "",
|
||||
"Confirm that you have supplied the correct value to --hyperv-virtual-switch using the 'Get-VMSwitch' command": "",
|
||||
|
@ -95,13 +95,13 @@
|
|||
"DEPRECATED, use `driver` instead.": "",
|
||||
"DEPRECATED: Replaced by --cni=bridge": "",
|
||||
"Default group id used for the mount": "Domyślne id groupy użyte dla montowania",
|
||||
"Default user id used for the mount": "Domyślne id użytkownia użyte dla montowania ",
|
||||
"Default user id used for the mount": "Domyślne id użytkownika użyte dla montowania ",
|
||||
"Delete an image from the local cache.": "",
|
||||
"Deletes a local Kubernetes cluster": "",
|
||||
"Deletes a local Kubernetes cluster. This command deletes the VM, and removes all\nassociated files.": "",
|
||||
"Deletes a local kubernetes cluster": "Usuwa lokalny klaster kubernetesa",
|
||||
"Deletes a local kubernetes cluster. This command deletes the VM, and removes all\nassociated files.": "Usuwa lokalny klaster kubernetesa. Ta komenda usuwa maszynę wirtualna i wszystkie powiązane pliki.",
|
||||
"Deletes a local kubernetes cluster. This command deletes the VM, and removes all associated files.": "Usuwa lokalny klaster kubernetesa. Ta komenda usuwa maszynę wirtualna i wszystkie powiązane pliki.",
|
||||
"Deletes a local kubernetes cluster. This command deletes the VM, and removes all\nassociated files.": "Usuwa lokalny klaster kubernetesa. Ta komenda usuwa maszynę wirtualną i wszystkie powiązane pliki.",
|
||||
"Deletes a local kubernetes cluster. This command deletes the VM, and removes all associated files.": "Usuwa lokalny klaster kubernetesa. Ta komenda usuwa maszynę wirtualną i wszystkie powiązane pliki.",
|
||||
"Deletes a node from a cluster.": "",
|
||||
"Deleting \"{{.profile_name}}\" in {{.driver_name}} ...": "Usuwanie \"{{.profile_name}}\" - {{.driver_name}}...",
|
||||
"Deleting container \"{{.name}}\" ...": "",
|
||||
|
@ -135,7 +135,7 @@
|
|||
"ERROR creating `registry-creds-gcr` secret: {{.error}}": "",
|
||||
"Either systemctl is not installed, or Docker is broken. Run 'sudo systemctl start docker' and 'journalctl -u docker'": "",
|
||||
"Enable addons. see `minikube addons list` for a list of valid addon names.": "",
|
||||
"Enable experimental NVIDIA GPU support in minikube": "aktywuj eksperymentalne wsparcie minikube dla NVIDIA GPU",
|
||||
"Enable experimental NVIDIA GPU support in minikube": "Aktywuj eksperymentalne wsparcie minikube dla NVIDIA GPU",
|
||||
"Enable host resolver for NAT DNS requests (virtualbox driver only)": "",
|
||||
"Enable or disable a minikube addon": "",
|
||||
"Enable proxy for NAT DNS requests (virtualbox driver only)": "",
|
||||
|
@ -151,7 +151,7 @@
|
|||
"Ensure your {{.driver_name}} is running and is healthy.": "",
|
||||
"Ensure your {{.driver_name}} system has enough CPUs. The minimum allowed is 2 CPUs.": "",
|
||||
"Environment variables to pass to the Docker daemon. (format: key=value)": "Zmienne środowiskowe do przekazania do demona docker (format: klucz-wartość)",
|
||||
"Error checking driver version: {{.error}}": "Błąd podczas sprawdzania wersij sterownika : {{.error}}",
|
||||
"Error checking driver version: {{.error}}": "Błąd podczas sprawdzania wersji sterownika : {{.error}}",
|
||||
"Error creating minikube directory": "",
|
||||
"Error creating view template": "",
|
||||
"Error detecting shell": "",
|
||||
|
@ -239,7 +239,7 @@
|
|||
"Generate unable to parse disk size '{{.diskSize}}': {{.error}}": "",
|
||||
"Generate unable to parse memory '{{.memory}}': {{.error}}": "",
|
||||
"Get or list the current profiles (clusters)": "",
|
||||
"Gets the logs of the running instance, used for debugging minikube, not user code.": "Pobiera logi z aktualnie uruchomionej instancji. Przydatne do debugowania kodu który nie należy do aplikacji użytkownika",
|
||||
"Gets the logs of the running instance, used for debugging minikube, not user code.": "Pobiera logi z aktualnie uruchomionej instancji. Przydatne do debugowania kodu, który nie należy do aplikacji użytkownika",
|
||||
"Gets the status of a local Kubernetes cluster": "",
|
||||
"Gets the status of a local Kubernetes cluster.\n\tExit status contains the status of minikube's VM, cluster and Kubernetes encoded on it's bits in this order from right to left.\n\tEg: 7 meaning: 1 (for minikube NOK) + 2 (for cluster NOK) + 4 (for Kubernetes NOK)": "",
|
||||
"Gets the status of a local kubernetes cluster": "Pobiera aktualny status klastra kubernetesa",
|
||||
|
@ -343,7 +343,7 @@
|
|||
"Operations on nodes": "",
|
||||
"Options: {{.options}}": "",
|
||||
"Output format. Accepted values: [json]": "",
|
||||
"Outputs minikube shell completion for the given shell (bash or zsh)": "Zwraca autouzupełnianie poleceń minikube dla powłoki system(bash, zsh)",
|
||||
"Outputs minikube shell completion for the given shell (bash or zsh)": "Zwraca autouzupełnianie poleceń minikube dla danej powłoki (bash, zsh)",
|
||||
"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": "",
|
||||
"Pause": "",
|
||||
"Paused {{.count}} containers": "",
|
||||
|
@ -370,7 +370,7 @@
|
|||
"Please visit the following link for documentation around this: \n\thttps://help.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-docker-for-use-with-github-packages#authenticating-to-github-packages": "",
|
||||
"Populates the specified folder with documentation in markdown about minikube": "",
|
||||
"Powering off \"{{.profile_name}}\" via SSH ...": "",
|
||||
"Preparing Kubernetes {{.k8sVersion}} on {{.runtime}} {{.runtimeVersion}} ...": "przygotowywanie Kubernetesa {{.k8sVersion}} na {{.runtime}} {{.runtimeVersion}}...",
|
||||
"Preparing Kubernetes {{.k8sVersion}} on {{.runtime}} {{.runtimeVersion}} ...": "Przygotowywanie Kubernetesa {{.k8sVersion}} na {{.runtime}} {{.runtimeVersion}}...",
|
||||
"Print current and latest version number": "Wyświetl aktualną i najnowszą wersję",
|
||||
"Print just the version number.": "",
|
||||
"Print the version of minikube": "Wyświetl wersję minikube",
|
||||
|
@ -383,7 +383,7 @@
|
|||
"Profile name '{{.profilename}}' is not valid": "",
|
||||
"Provide VM UUID to restore MAC address (hyperkit driver only)": "",
|
||||
"Pulling base image ...": "",
|
||||
"Reboot to complete VirtualBox installation, and verify that VirtualBox is not blocked by your system": "Uruchom ponownie komputer aby zakończyć instalacje VirtualBox'a i upewnij się, że nie jest on blokowany przez twój system",
|
||||
"Reboot to complete VirtualBox installation, and verify that VirtualBox is not blocked by your system": "Uruchom ponownie komputer aby zakończyć instalację VirtualBox'a i upewnij się, że nie jest on blokowany przez twój system",
|
||||
"Reboot to complete VirtualBox installation, verify that VirtualBox is not blocked by your system, and/or use another hypervisor": "",
|
||||
"Rebuild libvirt with virt-network support": "",
|
||||
"Received {{.name}} signal": "",
|
||||
|
@ -497,7 +497,7 @@
|
|||
"The Docker service within '{{.name}}' is not active": "",
|
||||
"The KVM QEMU connection URI. (kvm2 driver only)": "",
|
||||
"The KVM driver is unable to resurrect this old VM. Please run `minikube delete` to delete it and try again.": "",
|
||||
"The KVM network name. (kvm2 driver only)": "Nazwa sieci KVM(wspierane tylko przez kvm2)",
|
||||
"The KVM network name. (kvm2 driver only)": "Nazwa sieci KVM. (wspierane tylko przez kvm2)",
|
||||
"The VM driver crashed. Run 'minikube start --alsologtostderr -v=8' to see the VM driver error message": "",
|
||||
"The VM driver exited with an error, and may be corrupt. Run 'minikube start' with --alsologtostderr -v=8 to see the error": "",
|
||||
"The VM that minikube is configured for no longer exists. Run 'minikube delete'": "",
|
||||
|
@ -506,7 +506,7 @@
|
|||
"The authoritative apiserver hostname for apiserver certificates and connectivity. This can be used if you want to make the apiserver available from outside the machine": "",
|
||||
"The base image to use for docker/podman drivers. Intended for local development.": "",
|
||||
"The cluster dns domain name used in the Kubernetes cluster": "",
|
||||
"The cluster dns domain name used in the kubernetes cluster": "Domena dns clastra użyta przez kubernetesa",
|
||||
"The cluster dns domain name used in the kubernetes cluster": "Domena dns klastra użyta przez kubernetesa",
|
||||
"The cluster {{.cluster}} already exists which means the --nodes parameter will be ignored. Use \"minikube node add\" to add nodes to an existing cluster.": "",
|
||||
"The container runtime to be used (docker, crio, containerd)": "Runtime konteneryzacji (docker, crio, containerd).",
|
||||
"The control plane for \"{{.name}}\" is paused!": "",
|
||||
|
@ -523,7 +523,7 @@
|
|||
"The hyperv virtual switch name. Defaults to first found. (hyperv driver only)": "",
|
||||
"The hypervisor does not appear to be configured properly. Run 'minikube start --alsologtostderr -v=1' and inspect the error code": "",
|
||||
"The initial time interval for each check that wait performs in seconds": "",
|
||||
"The kubernetes version that the minikube VM will use (ex: v1.2.3)": "Wersja kubernetesa która zostanie użyta przez wirtualną maszyna minikube (np. v1.2.3)",
|
||||
"The kubernetes version that the minikube VM will use (ex: v1.2.3)": "Wersja kubernetesa, która zostanie użyta przez wirtualną maszynę minikube (np. v1.2.3)",
|
||||
"The machine-driver specified is failing to start. Try running 'docker-machine-driver-\u003ctype\u003e version'": "",
|
||||
"The minikube VM is offline. Please run 'minikube start' to start it again.": "",
|
||||
"The minikube {{.driver_name}} container exited unexpectedly.": "",
|
||||
|
@ -551,7 +551,7 @@
|
|||
"The value passed to --format is invalid": "Wartość przekazana do --format jest nieprawidłowa",
|
||||
"The value passed to --format is invalid: {{.error}}": "Wartość przekazana do --format jest nieprawidłowa: {{.error}}",
|
||||
"The vmwarefusion driver is deprecated and support for it will be removed in a future release.\n\t\t\tPlease consider switching to the new vmware unified driver, which is intended to replace the vmwarefusion driver.\n\t\t\tSee https://minikube.sigs.k8s.io/docs/reference/drivers/vmware/ for more information.\n\t\t\tTo disable this message, run [minikube config set ShowDriverDeprecationNotification false]": "",
|
||||
"The {{.driver_name}} driver should not be used with root privileges.": "{{.driver_name}} nie powinien byc używany z przywilejami root'a.",
|
||||
"The {{.driver_name}} driver should not be used with root privileges.": "{{.driver_name}} nie powinien być używany z przywilejami root'a.",
|
||||
"There is no local cluster named \"{{.cluster}}\"": "",
|
||||
"These --extra-config parameters are invalid: {{.invalid_extra_opts}}": "",
|
||||
"These changes will take effect upon a minikube delete and then a minikube start": "",
|
||||
|
@ -565,8 +565,8 @@
|
|||
"This {{.type}} is having trouble accessing https://{{.repository}}": "",
|
||||
"Tip: To remove this root owned cluster, run: sudo {{.cmd}}": "",
|
||||
"To connect to this cluster, use: kubectl --context={{.name}}": "Aby połączyć się z klastrem użyj: kubectl --context={{.name}}",
|
||||
"To connect to this cluster, use: kubectl --context={{.profile_name}}": "Aby połaczyć się z klastem uzyj: kubectl --context={{.profile_name}}",
|
||||
"To disable this notice, run: 'minikube config set WantUpdateNotification false'": "Aby wyłączyć te notyfikację, użyj: 'minikube config set WantUpdateNotification false'",
|
||||
"To connect to this cluster, use: kubectl --context={{.profile_name}}": "Aby połaczyć się z klastrem użyj: kubectl --context={{.profile_name}}",
|
||||
"To disable this notice, run: 'minikube config set WantUpdateNotification false'": "Aby wyłączyć tę notyfikację, użyj: 'minikube config set WantUpdateNotification false'",
|
||||
"To disable this notice, run: 'minikube config set WantUpdateNotification false'\\n": "",
|
||||
"To fix this, run: \"{{.command}}\"": "",
|
||||
"To proceed, either:\n\n1) Delete the existing \"{{.name}}\" cluster using: '{{.delcommand}}'\n\n* or *\n\n2) Start the existing \"{{.name}}\" cluster using: '{{.command}} --driver={{.old}}'": "",
|
||||
|
@ -649,13 +649,13 @@
|
|||
"VM driver is one of: %v": "Sterownik wirtualnej maszyny to jeden z: %v",
|
||||
"Valid components are: {{.valid_extra_opts}}": "",
|
||||
"Validation unable to parse disk size '{{.diskSize}}': {{.error}}": "",
|
||||
"Verify that your HTTP_PROXY and HTTPS_PROXY environment variables are set correctly.": "Weryfikuję czy zmienne HTTP_PROXY i HTTPS_PROXY sa ustawione poprawnie",
|
||||
"Verify the IP address of the running cluster in kubeconfig.": "Weryfikuję adres IP działającego klastra w kubeconfig",
|
||||
"Verify that your HTTP_PROXY and HTTPS_PROXY environment variables are set correctly.": "Zweryfikuj czy zmienne HTTP_PROXY i HTTPS_PROXY są ustawione poprawnie",
|
||||
"Verify the IP address of the running cluster in kubeconfig.": "Weryfikacja adresu IP działającego klastra w kubeconfig",
|
||||
"Verifying Kubernetes components...": "",
|
||||
"Verifying dashboard health ...": "Weryfikuję status dashboardu",
|
||||
"Verifying proxy health ...": "Weryfukuje status proxy",
|
||||
"Verifying dashboard health ...": "Weryfikowanie statusu dashboardu...",
|
||||
"Verifying proxy health ...": "Weryfikowanie statusu proxy...",
|
||||
"Verifying {{.addon_name}} addon...": "",
|
||||
"Verifying:": "Weryfikuje :",
|
||||
"Verifying:": "Weryfikowanie :",
|
||||
"Version: {{.version}}": "",
|
||||
"VirtualBox and Hyper-V are having a conflict. Use '--driver=hyperv' or disable Hyper-V using: 'bcdedit /set hypervisorlaunchtype off'": "",
|
||||
"VirtualBox cannot create a network, probably because it conflicts with an existing network that minikube no longer knows about. Try running 'minikube delete'": "",
|
||||
|
@ -684,7 +684,7 @@
|
|||
"Your Docker Desktop container OS type is Windows but Linux is required.": "",
|
||||
"Your Docker Desktop has less than 2 CPUs. Increase CPUs for Docker Desktop. \n\t\n\tDocker icon \u003e Settings \u003e Resources \u003e CPUs": "",
|
||||
"Your GCP credentials will now be mounted into every pod created in the {{.name}} cluster.": "",
|
||||
"Your host does not support KVM virtualization. Ensure that qemu-kvm is installed, and run 'virt-host-validate' to debug the problem": "Twoje środowisko nie wspiera virtualizacji KVM. Upewnij się że qemu-kvm jest zainstalowane i uruchom 'virt-host-validate' aby rozwiązać problem.",
|
||||
"Your host does not support KVM virtualization. Ensure that qemu-kvm is installed, and run 'virt-host-validate' to debug the problem": "Twoje środowisko nie wspiera wirtualizacji KVM. Upewnij się, że qemu-kvm jest zainstalowane i uruchom 'virt-host-validate' aby rozwiązać problem.",
|
||||
"Your host does not support virtualization. If you are running minikube within a VM, try '--driver=docker'. Otherwise, enable virtualization in your BIOS": "",
|
||||
"Your host is failing to route packets to the minikube VM. If you have VPN software, try turning it off or configuring it so that it does not re-route traffic to the VM IP. If not, check your VM environment routing options.": "",
|
||||
"Your minikube config refers to an unsupported driver. Erase ~/.minikube, and try again.": "",
|
||||
|
@ -726,7 +726,7 @@
|
|||
"kubeadm binary is not executable !": "",
|
||||
"kubeadm detected a TCP port conflict with another process: probably another local Kubernetes installation. Run lsof -p\u003cport\u003e to find the process and kill it": "",
|
||||
"kubectl and minikube configuration will be stored in {{.home_folder}}": "konfiguracja minikube i kubectl będzie przechowywana w katalogu {{.home_dir}}",
|
||||
"kubectl not found in PATH, but is required for the dashboard. Installation guide: https://kubernetes.io/docs/tasks/tools/install-kubectl/": "kubectl nie zostało odnaleźione w zmiennej środowiskowej ${PATH}. Instrukcja instalacji: https://kubernetes.io/docs/tasks/tools/install-kubectl/",
|
||||
"kubectl not found in PATH, but is required for the dashboard. Installation guide: https://kubernetes.io/docs/tasks/tools/install-kubectl/": "kubectl nie zostało odnalezione w zmiennej środowiskowej ${PATH}. Instrukcja instalacji: https://kubernetes.io/docs/tasks/tools/install-kubectl/",
|
||||
"kubectl proxy": "",
|
||||
"libmachine failed": "",
|
||||
"list displays all valid default settings for PROPERTY_NAME\nAcceptable fields:\\n\\n": "",
|
||||
|
@ -794,7 +794,7 @@
|
|||
"{{.extra_option_component_name}}.{{.key}}={{.value}}": "",
|
||||
"{{.name}} cluster does not exist": "Klaster {{.name}} nie istnieje",
|
||||
"{{.name}} doesn't have enough CPUs.": "",
|
||||
"{{.name}} has no available configuration options": "{{.name}} nie posiada opcji configuracji",
|
||||
"{{.name}} has no available configuration options": "{{.name}} nie posiada opcji konfiguracji",
|
||||
"{{.name}} is already running": "",
|
||||
"{{.name}} was successfully configured": "{{.name}} skonfigurowano pomyślnie",
|
||||
"{{.ocibin}} is taking an unsually long time to respond, consider restarting {{.ocibin}}": "",
|
||||
|
@ -802,4 +802,4 @@
|
|||
"{{.prefix}}minikube {{.version}} on {{.platform}}": "{{.prefix}}minikube {{.version}} na {{.platform}}",
|
||||
"{{.type}} is not yet a supported filesystem. We will try anyways!": "{{.type}} nie jest wspierany przez system plików. I tak spróbujemy!",
|
||||
"{{.url}} is not accessible: {{.error}}": ""
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue