diff --git a/cluster/addons/dashboard/OWNERS b/cluster/addons/dashboard/OWNERS deleted file mode 100644 index 1ce05df46f9..00000000000 --- a/cluster/addons/dashboard/OWNERS +++ /dev/null @@ -1,13 +0,0 @@ -# See the OWNERS docs at https://go.k8s.io/owners - -approvers: [] -reviewers: [] -emeritus_approvers: - - bryk - - danielromlein - - ianlewis - - jeefy - - rf232 - - floreks - - maciaszczykm - - shu-mutou diff --git a/cluster/addons/dashboard/README.md b/cluster/addons/dashboard/README.md deleted file mode 100644 index e9666130207..00000000000 --- a/cluster/addons/dashboard/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Kubernetes Dashboard - -Kubernetes Dashboard is a general purpose, web-based UI for Kubernetes clusters. -It allows users to manage applications running in the cluster, troubleshoot them, -as well as manage the cluster itself. - -Learn more at: https://github.com/kubernetes/dashboard diff --git a/cluster/addons/dashboard/dashboard.yaml b/cluster/addons/dashboard/dashboard.yaml deleted file mode 100644 index d13af3172f9..00000000000 --- a/cluster/addons/dashboard/dashboard.yaml +++ /dev/null @@ -1,297 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: kubernetes-dashboard - labels: - k8s-app: kubernetes-dashboard - addonmanager.kubernetes.io/mode: Reconcile - ---- - -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - k8s-app: kubernetes-dashboard - addonmanager.kubernetes.io/mode: Reconcile - name: kubernetes-dashboard - namespace: kubernetes-dashboard - ---- - -kind: Service -apiVersion: v1 -metadata: - labels: - k8s-app: kubernetes-dashboard - kubernetes.io/cluster-service: "true" - addonmanager.kubernetes.io/mode: Reconcile - name: kubernetes-dashboard - namespace: kubernetes-dashboard -spec: - ports: - - port: 443 - targetPort: 8443 - selector: - k8s-app: kubernetes-dashboard - - ---- - -apiVersion: v1 -kind: Secret -metadata: - labels: - k8s-app: kubernetes-dashboard - addonmanager.kubernetes.io/mode: EnsureExists - name: kubernetes-dashboard-certs - namespace: kubernetes-dashboard -type: Opaque - ---- - -apiVersion: v1 -kind: Secret -metadata: - labels: - k8s-app: kubernetes-dashboard - addonmanager.kubernetes.io/mode: EnsureExists - name: kubernetes-dashboard-csrf - namespace: kubernetes-dashboard -type: Opaque -data: - csrf: "" - ---- - -apiVersion: v1 -kind: Secret -metadata: - labels: - k8s-app: kubernetes-dashboard - addonmanager.kubernetes.io/mode: EnsureExists - name: kubernetes-dashboard-key-holder - namespace: kubernetes-dashboard -type: Opaque - ---- - -kind: ConfigMap -apiVersion: v1 -metadata: - labels: - k8s-app: kubernetes-dashboard - addonmanager.kubernetes.io/mode: EnsureExists - name: kubernetes-dashboard-settings - namespace: kubernetes-dashboard - ---- - -kind: Role -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - labels: - k8s-app: kubernetes-dashboard - addonmanager.kubernetes.io/mode: Reconcile - name: kubernetes-dashboard - namespace: kubernetes-dashboard -rules: - - apiGroups: [""] - resources: ["secrets"] - resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs", "kubernetes-dashboard-csrf"] - verbs: ["get", "update", "delete"] - - apiGroups: [""] - resources: ["configmaps"] - resourceNames: ["kubernetes-dashboard-settings"] - verbs: ["get", "update"] - - apiGroups: [""] - resources: ["services"] - resourceNames: ["heapster", "dashboard-metrics-scraper"] - verbs: ["proxy"] - - apiGroups: [""] - resources: ["services/proxy"] - resourceNames: ["heapster", "http:heapster:", "https:heapster:", "dashboard-metrics-scraper", "http:dashboard-metrics-scraper"] - verbs: ["get"] - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - labels: - k8s-app: kubernetes-dashboard - addonmanager.kubernetes.io/mode: Reconcile - name: kubernetes-dashboard -rules: - - apiGroups: ["metrics.k8s.io"] - resources: ["pods", "nodes"] - verbs: ["get", "list", "watch"] - ---- - -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - labels: - k8s-app: kubernetes-dashboard - addonmanager.kubernetes.io/mode: Reconcile - name: kubernetes-dashboard - namespace: kubernetes-dashboard -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: kubernetes-dashboard -subjects: - - kind: ServiceAccount - name: kubernetes-dashboard - namespace: kubernetes-dashboard - ---- - -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: kubernetes-dashboard - labels: - k8s-app: kubernetes-dashboard - addonmanager.kubernetes.io/mode: Reconcile -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: kubernetes-dashboard -subjects: - - kind: ServiceAccount - name: kubernetes-dashboard - namespace: kubernetes-dashboard - ---- - -kind: Deployment -apiVersion: apps/v1 -metadata: - labels: - k8s-app: kubernetes-dashboard - name: kubernetes-dashboard - namespace: kubernetes-dashboard -spec: - replicas: 1 - revisionHistoryLimit: 10 - selector: - matchLabels: - k8s-app: kubernetes-dashboard - template: - metadata: - labels: - k8s-app: kubernetes-dashboard - spec: - containers: - - name: kubernetes-dashboard - image: kubernetesui/dashboard:v2.0.1 - imagePullPolicy: Always - ports: - - containerPort: 8443 - protocol: TCP - args: - - --auto-generate-certificates - - --namespace=kubernetes-dashboard - volumeMounts: - - name: kubernetes-dashboard-certs - mountPath: /certs - - mountPath: /tmp - name: tmp-volume - livenessProbe: - httpGet: - scheme: HTTPS - path: / - port: 8443 - initialDelaySeconds: 30 - timeoutSeconds: 30 - securityContext: - allowPrivilegeEscalation: false - readOnlyRootFilesystem: true - runAsUser: 1001 - runAsGroup: 2001 - volumes: - - name: kubernetes-dashboard-certs - secret: - secretName: kubernetes-dashboard-certs - - name: tmp-volume - emptyDir: {} - serviceAccountName: kubernetes-dashboard - nodeSelector: - "kubernetes.io/os": linux - tolerations: - - key: "CriticalAddonsOnly" - operator: "Exists" - - key: node-role.kubernetes.io/master - effect: NoSchedule - ---- - -kind: Service -apiVersion: v1 -metadata: - labels: - k8s-app: dashboard-metrics-scraper - name: dashboard-metrics-scraper - namespace: kubernetes-dashboard -spec: - ports: - - port: 8000 - targetPort: 8000 - selector: - k8s-app: dashboard-metrics-scraper - ---- - -kind: Deployment -apiVersion: apps/v1 -metadata: - labels: - k8s-app: dashboard-metrics-scraper - name: dashboard-metrics-scraper - namespace: kubernetes-dashboard -spec: - replicas: 1 - revisionHistoryLimit: 10 - selector: - matchLabels: - k8s-app: dashboard-metrics-scraper - template: - metadata: - labels: - k8s-app: dashboard-metrics-scraper - spec: - securityContext: - seccompProfile: - type: RuntimeDefault - containers: - - name: dashboard-metrics-scraper - image: kubernetesui/metrics-scraper:v1.0.4 - ports: - - containerPort: 8000 - protocol: TCP - livenessProbe: - httpGet: - scheme: HTTP - path: / - port: 8000 - initialDelaySeconds: 30 - timeoutSeconds: 30 - volumeMounts: - - mountPath: /tmp - name: tmp-volume - securityContext: - allowPrivilegeEscalation: false - readOnlyRootFilesystem: true - runAsUser: 1001 - runAsGroup: 2001 - serviceAccountName: kubernetes-dashboard - nodeSelector: - "kubernetes.io/os": linux - tolerations: - - key: node-role.kubernetes.io/master - effect: NoSchedule - volumes: - - name: tmp-volume - emptyDir: {} diff --git a/cluster/gce/config-default.sh b/cluster/gce/config-default.sh index 278dbad0f32..e0139a62ecd 100755 --- a/cluster/gce/config-default.sh +++ b/cluster/gce/config-default.sh @@ -280,9 +280,6 @@ export DNS_MEMORY_LIMIT="${KUBE_DNS_MEMORY_LIMIT:-170Mi}" # Optional: Enable DNS horizontal autoscaler export ENABLE_DNS_HORIZONTAL_AUTOSCALER="${KUBE_ENABLE_DNS_HORIZONTAL_AUTOSCALER:-true}" -# Optional: Install Kubernetes UI -export ENABLE_CLUSTER_UI="${KUBE_ENABLE_CLUSTER_UI:-true}" - # Optional: Install node problem detector. # none - Not run node problem detector. # daemonset - Run node problem detector as daemonset. @@ -458,14 +455,11 @@ HEAPSTER_GCP_MEMORY_PER_NODE="${HEAPSTER_GCP_MEMORY_PER_NODE:-4}" HEAPSTER_GCP_BASE_CPU="${HEAPSTER_GCP_BASE_CPU:-80m}" HEAPSTER_GCP_CPU_PER_NODE="${HEAPSTER_GCP_CPU_PER_NODE:-0.5}" -# Optional: custom system banner for dashboard addon -CUSTOM_KUBE_DASHBOARD_BANNER="${CUSTOM_KUBE_DASHBOARD_BANNER:-}" - # Default Stackdriver resources version exported by Fluentd-gcp addon LOGGING_STACKDRIVER_RESOURCE_TYPES="${LOGGING_STACKDRIVER_RESOURCE_TYPES:-old}" # Adding to PROVIDER_VARS, since this is GCP-specific. -PROVIDER_VARS="${PROVIDER_VARS:-} FLUENTD_GCP_YAML_VERSION FLUENTD_GCP_VERSION FLUENTD_GCP_MEMORY_LIMIT FLUENTD_GCP_CPU_REQUEST FLUENTD_GCP_MEMORY_REQUEST HEAPSTER_GCP_BASE_MEMORY HEAPSTER_GCP_MEMORY_PER_NODE HEAPSTER_GCP_BASE_CPU HEAPSTER_GCP_CPU_PER_NODE CUSTOM_KUBE_DASHBOARD_BANNER LOGGING_STACKDRIVER_RESOURCE_TYPES" +PROVIDER_VARS="${PROVIDER_VARS:-} FLUENTD_GCP_YAML_VERSION FLUENTD_GCP_VERSION FLUENTD_GCP_MEMORY_LIMIT FLUENTD_GCP_CPU_REQUEST FLUENTD_GCP_MEMORY_REQUEST HEAPSTER_GCP_BASE_MEMORY HEAPSTER_GCP_MEMORY_PER_NODE HEAPSTER_GCP_BASE_CPU HEAPSTER_GCP_CPU_PER_NODE LOGGING_STACKDRIVER_RESOURCE_TYPES" # Fluentd configuration for node-journal ENABLE_NODE_JOURNAL="${ENABLE_NODE_JOURNAL:-false}" diff --git a/cluster/gce/config-test.sh b/cluster/gce/config-test.sh index 5f4c9d63625..084555555b6 100755 --- a/cluster/gce/config-test.sh +++ b/cluster/gce/config-test.sh @@ -322,9 +322,6 @@ export DNS_MEMORY_LIMIT=${KUBE_DNS_MEMORY_LIMIT:-170Mi} # Optional: Enable DNS horizontal autoscaler export ENABLE_DNS_HORIZONTAL_AUTOSCALER=${KUBE_ENABLE_DNS_HORIZONTAL_AUTOSCALER:-true} -# Optional: Install Kubernetes UI -export ENABLE_CLUSTER_UI=${KUBE_ENABLE_CLUSTER_UI:-true} - # Optional: Install node problem detector. # none - Not run node problem detector. # daemonset - Run node problem detector as daemonset. @@ -511,14 +508,11 @@ HEAPSTER_GCP_MEMORY_PER_NODE=${HEAPSTER_GCP_MEMORY_PER_NODE:-4} HEAPSTER_GCP_BASE_CPU=${HEAPSTER_GCP_BASE_CPU:-80m} HEAPSTER_GCP_CPU_PER_NODE=${HEAPSTER_GCP_CPU_PER_NODE:-0.5} -# Optional: custom system banner for dashboard addon -CUSTOM_KUBE_DASHBOARD_BANNER=${CUSTOM_KUBE_DASHBOARD_BANNER:-} - # Default Stackdriver resources version exported by Fluentd-gcp addon LOGGING_STACKDRIVER_RESOURCE_TYPES=${LOGGING_STACKDRIVER_RESOURCE_TYPES:-old} # Adding to PROVIDER_VARS, since this is GCP-specific. -PROVIDER_VARS="${PROVIDER_VARS:-} FLUENTD_GCP_YAML_VERSION FLUENTD_GCP_VERSION FLUENTD_GCP_MEMORY_LIMIT FLUENTD_GCP_CPU_REQUEST FLUENTD_GCP_MEMORY_REQUEST HEAPSTER_GCP_BASE_MEMORY HEAPSTER_GCP_MEMORY_PER_NODE HEAPSTER_GCP_BASE_CPU HEAPSTER_GCP_CPU_PER_NODE CUSTOM_KUBE_DASHBOARD_BANNER LOGGING_STACKDRIVER_RESOURCE_TYPES" +PROVIDER_VARS="${PROVIDER_VARS:-} FLUENTD_GCP_YAML_VERSION FLUENTD_GCP_VERSION FLUENTD_GCP_MEMORY_LIMIT FLUENTD_GCP_CPU_REQUEST FLUENTD_GCP_MEMORY_REQUEST HEAPSTER_GCP_BASE_MEMORY HEAPSTER_GCP_MEMORY_PER_NODE HEAPSTER_GCP_BASE_CPU HEAPSTER_GCP_CPU_PER_NODE LOGGING_STACKDRIVER_RESOURCE_TYPES" # Fluentd configuration for node-journal ENABLE_NODE_JOURNAL=${ENABLE_NODE_JOURNAL:-false} diff --git a/cluster/gce/gci/configure-helper.sh b/cluster/gce/gci/configure-helper.sh index 33468c1ab3a..3bd20bf2399 100644 --- a/cluster/gce/gci/configure-helper.sh +++ b/cluster/gce/gci/configure-helper.sh @@ -2596,12 +2596,6 @@ function update-event-exporter { sed -i -e "s@{{ exporter_sd_endpoint }}@${STACKDRIVER_ENDPOINT:-}@g" "$1" } -function update-dashboard-deployment { - if [ -n "${CUSTOM_KUBE_DASHBOARD_BANNER:-}" ]; then - sed -i -e "s@\( \+\)# PLATFORM-SPECIFIC ARGS HERE@\1- --system-banner=${CUSTOM_KUBE_DASHBOARD_BANNER}\n\1- --system-banner-severity=WARNING@" "$1" - fi -} - # Sets up the manifests of coreDNS for k8s addons. function setup-coredns-manifest { setup-addon-manifests "addons" "0-dns/coredns" @@ -2828,11 +2822,6 @@ EOF update-event-exporter ${event_exporter_yaml} update-prometheus-to-sd-parameters ${event_exporter_yaml} fi - if [[ "${ENABLE_CLUSTER_UI:-}" == "true" ]]; then - setup-addon-manifests "addons" "dashboard" - local -r dashboard_deployment_yaml="${dst_dir}/dashboard/dashboard-deployment.yaml" - update-dashboard-deployment ${dashboard_deployment_yaml} - fi if [[ "${ENABLE_NODE_PROBLEM_DETECTOR:-}" == "daemonset" ]]; then setup-addon-manifests "addons" "node-problem-detector" fi diff --git a/cluster/gce/util.sh b/cluster/gce/util.sh index 976d3f52c22..32cc2e34c95 100755 --- a/cluster/gce/util.sh +++ b/cluster/gce/util.sh @@ -1099,7 +1099,6 @@ METADATA_AGENT_CLUSTER_LEVEL_MEMORY_REQUEST: $(yaml-quote "${METADATA_AGENT_CLUS DOCKER_REGISTRY_MIRROR_URL: $(yaml-quote "${DOCKER_REGISTRY_MIRROR_URL:-}") ENABLE_L7_LOADBALANCING: $(yaml-quote "${ENABLE_L7_LOADBALANCING:-none}") ENABLE_CLUSTER_LOGGING: $(yaml-quote "${ENABLE_CLUSTER_LOGGING:-false}") -ENABLE_CLUSTER_UI: $(yaml-quote "${ENABLE_CLUSTER_UI:-false}") ENABLE_NODE_PROBLEM_DETECTOR: $(yaml-quote "${ENABLE_NODE_PROBLEM_DETECTOR:-none}") NODE_PROBLEM_DETECTOR_VERSION: $(yaml-quote "${NODE_PROBLEM_DETECTOR_VERSION:-}") NODE_PROBLEM_DETECTOR_TAR_HASH: $(yaml-quote "${NODE_PROBLEM_DETECTOR_TAR_HASH:-}") diff --git a/hack/local-up-cluster.sh b/hack/local-up-cluster.sh index 00c3d3f0b33..67b9c75557b 100755 --- a/hack/local-up-cluster.sh +++ b/hack/local-up-cluster.sh @@ -85,9 +85,6 @@ STORAGE_MEDIA_TYPE=${STORAGE_MEDIA_TYPE:-"application/vnd.kubernetes.protobuf"} # preserve etcd data. you also need to set ETCD_DIR. PRESERVE_ETCD="${PRESERVE_ETCD:-false}" -# enable kubernetes dashboard -ENABLE_CLUSTER_DASHBOARD=${KUBE_ENABLE_CLUSTER_DASHBOARD:-false} - # enable Kubernetes-CSI snapshotter ENABLE_CSI_SNAPSHOTTER=${ENABLE_CSI_SNAPSHOTTER:-false} @@ -923,15 +920,6 @@ function start_nodelocaldns { rm nodelocaldns.yaml } -function start_kubedashboard { - if [[ "${ENABLE_CLUSTER_DASHBOARD}" = true ]]; then - echo "Creating kubernetes-dashboard" - # use kubectl to create the dashboard - ${KUBECTL} --kubeconfig="${CERT_DIR}/admin.kubeconfig" apply -f "${KUBE_ROOT}/cluster/addons/dashboard/dashboard.yaml" - echo "kubernetes-dashboard deployment and service successfully deployed." - fi -} - function start_csi_snapshotter { if [[ "${ENABLE_CSI_SNAPSHOTTER}" = true ]]; then echo "Creating Kubernetes-CSI snapshotter" @@ -1099,7 +1087,6 @@ if [[ "${START_MODE}" != "kubeletonly" ]]; then if [[ "${ENABLE_NODELOCAL_DNS:-}" == "true" ]]; then start_nodelocaldns fi - start_kubedashboard start_csi_snapshotter fi diff --git a/test/e2e/e2e_test.go b/test/e2e/e2e_test.go index 1c2227881ef..2bd2af0a781 100644 --- a/test/e2e/e2e_test.go +++ b/test/e2e/e2e_test.go @@ -58,7 +58,6 @@ import ( _ "k8s.io/kubernetes/test/e2e/scheduling" _ "k8s.io/kubernetes/test/e2e/storage" _ "k8s.io/kubernetes/test/e2e/storage/external" - _ "k8s.io/kubernetes/test/e2e/ui" _ "k8s.io/kubernetes/test/e2e/windows" ) diff --git a/test/e2e/ui/dashboard.go b/test/e2e/ui/dashboard.go deleted file mode 100644 index f4a79b4f9a3..00000000000 --- a/test/e2e/ui/dashboard.go +++ /dev/null @@ -1,95 +0,0 @@ -/* -Copyright 2015 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package ui - -import ( - "context" - "net/http" - "time" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" - utilnet "k8s.io/apimachinery/pkg/util/net" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/kubernetes/test/e2e/framework" - e2enetwork "k8s.io/kubernetes/test/e2e/framework/network" - e2eservice "k8s.io/kubernetes/test/e2e/framework/service" - e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" - testutils "k8s.io/kubernetes/test/utils" - - "github.com/onsi/ginkgo" -) - -var _ = SIGDescribe("Kubernetes Dashboard [Feature:Dashboard]", func() { - ginkgo.BeforeEach(func() { - // TODO(kubernetes/kubernetes#61559): Enable dashboard here rather than skip the test. - e2eskipper.SkipIfProviderIs("gke") - }) - - const ( - uiServiceName = "kubernetes-dashboard" - uiAppName = uiServiceName - uiNamespace = metav1.NamespaceSystem - - serverStartTimeout = 1 * time.Minute - ) - - f := framework.NewDefaultFramework(uiServiceName) - - ginkgo.It("should check that the kubernetes-dashboard instance is alive", func() { - ginkgo.By("Checking whether the kubernetes-dashboard service exists.") - err := e2enetwork.WaitForService(f.ClientSet, uiNamespace, uiServiceName, true, framework.Poll, framework.ServiceStartTimeout) - framework.ExpectNoError(err) - - ginkgo.By("Checking to make sure the kubernetes-dashboard pods are running") - selector := labels.SelectorFromSet(labels.Set(map[string]string{"k8s-app": uiAppName})) - err = testutils.WaitForPodsWithLabelRunning(f.ClientSet, uiNamespace, selector) - framework.ExpectNoError(err) - - ginkgo.By("Checking to make sure we get a response from the kubernetes-dashboard.") - err = wait.Poll(framework.Poll, serverStartTimeout, func() (bool, error) { - var status int - proxyRequest, errProxy := e2eservice.GetServicesProxyRequest(f.ClientSet, f.ClientSet.CoreV1().RESTClient().Get()) - if errProxy != nil { - framework.Logf("Get services proxy request failed: %v", errProxy) - } - - ctx, cancel := context.WithTimeout(context.Background(), framework.SingleCallTimeout) - defer cancel() - - // Query against the proxy URL for the kubernetes-dashboard service. - err := proxyRequest.Namespace(uiNamespace). - Name(utilnet.JoinSchemeNamePort("https", uiServiceName, "")). - Timeout(framework.SingleCallTimeout). - Do(ctx). - StatusCode(&status). - Error() - if err != nil { - if ctx.Err() != nil { - framework.Failf("Request to kubernetes-dashboard failed: %v", err) - return true, err - } - framework.Logf("Request to kubernetes-dashboard failed: %v", err) - } else if status != http.StatusOK { - framework.Logf("Unexpected status from kubernetes-dashboard: %v", status) - } - // Don't return err here as it aborts polling. - return status == http.StatusOK, nil - }) - framework.ExpectNoError(err) - }) -}) diff --git a/test/e2e/ui/framework.go b/test/e2e/ui/framework.go deleted file mode 100644 index 930802fdcbb..00000000000 --- a/test/e2e/ui/framework.go +++ /dev/null @@ -1,24 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package ui - -import "github.com/onsi/ginkgo" - -// SIGDescribe annotates the test with the SIG label. -func SIGDescribe(text string, body func()) bool { - return ginkgo.Describe("[sig-ui] "+text, body) -}