diff --git a/pkg/addons/addons.go b/pkg/addons/addons.go index 0aee995d8311..b76ad996bacc 100644 --- a/pkg/addons/addons.go +++ b/pkg/addons/addons.go @@ -28,9 +28,12 @@ import ( "github.com/golang/glog" "github.com/pkg/errors" + + "k8s.io/minikube/pkg/drivers/kic/oci" "k8s.io/minikube/pkg/minikube/assets" "k8s.io/minikube/pkg/minikube/command" "k8s.io/minikube/pkg/minikube/config" + "k8s.io/minikube/pkg/minikube/constants" "k8s.io/minikube/pkg/minikube/driver" "k8s.io/minikube/pkg/minikube/exit" "k8s.io/minikube/pkg/minikube/machine" @@ -176,6 +179,17 @@ https://github.com/kubernetes/minikube/issues/7332`, out.V{"driver_name": cc.Dri return nil } + if name == "registry" { + if driver.NeedsPortForward(cc.Driver) { + port, err := oci.ForwardedPort(cc.Driver, cc.Name, constants.RegistryAddonPort) + if err != nil { + return errors.Wrap(err, "registry port") + } + out.T(out.Tip, `Registry addon on with {{.driver}} uses {{.port}} please use that instead of default 5000`, out.V{"driver": cc.Driver, "port": port}) + out.T(out.Documentation, `For more information see: https://minikube.sigs.k8s.io/docs/drivers/{{.driver}}`, out.V{"driver": cc.Driver}) + } + } + cmd, err := machine.CommandRunner(host) if err != nil { return errors.Wrap(err, "command runner") diff --git a/pkg/drivers/kic/kic.go b/pkg/drivers/kic/kic.go index e783ee064da4..05b1e325ca28 100644 --- a/pkg/drivers/kic/kic.go +++ b/pkg/drivers/kic/kic.go @@ -93,6 +93,10 @@ func (d *Driver) Create() error { ListenAddress: oci.DefaultBindIPV4, ContainerPort: constants.DockerDaemonPort, }, + oci.PortMapping{ + ListenAddress: oci.DefaultBindIPV4, + ContainerPort: constants.RegistryAddonPort, + }, ) exists, err := oci.ContainerExists(d.OCIBinary, params.Name) diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go index a689031cebf9..0d21485974f9 100644 --- a/pkg/minikube/constants/constants.go +++ b/pkg/minikube/constants/constants.go @@ -40,6 +40,8 @@ const ( APIServerPort = 8443 // SSHPort is the SSH serviceport on the node vm and container SSHPort = 22 + // RegistryAddonPort os the default registry addon port + RegistryAddonPort = 5000 // APIServerName is the default API server name APIServerName = "minikubeCA" diff --git a/site/content/en/docs/drivers/docker.md b/site/content/en/docs/drivers/docker.md index 248428753d19..b26f6a879fa4 100644 --- a/site/content/en/docs/drivers/docker.md +++ b/site/content/en/docs/drivers/docker.md @@ -27,11 +27,9 @@ The Docker driver allows you to install Kubernetes into an existing Docker insta `sudo mkdir /sys/fs/cgroup/systemd && sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd`. -- Addon 'registry' for mac and windows is not supported yet and it is [a work in progress](https://github.com/kubernetes/minikube/issues/7535). - - ## Troubleshooting - On macOS or Windows, you may need to restart Docker for Desktop if a command gets hung + - Run `--alsologtostderr -v=1` for extra debugging information diff --git a/site/content/en/docs/handbook/pushing.md b/site/content/en/docs/handbook/pushing.md index 32c58edf2fdb..7a0646c7b080 100644 --- a/site/content/en/docs/handbook/pushing.md +++ b/site/content/en/docs/handbook/pushing.md @@ -15,13 +15,13 @@ The best method to push your image to minikube depends on the container-runtime Here is a comparison table to help you choose: -| Method | Supported Runtimes | Issues | Performance | +| Method | Supported Runtimes | | Performance | |--- |--- |--- |--- |--- | -| [docker-env command](/docs/handbook/pushing/#1pushing-directly-to-the-in-cluster-docker-daemon-docker-env) | only docker | | good | -| [podman-env command](/docs/handbook/pushing/#3-pushing-directly-to-in-cluster-crio-podman-env) | only cri-o | | good | -| [cache add command](/pushing/#2-push-images-using-cache-command) | all | | ok | -| [registry addon](/docs/handbook/pushing/#4-pushing-to-an-in-cluster-using-registry-addon) | all | work in progress for [docker on mac](https://github.com/kubernetes/minikube/issues/7535) | ok | -| [minikube ssh](/docs/handbook/pushing/#5-building-images-inside-of-minikube-using-ssh) | all | | best | +| [docker-env command](/docs/handbook/pushing/#1pushing-directly-to-the-in-cluster-docker-daemon-docker-env) | only docker | good | +| [podman-env command](/docs/handbook/pushing/#3-pushing-directly-to-in-cluster-crio-podman-env) | only cri-o | good | +| [cache add command](/pushing/#2-push-images-using-cache-command) | all | ok | +| [registry addon](/docs/handbook/pushing/#4-pushing-to-an-in-cluster-using-registry-addon) | all | ok | +| [minikube ssh](/docs/handbook/pushing/#5-building-images-inside-of-minikube-using-ssh) | all | best | * note1 : the default container-runtime on minikube is 'docker'.