applications.vue 26,1 КБ
Newer Older
Eric Eastwood's avatar
Eric Eastwood включено в состав коммита
1
<script>
Taurie Davis's avatar
Taurie Davis включено в состав коммита
2
import _ from 'underscore';
Lukas Eipert's avatar
Lukas Eipert включено в состав коммита
3
import helmInstallIllustration from '@gitlab/svgs/dist/illustrations/kubernetes-installation.svg';
Jacques Erasmus's avatar
Jacques Erasmus включено в состав коммита
4
import { GlLoadingIcon } from '@gitlab/ui';
Mike Greiling's avatar
Mike Greiling включено в состав коммита
5
6
7
8
9
10
import elasticsearchLogo from 'images/cluster_app_logos/elasticsearch.png';
import gitlabLogo from 'images/cluster_app_logos/gitlab.png';
import helmLogo from 'images/cluster_app_logos/helm.png';
import jeagerLogo from 'images/cluster_app_logos/jeager.png';
import jupyterhubLogo from 'images/cluster_app_logos/jupyterhub.png';
import kubernetesLogo from 'images/cluster_app_logos/kubernetes.png';
Amit Rathi's avatar
Amit Rathi включено в состав коммита
11
import certManagerLogo from 'images/cluster_app_logos/cert_manager.png';
GitLab Bot's avatar
GitLab Bot включено в состав коммита
12
import crossplaneLogo from 'images/cluster_app_logos/crossplane.png';
Chris Baumbauer's avatar
Chris Baumbauer включено в состав коммита
13
import knativeLogo from 'images/cluster_app_logos/knative.png';
Mike Greiling's avatar
Mike Greiling включено в состав коммита
14
15
import meltanoLogo from 'images/cluster_app_logos/meltano.png';
import prometheusLogo from 'images/cluster_app_logos/prometheus.png';
GitLab Bot's avatar
GitLab Bot включено в состав коммита
16
import elasticStackLogo from 'images/cluster_app_logos/elastic_stack.png';
Taurie Davis's avatar
Taurie Davis включено в состав коммита
17
18
19
import { s__, sprintf } from '../../locale';
import applicationRow from './application_row.vue';
import clipboardButton from '../../vue_shared/components/clipboard_button.vue';
Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
20
import KnativeDomainEditor from './knative_domain_editor.vue';
GitLab Bot's avatar
GitLab Bot включено в состав коммита
21
import { CLUSTER_TYPE, PROVIDER_TYPE, APPLICATION_STATUS, INGRESS } from '../constants';
jerasmus's avatar
jerasmus включено в состав коммита
22
import eventHub from '~/clusters/event_hub';
GitLab Bot's avatar
GitLab Bot включено в состав коммита
23
import CrossplaneProviderStack from './crossplane_provider_stack.vue';
Eric Eastwood's avatar
Eric Eastwood включено в состав коммита
24

Taurie Davis's avatar
Taurie Davis включено в состав коммита
25
26
27
28
export default {
  components: {
    applicationRow,
    clipboardButton,
Jacques Erasmus's avatar
Jacques Erasmus включено в состав коммита
29
    GlLoadingIcon,
Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
30
    KnativeDomainEditor,
GitLab Bot's avatar
GitLab Bot включено в состав коммита
31
    CrossplaneProviderStack,
Taurie Davis's avatar
Taurie Davis включено в состав коммита
32
33
  },
  props: {
Mike Greiling's avatar
Mike Greiling включено в состав коммита
34
35
36
    type: {
      type: String,
      required: false,
Mike Greiling's avatar
Mike Greiling включено в состав коммита
37
      default: CLUSTER_TYPE.PROJECT,
Mike Greiling's avatar
Mike Greiling включено в состав коммита
38
    },
Taurie Davis's avatar
Taurie Davis включено в состав коммита
39
40
41
42
    applications: {
      type: Object,
      required: false,
      default: () => ({}),
Eric Eastwood's avatar
Eric Eastwood включено в состав коммита
43
    },
Taurie Davis's avatar
Taurie Davis включено в состав коммита
44
45
46
47
    helpPath: {
      type: String,
      required: false,
      default: '',
Eric Eastwood's avatar
Eric Eastwood включено в состав коммита
48
    },
Taurie Davis's avatar
Taurie Davis включено в состав коммита
49
50
51
52
53
54
55
56
57
58
    ingressHelpPath: {
      type: String,
      required: false,
      default: '',
    },
    ingressDnsHelpPath: {
      type: String,
      required: false,
      default: '',
    },
GitLab Bot's avatar
GitLab Bot включено в состав коммита
59
60
61
62
63
    ingressModSecurityHelpPath: {
      type: String,
      required: false,
      default: '',
    },
GitLab Bot's avatar
GitLab Bot включено в состав коммита
64
65
66
67
68
    cloudRunHelpPath: {
      type: String,
      required: false,
      default: '',
    },
Taurie Davis's avatar
Taurie Davis включено в состав коммита
69
70
71
72
73
    managePrometheusPath: {
      type: String,
      required: false,
      default: '',
    },
GitLab Bot's avatar
GitLab Bot включено в состав коммита
74
75
76
77
78
79
80
81
82
83
    providerType: {
      type: String,
      required: false,
      default: '',
    },
    preInstalledKnative: {
      type: Boolean,
      required: false,
      default: false,
    },
Chris Baumbauer's avatar
Chris Baumbauer включено в состав коммита
84
85
86
87
88
    rbac: {
      type: Boolean,
      required: false,
      default: false,
    },
Taurie Davis's avatar
Taurie Davis включено в состав коммита
89
  },
Mike Greiling's avatar
Mike Greiling включено в состав коммита
90
91
92
93
94
95
96
  data: () => ({
    elasticsearchLogo,
    gitlabLogo,
    helmLogo,
    jeagerLogo,
    jupyterhubLogo,
    kubernetesLogo,
Amit Rathi's avatar
Amit Rathi включено в состав коммита
97
    certManagerLogo,
GitLab Bot's avatar
GitLab Bot включено в состав коммита
98
    crossplaneLogo,
Chris Baumbauer's avatar
Chris Baumbauer включено в состав коммита
99
    knativeLogo,
Mike Greiling's avatar
Mike Greiling включено в состав коммита
100
101
    meltanoLogo,
    prometheusLogo,
GitLab Bot's avatar
GitLab Bot включено в состав коммита
102
    elasticStackLogo,
Mike Greiling's avatar
Mike Greiling включено в состав коммита
103
  }),
Taurie Davis's avatar
Taurie Davis включено в состав коммита
104
  computed: {
Mike Greiling's avatar
Mike Greiling включено в состав коммита
105
    isProjectCluster() {
Mike Greiling's avatar
Mike Greiling включено в состав коммита
106
      return this.type === CLUSTER_TYPE.PROJECT;
Mike Greiling's avatar
Mike Greiling включено в состав коммита
107
    },
Mike Greiling's avatar
Mike Greiling включено в состав коммита
108
109
110
111
    helmInstalled() {
      return (
        this.applications.helm.status === APPLICATION_STATUS.INSTALLED ||
        this.applications.helm.status === APPLICATION_STATUS.UPDATED
Taurie Davis's avatar
Taurie Davis включено в состав коммита
112
113
114
115
116
117
      );
    },
    ingressId() {
      return INGRESS;
    },
    ingressInstalled() {
Clement Ho's avatar
Clement Ho включено в состав коммита
118
      return this.applications.ingress.status === APPLICATION_STATUS.INSTALLED;
Taurie Davis's avatar
Taurie Davis включено в состав коммита
119
    },
GitLab Bot's avatar
GitLab Bot включено в состав коммита
120
121
122
    ingressEnableModsecurity() {
      return this.applications.ingress.modsecurity_enabled;
    },
walkafwalka's avatar
walkafwalka включено в состав коммита
123
124
    ingressExternalEndpoint() {
      return this.applications.ingress.externalIp || this.applications.ingress.externalHostname;
Taurie Davis's avatar
Taurie Davis включено в состав коммита
125
    },
Amit Rathi's avatar
Amit Rathi включено в состав коммита
126
127
128
    certManagerInstalled() {
      return this.applications.cert_manager.status === APPLICATION_STATUS.INSTALLED;
    },
GitLab Bot's avatar
GitLab Bot включено в состав коммита
129
130
131
    crossplaneInstalled() {
      return this.applications.crossplane.status === APPLICATION_STATUS.INSTALLED;
    },
GitLab Bot's avatar
GitLab Bot включено в состав коммита
132
133
134
    enableClusterApplicationElasticStack() {
      return gon.features && gon.features.enableClusterApplicationElasticStack;
    },
GitLab Bot's avatar
GitLab Bot включено в состав коммита
135
136
137
138
139
140
141
142
143
144
145
146
    ingressModSecurityDescription() {
      const escapedUrl = _.escape(this.ingressModSecurityHelpPath);

      return sprintf(
        s__('ClusterIntegration|Learn more about %{startLink}ModSecurity%{endLink}'),
        {
          startLink: `<a href="${escapedUrl}" target="_blank" rel="noopener noreferrer">`,
          endLink: '</a>',
        },
        false,
      );
    },
Taurie Davis's avatar
Taurie Davis включено в состав коммита
147
    ingressDescription() {
walkafwalka's avatar
walkafwalka включено в состав коммита
148
      return sprintf(
Taurie Davis's avatar
Taurie Davis включено в состав коммита
149
150
        _.escape(
          s__(
walkafwalka's avatar
walkafwalka включено в состав коммита
151
            `ClusterIntegration|Installing Ingress may incur additional costs. Learn more about %{pricingLink}.`,
Taurie Davis's avatar
Taurie Davis включено в состав коммита
152
153
154
          ),
        ),
        {
GitLab Bot's avatar
GitLab Bot включено в состав коммита
155
          pricingLink: `<a href="https://cloud.google.com/compute/pricing#lb"
walkafwalka's avatar
walkafwalka включено в состав коммита
156
              target="_blank" rel="noopener noreferrer">
GitLab Bot's avatar
GitLab Bot включено в состав коммита
157
              ${_.escape(s__('ClusterIntegration|pricing'))}</a>`,
Taurie Davis's avatar
Taurie Davis включено в состав коммита
158
159
160
161
        },
        false,
      );
    },
Amit Rathi's avatar
Amit Rathi включено в состав коммита
162
163
164
165
    certManagerDescription() {
      return sprintf(
        _.escape(
          s__(
Amit Rathi's avatar
Amit Rathi включено в состав коммита
166
167
168
            `ClusterIntegration|Cert-Manager is a native Kubernetes certificate management controller that helps with issuing certificates.
            Installing Cert-Manager on your cluster will issue a certificate by %{letsEncrypt} and ensure that certificates
            are valid and up-to-date.`,
Amit Rathi's avatar
Amit Rathi включено в состав коммита
169
170
171
172
173
          ),
        ),
        {
          letsEncrypt: `<a href="https://letsencrypt.org/"
              target="_blank" rel="noopener noreferrer">
Amit Rathi's avatar
Amit Rathi включено в состав коммита
174
              ${_.escape(s__("ClusterIntegration|Let's Encrypt"))}</a>`,
Amit Rathi's avatar
Amit Rathi включено в состав коммита
175
176
177
178
        },
        false,
      );
    },
GitLab Bot's avatar
GitLab Bot включено в состав коммита
179
180
181
182
183
184
185
186
187
    crossplaneDescription() {
      return sprintf(
        _.escape(
          s__(
            `ClusterIntegration|Crossplane enables declarative provisioning of managed services from your cloud of choice using %{kubectl} or %{gitlabIntegrationLink}.
Crossplane runs inside your Kubernetes cluster and supports secure connectivity and secrets management between app containers and the cloud services they depend on.`,
          ),
        ),
        {
GitLab Bot's avatar
GitLab Bot включено в состав коммита
188
          gitlabIntegrationLink: `<a href="https://docs.gitlab.com/ee/user/clusters/applications.html#crossplane"
GitLab Bot's avatar
GitLab Bot включено в состав коммита
189
190
191
192
193
194
195
196
          target="_blank" rel="noopener noreferrer">
          ${_.escape(s__('ClusterIntegration|Gitlab Integration'))}</a>`,
          kubectl: `<code>kubectl</code>`,
        },
        false,
      );
    },

Taurie Davis's avatar
Taurie Davis включено в состав коммита
197
198
199
200
    prometheusDescription() {
      return sprintf(
        _.escape(
          s__(
Mike Greiling's avatar
Mike Greiling включено в состав коммита
201
202
            `ClusterIntegration|Prometheus is an open-source monitoring system
            with %{gitlabIntegrationLink} to monitor deployed applications.`,
Taurie Davis's avatar
Taurie Davis включено в состав коммита
203
204
205
206
          ),
        ),
        {
          gitlabIntegrationLink: `<a href="https://docs.gitlab.com/ce/user/project/integrations/prometheus.html"
Mike Greiling's avatar
Mike Greiling включено в состав коммита
207
              target="_blank" rel="noopener noreferrer">
Mayra Cabrera's avatar
Mayra Cabrera включено в состав коммита
208
              ${_.escape(s__('ClusterIntegration|GitLab Integration'))}</a>`,
Taurie Davis's avatar
Taurie Davis включено в состав коммита
209
210
211
        },
        false,
      );
Eric Eastwood's avatar
Eric Eastwood включено в состав коммита
212
    },
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
213
    jupyterInstalled() {
Clement Ho's avatar
Clement Ho включено в состав коммита
214
      return this.applications.jupyter.status === APPLICATION_STATUS.INSTALLED;
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
215
216
217
218
    },
    jupyterHostname() {
      return this.applications.jupyter.hostname;
    },
GitLab Bot's avatar
GitLab Bot включено в состав коммита
219
220
221
    elasticStackInstalled() {
      return this.applications.elastic_stack.status === APPLICATION_STATUS.INSTALLED;
    },
jerasmus's avatar
jerasmus включено в состав коммита
222
223
224
    knative() {
      return this.applications.knative;
    },
GitLab Bot's avatar
GitLab Bot включено в состав коммита
225
226
227
    crossplane() {
      return this.applications.crossplane;
    },
GitLab Bot's avatar
GitLab Bot включено в состав коммита
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
    cloudRun() {
      return this.providerType === PROVIDER_TYPE.GCP && this.preInstalledKnative;
    },
    installedVia() {
      if (this.cloudRun) {
        return sprintf(
          _.escape(s__(`ClusterIntegration|installed via %{installed_via}`)),
          {
            installed_via: `<a href="${
              this.cloudRunHelpPath
            }" target="_blank" rel="noopener noreferrer">${_.escape(
              s__('ClusterIntegration|Cloud Run'),
            )}</a>`,
          },
          false,
        );
      }
      return null;
    },
Taurie Davis's avatar
Taurie Davis включено в состав коммита
247
  },
Mike Greiling's avatar
Mike Greiling включено в состав коммита
248
249
250
  created() {
    this.helmInstallIllustration = helmInstallIllustration;
  },
jerasmus's avatar
jerasmus включено в состав коммита
251
  methods: {
Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
252
    saveKnativeDomain(hostname) {
jerasmus's avatar
jerasmus включено в состав коммита
253
254
      eventHub.$emit('saveKnativeDomain', {
        id: 'knative',
Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
255
256
257
258
259
260
261
        params: { hostname },
      });
    },
    setKnativeHostname(hostname) {
      eventHub.$emit('setKnativeHostname', {
        id: 'knative',
        hostname,
jerasmus's avatar
jerasmus включено в состав коммита
262
263
      });
    },
GitLab Bot's avatar
GitLab Bot включено в состав коммита
264
265
266
267
268
269
    setCrossplaneProviderStack(stack) {
      eventHub.$emit('setCrossplaneProviderStack', {
        id: 'crossplane',
        stack,
      });
    },
jerasmus's avatar
jerasmus включено в состав коммита
270
  },
Taurie Davis's avatar
Taurie Davis включено в состав коммита
271
};
Eric Eastwood's avatar
Eric Eastwood включено в состав коммита
272
273
274
</script>

<template>
Mike Greiling's avatar
Mike Greiling включено в состав коммита
275
  <section id="cluster-applications">
Mike Greiling's avatar
Mike Greiling включено в состав коммита
276
    <h4>{{ s__('ClusterIntegration|Applications') }}</h4>
Mike Greiling's avatar
Mike Greiling включено в состав коммита
277
    <p class="append-bottom-0">
Mike Greiling's avatar
Mike Greiling включено в состав коммита
278
279
      {{
        s__(`ClusterIntegration|Choose which applications to install on your Kubernetes cluster.
GitLab Bot's avatar
GitLab Bot включено в состав коммита
280
            Helm Tiller is required to install any of the following applications.`)
Mike Greiling's avatar
Mike Greiling включено в состав коммита
281
      }}
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
282
      <a :href="helpPath">{{ __('More information') }}</a>
Mike Greiling's avatar
Mike Greiling включено в состав коммита
283
    </p>
Eric Eastwood's avatar
Eric Eastwood включено в состав коммита
284

Mike Greiling's avatar
Mike Greiling включено в состав коммита
285
286
287
288
289
290
291
292
293
    <div class="cluster-application-list prepend-top-10">
      <application-row
        id="helm"
        :logo-url="helmLogo"
        :title="applications.helm.title"
        :status="applications.helm.status"
        :status-reason="applications.helm.statusReason"
        :request-status="applications.helm.requestStatus"
        :request-reason="applications.helm.requestReason"
Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
294
        :installed="applications.helm.installed"
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
295
        :install-failed="applications.helm.installFailed"
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
296
297
298
        :uninstallable="applications.helm.uninstallable"
        :uninstall-successful="applications.helm.uninstallSuccessful"
        :uninstall-failed="applications.helm.uninstallFailed"
Mike Greiling's avatar
Mike Greiling включено в состав коммита
299
300
301
302
        class="rounded-top"
        title-link="https://docs.helm.sh/"
      >
        <div slot="description">
Mike Greiling's avatar
Mike Greiling включено в состав коммита
303
304
          {{
            s__(`ClusterIntegration|Helm streamlines installing
GitLab Bot's avatar
GitLab Bot включено в состав коммита
305
306
307
                    and managing Kubernetes applications.
                    Tiller runs inside of your Kubernetes Cluster,
                    and manages releases of your charts.`)
Mike Greiling's avatar
Mike Greiling включено в состав коммита
308
          }}
Mike Greiling's avatar
Mike Greiling включено в состав коммита
309
310
        </div>
      </application-row>
Mike Greiling's avatar
Mike Greiling включено в состав коммита
311
312
313
314
      <div v-show="!helmInstalled" class="cluster-application-warning">
        <div class="svg-container" v-html="helmInstallIllustration"></div>
        {{
          s__(`ClusterIntegration|You must first install Helm Tiller before
GitLab Bot's avatar
GitLab Bot включено в состав коммита
315
                installing the applications below`)
Mike Greiling's avatar
Mike Greiling включено в состав коммита
316
        }}
Mike Greiling's avatar
Mike Greiling включено в состав коммита
317
318
319
320
321
322
323
324
325
      </div>
      <application-row
        :id="ingressId"
        :logo-url="kubernetesLogo"
        :title="applications.ingress.title"
        :status="applications.ingress.status"
        :status-reason="applications.ingress.statusReason"
        :request-status="applications.ingress.requestStatus"
        :request-reason="applications.ingress.requestReason"
Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
326
        :installed="applications.ingress.installed"
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
327
        :install-failed="applications.ingress.installFailed"
GitLab Bot's avatar
GitLab Bot включено в состав коммита
328
329
330
        :install-application-request-params="{
          modsecurity_enabled: applications.ingress.modsecurity_enabled,
        }"
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
331
332
333
        :uninstallable="applications.ingress.uninstallable"
        :uninstall-successful="applications.ingress.uninstallSuccessful"
        :uninstall-failed="applications.ingress.uninstallFailed"
Mike Greiling's avatar
Mike Greiling включено в состав коммита
334
335
336
337
338
        :disabled="!helmInstalled"
        title-link="https://kubernetes.io/docs/concepts/services-networking/ingress/"
      >
        <div slot="description">
          <p>
Mike Greiling's avatar
Mike Greiling включено в состав коммита
339
340
            {{
              s__(`ClusterIntegration|Ingress gives you a way to route
GitLab Bot's avatar
GitLab Bot включено в состав коммита
341
342
                        requests to services based on the request host or path,
                        centralizing a number of services into a single entrypoint.`)
Mike Greiling's avatar
Mike Greiling включено в состав коммита
343
            }}
Mike Greiling's avatar
Mike Greiling включено в состав коммита
344
          </p>
Filipa Lacerda's avatar
Filipa Lacerda включено в состав коммита
345

GitLab Bot's avatar
GitLab Bot включено в состав коммита
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
          <template>
            <div class="form-group">
              <div class="form-check form-check-inline">
                <input
                  v-model="applications.ingress.modsecurity_enabled"
                  :disabled="ingressInstalled"
                  type="checkbox"
                  autocomplete="off"
                  class="form-check-input"
                />
                <label class="form-check-label label-bold" for="ingress-enable-modsecurity">
                  {{ s__('ClusterIntegration|Enable Web Application Firewall') }}
                </label>
              </div>
              <p class="form-text text-muted">
                <strong v-html="ingressModSecurityDescription"></strong>
              </p>
            </div>
          </template>

Mike Greiling's avatar
Mike Greiling включено в состав коммита
366
367
          <template v-if="ingressInstalled">
            <div class="form-group">
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
368
              <label for="ingress-endpoint">{{ s__('ClusterIntegration|Ingress Endpoint') }}</label>
walkafwalka's avatar
walkafwalka включено в состав коммита
369
              <div v-if="ingressExternalEndpoint" class="input-group">
Filipa Lacerda's avatar
Filipa Lacerda включено в состав коммита
370
                <input
walkafwalka's avatar
walkafwalka включено в состав коммита
371
372
                  id="ingress-endpoint"
                  :value="ingressExternalEndpoint"
Filipa Lacerda's avatar
Filipa Lacerda включено в состав коммита
373
                  type="text"
walkafwalka's avatar
walkafwalka включено в состав коммита
374
                  class="form-control js-endpoint"
Filipa Lacerda's avatar
Filipa Lacerda включено в состав коммита
375
376
                  readonly
                />
Mike Greiling's avatar
Mike Greiling включено в состав коммита
377
378
                <span class="input-group-append">
                  <clipboard-button
walkafwalka's avatar
walkafwalka включено в состав коммита
379
                    :text="ingressExternalEndpoint"
GitLab Bot's avatar
GitLab Bot включено в состав коммита
380
                    :title="s__('ClusterIntegration|Copy Ingress Endpoint')"
Mike Greiling's avatar
Mike Greiling включено в состав коммита
381
382
383
                    class="input-group-text js-clipboard-btn"
                  />
                </span>
Filipa Lacerda's avatar
Filipa Lacerda включено в состав коммита
384
              </div>
Jacques Erasmus's avatar
Jacques Erasmus включено в состав коммита
385
386
387
388
389
390
              <div v-else class="input-group">
                <input type="text" class="form-control js-endpoint" readonly />
                <gl-loading-icon
                  class="position-absolute align-self-center ml-2 js-ingress-ip-loading-icon"
                />
              </div>
Amit Rathi's avatar
Amit Rathi включено в состав коммита
391
392
393
              <p class="form-text text-muted">
                {{
                  s__(`ClusterIntegration|Point a wildcard DNS to this
GitLab Bot's avatar
GitLab Bot включено в состав коммита
394
395
                                generated endpoint in order to access
                                your application after it has been deployed.`)
Amit Rathi's avatar
Amit Rathi включено в состав коммита
396
                }}
Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
397
398
399
                <a :href="ingressDnsHelpPath" target="_blank" rel="noopener noreferrer">
                  {{ __('More information') }}
                </a>
Amit Rathi's avatar
Amit Rathi включено в состав коммита
400
              </p>
Mike Greiling's avatar
Mike Greiling включено в состав коммита
401
            </div>
Filipa Lacerda's avatar
Filipa Lacerda включено в состав коммита
402

walkafwalka's avatar
walkafwalka включено в состав коммита
403
            <p v-if="!ingressExternalEndpoint" class="settings-message js-no-endpoint-message">
Mike Greiling's avatar
Mike Greiling включено в состав коммита
404
              {{
walkafwalka's avatar
walkafwalka включено в состав коммита
405
                s__(`ClusterIntegration|The endpoint is in
GitLab Bot's avatar
GitLab Bot включено в состав коммита
406
407
                            the process of being assigned. Please check your Kubernetes
                            cluster or Quotas on Google Kubernetes Engine if it takes a long time.`)
Mike Greiling's avatar
Mike Greiling включено в состав коммита
408
              }}
Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
409
410
411
              <a :href="ingressDnsHelpPath" target="_blank" rel="noopener noreferrer">
                {{ __('More information') }}
              </a>
Mike Greiling's avatar
Mike Greiling включено в состав коммита
412
413
            </p>
          </template>
walkafwalka's avatar
walkafwalka включено в состав коммита
414
          <template v-if="!ingressInstalled">
GitLab Bot's avatar
GitLab Bot включено в состав коммита
415
416
417
            <div class="bs-callout bs-callout-info">
              <strong v-html="ingressDescription"></strong>
            </div>
walkafwalka's avatar
walkafwalka включено в состав коммита
418
          </template>
Mike Greiling's avatar
Mike Greiling включено в состав коммита
419
420
        </div>
      </application-row>
Amit Rathi's avatar
Amit Rathi включено в состав коммита
421
422
423
424
425
426
427
428
      <application-row
        id="cert_manager"
        :logo-url="certManagerLogo"
        :title="applications.cert_manager.title"
        :status="applications.cert_manager.status"
        :status-reason="applications.cert_manager.statusReason"
        :request-status="applications.cert_manager.requestStatus"
        :request-reason="applications.cert_manager.requestReason"
Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
429
        :installed="applications.cert_manager.installed"
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
430
        :install-failed="applications.cert_manager.installFailed"
Amit Rathi's avatar
Amit Rathi включено в состав коммита
431
        :install-application-request-params="{ email: applications.cert_manager.email }"
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
432
433
434
        :uninstallable="applications.cert_manager.uninstallable"
        :uninstall-successful="applications.cert_manager.uninstallSuccessful"
        :uninstall-failed="applications.cert_manager.uninstallFailed"
Amit Rathi's avatar
Amit Rathi включено в состав коммита
435
436
437
        :disabled="!helmInstalled"
        title-link="https://cert-manager.readthedocs.io/en/latest/#"
      >
Amit Rathi's avatar
Amit Rathi включено в состав коммита
438
439
440
441
        <template>
          <div slot="description">
            <p v-html="certManagerDescription"></p>
            <div class="form-group">
Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
442
443
444
              <label for="cert-manager-issuer-email">
                {{ s__('ClusterIntegration|Issuer Email') }}
              </label>
Amit Rathi's avatar
Amit Rathi включено в состав коммита
445
446
447
448
449
450
451
452
453
454
455
              <div class="input-group">
                <input
                  v-model="applications.cert_manager.email"
                  :readonly="certManagerInstalled"
                  type="text"
                  class="form-control js-email"
                />
              </div>
              <p class="form-text text-muted">
                {{
                  s__(`ClusterIntegration|Issuers represent a certificate authority.
GitLab Bot's avatar
GitLab Bot включено в состав коммита
456
                                You must provide an email address for your Issuer. `)
Amit Rathi's avatar
Amit Rathi включено в состав коммита
457
458
459
460
461
                }}
                <a
                  href="http://docs.cert-manager.io/en/latest/reference/issuers.html?highlight=email"
                  target="_blank"
                  rel="noopener noreferrer"
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
462
                  >{{ __('More information') }}</a
Amit Rathi's avatar
Amit Rathi включено в состав коммита
463
464
465
466
467
                >
              </p>
            </div>
          </div>
        </template>
Amit Rathi's avatar
Amit Rathi включено в состав коммита
468
      </application-row>
Mike Greiling's avatar
Mike Greiling включено в состав коммита
469
470
471
472
473
474
475
476
477
      <application-row
        id="prometheus"
        :logo-url="prometheusLogo"
        :title="applications.prometheus.title"
        :manage-link="managePrometheusPath"
        :status="applications.prometheus.status"
        :status-reason="applications.prometheus.statusReason"
        :request-status="applications.prometheus.requestStatus"
        :request-reason="applications.prometheus.requestReason"
Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
478
        :installed="applications.prometheus.installed"
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
479
        :install-failed="applications.prometheus.installFailed"
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
480
481
482
        :uninstallable="applications.prometheus.uninstallable"
        :uninstall-successful="applications.prometheus.uninstallSuccessful"
        :uninstall-failed="applications.prometheus.uninstallFailed"
Mike Greiling's avatar
Mike Greiling включено в состав коммита
483
484
485
        :disabled="!helmInstalled"
        title-link="https://prometheus.io/docs/introduction/overview/"
      >
Mike Greiling's avatar
Mike Greiling включено в состав коммита
486
        <div slot="description" v-html="prometheusDescription"></div>
Mike Greiling's avatar
Mike Greiling включено в состав коммита
487
488
489
490
491
492
493
494
495
      </application-row>
      <application-row
        id="runner"
        :logo-url="gitlabLogo"
        :title="applications.runner.title"
        :status="applications.runner.status"
        :status-reason="applications.runner.statusReason"
        :request-status="applications.runner.requestStatus"
        :request-reason="applications.runner.requestReason"
Thong Kuah's avatar
Thong Kuah включено в состав коммита
496
497
        :version="applications.runner.version"
        :chart-repo="applications.runner.chartRepo"
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
498
        :update-available="applications.runner.updateAvailable"
Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
499
        :installed="applications.runner.installed"
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
500
501
502
        :install-failed="applications.runner.installFailed"
        :update-successful="applications.runner.updateSuccessful"
        :update-failed="applications.runner.updateFailed"
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
503
504
505
        :uninstallable="applications.runner.uninstallable"
        :uninstall-successful="applications.runner.uninstallSuccessful"
        :uninstall-failed="applications.runner.uninstallFailed"
Mike Greiling's avatar
Mike Greiling включено в состав коммита
506
507
508
509
        :disabled="!helmInstalled"
        title-link="https://docs.gitlab.com/runner/"
      >
        <div slot="description">
Mike Greiling's avatar
Mike Greiling включено в состав коммита
510
          {{
Tiger Watson's avatar
Tiger Watson включено в состав коммита
511
            s__(`ClusterIntegration|GitLab Runner connects to the
GitLab Bot's avatar
GitLab Bot включено в состав коммита
512
513
514
                    repository and executes CI/CD jobs,
                    pushing results back and deploying
                    applications to production.`)
Mike Greiling's avatar
Mike Greiling включено в состав коммита
515
          }}
Mike Greiling's avatar
Mike Greiling включено в состав коммита
516
517
        </div>
      </application-row>
GitLab Bot's avatar
GitLab Bot включено в состав коммита
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
      <application-row
        id="crossplane"
        :logo-url="crossplaneLogo"
        :title="applications.crossplane.title"
        :status="applications.crossplane.status"
        :status-reason="applications.crossplane.statusReason"
        :request-status="applications.crossplane.requestStatus"
        :request-reason="applications.crossplane.requestReason"
        :installed="applications.crossplane.installed"
        :install-failed="applications.crossplane.installFailed"
        :uninstallable="applications.crossplane.uninstallable"
        :uninstall-successful="applications.crossplane.uninstallSuccessful"
        :uninstall-failed="applications.crossplane.uninstallFailed"
        :install-application-request-params="{ stack: applications.crossplane.stack }"
        :disabled="!helmInstalled"
        title-link="https://crossplane.io"
      >
        <template>
          <div slot="description">
            <p v-html="crossplaneDescription"></p>
            <div class="form-group">
              <CrossplaneProviderStack :crossplane="crossplane" @set="setCrossplaneProviderStack" />
            </div>
          </div>
        </template>
      </application-row>

Mike Greiling's avatar
Mike Greiling включено в состав коммита
545
546
547
548
549
550
551
552
      <application-row
        id="jupyter"
        :logo-url="jupyterhubLogo"
        :title="applications.jupyter.title"
        :status="applications.jupyter.status"
        :status-reason="applications.jupyter.statusReason"
        :request-status="applications.jupyter.requestStatus"
        :request-reason="applications.jupyter.requestReason"
Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
553
        :installed="applications.jupyter.installed"
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
554
        :install-failed="applications.jupyter.installFailed"
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
555
556
557
        :uninstallable="applications.jupyter.uninstallable"
        :uninstall-successful="applications.jupyter.uninstallSuccessful"
        :uninstall-failed="applications.jupyter.uninstallFailed"
Mike Greiling's avatar
Mike Greiling включено в состав коммита
558
559
560
561
562
563
        :install-application-request-params="{ hostname: applications.jupyter.hostname }"
        :disabled="!helmInstalled"
        title-link="https://jupyterhub.readthedocs.io/en/stable/"
      >
        <div slot="description">
          <p>
Mike Greiling's avatar
Mike Greiling включено в состав коммита
564
565
            {{
              s__(`ClusterIntegration|JupyterHub, a multi-user Hub, spawns,
GitLab Bot's avatar
GitLab Bot включено в состав коммита
566
567
568
569
                        manages, and proxies multiple instances of the single-user
                        Jupyter notebook server. JupyterHub can be used to serve
                        notebooks to a class of students, a corporate data science group,
                        or a scientific research group.`)
Mike Greiling's avatar
Mike Greiling включено в состав коммита
570
            }}
Mike Greiling's avatar
Mike Greiling включено в состав коммита
571
          </p>
Filipa Lacerda's avatar
Filipa Lacerda включено в состав коммита
572

walkafwalka's avatar
walkafwalka включено в состав коммита
573
          <template v-if="ingressExternalEndpoint">
Mike Greiling's avatar
Mike Greiling включено в состав коммита
574
            <div class="form-group">
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
575
              <label for="jupyter-hostname">{{ s__('ClusterIntegration|Jupyter Hostname') }}</label>
Filipa Lacerda's avatar
Filipa Lacerda включено в состав коммита
576

Mike Greiling's avatar
Mike Greiling включено в состав коммита
577
578
579
580
581
582
583
              <div class="input-group">
                <input
                  v-model="applications.jupyter.hostname"
                  :readonly="jupyterInstalled"
                  type="text"
                  class="form-control js-hostname"
                />
Mike Greiling's avatar
Mike Greiling включено в состав коммита
584
                <span class="input-group-btn">
Mike Greiling's avatar
Mike Greiling включено в состав коммита
585
586
                  <clipboard-button
                    :text="jupyterHostname"
GitLab Bot's avatar
GitLab Bot включено в состав коммита
587
                    :title="s__('ClusterIntegration|Copy Jupyter Hostname')"
Mike Greiling's avatar
Mike Greiling включено в состав коммита
588
                    class="js-clipboard-btn"
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
589
                  />
Mike Greiling's avatar
Mike Greiling включено в состав коммита
590
                </span>
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets включено в состав коммита
591
              </div>
Amit Rathi's avatar
Amit Rathi включено в состав коммита
592
593
594
595

              <p v-if="ingressInstalled" class="form-text text-muted">
                {{
                  s__(`ClusterIntegration|Replace this with your own hostname if you want.
GitLab Bot's avatar
GitLab Bot включено в состав коммита
596
                                If you do so, point hostname to Ingress IP Address from above.`)
Amit Rathi's avatar
Amit Rathi включено в состав коммита
597
                }}
Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
598
599
600
                <a :href="ingressDnsHelpPath" target="_blank" rel="noopener noreferrer">
                  {{ __('More information') }}
                </a>
Amit Rathi's avatar
Amit Rathi включено в состав коммита
601
              </p>
Mike Greiling's avatar
Mike Greiling включено в состав коммита
602
603
604
605
            </div>
          </template>
        </div>
      </application-row>
Chris Baumbauer's avatar
Chris Baumbauer включено в состав коммита
606
607
608
609
610
611
612
613
      <application-row
        id="knative"
        :logo-url="knativeLogo"
        :title="applications.knative.title"
        :status="applications.knative.status"
        :status-reason="applications.knative.statusReason"
        :request-status="applications.knative.requestStatus"
        :request-reason="applications.knative.requestReason"
Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
614
        :installed="applications.knative.installed"
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
615
        :install-failed="applications.knative.installFailed"
Mike Greiling's avatar
Mike Greiling включено в состав коммита
616
        :install-application-request-params="{ hostname: applications.knative.hostname }"
GitLab Bot's avatar
GitLab Bot включено в состав коммита
617
        :installed-via="installedVia"
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
618
619
620
        :uninstallable="applications.knative.uninstallable"
        :uninstall-successful="applications.knative.uninstallSuccessful"
        :uninstall-failed="applications.knative.uninstallFailed"
Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
621
        :updateable="false"
Chris Baumbauer's avatar
Chris Baumbauer включено в состав коммита
622
        :disabled="!helmInstalled"
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
623
        v-bind="applications.knative"
Chris Baumbauer's avatar
Chris Baumbauer включено в состав коммита
624
625
626
        title-link="https://github.com/knative/docs"
      >
        <div slot="description">
Chris Baumbauer's avatar
Chris Baumbauer включено в состав коммита
627
          <span v-if="!rbac">
walkafwalka's avatar
walkafwalka включено в состав коммита
628
            <p v-if="!rbac" class="rbac-notice bs-callout bs-callout-info append-bottom-0">
Chris Baumbauer's avatar
Chris Baumbauer включено в состав коммита
629
630
              {{
                s__(`ClusterIntegration|You must have an RBAC-enabled cluster
Enrique Alcántara's avatar
Enrique Alcántara включено в состав коммита
631
              to install Knative.`)
Chris Baumbauer's avatar
Chris Baumbauer включено в состав коммита
632
              }}
Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
633
634
635
              <a :href="helpPath" target="_blank" rel="noopener noreferrer">
                {{ __('More information') }}
              </a>
Chris Baumbauer's avatar
Chris Baumbauer включено в состав коммита
636
637
638
            </p>
            <br />
          </span>
Chris Baumbauer's avatar
Chris Baumbauer включено в состав коммита
639
          <p>
Mike Greiling's avatar
Mike Greiling включено в состав коммита
640
            {{
George Tsiolis's avatar
George Tsiolis включено в состав коммита
641
              s__(`ClusterIntegration|Knative extends Kubernetes to provide
GitLab Bot's avatar
GitLab Bot включено в состав коммита
642
643
644
                        a set of middleware components that are essential to build modern,
                        source-centric, and container-based applications that can run
                        anywhere: on premises, in the cloud, or even in a third-party data center.`)
Mike Greiling's avatar
Mike Greiling включено в состав коммита
645
            }}
Chris Baumbauer's avatar
Chris Baumbauer включено в состав коммита
646
647
          </p>

Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
648
          <knative-domain-editor
GitLab Bot's avatar
GitLab Bot включено в состав коммита
649
            v-if="(knative.installed || (helmInstalled && rbac)) && !preInstalledKnative"
Enrique Alcantara's avatar
Enrique Alcantara включено в состав коммита
650
651
652
653
654
            :knative="knative"
            :ingress-dns-help-path="ingressDnsHelpPath"
            @save="saveKnativeDomain"
            @set="setKnativeHostname"
          />
Chris Baumbauer's avatar
Chris Baumbauer включено в состав коммита
655
656
        </div>
      </application-row>
GitLab Bot's avatar
GitLab Bot включено в состав коммита
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
      <application-row
        v-if="enableClusterApplicationElasticStack"
        id="elastic_stack"
        :logo-url="elasticStackLogo"
        :title="applications.elastic_stack.title"
        :status="applications.elastic_stack.status"
        :status-reason="applications.elastic_stack.statusReason"
        :request-status="applications.elastic_stack.requestStatus"
        :request-reason="applications.elastic_stack.requestReason"
        :version="applications.elastic_stack.version"
        :chart-repo="applications.elastic_stack.chartRepo"
        :update-available="applications.elastic_stack.updateAvailable"
        :installed="applications.elastic_stack.installed"
        :install-failed="applications.elastic_stack.installFailed"
        :update-successful="applications.elastic_stack.updateSuccessful"
        :update-failed="applications.elastic_stack.updateFailed"
        :uninstallable="applications.elastic_stack.uninstallable"
        :uninstall-successful="applications.elastic_stack.uninstallSuccessful"
        :uninstall-failed="applications.elastic_stack.uninstallFailed"
        :disabled="!helmInstalled"
        title-link="https://github.com/helm/charts/tree/master/stable/elastic-stack"
      >
        <div slot="description">
          <p>
            {{
              s__(
                `ClusterIntegration|The elastic stack collects logs from all pods in your cluster`,
              )
            }}
          </p>
        </div>
      </application-row>
Eric Eastwood's avatar
Eric Eastwood включено в состав коммита
689
690
691
    </div>
  </section>
</template>