From 5bb7eec5abc1be17488eb9700e21777ebb8d35f6 Mon Sep 17 00:00:00 2001 From: gmarek Date: Tue, 26 May 2015 10:43:48 +0200 Subject: [PATCH] Use salt pillars to pass test arguments during cluster creation. --- cluster/gce/config-test.sh | 8 +++++ cluster/gce/configure-vm.sh | 26 ++++++++++++++++ cluster/gce/debian/helper.sh | 30 +++++++++++++++++++ .../kube-apiserver/kube-apiserver.manifest | 5 ++++ .../kube-controller-manager.manifest | 5 ++++ cluster/saltbase/salt/kube-proxy/default | 9 ++++++ .../kube-scheduler/kube-scheduler.manifest | 9 +++++- cluster/saltbase/salt/kubelet/default | 8 +++++ 8 files changed, 99 insertions(+), 1 deletion(-) diff --git a/cluster/gce/config-test.sh b/cluster/gce/config-test.sh index 4918331c8b0..afe52805cae 100755 --- a/cluster/gce/config-test.sh +++ b/cluster/gce/config-test.sh @@ -53,6 +53,14 @@ SERVICE_CLUSTER_IP_RANGE="10.0.0.0/16" # formerly PORTAL_NET # google - Heapster, Google Cloud Monitoring, and Google Cloud Logging ENABLE_CLUSTER_MONITORING="${KUBE_ENABLE_CLUSTER_MONITORING:-influxdb}" +TEST_CLUSTER_LOG_LEVEL="${TEST_CLUSTER_LOG_LEVEL:---v=4}" + +KUBELET_TEST_ARGS="--max-pods=100 $TEST_CLUSTER_LOG_LEVEL" +APISERVER_TEST_ARGS="TEST_CLUSTER_LOG_LEVEL" +CONTROLLER_MANAGER_TEST_ARGS="TEST_CLUSTER_LOG_LEVEL" +SCHEDULER_TEST_ARGS="TEST_CLUSTER_LOG_LEVEL" +KUBEPROXY_TEST_ARGS="TEST_CLUSTER_LOG_LEVEL" + # Optional: Enable node logging. ENABLE_NODE_LOGGING="${KUBE_ENABLE_NODE_LOGGING:-true}" LOGGING_DESTINATION="${KUBE_LOGGING_DESTINATION:-elasticsearch}" # options: elasticsearch, gcp diff --git a/cluster/gce/configure-vm.sh b/cluster/gce/configure-vm.sh index 5501e01a86d..3281501543d 100644 --- a/cluster/gce/configure-vm.sh +++ b/cluster/gce/configure-vm.sh @@ -277,6 +277,32 @@ dns_server: '$(echo "$DNS_SERVER_IP" | sed -e "s/'/''/g")' dns_domain: '$(echo "$DNS_DOMAIN" | sed -e "s/'/''/g")' admission_control: '$(echo "$ADMISSION_CONTROL" | sed -e "s/'/''/g")' EOF + + if [ -n "${APISERVER_TEST_ARGS:-}" ]; then + cat <>/srv/salt-overlay/pillar/cluster-params.sls +apiserver_test_args: '$(echo "$APISERVER_TEST_ARGS" | sed -e "s/'/''/g")' +EOF + fi + if [ -n "${KUBELET_TEST_ARGS:-}" ]; then + cat <>/srv/salt-overlay/pillar/cluster-params.sls +kubelet_test_args: '$(echo "$KUBELET_TEST_ARGS" | sed -e "s/'/''/g")' +EOF + fi + if [ -n "${CONTROLLER_MANAGER_TEST_ARGS:-}" ]; then + cat <>/srv/salt-overlay/pillar/cluster-params.sls +controller_manager_test_args: '$(echo "$CONTROLLER_MANAGER_TEST_ARGS" | sed -e "s/'/''/g")' +EOF + fi + if [ -n "${SCHEDULER_TEST_ARGS:-}" ]; then + cat <>/srv/salt-overlay/pillar/cluster-params.sls +scheduler_test_args: '$(echo "$SCHEDULER_TEST_ARGS" | sed -e "s/'/''/g")' +EOF + fi + if [ -n "${KUBEPROXY_TEST_ARGS:-}" ]; then + cat <>/srv/salt-overlay/pillar/cluster-params.sls +kubeproxy_test_args: '$(echo "$KUBEPROXY_TEST_ARGS" | sed -e "s/'/''/g")' +EOF + fi } # This should only happen on cluster initialization. diff --git a/cluster/gce/debian/helper.sh b/cluster/gce/debian/helper.sh index 8326c650197..0876f155b78 100755 --- a/cluster/gce/debian/helper.sh +++ b/cluster/gce/debian/helper.sh @@ -67,6 +67,26 @@ MASTER_KEY: $(yaml-quote ${MASTER_KEY_BASE64:-}) KUBECFG_CERT: $(yaml-quote ${KUBECFG_CERT_BASE64:-}) KUBECFG_KEY: $(yaml-quote ${KUBECFG_KEY_BASE64:-}) EOF + if [ -n "${APISERVER_TEST_ARGS:-}" ]; then + cat >>$file <>$file <>$file <>$file <>$file <>$file <>$file <>/var/log/kube-scheduler.log 2>&1" + "/usr/local/bin/kube-scheduler --master=127.0.0.1:8080 {{params}} 1>>/var/log/kube-scheduler.log 2>&1" ], "livenessProbe": { "httpGet": { diff --git a/cluster/saltbase/salt/kubelet/default b/cluster/saltbase/salt/kubelet/default index dd0cde397aa..53810689eee 100644 --- a/cluster/saltbase/salt/kubelet/default +++ b/cluster/saltbase/salt/kubelet/default @@ -90,4 +90,12 @@ {% set pod_cidr = "--pod-cidr=" + grains['cbr-cidr'] %} {% endif %} +{% set test_args = "" -%} +{% if pillar['kubelet_test_args'] is defined -%} + {% set test_args=pillar['kubelet_test_args'] %} +{% endif -%} + DAEMON_ARGS="{{daemon_args}} {{api_servers_with_port}} {{debugging_handlers}} {{hostname_override}} {{cloud_provider}} {{config}} {{manifest_url}} --allow_privileged={{pillar['allow_privileged']}} {{pillar['log_level']}} {{cluster_dns}} {{cluster_domain}} {{docker_root}} {{kubelet_root}} {{configure_cbr0}} {{cgroup_root}} {{system_container}} {{pod_cidr}}" + +# test_args has to be kept at the end, so they'll overwrite any prior configuration +DAEMON_ARGS="$DAEMON_ARGS + {{test_args}}"