Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new flag "--ports" to expose ports for docker & podman drivers #9404

Merged
merged 11 commits into from
Oct 7, 2020
Merged

Add new flag "--ports" to expose ports for docker & podman drivers #9404

merged 11 commits into from
Oct 7, 2020

Conversation

toonvanstrijp
Copy link
Contributor

@toonvanstrijp toonvanstrijp commented Oct 6, 2020

expose extra ports when using docker driver. This fixes issue: #8008 #8398 #9198

Usage:

minikube start --driver=docker \
--ports=8080:30000 \
--ports=8443:30001 \
--ports=15021:30002 

Please let me know if changes are necessary 😃

@k8s-ci-robot k8s-ci-robot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Oct 6, 2020
@k8s-ci-robot
Copy link
Contributor

Welcome @toonvanstrijp!

It looks like this is your first PR to kubernetes/minikube 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes/minikube has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. 😃

@k8s-ci-robot k8s-ci-robot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Oct 6, 2020
@k8s-ci-robot
Copy link
Contributor

Hi @toonvanstrijp. Thanks for your PR.

I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@k8s-ci-robot k8s-ci-robot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Oct 6, 2020
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: ToonvanStrijp
To complete the pull request process, please assign sharifelgamal after the PR has been reviewed.
You can assign the PR to them by writing /assign @sharifelgamal in a comment when ready.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@minikube-bot
Copy link
Collaborator

Can one of the admins verify this patch?

@TravisBuddy
Copy link

Travis tests have failed

Hey @toonvanstrijp,
Please read the following log in order to understand the failure reason.
It'll be awesome if you fix what's wrong and commit the changes.

1st Build

View build log

make test
PATH="/home/travis/gopath/bin:/home/travis/.gimme/versions/go1.14.6.linux.amd64/bin:/home/travis/bin:/home/travis/bin:/home/travis/.local/bin:/usr/local/lib/jvm/openjdk11/bin:/opt/pyenv/shims:/home/travis/.phpenv/shims:/home/travis/perl5/perlbrew/bin:/home/travis/.nvm/versions/node/v8.12.0/bin:/home/travis/.rvm/gems/ruby-2.5.3/bin:/home/travis/.rvm/gems/ruby-2.5.3@global/bin:/home/travis/.rvm/rubies/ruby-2.5.3/bin:/home/travis/gopath/bin:/home/travis/.gimme/versions/go1.11.1.linux.amd64/bin:/usr/local/maven-3.6.3/bin:/usr/local/cmake-3.12.4/bin:/usr/local/clang-7.0.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/travis/.rvm/bin:/home/travis/.phpenv/bin:/opt/pyenv/bin:/home/travis/.yarn/bin:/home/travis/gopath/bin" go-bindata -nomemcopy -o pkg/minikube/assets/assets.go -pkg assets deploy/addons/...
gofmt -s -w pkg/minikube/assets/assets.go
PATH="/home/travis/gopath/bin:/home/travis/.gimme/versions/go1.14.6.linux.amd64/bin:/home/travis/bin:/home/travis/bin:/home/travis/.local/bin:/usr/local/lib/jvm/openjdk11/bin:/opt/pyenv/shims:/home/travis/.phpenv/shims:/home/travis/perl5/perlbrew/bin:/home/travis/.nvm/versions/node/v8.12.0/bin:/home/travis/.rvm/gems/ruby-2.5.3/bin:/home/travis/.rvm/gems/ruby-2.5.3@global/bin:/home/travis/.rvm/rubies/ruby-2.5.3/bin:/home/travis/gopath/bin:/home/travis/.gimme/versions/go1.11.1.linux.amd64/bin:/usr/local/maven-3.6.3/bin:/usr/local/cmake-3.12.4/bin:/usr/local/clang-7.0.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/travis/.rvm/bin:/home/travis/.phpenv/bin:/opt/pyenv/bin:/home/travis/.yarn/bin:/home/travis/gopath/bin" go-bindata -nomemcopy -o pkg/minikube/translate/translations.go -pkg translate translations/...
gofmt -s -w pkg/minikube/translate/translations.go
MINIKUBE_LDFLAGS="-X k8s.io/minikube/pkg/version.version=v1.13.1 -X k8s.io/minikube/pkg/version.isoVersion=v1.13.1 -X k8s.io/minikube/pkg/version.isoPath=minikube/iso -X k8s.io/minikube/pkg/version.gitCommitID="82e244b6a111df7520b5e2a4e2af3156843277ab" -X k8s.io/minikube/pkg/version.storageProvisionerVersion=v3" ./test.sh
= schema_check ==========================================================
go: downloading github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f
go: downloading github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415
go: downloading github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f
ok
= go test ===============================================================
go: downloading github.com/olekukonko/tablewriter v0.0.4
go: downloading github.com/machine-drivers/machine v0.7.1-0.20200810185219-7d42fed1b770
go: downloading k8s.io/api v0.17.3
go: downloading k8s.io/apimachinery v0.17.3
go: downloading k8s.io/kubernetes v1.18.5
go: downloading github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2
go: downloading k8s.io/client-go v0.17.3
go: downloading github.com/shirou/gopsutil v2.18.12+incompatible
go: downloading k8s.io/kubectl v0.17.3
go: downloading github.com/otiai10/copy v1.0.2
go: downloading github.com/google/uuid v1.1.1
go: downloading github.com/mattn/go-runewidth v0.0.7
go: downloading golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37
go: downloading github.com/blang/semver v3.5.0+incompatible
go: downloading github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
go: downloading gopkg.in/yaml.v2 v2.3.0
go: downloading github.com/afbjorklund/go-containerregistry v0.0.0-20200902152226-fbad78ec2813
go: downloading github.com/gogo/protobuf v1.3.1
go: downloading github.com/cloudevents/sdk-go/v2 v2.1.0
go: downloading github.com/google/go-github v17.0.0+incompatible
go: downloading cloud.google.com/go v0.57.0
go: downloading github.com/pkg/browser v0.0.0-20160118053552-9302be274faa
go: downloading github.com/afbjorklund/go-getter v1.4.1-0.20190910175809-eb9f6c26742c
go: downloading golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
go: downloading github.com/juju/mutex v0.0.0-20180619145857-d21b13acf4bf
go: downloading github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d
go: downloading github.com/intel-go/cpuid v0.0.0-20181003105527-1a4a6f06a1c6
go: downloading github.com/opencontainers/go-digest v1.0.0-rc1
go: downloading github.com/docker/go-units v0.4.0
go: downloading github.com/cheggaaa/pb v1.0.27
go: downloading github.com/hashicorp/go-safetemp v1.0.0
go: downloading github.com/mitchellh/go-ps v0.0.0-20190716172923-621e5597135b
go: downloading github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7
go: downloading github.com/cheggaaa/pb/v3 v3.0.1
go: downloading golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a
go: downloading github.com/spf13/pflag v1.0.5
go: downloading github.com/hooklift/iso9660 v0.0.0-20170318115843-1cf07e5970d8
go: downloading github.com/mattn/go-colorable v0.1.6
go: downloading github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd
go: downloading cloud.google.com/go/storage v1.8.0
go: downloading google.golang.org/api v0.25.0
go: downloading github.com/hashicorp/go-version v1.2.0
go: downloading github.com/google/go-querystring v1.0.0
go: downloading go.opencensus.io v0.22.3
go: downloading k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89
go: downloading github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3
go: downloading github.com/russross/blackfriday v1.5.3-0.20200218234912-41c5fccfd6f6
go: downloading github.com/mitchellh/go-testing-interface v1.0.0
go: downloading github.com/pkg/profile v0.0.0-20161223203901-3a8809bd8a80
go: downloading github.com/juju/errors v0.0.0-20190806202954-0232dcc7464d
go: downloading github.com/googleapis/gax-go v2.0.2+incompatible
go: downloading github.com/VividCortex/ewma v1.1.1
go: downloading github.com/pkg/errors v0.9.1
go: downloading github.com/aws/aws-sdk-go v1.31.6
go: downloading github.com/hashicorp/go-cleanhttp v0.5.1
go: downloading k8s.io/klog v1.0.0
go: downloading github.com/googleapis/gax-go/v2 v2.0.5
go: downloading github.com/google/slowjam v0.0.0-20200530021616-df27e642fe7b
go: downloading sigs.k8s.io/sig-storage-lib-external-provisioner v4.0.0+incompatible
go: downloading google.golang.org/grpc v1.29.1
go: downloading sigs.k8s.io/sig-storage-lib-external-provisioner/v5 v5.0.0
go: downloading github.com/cenkalti/backoff v2.2.1+incompatible
go: downloading github.com/mitchellh/go-wordwrap v1.0.0
go: downloading github.com/golang/protobuf v1.4.2
go: downloading github.com/mattn/go-isatty v0.0.12
go: downloading github.com/docker/go-connections v0.4.0
go: downloading github.com/c4milo/gotoolkit v0.0.0-20170318115440-bcc06269efa9
go: downloading github.com/fatih/color v1.9.0
go: downloading google.golang.org/protobuf v1.24.0
go: downloading golang.org/x/sys v0.0.0-20200523222454-059865788121
go: downloading golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2
go: downloading github.com/opencontainers/image-spec v1.0.1
go: downloading google.golang.org/genproto v0.0.0-20200527145253-8367513e4ece
go: downloading go.uber.org/zap v1.10.0
go: downloading github.com/machine-drivers/docker-machine-driver-vmware v0.1.1
go: downloading gopkg.in/inf.v0 v0.9.1
go: downloading golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1
go: downloading github.com/spf13/viper v1.7.0
go: downloading k8s.io/component-base v0.17.3
go: downloading github.com/mitchellh/go-homedir v1.1.0
go: downloading github.com/prometheus/client_golang v1.4.1
go: downloading github.com/docker/cli v0.0.0-20200303162255-7d407207c304
go: downloading github.com/ulikunitz/xz v0.5.7
go: downloading github.com/libvirt/libvirt-go v3.4.0+incompatible
go: downloading k8s.io/cluster-bootstrap v0.17.3
go: downloading github.com/subosito/gotenv v1.2.0
go: downloading github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e
go: downloading github.com/hashicorp/hcl v1.0.0
go: downloading github.com/cespare/xxhash v1.1.0
go: downloading github.com/prometheus/common v0.9.1
go: downloading github.com/google/gofuzz v1.1.0
go: downloading github.com/json-iterator/go v1.1.9
go: downloading github.com/cespare/xxhash/v2 v2.1.1
go: downloading gopkg.in/ini.v1 v1.56.0
go: downloading github.com/sayboras/dockerclient v1.0.0
go: downloading github.com/beorn7/perks v1.0.1
go: downloading github.com/pelletier/go-toml v1.8.0
go: downloading github.com/spf13/jwalterweatherman v1.1.0
go: downloading github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
go: downloading github.com/spf13/cast v1.3.1
go: downloading github.com/googleapis/gnostic v0.3.0
go: downloading github.com/magiconair/properties v1.8.1
go: downloading github.com/davecgh/go-spew v1.1.1
go: downloading github.com/cloudfoundry-attic/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21
go: downloading github.com/spf13/afero v1.2.2
go: downloading golang.org/x/text v0.3.2
go: downloading github.com/prometheus/client_model v0.2.0
go: downloading github.com/juju/clock v0.0.0-20190205081909-9c5c9712527c
go: downloading github.com/imdario/mergo v0.3.9
go: downloading github.com/prometheus/procfs v0.0.8
go: downloading go.uber.org/multierr v1.1.0
go: downloading github.com/docker/distribution v2.7.1+incompatible
go: downloading github.com/spf13/cobra v1.0.0
go: downloading github.com/cpuguy83/go-md2man v1.0.10
go: downloading golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6
go: downloading github.com/cpuguy83/go-md2man/v2 v2.0.0
go: downloading github.com/fsnotify/fsnotify v1.4.9
go: downloading sigs.k8s.io/yaml v1.2.0
go: downloading github.com/matttproud/golang_protobuf_extensions v1.0.1
go: downloading github.com/sirupsen/logrus v1.6.0
go: downloading go.uber.org/atomic v1.4.0
go: downloading github.com/lightstep/tracecontext.go v0.0.0-20181129014701-1757c391b1ac
go: downloading github.com/modern-go/reflect2 v1.0.1
go: downloading github.com/jmespath/go-jmespath v0.3.0
go: downloading github.com/mitchellh/mapstructure v1.3.1
go: downloading github.com/containerd/containerd v1.3.1-0.20191213020239-082f7e3aed57
go: downloading github.com/miekg/dns v1.1.27
go: downloading github.com/docker/docker-credential-helpers v0.6.3
go: downloading k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6
go: downloading github.com/russross/blackfriday/v2 v2.0.1
go: downloading github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
go: downloading github.com/google/go-cmp v0.4.1
go: downloading github.com/hashicorp/golang-lru v0.5.3
go: downloading github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96
go: downloading github.com/shurcooL/sanitized_anchor_name v1.0.0
go: downloading github.com/pmezard/go-difflib v1.0.0
go: downloading github.com/evanphx/json-patch v4.5.0+incompatible
go: downloading golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543
ERROR: logging before flag.Parse: I1006 11:47:56.666525   12021 translate.go:106] Setting Language to en-US ...
--- FAIL: TestGenerateDocs (0.01s)
    --- FAIL: TestGenerateDocs/start (0.00s)
        generate-docs_test.go:47: Docs are not updated. Please run `make generate-docs` to update commands documentation:   strings.Join({
              	... // 2860 identical bytes
              	")\n      --docker-opt stringArray            Specify arbitrary fl",
              	"ags to pass to the Docker daemon. (format: key=value)\n      --do",
            - 	"cker-ports strings              List of ports that should be exp",
            - 	"osed (docker driver only)\n      --do",
              	"wnload-only                     If true, only download and cache",
              	" files for later use - don't install or start anything.\n      --",
              	... // 8307 identical bytes
              }, "")
E1006 11:48:00.830696   12021 out.go:141] [unset errFile]: ! Not passing HTTP_PROXY=127.0.0.1:3128 to docker env.
E1006 11:48:00.831393   12021 out.go:141] [unset errFile]: ! Not passing HTTP_PROXY=127.0.0.1:3128 to docker env.
E1006 11:48:00.831545   12021 out.go:141] [unset errFile]: ! Not passing HTTP_PROXY=localhost:3128 to docker env.
E1006 11:48:00.831782   12021 out.go:141] [unset errFile]: ! Not passing HTTP_PROXY=localhost:3128 to docker env.
E1006 11:48:00.831902   12021 out.go:141] [unset errFile]: ! Not passing HTTP_PROXY=http://localhost:3128 to docker env.
E1006 11:48:00.832119   12021 out.go:141] [unset errFile]: ! Not passing HTTP_PROXY=http://localhost:3128 to docker env.
E1006 11:48:00.832234   12021 out.go:141] [unset errFile]: ! Not passing HTTP_PROXY=http://127.0.0.1:3128 to docker env.
E1006 11:48:00.832442   12021 out.go:141] [unset errFile]: ! Not passing HTTP_PROXY=http://127.0.0.1:3128 to docker env.
FAIL
coverage: 18.4% of statements
FAIL	k8s.io/minikube/cmd/minikube/cmd	4.278s
ok  	k8s.io/minikube/cmd/minikube/cmd/config	0.053s	coverage: 21.2% of statements
ok  	k8s.io/minikube/pkg/addons	0.124s	coverage: 48.6% of statements
ok  	k8s.io/minikube/pkg/drivers	0.008s	coverage: 19.6% of statements
ok  	k8s.io/minikube/pkg/drivers/hyperkit	0.004s	coverage: 77.3% of statements
ok  	k8s.io/minikube/pkg/drivers/kic/oci	0.021s	coverage: 6.6% of statements
ok  	k8s.io/minikube/pkg/drivers/kvm	0.029s	coverage: 2.3% of statements
ok  	k8s.io/minikube/pkg/minikube/bootstrapper	0.514s	coverage: 55.7% of statements
ok  	k8s.io/minikube/pkg/minikube/bootstrapper/bsutil	0.165s	coverage: 62.4% of statements
ok  	k8s.io/minikube/pkg/minikube/bootstrapper/bsutil/ktmpl	0.008s	coverage: 100.0% of statements
ok  	k8s.io/minikube/pkg/minikube/bootstrapper/images	0.005s	coverage: 82.0% of statements
ok  	k8s.io/minikube/pkg/minikube/cluster	0.083s	coverage: 14.9% of statements
ok  	k8s.io/minikube/pkg/minikube/command	0.051s	coverage: 4.2% of statements
ok  	k8s.io/minikube/pkg/minikube/config	0.227s	coverage: 68.1% of statements
ok  	k8s.io/minikube/pkg/minikube/cruntime	0.061s	coverage: 36.7% of statements
ok  	k8s.io/minikube/pkg/minikube/docker	0.023s	coverage: 20.8% of statements
ok  	k8s.io/minikube/pkg/minikube/driver	0.023s	coverage: 37.6% of statements
ok  	k8s.io/minikube/pkg/minikube/extract	0.009s	coverage: 58.6% of statements
ok  	k8s.io/minikube/pkg/minikube/image	0.026s	coverage: 3.0% of statements
ok  	k8s.io/minikube/pkg/minikube/kubeconfig	0.032s	coverage: 81.2% of statements
ok  	k8s.io/minikube/pkg/minikube/localpath	0.005s	coverage: 49.3% of statements
ok  	k8s.io/minikube/pkg/minikube/logs	0.048s	coverage: 1.3% of statements
ok  	k8s.io/minikube/pkg/minikube/machine	1.106s	coverage: 35.9% of statements
ok  	k8s.io/minikube/pkg/minikube/mustload	0.070s	coverage: 10.5% of statements
ok  	k8s.io/minikube/pkg/minikube/notify	0.038s	coverage: 92.9% of statements
ok  	k8s.io/minikube/pkg/minikube/out	0.091s	coverage: 66.0% of statements
ok  	k8s.io/minikube/pkg/minikube/out/register	0.021s	coverage: 54.5% of statements
ok  	k8s.io/minikube/pkg/minikube/perf	4.014s	coverage: 21.1% of statements
ok  	k8s.io/minikube/pkg/minikube/proxy	0.014s	coverage: 68.7% of statements
ok  	k8s.io/minikube/pkg/minikube/reason	0.009s	coverage: 80.0% of statements
ok  	k8s.io/minikube/pkg/minikube/registry	0.011s	coverage: 75.5% of statements
ok  	k8s.io/minikube/pkg/minikube/service	0.080s	coverage: 84.2% of statements
ok  	k8s.io/minikube/pkg/minikube/shell	0.024s	coverage: 97.1% of statements
ok  	k8s.io/minikube/pkg/minikube/storageclass	0.041s	coverage: 100.0% of statements
ok  	k8s.io/minikube/pkg/minikube/style	0.002s	coverage: 100.0% of statements
ok  	k8s.io/minikube/pkg/minikube/sysinit	0.035s	coverage: 6.5% of statements
ok  	k8s.io/minikube/pkg/minikube/translate	0.005s	coverage: 10.5% of statements
ok  	k8s.io/minikube/pkg/minikube/tunnel	1.706s	coverage: 64.2% of statements
ok  	k8s.io/minikube/pkg/util	0.731s	coverage: 75.7% of statements
ok  	k8s.io/minikube/pkg/util/lock	0.007s	coverage: 22.2% of statements
ok  	k8s.io/minikube/pkg/util/retry	0.008s	coverage: 0.0% of statements
FAIL
Makefile:320: recipe for target 'test' failed
make: *** [test] Error 32
TravisBuddy Request Identifier: f556a7d0-07c9-11eb-a712-35638fe859f6

@toonvanstrijp toonvanstrijp changed the title WIP: expose extra ports (docker driver) expose extra ports (docker driver) Oct 6, 2020
@k8s-ci-robot k8s-ci-robot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 6, 2020
@toonvanstrijp
Copy link
Contributor Author

/assign @sharifelgamal

cmd/minikube/cmd/start_flags.go Outdated Show resolved Hide resolved
@arielmoraes
Copy link

Not an admin here, but I was analyzing the changes, and I have a question: as the start command already binds some ports to the 127.0.0.1 IP address, if the user choose to expose those ports will them be bound to the correct IP for exposure (0.0.0.0 or any other supplied)? That is, if the user provides custom ports (including the default ones), those have to have priority over the default ones.

@k8s-ci-robot k8s-ci-robot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Oct 7, 2020
@toonvanstrijp toonvanstrijp changed the title expose extra ports (docker driver) expose extra ports (docker & podman driver) Oct 7, 2020
@TravisBuddy
Copy link

Travis tests have failed

Hey @toonvanstrijp,
Please read the following log in order to understand the failure reason.
It'll be awesome if you fix what's wrong and commit the changes.

1st Build

View build log

make test
PATH="/home/travis/gopath/bin:/home/travis/.gimme/versions/go1.14.6.linux.amd64/bin:/home/travis/bin:/home/travis/bin:/home/travis/.local/bin:/usr/local/lib/jvm/openjdk11/bin:/opt/pyenv/shims:/home/travis/.phpenv/shims:/home/travis/perl5/perlbrew/bin:/home/travis/.nvm/versions/node/v8.12.0/bin:/home/travis/.rvm/gems/ruby-2.5.3/bin:/home/travis/.rvm/gems/ruby-2.5.3@global/bin:/home/travis/.rvm/rubies/ruby-2.5.3/bin:/home/travis/gopath/bin:/home/travis/.gimme/versions/go1.11.1.linux.amd64/bin:/usr/local/maven-3.6.3/bin:/usr/local/cmake-3.12.4/bin:/usr/local/clang-7.0.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/travis/.rvm/bin:/home/travis/.phpenv/bin:/opt/pyenv/bin:/home/travis/.yarn/bin:/home/travis/gopath/bin" go-bindata -nomemcopy -o pkg/minikube/assets/assets.go -pkg assets deploy/addons/...
gofmt -s -w pkg/minikube/assets/assets.go
PATH="/home/travis/gopath/bin:/home/travis/.gimme/versions/go1.14.6.linux.amd64/bin:/home/travis/bin:/home/travis/bin:/home/travis/.local/bin:/usr/local/lib/jvm/openjdk11/bin:/opt/pyenv/shims:/home/travis/.phpenv/shims:/home/travis/perl5/perlbrew/bin:/home/travis/.nvm/versions/node/v8.12.0/bin:/home/travis/.rvm/gems/ruby-2.5.3/bin:/home/travis/.rvm/gems/ruby-2.5.3@global/bin:/home/travis/.rvm/rubies/ruby-2.5.3/bin:/home/travis/gopath/bin:/home/travis/.gimme/versions/go1.11.1.linux.amd64/bin:/usr/local/maven-3.6.3/bin:/usr/local/cmake-3.12.4/bin:/usr/local/clang-7.0.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/travis/.rvm/bin:/home/travis/.phpenv/bin:/opt/pyenv/bin:/home/travis/.yarn/bin:/home/travis/gopath/bin" go-bindata -nomemcopy -o pkg/minikube/translate/translations.go -pkg translate translations/...
gofmt -s -w pkg/minikube/translate/translations.go
MINIKUBE_LDFLAGS="-X k8s.io/minikube/pkg/version.version=v1.14.0-beta.0 -X k8s.io/minikube/pkg/version.isoVersion=v1.13.1 -X k8s.io/minikube/pkg/version.isoPath=minikube/iso -X k8s.io/minikube/pkg/version.gitCommitID="92a4ae41f5269ea62c28586442486722bdc76071" -X k8s.io/minikube/pkg/version.storageProvisionerVersion=v3" ./test.sh
= make lint =============================================================
golangci/golangci-lint info checking GitHub for tag 'v1.30.0'
golangci/golangci-lint info found version: 1.30.0 for v1.30.0/linux/amd64
golangci/golangci-lint info installed out/linters/golangci-lint
pkg/minikube/config/types.go:74: File is not `goimports`-ed (goimports)
	ExposedPorts             []string // Only used by the docker and podman driver
cmd/minikube/cmd/start_flags.go:318: File is not `goimports`-ed (goimports)
			ExposedPorts:             viper.GetStringSlice(ports),
Makefile:439: recipe for target 'lint-ci' failed
make[1]: *** [lint-ci] Error 1
= go mod ================================================================
ok
= boilerplate ===========================================================
ok
Makefile:320: recipe for target 'test' failed
make: *** [test] Error 4
TravisBuddy Request Identifier: 77db4490-08ba-11eb-9b15-83942378e0dd

@k8s-ci-robot k8s-ci-robot added size/S Denotes a PR that changes 10-29 lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Oct 7, 2020
@medyagh medyagh changed the title expose extra ports (docker & podman driver) Add new flag "--ports" to expose ports for docker & podman drivers Oct 7, 2020
Copy link
Member

@medyagh medyagh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you very much for this PR

@mans0954
Copy link

It's important to note that the --ports option only applies when first creating the minikube docker container. If minikube start --ports=... is called when the minikube container already exists, then the option is ignored.

e.g.

# Delete any exisitng `minikube` container
minikube delete
# Create a new `minikube` container listening on ports `80` and `443` on localhost
minikube start --ports=127.0.0.1:443:443 --ports=127.0.0.1:80:80
# Check it worked
docker port minikube
2376/tcp -> 127.0.0.1:49271
32443/tcp -> 127.0.0.1:49268
443/tcp -> 127.0.0.1:443
5000/tcp -> 127.0.0.1:49270
80/tcp -> 127.0.0.1:80
8443/tcp -> 127.0.0.1:49269
22/tcp -> 127.0.0.1:49272

Probably I'm a bit dim, but it took me a couple of hours to work this out, so posting it here in the hope that it helps someone else.

@kliarist
Copy link

What would be the syntax if I need to have 2 minikube nodes (docker). I tried the below with no luck:

$ minikube start --nodes 2 --driver=docker --ports=":30778" --ports=":9001"
😄 minikube v1.25.1 on Fedora 35 (arm64)
✨ Using the docker driver based on user configuration

❌ Exiting due to MK_USAGE: Sorry, one of the ports provided with --ports flag is not valid [:30778 :9001]

@marhav20
Copy link

marhav20 commented Jul 22, 2022

Seems that for multi-node minikube the --ports parameter is also sent to the workers causing a "port is already allocated" error because the ports were already assigned while launching the first minikube container instance. (minikube version 1.26.0)

minikube start --driver=docker --nodes=2 --ports=9000:9000

@joedayz joedayz mentioned this pull request Jun 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants