Hello community,

here is the log from the commit of package velum for openSUSE:Factory checked 
in at 2018-04-22 14:40:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/velum (Old)
 and      /work/SRC/openSUSE:Factory/.velum.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "velum"

Sun Apr 22 14:40:37 2018 rev:23 rq:599484 
version:3.0.0+dev+git_r734_f7dc070fb3c2fa61475e52ed2fb91ca204727921

Changes:
--------
--- /work/SRC/openSUSE:Factory/velum/velum.changes      2018-04-20 
17:32:57.578946218 +0200
+++ /work/SRC/openSUSE:Factory/.velum.new/velum.changes 2018-04-22 
14:40:40.882705992 +0200
@@ -1,0 +2,67 @@
+Fri Apr 20 11:32:20 UTC 2018 - [email protected]
+
+- Commit 310d614 by Vítor Avelino [email protected]
+ node removal: improved way of showing removal links
+ 
+ 'Remove' and 'Force remove' links were being shown at the same time so far.
+ But 'Force remove' only makes sense to be shown when a previous removal has
+ failed.
+ 
+ With this we are showing only one link at a time. When the highstate of a
+ minion is fine, we show 'Remove'. Whenever it comes 'removal_failed', we show
+ 'Force remove'.
+ 
+ enhancemente#node-removal
+ 
+ Signed-off-by: Vítor Avelino <[email protected]>
+
+
+-------------------------------------------------------------------
+Fri Apr 20 10:33:06 UTC 2018 - [email protected]
+
+- Commit 514916c by Flavio Castelli [email protected]
+ Rename pillar used to choose the CRI
+ 
+ The pillar name has been changed by latest commits to the salt repository.
+ 
+ feature#crio
+ 
+ Signed-off-by: Flavio Castelli <[email protected]>
+ 
+ Commit 3864cce by Flavio Castelli [email protected]
+ Bootstrap settings: cri-o support
+ 
+ Allow the user to choose between different container runtimes.
+ 
+ This enables users to create clusters backed by cri-o instead of docker.
+ 
+ feature#crio
+ 
+ Signed-off-by: Flavio Castelli <[email protected]> Co-authored-by: Vítor
+ Avelino <[email protected]>
+
+
+-------------------------------------------------------------------
+Thu Apr 19 14:05:47 UTC 2018 - [email protected]
+
+- Commit 3ce16bd by Rafael Fernández López [email protected]
+ Fix rubocop offenses
+ 
+ Feature#clean-code
+
+
+-------------------------------------------------------------------
+Thu Apr 19 13:48:38 UTC 2018 - [email protected]
+
+- Commit 569db72 by Flavio Castelli [email protected]
+ Support the kubernetes feature gates pillar
+ 
+ Allow users to override the kubernetes:feature_gates pillar via our external
+ pillar source.
+ 
+ feature#feature-gates
+ 
+ Signed-off-by: Flavio Castelli <[email protected]>
+
+
+-------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ velum.spec ++++++
--- /var/tmp/diff_new_pack.8PK4H4/_old  2018-04-22 14:40:41.694676611 +0200
+++ /var/tmp/diff_new_pack.8PK4H4/_new  2018-04-22 14:40:41.698676467 +0200
@@ -23,7 +23,7 @@
 # Version:      1.0.0
 # %%define branch 1.0.0
 
-Version:        3.0.0+dev+git_r725_0f32ab90393bfb78110ac53bc9cb3a914a97433c
+Version:        3.0.0+dev+git_r734_f7dc070fb3c2fa61475e52ed2fb91ca204727921
 Release:        0
 %define branch master
 Summary:        Dashboard for CaasP
@@ -96,7 +96,7 @@
 %description
 velum is the dashboard for CaasP to manage and deploy kubernetes clusters on 
top of MicroOS
 
-This package has been built with commit 
0f32ab90393bfb78110ac53bc9cb3a914a97433c from branch master on date Thu, 19 Apr 
2018 09:19:29 +0000
+This package has been built with commit 
f7dc070fb3c2fa61475e52ed2fb91ca204727921 from branch master on date Fri, 20 Apr 
2018 11:31:38 +0000
 
 %prep
 %setup -q -n velum-%{branch}

++++++ master.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/velum-master/app/assets/javascripts/dashboard/dashboard.js 
new/velum-master/app/assets/javascripts/dashboard/dashboard.js
--- old/velum-master/app/assets/javascripts/dashboard/dashboard.js      
2018-04-19 11:19:24.000000000 +0200
+++ new/velum-master/app/assets/javascripts/dashboard/dashboard.js      
2018-04-20 13:31:45.000000000 +0200
@@ -303,6 +303,7 @@
     var checked;
     var masterHtml;
     var actionsHtml;
+    var removalFailedClass = '';
 
     switch(minion.highstate) {
       case "not_applied":
@@ -321,6 +322,7 @@
         MinionPoller.alertFailedBootstrap();
         break;
       case "removal_failed":
+        removalFailedClass = 'removal-failed';
         statusHtml = '<i class="fa fa-minus-circle text-danger fa-2x" 
aria-hidden="true"></i> Removal Failed';
         break;
       case "applied":
@@ -355,9 +357,9 @@
     }
 
     if (State.pendingRemovalMinionId || State.hasPendingStateNode) {
-      actionsHtml = '<a href="#" class="disabled remove-node-link">Remove</a> 
| <a href="#" class="disabled force-remove-node-link">Force remove</a>';
+      actionsHtml = '<a href="#" class="disabled 
remove-node-link">Remove</a><a href="#" class="disabled 
force-remove-node-link">Force remove</a>';
     } else {
-      actionsHtml = '<a href="#" class="remove-node-link">Remove</a> | <a 
href="#" class="force-remove-node-link">Force remove</a>';
+      actionsHtml = '<a href="#" class="remove-node-link">Remove</a><a 
href="#" class="force-remove-node-link">Force remove</a>';
     }
 
     if (minion.minion_id === State.pendingRemovalMinionId) {
@@ -375,7 +377,7 @@
         <td><strong>' + minion.minion_id +  '</strong></td>\
         <td class="minion-hostname">' + minion.fqdn +  '</td>\
         <td>' + masterHtml + minion.role + '</td>\
-        <td class="actions-column" data-id="' + minion.minion_id + '" 
data-hostname="' + minion.fqdn + '">' + actionsHtml + '</td>\
+        <td class="actions-column ' + removalFailedClass + '" data-id="' + 
minion.minion_id + '" data-hostname="' + minion.fqdn + '">' + actionsHtml + 
'</td>\
       </tr>';
   },
 
@@ -911,7 +913,7 @@
 };
 
 function enableOrchTriggers() {
-  $('.actions-column[data-id=' + State.pendingRemovalMinionId + ']').html('<a 
href="#" class="remove-node-link">Remove</a> | <a href="#" 
class="remove-node-link">Force remove</a>');
+  $('.actions-column[data-id=' + State.pendingRemovalMinionId + ']').html('<a 
href="#" class="remove-node-link">Remove</a><a href="#" 
class="remove-node-link">Force remove</a>');
   $('.remove-node-link').removeClass('disabled');
   $('.force-remove-node-link').removeClass('disabled');
   $('.assign-nodes-link').removeClass('disabled');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/velum-master/app/assets/javascripts/setup/setup.js 
new/velum-master/app/assets/javascripts/setup/setup.js
--- old/velum-master/app/assets/javascripts/setup/setup.js      2018-04-19 
11:19:24.000000000 +0200
+++ new/velum-master/app/assets/javascripts/setup/setup.js      2018-04-20 
13:31:45.000000000 +0200
@@ -21,5 +21,10 @@
     }
   });
 
+  $(document).on('click', '.runtime-btn-group .btn', function() {
+    $('.docker-desc, .crio-desc').collapse('hide');
+    $($(this).data('element')).collapse('show');
+  });
+
   new SUSERegistryMirrorPanel('.suse-mirror-panel-body');
 });
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/velum-master/app/assets/stylesheets/components/panels.scss 
new/velum-master/app/assets/stylesheets/components/panels.scss
--- old/velum-master/app/assets/stylesheets/components/panels.scss      
2018-04-19 11:19:24.000000000 +0200
+++ new/velum-master/app/assets/stylesheets/components/panels.scss      
2018-04-20 13:31:45.000000000 +0200
@@ -7,7 +7,7 @@
 
   .fa,
   .glyphicon {
-    vertical-align: middle;
+    vertical-align: bottom;
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/velum-master/app/assets/stylesheets/pages/nodes_list.scss 
new/velum-master/app/assets/stylesheets/pages/nodes_list.scss
--- old/velum-master/app/assets/stylesheets/pages/nodes_list.scss       
2018-04-19 11:19:24.000000000 +0200
+++ new/velum-master/app/assets/stylesheets/pages/nodes_list.scss       
2018-04-20 13:31:45.000000000 +0200
@@ -155,3 +155,19 @@
 #retry-cluster-bootstrap, #retry-cluster-upgrade {
   margin-right: 10px;
 }
+
+.actions-column {
+  &.removal-failed {
+    .force-remove-node-link {
+      display: block;
+    }
+
+    .remove-node-link {
+      display: none;
+    }
+  }
+
+  .force-remove-node-link {
+    display: none;
+  }
+}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/velum-master/app/assets/stylesheets/pages/setup.scss 
new/velum-master/app/assets/stylesheets/pages/setup.scss
--- old/velum-master/app/assets/stylesheets/pages/setup.scss    2018-04-19 
11:19:24.000000000 +0200
+++ new/velum-master/app/assets/stylesheets/pages/setup.scss    2018-04-20 
13:31:45.000000000 +0200
@@ -4,4 +4,8 @@
 
 .invalid-insecure {
   color: $state-danger-text;
+}
+
+.runtime-btn-group {
+  margin-bottom: 10px;
 }
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/velum-master/app/controllers/setup_controller.rb 
new/velum-master/app/controllers/setup_controller.rb
--- old/velum-master/app/controllers/setup_controller.rb        2018-04-19 
11:19:24.000000000 +0200
+++ new/velum-master/app/controllers/setup_controller.rb        2018-04-20 
13:31:45.000000000 +0200
@@ -48,6 +48,9 @@
     @cloud_openstack_floating = Pillar.value(pillar: :cloud_openstack_floating)
     @cloud_openstack_lb_mon_retries = Pillar.value(pillar: 
:cloud_openstack_lb_mon_retries) || "3"
     @cloud_openstack_bs_version = Pillar.value(pillar: 
:cloud_openstack_bs_version) || "v2"
+
+    # container runtime setting
+    @cri = Pillar.value(pillar: :container_runtime) || "docker"
   end
   # rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity, 
Metrics/AbcSize
 
@@ -64,7 +67,7 @@
     end
   end
 
-  # rubocop:disable Metrics/CyclomaticComplexity
+  # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
   def worker_bootstrap
     @controller_node = Pillar.value pillar: :dashboard
 
@@ -87,7 +90,7 @@
     end
     render "worker_bootstrap_#{cloud}".to_sym
   end
-  # rubocop:enable Metrics/CyclomaticComplexity
+  # rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
 
   def build_cloud_cluster
     @cloud_cluster = CloudCluster.new(cloud_cluster_params)
@@ -104,9 +107,9 @@
   end
 
   def set_roles
-    # rubocop:disable Rails/SkipsModelValidations:
+    # rubocop:disable Rails/SkipsModelValidations
     Minion.cluster_role.update_all role: nil
-    # rubocop:enable Rails/SkipsModelValidations:
+    # rubocop:enable Rails/SkipsModelValidations
     assigned = Minion.assign_roles roles: update_nodes_params, remote: false
     if assigned.values.include?(false)
       redirect_to setup_discovery_path,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/velum-master/app/models/pillar.rb 
new/velum-master/app/models/pillar.rb
--- old/velum-master/app/models/pillar.rb       2018-04-19 11:19:24.000000000 
+0200
+++ new/velum-master/app/models/pillar.rb       2018-04-20 13:31:45.000000000 
+0200
@@ -49,7 +49,9 @@
         dex_client_secrets_kubernetes: "dex:client_secrets:kubernetes",
         dex_client_secrets_velum:      "dex:client_secrets:velum",
         cloud_framework:               "cloud:framework",
-        cloud_provider:                "cloud:provider"
+        cloud_provider:                "cloud:provider",
+        kubernetes_feature_gates:      "kubernetes:feature_gates",
+        container_runtime:             "cri:chosen"
       }
     end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/velum-master/app/views/dashboard/index.html.slim 
new/velum-master/app/views/dashboard/index.html.slim
--- old/velum-master/app/views/dashboard/index.html.slim        2018-04-19 
11:19:24.000000000 +0200
+++ new/velum-master/app/views/dashboard/index.html.slim        2018-04-20 
13:31:45.000000000 +0200
@@ -81,7 +81,7 @@
                 | Hostname
               th
                 | Role
-              th width="170"
+              th width="130"
                 | Actions
           tbody
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/velum-master/app/views/setup/settings/_container_runtime.html.slim 
new/velum-master/app/views/setup/settings/_container_runtime.html.slim
--- old/velum-master/app/views/setup/settings/_container_runtime.html.slim      
1970-01-01 01:00:00.000000000 +0100
+++ new/velum-master/app/views/setup/settings/_container_runtime.html.slim      
2018-04-20 13:31:45.000000000 +0200
@@ -0,0 +1,36 @@
+.panel.panel-default
+  .panel-heading
+    h3.panel-title
+      | Container runtime
+      | &nbsp;
+      i class='glyphicon glyphicon-info-sign' title="Software that Kubernetes 
uses to manage the containers."
+  .panel-body
+    p The choice of container runtime is completely transparent to end-users 
of the
+      cluster. Neither Kubernetes manifests nor container images need to be 
changed.
+
+    .form-group
+      = f.label :cri, "Choose the runtime"
+      br
+        .btn-group.btn-group-toggle.runtime-btn-group data-toggle="buttons"
+          = label_tag :container_runtime, nil, class: "docker btn btn-default 
#{'btn-primary active' if @cri == "docker"}", data: { element: '.docker-desc' }
+            = f.radio_button :container_runtime, "docker", checked: @cri == 
"docker"
+            | Docker open source engine
+          = label_tag :container_runtime, nil, class: "crio btn btn-default 
#{'btn-primary active' if @cri == "crio"}", data: { element: '.crio-desc' }
+            = f.radio_button :container_runtime, "crio", checked: @cri == 
"crio"
+            | cri-o
+
+      .docker-desc.collapse class="#{'in' if @cri == "docker"}"
+        | <em>Docker open source engine</em> (<strong>default</strong>) is a 
production-ready runtime, fully supported by SUSE.
+
+      .crio-desc.collapse class="#{'in' if @cri == "crio"}"
+        p <em>cri-o</em> is a lightweight container runtime designed and 
optimised for
+          Kubernetes. Based on Open Container Initiative standards, it can 
pull from any
+          compliant registry and can run any OCI-compliant container.
+
+        .alert.alert-warning role="alert"
+          span NOTE: cri-o is a <em>technology feature preview</em>. SUSE 
welcomes your
+               feedback on cri-o. As a preview, cri-o is <strong>not 
supported</strong>.
+               Previews may be functionally incomplete, unstable or in other 
ways not suitable
+               for production use. They are mainly included to give customers 
a chance to test
+               new technologies within an enterprise environment.
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/velum-master/app/views/setup/welcome.html.slim 
new/velum-master/app/views/setup/welcome.html.slim
--- old/velum-master/app/views/setup/welcome.html.slim  2018-04-19 
11:19:24.000000000 +0200
+++ new/velum-master/app/views/setup/welcome.html.slim  2018-04-20 
13:31:45.000000000 +0200
@@ -136,6 +136,7 @@
 
   = render partial: 'setup/settings/mirror', locals: { form: f }
   = render partial: 'setup/cloud/settings', locals: { f: f }
+  = render partial: 'setup/settings/container_runtime', locals: { f: f }
 
   .clearfix.steps-container
     = submit_tag "Next", class: "btn btn-primary pull-right"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/velum-master/spec/features/node_force_removal_feature_spec.rb 
new/velum-master/spec/features/node_force_removal_feature_spec.rb
--- old/velum-master/spec/features/node_force_removal_feature_spec.rb   
2018-04-19 11:19:24.000000000 +0200
+++ new/velum-master/spec/features/node_force_removal_feature_spec.rb   
2018-04-20 13:31:45.000000000 +0200
@@ -4,11 +4,13 @@
 describe "feature: node force removal", js: true do
   let!(:user) { create(:user) }
   let!(:minions) do
-    Minion.create! [{ minion_id: SecureRandom.hex, fqdn: "minion0.k8s.local", 
role: "master" },
+    Minion.create! [{ minion_id: SecureRandom.hex, fqdn: "minion0.k8s.local", 
role: "master",
+                      highstate: Minion.highstates[:removal_failed] },
                     { minion_id: SecureRandom.hex, fqdn: "minion1.k8s.local", 
role: "master" },
                     { minion_id: SecureRandom.hex, fqdn: "minion2.k8s.local", 
role: "master",
                       tx_update_reboot_needed: true },
-                    { minion_id: SecureRandom.hex, fqdn: "minion3.k8s.local", 
role: "worker" },
+                    { minion_id: SecureRandom.hex, fqdn: "minion3.k8s.local", 
role: "worker",
+                      highstate: Minion.highstates[:removal_failed] },
                     { minion_id: SecureRandom.hex, fqdn: "minion4.k8s.local", 
role: "worker" },
                     { minion_id: SecureRandom.hex, fqdn: "minion5.k8s.local" }]
   end
@@ -23,8 +25,8 @@
     visit authenticated_root_path
   end
 
-  it "shows 'Force remove' link for each node" do
-    expect(page).to have_link("Force remove", count: Minion.cluster_role.count)
+  it "shows 'Force remove' link for each removal failed node" do
+    expect(page).to have_link("Force remove", count: 2)
   end
 
   it "hides 'Force remove' link if only 1 master and 1 worker" do
@@ -79,10 +81,12 @@
 
       # remove other nodes
       expect(page).to have_css(".force-remove-node-link.disabled",
-        count: Minion.cluster_role.count - 1)
+        count: 2)
+      expect(page).to have_css(".remove-node-link.disabled",
+        count: 2)
 
       # assign nodes
-      expect(page).to have_css(".assign-nodes-link.disabled")
+      expect(page).not_to have_link("(new)")
 
       # update all nodes
       expect(page).to have_css("#update-all-nodes.hidden", visible: false)
@@ -108,7 +112,7 @@
       expect(page).not_to have_css(".force-remove-node-link.disabled")
 
       # assign nodes
-      expect(page).not_to have_css(".assign-nodes-link.disabled")
+      expect(page).to have_link("(new)")
 
       # update all nodes
       expect(page).not_to have_css("#update-all-nodes.hidden", visible: false)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/velum-master/spec/features/node_removal_feature_spec.rb 
new/velum-master/spec/features/node_removal_feature_spec.rb
--- old/velum-master/spec/features/node_removal_feature_spec.rb 2018-04-19 
11:19:24.000000000 +0200
+++ new/velum-master/spec/features/node_removal_feature_spec.rb 2018-04-20 
13:31:45.000000000 +0200
@@ -88,7 +88,7 @@
       expect(page).to have_css(".remove-node-link.disabled", count: 
Minion.cluster_role.count - 1)
 
       # assign nodes
-      expect(page).to have_css(".assign-nodes-link.disabled")
+      expect(page).not_to have_link("(new)")
 
       # update all nodes
       expect(page).to have_css("#update-all-nodes.hidden", visible: false)
@@ -113,7 +113,7 @@
       expect(page).not_to have_css(".remove-node-link.disabled")
 
       # assign nodes
-      expect(page).not_to have_css(".assign-nodes-link.disabled")
+      expect(page).to have_link("(new)")
 
       # update all nodes
       expect(page).not_to have_css("#update-all-nodes.hidden", visible: false)
@@ -172,6 +172,7 @@
       find(worker_link).click
       minions[1].update!(highstate: "removal_failed")
       expect(page).to have_content("Removal Failed")
+      expect(page).to have_link("Force remove")
     end
 
     it "shows that attempt failed if en exception happens during request" do


Reply via email to