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

Upgrade to 1.7.0-rc.1 #1584

Closed
wants to merge 12 commits into from
Closed

Upgrade to 1.7.0-rc.1 #1584

wants to merge 12 commits into from

Conversation

r2d4
Copy link
Contributor

@r2d4 r2d4 commented Jun 13, 2017

Merging to the k8s-v1.7 branch

A few commits to upgrade to v1.7.0-beta.1

The only major updates are to the kube-proxy component, which changed a lot. We needed to add a single patch (which I will try to get added upstream, since it seems reasonable.)

We also need to generate the openapi package in kube, since kube-apiserver depends on it. I verified that this fixes #1365. I chose to use the bazel method of building the package, although we can very well use the non-bazel version.

I also cherry-picked the tpr patch and the dns fix to this branch as housekeeping.

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Jun 13, 2017
@r2d4 r2d4 changed the title 1.7.0 beta.1 1.7.0 beta.1 [wip] Jun 13, 2017
@r2d4
Copy link
Contributor Author

r2d4 commented Jun 19, 2017

@minikube-bot retest this please

1 similar comment
@r2d4
Copy link
Contributor Author

r2d4 commented Jun 20, 2017

@minikube-bot retest this please

@r2d4 r2d4 changed the title 1.7.0 beta.1 [wip] Upgrade to 1.7.0 beta.1 Jun 20, 2017
@codecov-io
Copy link

codecov-io commented Jun 20, 2017

Codecov Report

Merging #1584 into master will increase coverage by 2.94%.
The diff coverage is 0%.

Impacted file tree graph

@@            Coverage Diff            @@
##           master   #1584      +/-   ##
=========================================
+ Coverage   38.65%   41.6%   +2.94%     
=========================================
  Files          51      49       -2     
  Lines        2667    2341     -326     
=========================================
- Hits         1031     974      -57     
+ Misses       1455    1205     -250     
+ Partials      181     162      -19
Impacted Files Coverage Δ
pkg/localkube/apiserver.go 0% <0%> (ø) ⬆️
pkg/localkube/proxy.go 0% <0%> (ø) ⬆️
cmd/minikube/cmd/service.go 20.68% <0%> (-4.32%) ⬇️
cmd/minikube/cmd/mount.go 3.38% <0%> (-3.93%) ⬇️
pkg/minikube/cluster/commands.go 57.29% <0%> (-2.71%) ⬇️
cmd/minikube/cmd/root.go 67.79% <0%> (ø) ⬆️
pkg/minikube/service/service.go 34.52% <0%> (ø) ⬆️
pkg/minikube/cluster/cluster_linux.go 0% <0%> (ø) ⬆️
pkg/util/constants.go 0% <0%> (ø) ⬆️
cmd/minikube/cmd/update-context.go
... and 14 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 109fa16...737b1fd. Read the comment docs.

@r2d4 r2d4 force-pushed the 1.7.0-beta.1 branch 2 times, most recently from e4e1181 to b723cee Compare June 20, 2017 20:06
@r2d4 r2d4 force-pushed the 1.7.0-beta.1 branch 5 times, most recently from f8a581b to e980b9c Compare June 27, 2017 20:11
@r2d4
Copy link
Contributor Author

r2d4 commented Jun 27, 2017

Fixes #1532

@@ -63,7 +63,7 @@ func AddFlags(s *localkube.LocalkubeServer) {
flag.StringVar(&s.APIServerName, "apiserver-name", s.APIServerName, "The apiserver name which is used in the generated certificate for localkube/kubernetes. This can be used if you want to make the API server available from outside the machine")

flag.BoolVar(&s.ShouldGenerateCerts, "generate-certs", s.ShouldGenerateCerts, "If localkube should generate it's own certificates")
flag.BoolVar(&s.ShowVersion, "version", s.ShowVersion, "If localkube should just print the version and exit.")
flag.BoolVar(&s.ShowVersion, "show-version", s.ShowVersion, "If localkube should just print the version and exit.")
Copy link
Contributor

Choose a reason for hiding this comment

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

Why did this change?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

There's a bug where the kubernetes components are registering their flags. A component added their own version flag.

It's polluting the localkube flag namespace

Usage of ./out/localkube:
      --allow_verification_with_non_compliant_keys   Allow a SignatureVerifier to use keys which are technically non-compliant with RFC6962.
      --alsologtostderr                              log to standard error as well as files
      --apiserver-address ip                         The address the apiserver will listen securely on (default 0.0.0.0)
      --apiserver-insecure-address ip                The address the apiserver will listen insecurely on (default 127.0.0.1)
      --apiserver-insecure-port int                  The port the apiserver will listen insecurely on (default 8080)
      --apiserver-name string                        The apiserver name which is used in the generated certificate for localkube/kubernetes.  This can be used if you want to make the API server available from outside the machine (default "minikubeCA")
      --apiserver-port int                           The port the apiserver will listen securely on (default 8443)
      --application_metrics_count_limit int          Max number of application metrics to store (per container) (default 100)
      --azure-container-registry-config string       Path to the file container Azure container registry configuration information.
      --boot_id_file string                          Comma-separated list of files to check for boot-id. Use the first one that exists. (default "/proc/sys/kernel/random/boot_id")
      --cloud-provider-gce-lb-src-cidrs cidrs        CIDRS opened in GCE firewall for LB traffic proxy & health checks (default 130.211.0.0/22,35.191.0.0/16,209.85.152.0/22,209.85.204.0/22)
      --container-runtime string                     The container runtime to be used
      --container_hints string                       location of the container hints file (default "/etc/cadvisor/container_hints.json")
      --containerized                                If kubelet should run in containerized mode
      --default-not-ready-toleration-seconds int     Indicates the tolerationSeconds of the toleration for notReady:NoExecute that is added by default to every pod that does not already have such a toleration. (default 300)
      --default-unreachable-toleration-seconds int   Indicates the tolerationSeconds of the toleration for unreachable:NoExecute that is added by default to every pod that does not already have such a toleration. (default 300)
      --dns-domain string                            The cluster dns domain (default "cluster.local")
      --dns-ip ip                                    The cluster dns IP (default 10.0.0.10)
      --docker string                                docker endpoint (default "unix:///var/run/docker.sock")
      --docker_env_metadata_whitelist string         a comma-separated list of environment variable keys that needs to be collected for docker containers
      --docker_only                                  Only report docker containers in addition to root stats
      --docker_root string                           DEPRECATED: docker root is read from docker info (this is a fallback, default: /var/lib/docker) (default "/var/lib/docker")
      --enable-dns                                   DEPRECATED: Please run kube-dns as a cluster addon
      --enable_load_reader                           Whether to enable cpu load reader
      --event_storage_age_limit string               Max length of time for which to store events (per type). Value is a comma separated list of key values, where the keys are event types (e.g.: creation, oom) or "default" and the value is a duration. Default is applied to all non-specified event types (default "default=0")
      --event_storage_event_limit string             Max number of events to store (per type). Value is a comma separated list of key values, where the keys are event types (e.g.: creation, oom) or "default" and the value is an integer. Default is applied to all non-specified event types (default "default=0")
      --extra-config ExtraOption                     A set of key=value pairs that describe configuration that may be passed to different components. The key should be '.' separated, and the first part before the dot is the component to apply the configuration to.
      --feature-gates string                         A set of key=value pairs that describe feature gates for alpha/experimental features.
      --generate-certs                               If localkube should generate it's own certificates (default true)
      --global_housekeeping_interval duration        Interval between global housekeepings (default 1m0s)
      --host-ip                                      If localkube should just print the host IP and exit.
      --housekeeping_interval duration               Interval between container housekeepings (default 10s)
      --ir-data-source string                        Data source used by InitialResources. Supported options: influxdb, gcm. (default "influxdb")
      --ir-dbname string                             InfluxDB database name which contains metrics required by InitialResources (default "k8s")
      --ir-hawkular string                           Hawkular configuration URL
      --ir-influxdb-host string                      Address of InfluxDB which contains metrics required by InitialResources (default "localhost:8080/api/v1/namespaces/kube-system/services/monitoring-influxdb:api/proxy")
      --ir-namespace-only                            Whether the estimation should be made only based on data from the same namespace.
      --ir-password string                           Password used for connecting to InfluxDB (default "root")
      --ir-percentile int                            Which percentile of samples should InitialResources use when estimating resources. For experiment purposes. (default 90)
      --ir-user string                               User used for connecting to InfluxDB (default "root")
      --localkube-directory string                   The directory localkube will store files in (default "/var/lib/localkube")
      --log_backtrace_at traceLocation               when logging hits line file:N, emit a stack trace (default :0)
      --log_cadvisor_usage                           Whether to log the usage of the cAdvisor container
      --log_dir string                               If non-empty, write log files in this directory
      --loglevel int                                 Log level (0 = DEBUG, 5 = FATAL) (default 1)
      --logtostderr                                  log to standard error instead of files
      --machine_id_file string                       Comma-separated list of files to check for machine-id. Use the first one that exists. (default "/etc/machine-id,/var/lib/dbus/machine-id")
      --network-plugin string                        The name of the network plugin
      --node-ip ip                                   IP address of the node. If set, kubelet will use this IP address for the node.
      --runtime-config mapStringString               A set of key=value pairs that describe runtime configuration that may be passed to apiserver. apis/<groupVersion> key can be used to turn on/off specific api versions. apis/<groupVersion>/<resource> can be used to turn on/off specific resources. api/all and api/legacy are special keys to control all and legacy api versions respectively. (default api/all=true)
      --service-cluster-ip-range ipNet               The service-cluster-ip-range for the apiserver (default 10.0.0.0/24)
      --show-version                                 If localkube should just print the version and exit.
      --stderrthreshold severity                     logs at or above this threshold go to stderr (default 2)
      --storage_driver_buffer_duration duration      Writes in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transaction (default 1m0s)
      --storage_driver_db string                     database name (default "cadvisor")
      --storage_driver_host string                   database host:port (default "localhost:8086")
      --storage_driver_password string               database password (default "root")
      --storage_driver_secure                        use secure connection with database
      --storage_driver_table string                  table name (default "stats")
      --storage_driver_user string                   database username (default "root")
  -v, --v Level                                      log level for V logs
      --version version[=true]                       Print version information and quit
      --vmodule moduleSpec                           comma-separated list of pattern=N settings for file-filtered logging

I think this is happening at HEAD also, but the version flag didn't exist.

@r2d4
Copy link
Contributor Author

r2d4 commented Jun 27, 2017

Pushing these commits that upgrade from beta.1->beta.2->beta.3->rc.1 one at a time to go through the integration test cycle.

@r2d4 r2d4 changed the title Upgrade to 1.7.0 beta.1 Upgrade to 1.7.0-rc.1 Jun 27, 2017
@dlorenc
Copy link
Contributor

dlorenc commented Jun 28, 2017

LMK When this is ready for review.

@r2d4
Copy link
Contributor Author

r2d4 commented Jun 28, 2017

The changes are good, although I'm going to rebase the commits to make them a little easier to review

@r2d4
Copy link
Contributor Author

r2d4 commented Jun 28, 2017

I might avoid a full rebase on master for now, so that we can publish the rc.1.

Then in the meantime I can rebase on master so that 1.7 will be mergable

@r2d4
Copy link
Contributor Author

r2d4 commented Jun 28, 2017

@dlorenc @aaron-prindle PTAL. This is the same changelist from yesterday, condensed into more review-able commits. It hasn't had a full rebase on master, but thats fine since there haven't been any localkube changes in master.

dlorenc and others added 7 commits June 28, 2017 11:44
* Added a godep-update-k8s script for upgrading.
$ KUBE_VERSION ./hack/godeps/godep-update-k8s.sh

* Added client-go version ldflags to localkube and minikube.  The
version package is now split in both kubernetes and client-go, so we
need to supply both ldflags.

* Change cross builds to use BUILD_IN_DOCKER

* Add a patch for kube-proxy
The setup of kube-proxy recently changed, making the registering of the
component config a fatal error instead of a warning.  This patch
reverts it to be a warning, which is a no-op for us anyways since we
don't supply a config file.
The k8s components are registering their flags on localkube, polluting
the flag namespace.  A 'version' flag was added, which conflicts with a
localkube flag.  Changing the name of this flag so that there is no
conflict.
@r2d4 r2d4 changed the base branch from k8s-v1.7 to master June 28, 2017 20:38
@r2d4
Copy link
Contributor Author

r2d4 commented Jun 28, 2017

I rebased this on master, after the tests pass and reviews, I'll force push to the k8s-1.7 branch and push a new localkube

@r2d4
Copy link
Contributor Author

r2d4 commented Jun 28, 2017

Fixes #1172

Copy link
Contributor

@dlorenc dlorenc left a comment

Choose a reason for hiding this comment

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

Thanks for splitting out the commits this way.

@r2d4 r2d4 closed this Jun 29, 2017
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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Minikube openapi result does not contain kubernetes extensions
4 participants