You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by ka...@apache.org on 2020/06/03 11:30:45 UTC

[beam] branch master updated: Fix an issue with kubectl not being configured properly (#11906)

This is an automated email from the ASF dual-hosted git repository.

kamilwu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new 7fca79b  Fix an issue with kubectl not being configured properly (#11906)
7fca79b is described below

commit 7fca79b0499ad6f1bb61f6f0b8ebb5aef6fa3783
Author: Kamil Wasilewski <ka...@polidea.com>
AuthorDate: Wed Jun 3 13:30:31 2020 +0200

    Fix an issue with kubectl not being configured properly (#11906)
---
 .test-infra/jenkins/CommonJobProperties.groovy               |  2 +-
 .../jenkins/job_PostCommit_BeamMetrics_Publish.groovy        |  5 +++--
 .test-infra/metrics/build.gradle                             | 12 +++++++++---
 3 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/.test-infra/jenkins/CommonJobProperties.groovy b/.test-infra/jenkins/CommonJobProperties.groovy
index df0d83a..9b7f2f3 100644
--- a/.test-infra/jenkins/CommonJobProperties.groovy
+++ b/.test-infra/jenkins/CommonJobProperties.groovy
@@ -249,7 +249,7 @@ class CommonJobProperties {
   }
 
   static String getKubeconfigLocationForNamespace(def namespace) {
-    return '"$WORKSPACE/' + "config-${namespace}" + '"'
+    return '$WORKSPACE/' + "config-${namespace}"
   }
 
   /**
diff --git a/.test-infra/jenkins/job_PostCommit_BeamMetrics_Publish.groovy b/.test-infra/jenkins/job_PostCommit_BeamMetrics_Publish.groovy
index 629fd51..f8c459f 100644
--- a/.test-infra/jenkins/job_PostCommit_BeamMetrics_Publish.groovy
+++ b/.test-infra/jenkins/job_PostCommit_BeamMetrics_Publish.groovy
@@ -20,7 +20,7 @@ import CommonJobProperties as commonJobProperties
 import Kubernetes
 import PostcommitJobBuilder
 
-PostcommitJobBuilder.postCommitJob('beam_PostCommit_BeamMetrics_Publish', '',
+PostcommitJobBuilder.postCommitJob('beam_PostCommit_BeamMetrics_Publish', 'Run Beam Metrics deployment',
   'Beam Metrics deployment', this) {
 
   description('Applies new configuration to Beam Metrics infrastructure.')
@@ -28,7 +28,8 @@ PostcommitJobBuilder.postCommitJob('beam_PostCommit_BeamMetrics_Publish', '',
   // Set common parameters.
   commonJobProperties.setTopLevelMainJobProperties(delegate)
 
-  Kubernetes.create(delegate, 'config-metrics', '', 'metrics')
+  String kubeconfig = commonJobProperties.getKubeconfigLocationForNamespace('default')
+  Kubernetes.create(delegate, kubeconfig, '', 'metrics')
 
   steps {
     gradle {
diff --git a/.test-infra/metrics/build.gradle b/.test-infra/metrics/build.gradle
index 5eebd6a..ddab327 100644
--- a/.test-infra/metrics/build.gradle
+++ b/.test-infra/metrics/build.gradle
@@ -67,6 +67,8 @@ task buildAndPublishContainers(type: Exec) {
 // Applies new configuration to all resources labeled with `app=beammetrics`
 // and forces Kubernetes to re-pull images.
 task applyConfiguration() {
+  dependsOn buildAndPublishContainers
+
   doLast {
     assert grgit : 'Cannot use outside of git repository'
 
@@ -75,12 +77,17 @@ task applyConfiguration() {
       it.dateTime > ZonedDateTime.now().minusHours(6)
     }
 
+    // Older version of kubectl does not offer `rollout restart` command, therefore we scale
+    // deployments to 0 and then scale back to 1.
     if (!commitedChanges.isEmpty()) {
       exec {
         executable 'sh'
         args '-c', 'kubectl apply --selector=app=beammetrics --prune=true -Rf kubernetes && \
-          kubectl wait --selector=app=beammetrics --for=condition=available deployment && \
-          kubectl get --selector=app=beammetrics -o name deployments | xargs -r kubectl rollout restart'
+          kubectl wait --selector=app=beammetrics --for=condition=available --timeout=5m deployment && \
+          kubectl get --selector=app=beammetrics -o name deployments \
+          | xargs -r kubectl scale --replicas=0 && \
+          kubectl get --selector=app=beammetrics -o name deployments \
+          | xargs -r kubectl scale --replicas=1'
       }
     } else {
       println 'No changes committed since the last 6 hours.'
@@ -89,7 +96,6 @@ task applyConfiguration() {
 }
 
 task deploy {
-  dependsOn buildAndPublishContainers
   dependsOn applyConfiguration
 }