From 47cb5a2641e840bca4f7fc15d93d78b2a6fca306 Mon Sep 17 00:00:00 2001 From: Chris Baumbauer Date: Thu, 13 Dec 2018 07:39:44 -0800 Subject: Require Knative to be installed only on an RBAC kubernetes cluster --- app/assets/javascripts/clusters/clusters_bundle.js | 3 +++ .../clusters/components/applications.vue | 19 ++++++++++++++- .../javascripts/clusters/stores/clusters_store.js | 6 +++++ app/models/clusters/applications/knative.rb | 11 +++++++++ app/views/clusters/clusters/show.html.haml | 1 + changelogs/unreleased/knative-rbac-check.yml | 5 ++++ locale/gitlab.pot | 3 +++ spec/factories/clusters/clusters.rb | 4 ++++ spec/factories/clusters/platforms/kubernetes.rb | 4 ++-- .../projects/clusters/applications_spec.rb | 28 ++++++++++++++++++++++ .../clusters/stores/clusters_store_spec.js | 1 + spec/models/clusters/applications/knative_spec.rb | 7 ++++++ 12 files changed, 89 insertions(+), 3 deletions(-) create mode 100644 changelogs/unreleased/knative-rbac-check.yml diff --git a/app/assets/javascripts/clusters/clusters_bundle.js b/app/assets/javascripts/clusters/clusters_bundle.js index aff32d95db1..b1f992c03ff 100644 --- a/app/assets/javascripts/clusters/clusters_bundle.js +++ b/app/assets/javascripts/clusters/clusters_bundle.js @@ -32,6 +32,7 @@ export default class Clusters { installKnativePath, installPrometheusPath, managePrometheusPath, + hasRbac, clusterType, clusterStatus, clusterStatusReason, @@ -45,6 +46,7 @@ export default class Clusters { this.store.setManagePrometheusPath(managePrometheusPath); this.store.updateStatus(clusterStatus); this.store.updateStatusReason(clusterStatusReason); + this.store.updateRbac(hasRbac); this.service = new ClustersService({ endpoint: statusPath, installHelmEndpoint: installHelmPath, @@ -102,6 +104,7 @@ export default class Clusters { ingressHelpPath: this.state.ingressHelpPath, managePrometheusPath: this.state.managePrometheusPath, ingressDnsHelpPath: this.state.ingressDnsHelpPath, + rbac: this.state.rbac, }, }); }, diff --git a/app/assets/javascripts/clusters/components/applications.vue b/app/assets/javascripts/clusters/components/applications.vue index 489615f1f78..5d19c79570a 100644 --- a/app/assets/javascripts/clusters/components/applications.vue +++ b/app/assets/javascripts/clusters/components/applications.vue @@ -52,6 +52,11 @@ export default { required: false, default: '', }, + rbac: { + type: Boolean, + required: false, + default: false, + }, }, data: () => ({ elasticsearchLogo, @@ -442,6 +447,18 @@ export default { title-link="https://github.com/knative/docs" >
+ +

+ {{ + s__(`ClusterIntegration|You must have an RBAC-enabled cluster + to install Knative.`) + }} + + {{ __('More information') }} + +

+
+

{{ s__(`ClusterIntegration|Knative extends Kubernetes to provide @@ -465,7 +482,7 @@ export default { />

-