From cd23dcee34127fde1ae0d337a0bbcbbfaeb50b32 Mon Sep 17 00:00:00 2001 From: YuviPanda Date: Sun, 29 Nov 2015 16:06:59 -0800 Subject: [PATCH 1/4] Use pflag instead of flag in kube2dns - Marks flags with _ as deprecated, use the - variants instead --- cluster/addons/dns/kube2sky/README.md | 8 ++++---- cluster/addons/dns/kube2sky/kube2sky.go | 24 ++++++++++++------------ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/cluster/addons/dns/kube2sky/README.md b/cluster/addons/dns/kube2sky/README.md index 9a726accf20..c0a8295a648 100644 --- a/cluster/addons/dns/kube2sky/README.md +++ b/cluster/addons/dns/kube2sky/README.md @@ -21,16 +21,16 @@ example, if this is set to `kubernetes.io`, then a service named "nifty" in the `-v`: Set logging level -`-etcd_mutation_timeout`: For how long the application will keep retrying etcd +`-etcd-mutation-timeout`: For how long the application will keep retrying etcd mutation (insertion or removal of a dns entry) before giving up and crashing. `-etcd-server`: The etcd server that is being used by skydns. -`-kube_master_url`: URL of kubernetes master. Required if `--kubecfg_file` is not set. +`-kube-master-url`: URL of kubernetes master. Required if `--kubecfg_file` is not set. -`-kubecfg_file`: Path to kubecfg file that contains the master URL and tokens to authenticate with the master. +`-kubecfg-file`: Path to kubecfg file that contains the master URL and tokens to authenticate with the master. -`-log_dir`: If non empty, write log files in this directory +`-log-dir`: If non empty, write log files in this directory `-logtostderr`: Logs to stderr instead of files diff --git a/cluster/addons/dns/kube2sky/kube2sky.go b/cluster/addons/dns/kube2sky/kube2sky.go index df1cd1087fb..922fe6b685d 100644 --- a/cluster/addons/dns/kube2sky/kube2sky.go +++ b/cluster/addons/dns/kube2sky/kube2sky.go @@ -21,7 +21,6 @@ package main import ( "encoding/json" - "flag" "fmt" "hash/fnv" "net/http" @@ -34,6 +33,7 @@ import ( etcd "github.com/coreos/go-etcd/etcd" "github.com/golang/glog" skymsg "github.com/skynetservices/skydns/msg" + flag "github.com/spf13/pflag" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/unversioned" kcache "k8s.io/kubernetes/pkg/client/cache" @@ -47,12 +47,11 @@ import ( ) var ( - // TODO: switch to pflag and make - and _ equivalent. argDomain = flag.String("domain", "cluster.local", "domain under which to create names") - argEtcdMutationTimeout = flag.Duration("etcd_mutation_timeout", 10*time.Second, "crash after retrying etcd mutation for a specified duration") + argEtcdMutationTimeout = flag.Duration("etcd-mutation-timeout", 10*time.Second, "crash after retrying etcd mutation for a specified duration") argEtcdServer = flag.String("etcd-server", "http://127.0.0.1:4001", "URL to etcd server") - argKubecfgFile = flag.String("kubecfg_file", "", "Location of kubecfg file for access to kubernetes master service; --kube_master_url overrides the URL part of this; if neither this nor --kube_master_url are provided, defaults to service account tokens") - argKubeMasterURL = flag.String("kube_master_url", "", "URL to reach kubernetes master. Env variables in this flag will be expanded.") + argKubecfgFile = flag.String("kubecfg-file", "", "Location of kubecfg file for access to kubernetes master service; --kube-master-url overrides the URL part of this; if neither this nor --kube-master-url are provided, defaults to service account tokens") + argKubeMasterURL = flag.String("kube-master-url", "", "URL to reach kubernetes master. Env variables in this flag will be expanded.") ) const ( @@ -349,7 +348,7 @@ func (ks *kube2sky) addDNS(subdomain string, service *kapi.Service) error { } // Implements retry logic for arbitrary mutator. Crashes after retrying for -// etcd_mutation_timeout. +// etcd-mutation-timeout. func (ks *kube2sky) mutateEtcdOrDie(mutator func() error) { timeout := time.After(ks.etcdMutationTimeout) for { @@ -456,10 +455,10 @@ func newEtcdClient(etcdServer string) (*etcd.Client, error) { func expandKubeMasterURL() (string, error) { parsedURL, err := url.Parse(os.ExpandEnv(*argKubeMasterURL)) if err != nil { - return "", fmt.Errorf("failed to parse --kube_master_url %s - %v", *argKubeMasterURL, err) + return "", fmt.Errorf("failed to parse --kube-master-url %s - %v", *argKubeMasterURL, err) } if parsedURL.Scheme == "" || parsedURL.Host == "" || parsedURL.Host == ":" { - return "", fmt.Errorf("invalid --kube_master_url specified %s", *argKubeMasterURL) + return "", fmt.Errorf("invalid --kube-master-url specified %s", *argKubeMasterURL) } return parsedURL.String(), nil } @@ -471,7 +470,7 @@ func newKubeClient() (*kclient.Client, error) { err error masterURL string ) - // If the user specified --kube_master_url, expand env vars and verify it. + // If the user specified --kube-master-url, expand env vars and verify it. if *argKubeMasterURL != "" { masterURL, err = expandKubeMasterURL() if err != nil { @@ -480,15 +479,15 @@ func newKubeClient() (*kclient.Client, error) { } if masterURL != "" && *argKubecfgFile == "" { - // Only --kube_master_url was provided. + // Only --kube-master-url was provided. config = &kclient.Config{ Host: masterURL, GroupVersion: &unversioned.GroupVersion{Version: "v1"}, } } else { // We either have: - // 1) --kube_master_url and --kubecfg_file - // 2) just --kubecfg_file + // 1) --kube-master-url and --kubecfg-file + // 2) just --kubecfg-file // 3) neither flag // In any case, the logic is the same. If (3), this will automatically // fall back on the service account token. @@ -563,6 +562,7 @@ func getHash(text string) string { } func main() { + flag.CommandLine.SetNormalizeFunc(util.WarnWordSepNormalizeFunc) flag.Parse() var err error // TODO: Validate input flags. From f0c50512013e312ab744d7b08df7a8496dfc61b2 Mon Sep 17 00:00:00 2001 From: YuviPanda Date: Wed, 2 Dec 2015 17:30:51 -0800 Subject: [PATCH 2/4] Fix verify-flags lists to account for flag changes --- hack/verify-flags/excluded-flags.txt | 3 --- hack/verify-flags/known-flags.txt | 4 ++++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/hack/verify-flags/excluded-flags.txt b/hack/verify-flags/excluded-flags.txt index 018bc60d45c..3413ccd4d35 100644 --- a/hack/verify-flags/excluded-flags.txt +++ b/hack/verify-flags/excluded-flags.txt @@ -1,6 +1,5 @@ check_version_skew concurrent_rc_syncs -etcd_mutation_timeout file_content file_mode file_owner @@ -8,8 +7,6 @@ file_perm fs_type gke_context host_port_endpoints -kubecfg_file -kube_master_url max_in_flight max_par new_file_0644 diff --git a/hack/verify-flags/known-flags.txt b/hack/verify-flags/known-flags.txt index 04b9ac72aa9..6d00813cca9 100644 --- a/hack/verify-flags/known-flags.txt +++ b/hack/verify-flags/known-flags.txt @@ -88,6 +88,7 @@ enable-debugging-handlers enable-hostpath-provisioner enable-server etcd-config +etcd-mutation-timeout etcd-prefix etcd-server etcd-servers @@ -157,6 +158,7 @@ kube-api-burst kube-api-qps kube-master kube-reserved +kubecfg-file kubectl-path kubelet-address kubelet-cadvisor-port @@ -174,6 +176,8 @@ kubelet-read-only-port kubelet-root-dir kubelet-sync-frequency kubelet-timeout +kube-master +kube-master-url kubernetes-service-node-port label-columns last-release-pr From 12a677876634995b08aa728b193c232a255e729d Mon Sep 17 00:00:00 2001 From: YuviPanda Date: Thu, 21 Jan 2016 15:49:58 -0800 Subject: [PATCH 3/4] Update skynd RC template to use GNU style flags --- cluster/addons/dns/skydns-rc.yaml.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cluster/addons/dns/skydns-rc.yaml.in b/cluster/addons/dns/skydns-rc.yaml.in index 331bcf17de1..f65c489a058 100644 --- a/cluster/addons/dns/skydns-rc.yaml.in +++ b/cluster/addons/dns/skydns-rc.yaml.in @@ -55,7 +55,7 @@ spec: memory: 50Mi args: # command = "/kube2sky" - - -domain={{ pillar['dns_domain'] }} + - --domain={{ pillar['dns_domain'] }} - name: skydns image: gcr.io/google_containers/skydns:2015-10-13-8c72f8c resources: From 1751bcf1e199bd094615c512a644ab95c3cce8a6 Mon Sep 17 00:00:00 2001 From: YuviPanda Date: Fri, 22 Jan 2016 00:19:01 -0800 Subject: [PATCH 4/4] Update hack/verify-flags/exceptions.txt --- hack/verify-flags/exceptions.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hack/verify-flags/exceptions.txt b/hack/verify-flags/exceptions.txt index 0a23564204f..33875837998 100644 --- a/hack/verify-flags/exceptions.txt +++ b/hack/verify-flags/exceptions.txt @@ -45,7 +45,8 @@ cluster/juju/charms/trusty/kubernetes/hooks/network-relation-changed: api_ser cluster/juju/charms/trusty/kubernetes/hooks/network-relation-changed: etcd_servers = get_rel_hosts('etcd', rels, ('hostname', 'port')) cluster/juju/charms/trusty/kubernetes/hooks/network-relation-changed: for k in ('etcd_servers', 'kubeapi_server'): cluster/juju/charms/trusty/kubernetes/hooks/network-relation-changed: if api_servers: -cluster/mesos/docker/common/bin/util-ssl.sh: local cluster_domain="cluster.local" +cluster/lib/logging.sh: local source_file=${BASH_SOURCE[$frame_no]} +cluster/lib/logging.sh: local source_file=${BASH_SOURCE[$stack_skip]} cluster/mesos/docker/km/build.sh: km_path=$(find-binary km darwin/amd64) cluster/rackspace/util.sh: local node_ip=$(nova show --minimal ${NODE_NAMES[$i]} \ cluster/saltbase/salt/kube-addons/kube-addons.sh:# Create admission_control objects if defined before any other addon services. If the limits @@ -75,6 +76,7 @@ docs/getting-started-guides/coreos/azure/lib/deployment_logic/kubernetes.js: re docs/getting-started-guides/coreos/azure/lib/deployment_logic/kubernetes.js: return cloud_config.process_template(input_file, output_file, function(data) { docs/getting-started-guides/coreos/azure/lib/deployment_logic/kubernetes.js: var write_files_extra = cloud_config.write_files_from('addons', '/etc/kubernetes/addons'); docs/getting-started-guides/coreos/azure/lib/deployment_logic/kubernetes.js:var cloud_config = require('../cloud_config.js'); +docs/getting-started-guides/docker-multinode/skydns-rc.yaml.in: - -kube_master_url=http://{kube_server_url}:8080 examples/cluster-dns/images/frontend/client.py: service_address = socket.gethostbyname(hostname) examples/vitess/env.sh: node_ip=$(get_node_ip) hack/jenkins/e2e.sh: local -r cluster_name="$3" @@ -84,8 +86,6 @@ hack/jenkins/update-jobs.sh: docker cp jenkins_jobs.ini job-builder:/etc/jenk hack/jenkins/update-jobs.sh: echo "jenkins_jobs.ini not found in workspace" >&2 hack/jenkins/update-jobs.sh: # jenkins_jobs.ini contains administrative credentials for Jenkins. hack/jenkins/update-jobs.sh: if [[ -e jenkins_jobs.ini ]]; then -cluster/lib/logging.sh: local source_file=${BASH_SOURCE[$frame_no]} -cluster/lib/logging.sh: local source_file=${BASH_SOURCE[$stack_skip]} hack/local-up-cluster.sh: runtime_config="--runtime-config=${RUNTIME_CONFIG}" hack/local-up-cluster.sh: runtime_config="" hack/test-cmd.sh: --runtime_config="extensions/v1beta1/deployments=true" \