2018-03-17 18:26:18 +05:30
< script >
2021-02-22 17:27:13 +05:30
import { GlLoadingIcon , GlSprintf , GlLink , GlAlert } from '@gitlab/ui' ;
2021-03-11 19:13:27 +05:30
import certManagerLogo from 'images/cluster_app_logos/cert_manager.png' ;
import crossplaneLogo from 'images/cluster_app_logos/crossplane.png' ;
import elasticStackLogo from 'images/cluster_app_logos/elastic_stack.png' ;
import fluentdLogo from 'images/cluster_app_logos/fluentd.png' ;
2018-12-05 23:21:45 +05:30
import gitlabLogo from 'images/cluster_app_logos/gitlab.png' ;
2021-02-22 17:27:13 +05:30
import helmLogo from 'images/cluster_app_logos/helm.png' ;
2018-12-05 23:21:45 +05:30
import jupyterhubLogo from 'images/cluster_app_logos/jupyterhub.png' ;
2018-12-13 13:39:08 +05:30
import knativeLogo from 'images/cluster_app_logos/knative.png' ;
2021-03-11 19:13:27 +05:30
import kubernetesLogo from 'images/cluster_app_logos/kubernetes.png' ;
2018-12-05 23:21:45 +05:30
import prometheusLogo from 'images/cluster_app_logos/prometheus.png' ;
2021-03-11 19:13:27 +05:30
import eventHub from '~/clusters/event_hub' ;
2018-10-15 14:42:47 +05:30
import clipboardButton from '../../vue_shared/components/clipboard_button.vue' ;
2019-12-21 20:55:43 +05:30
import { CLUSTER _TYPE , PROVIDER _TYPE , APPLICATION _STATUS , INGRESS } from '../constants' ;
2021-03-11 19:13:27 +05:30
import applicationRow from './application_row.vue' ;
2019-12-26 22:10:19 +05:30
import CrossplaneProviderStack from './crossplane_provider_stack.vue' ;
2020-05-24 23:13:21 +05:30
import FluentdOutputSettings from './fluentd_output_settings.vue' ;
2021-03-11 19:13:27 +05:30
import IngressModsecuritySettings from './ingress_modsecurity_settings.vue' ;
import KnativeDomainEditor from './knative_domain_editor.vue' ;
2018-03-17 18:26:18 +05:30
2018-10-15 14:42:47 +05:30
export default {
components : {
applicationRow ,
clipboardButton ,
2019-07-07 11:18:12 +05:30
GlLoadingIcon ,
2020-06-23 00:09:42 +05:30
GlSprintf ,
GlLink ,
2019-09-04 21:01:54 +05:30
KnativeDomainEditor ,
2019-12-26 22:10:19 +05:30
CrossplaneProviderStack ,
2020-04-08 14:13:33 +05:30
IngressModsecuritySettings ,
2020-05-24 23:13:21 +05:30
FluentdOutputSettings ,
2021-02-22 17:27:13 +05:30
GlAlert ,
2018-10-15 14:42:47 +05:30
} ,
props : {
2019-02-15 15:39:39 +05:30
type : {
type : String ,
required : false ,
default : CLUSTER _TYPE . PROJECT ,
} ,
2018-10-15 14:42:47 +05:30
applications : {
type : Object ,
required : false ,
default : ( ) => ( { } ) ,
2018-03-17 18:26:18 +05:30
} ,
2018-10-15 14:42:47 +05:30
helpPath : {
type : String ,
required : false ,
default : '' ,
2018-03-17 18:26:18 +05:30
} ,
2021-02-22 17:27:13 +05:30
helmHelpPath : {
type : String ,
required : false ,
default : '' ,
} ,
2018-10-15 14:42:47 +05:30
ingressHelpPath : {
type : String ,
required : false ,
default : '' ,
} ,
ingressDnsHelpPath : {
type : String ,
required : false ,
default : '' ,
} ,
2020-03-13 15:44:24 +05:30
ingressModSecurityHelpPath : {
type : String ,
required : false ,
default : '' ,
} ,
2019-12-21 20:55:43 +05:30
cloudRunHelpPath : {
type : String ,
required : false ,
default : '' ,
} ,
2018-10-15 14:42:47 +05:30
managePrometheusPath : {
type : String ,
required : false ,
default : '' ,
} ,
2019-12-21 20:55:43 +05:30
providerType : {
type : String ,
required : false ,
default : '' ,
} ,
preInstalledKnative : {
type : Boolean ,
required : false ,
default : false ,
} ,
2019-02-15 15:39:39 +05:30
rbac : {
type : Boolean ,
required : false ,
default : false ,
} ,
2020-10-24 23:57:45 +05:30
ciliumHelpPath : {
type : String ,
required : false ,
default : '' ,
} ,
2018-10-15 14:42:47 +05:30
} ,
computed : {
ingressId ( ) {
return INGRESS ;
} ,
ingressInstalled ( ) {
2018-11-18 11:00:15 +05:30
return this . applications . ingress . status === APPLICATION _STATUS . INSTALLED ;
2018-10-15 14:42:47 +05:30
} ,
2019-07-07 11:18:12 +05:30
ingressExternalEndpoint ( ) {
return this . applications . ingress . externalIp || this . applications . ingress . externalHostname ;
2018-10-15 14:42:47 +05:30
} ,
2019-02-15 15:39:39 +05:30
certManagerInstalled ( ) {
return this . applications . cert _manager . status === APPLICATION _STATUS . INSTALLED ;
} ,
2018-11-08 19:23:39 +05:30
jupyterInstalled ( ) {
2018-11-18 11:00:15 +05:30
return this . applications . jupyter . status === APPLICATION _STATUS . INSTALLED ;
2018-11-08 19:23:39 +05:30
} ,
jupyterHostname ( ) {
return this . applications . jupyter . hostname ;
} ,
2019-07-07 11:18:12 +05:30
knative ( ) {
return this . applications . knative ;
} ,
2019-12-26 22:10:19 +05:30
crossplane ( ) {
return this . applications . crossplane ;
} ,
2019-12-21 20:55:43 +05:30
cloudRun ( ) {
return this . providerType === PROVIDER _TYPE . GCP && this . preInstalledKnative ;
} ,
2020-04-08 14:13:33 +05:30
ingress ( ) {
return this . applications . ingress ;
} ,
2018-10-15 14:42:47 +05:30
} ,
2019-07-07 11:18:12 +05:30
methods : {
2020-04-22 19:07:51 +05:30
saveKnativeDomain ( ) {
2019-07-07 11:18:12 +05:30
eventHub . $emit ( 'saveKnativeDomain' , {
id : 'knative' ,
2020-04-22 19:07:51 +05:30
params : {
hostname : this . applications . knative . hostname ,
pages _domain _id : this . applications . knative . pagesDomain ? . id ,
} ,
2019-09-04 21:01:54 +05:30
} ) ;
} ,
2020-04-22 19:07:51 +05:30
setKnativeDomain ( { domainId , domain } ) {
eventHub . $emit ( 'setKnativeDomain' , {
2019-09-04 21:01:54 +05:30
id : 'knative' ,
2020-04-22 19:07:51 +05:30
domainId ,
domain ,
2019-07-07 11:18:12 +05:30
} ) ;
} ,
2019-12-26 22:10:19 +05:30
setCrossplaneProviderStack ( stack ) {
eventHub . $emit ( 'setCrossplaneProviderStack' , {
id : 'crossplane' ,
stack ,
} ) ;
} ,
2019-07-07 11:18:12 +05:30
} ,
2020-06-23 00:09:42 +05:30
logos : {
gitlabLogo ,
2021-02-22 17:27:13 +05:30
helmLogo ,
2020-06-23 00:09:42 +05:30
jupyterhubLogo ,
kubernetesLogo ,
certManagerLogo ,
crossplaneLogo ,
knativeLogo ,
prometheusLogo ,
elasticStackLogo ,
fluentdLogo ,
} ,
2018-10-15 14:42:47 +05:30
} ;
2018-03-17 18:26:18 +05:30
< / script >
< template >
2018-12-05 23:21:45 +05:30
< section id = "cluster-applications" >
2020-06-23 00:09:42 +05:30
< p class = "gl-mb-0" >
2019-02-15 15:39:39 +05:30
{ {
2020-10-24 23:57:45 +05:30
s _ _ ( ` ClusterIntegration|Choose which applications to install on your Kubernetes cluster. ` )
2019-02-15 15:39:39 +05:30
} }
2020-06-23 00:09:42 +05:30
< gl-link :href = "helpPath" > { { _ _ ( 'More information' ) } } < / gl-link >
2018-12-05 23:21:45 +05:30
< / p >
2018-03-17 18:26:18 +05:30
2020-10-24 23:57:45 +05:30
< div class = "cluster-application-list gl-mt-3" >
2021-02-22 17:27:13 +05:30
< application-row
v - if = "applications.helm.installed || applications.helm.uninstalling"
id = "helm"
: logo - url = "$options.logos.helmLogo"
: title = "applications.helm.title"
: status = "applications.helm.status"
: status - reason = "applications.helm.statusReason"
: request - status = "applications.helm.requestStatus"
: request - reason = "applications.helm.requestReason"
: installed = "applications.helm.installed"
: install - failed = "applications.helm.installFailed"
: uninstallable = "applications.helm.uninstallable"
: uninstall - successful = "applications.helm.uninstallSuccessful"
: uninstall - failed = "applications.helm.uninstallFailed"
title - link = "https://v2.helm.sh/"
>
< template # description >
< p >
{ {
s _ _ ( ` ClusterIntegration|Can be safely removed. Prior to GitLab
13.2 , GitLab used a remote Tiller server to manage the
applications . GitLab no longer uses this server .
Uninstalling this server will not affect your other
applications . This row will disappear afterwards . ` )
} }
< gl-link :href = "helmHelpPath" > { { _ _ ( 'More information' ) } } < / gl-link >
< / p >
< / template >
< / application-row >
2018-12-05 23:21:45 +05:30
< application-row
: id = "ingressId"
2020-06-23 00:09:42 +05:30
: logo - url = "$options.logos.kubernetesLogo"
2018-12-05 23:21:45 +05:30
: title = "applications.ingress.title"
: status = "applications.ingress.status"
: status - reason = "applications.ingress.statusReason"
: request - status = "applications.ingress.requestStatus"
: request - reason = "applications.ingress.requestReason"
2019-07-31 22:56:46 +05:30
: installed = "applications.ingress.installed"
: install - failed = "applications.ingress.installFailed"
2020-03-13 15:44:24 +05:30
: install - application - request - params = " {
modsecurity _enabled : applications . ingress . modsecurity _enabled ,
2020-04-22 19:07:51 +05:30
modsecurity _mode : applications . ingress . modsecurity _mode ,
2020-03-13 15:44:24 +05:30
} "
2019-07-31 22:56:46 +05:30
: uninstallable = "applications.ingress.uninstallable"
: uninstall - successful = "applications.ingress.uninstallSuccessful"
: uninstall - failed = "applications.ingress.uninstallFailed"
2020-04-08 14:13:33 +05:30
: updateable = "false"
2018-12-05 23:21:45 +05:30
title - link = "https://kubernetes.io/docs/concepts/services-networking/ingress/"
>
2020-06-23 00:09:42 +05:30
< template # description >
2018-12-05 23:21:45 +05:30
< p >
2019-02-15 15:39:39 +05:30
{ {
s _ _ ( ` ClusterIntegration|Ingress gives you a way to route
2019-12-26 22:10:19 +05:30
requests to services based on the request host or path ,
centralizing a number of services into a single entrypoint . ` )
2019-02-15 15:39:39 +05:30
} }
2018-12-05 23:21:45 +05:30
< / p >
2018-03-27 19:54:05 +05:30
2020-04-08 14:13:33 +05:30
< ingress-modsecurity-settings
: ingress = "ingress"
: ingress - mod - security - help - path = "ingressModSecurityHelpPath"
/ >
2020-03-13 15:44:24 +05:30
2018-12-05 23:21:45 +05:30
< template v-if = "ingressInstalled" >
< div class = "form-group" >
2019-07-31 22:56:46 +05:30
< label for = "ingress-endpoint" > { { s _ _ ( 'ClusterIntegration|Ingress Endpoint' ) } } < / label >
2020-06-23 00:09:42 +05:30
< div class = "input-group" >
< template v-if = "ingressExternalEndpoint" >
< input
id = "ingress-endpoint"
: value = "ingressExternalEndpoint"
type = "text"
class = "form-control js-endpoint"
readonly
2018-12-05 23:21:45 +05:30
/ >
2020-06-23 00:09:42 +05:30
< span class = "input-group-append" >
< clipboard-button
: text = "ingressExternalEndpoint"
: title = "s__('ClusterIntegration|Copy Ingress Endpoint')"
class = "input-group-text js-clipboard-btn"
/ >
< / span >
< / template >
< template v-else >
< 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"
/ >
< / template >
2019-07-07 11:18:12 +05:30
< / div >
2019-02-15 15:39:39 +05:30
< p class = "form-text text-muted" >
{ {
s _ _ ( ` ClusterIntegration|Point a wildcard DNS to this
2019-12-26 22:10:19 +05:30
generated endpoint in order to access
your application after it has been deployed . ` )
2019-02-15 15:39:39 +05:30
} }
2020-06-23 00:09:42 +05:30
< gl-link :href = "ingressDnsHelpPath" target = "_blank" >
2019-09-04 21:01:54 +05:30
{ { _ _ ( 'More information' ) } }
2020-06-23 00:09:42 +05:30
< / gl-link >
2019-02-15 15:39:39 +05:30
< / p >
2018-12-05 23:21:45 +05:30
< / div >
2018-03-27 19:54:05 +05:30
2019-07-07 11:18:12 +05:30
< p v-if = "!ingressExternalEndpoint" class="settings-message js-no-endpoint-message" >
2019-02-15 15:39:39 +05:30
{ {
2019-07-07 11:18:12 +05:30
s _ _ ( ` ClusterIntegration|The endpoint is in
2019-12-26 22:10:19 +05:30
the process of being assigned . Please check your Kubernetes
cluster or Quotas on Google Kubernetes Engine if it takes a long time . ` )
2019-02-15 15:39:39 +05:30
} }
2020-06-23 00:09:42 +05:30
< gl-link :href = "ingressDnsHelpPath" target = "_blank" >
2019-09-04 21:01:54 +05:30
{ { _ _ ( 'More information' ) } }
2020-06-23 00:09:42 +05:30
< / gl-link >
2018-12-05 23:21:45 +05:30
< / p >
< / template >
2020-06-23 00:09:42 +05:30
< template v-else >
2021-02-22 17:27:13 +05:30
< gl-alert variant = "info" :dismissible = "false" >
< span data -testid = " ingressCostWarning " >
2020-06-23 00:09:42 +05:30
< gl-sprintf
: message = "
s _ _ (
'ClusterIntegration|Installing Ingress may incur additional costs. Learn more about %{linkStart}pricing%{linkEnd}.' ,
)
"
>
< template # link = "{ content }" >
< gl-link href = "https://cloud.google.com/compute/pricing#lb" target = "_blank" > { {
content
} } < / gl-link >
< / template >
< / gl-sprintf >
2021-02-22 17:27:13 +05:30
< / span >
< / gl-alert >
2019-07-07 11:18:12 +05:30
< / template >
2020-06-23 00:09:42 +05:30
< / template >
2018-12-23 12:14:25 +05:30
< / application-row >
< application-row
2019-02-15 15:39:39 +05:30
id = "cert_manager"
2020-06-23 00:09:42 +05:30
: logo - url = "$options.logos.certManagerLogo"
2019-02-15 15:39:39 +05:30
: 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"
2019-07-31 22:56:46 +05:30
: installed = "applications.cert_manager.installed"
: install - failed = "applications.cert_manager.installFailed"
2019-02-15 15:39:39 +05:30
: install - application - request - params = "{ email: applications.cert_manager.email }"
2019-07-31 22:56:46 +05:30
: uninstallable = "applications.cert_manager.uninstallable"
: uninstall - successful = "applications.cert_manager.uninstallSuccessful"
: uninstall - failed = "applications.cert_manager.uninstallFailed"
2019-02-15 15:39:39 +05:30
title - link = "https://cert-manager.readthedocs.io/en/latest/#"
>
2020-06-23 00:09:42 +05:30
< template # description >
< p data -testid = " certManagerDescription " >
< gl-sprintf
: message = "
s _ _ ( ` 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 % { linkStart } Let ' s Encrypt % { linkEnd } and ensure that certificates
are valid and up - to - date . ` )
"
>
< template # link = "{ content }" >
< gl-link href = "https://letsencrypt.org/" target = "_blank" > { { content } } < / gl-link >
< / template >
< / gl-sprintf >
< / p >
< div class = "form-group" >
< label for = "cert-manager-issuer-email" >
{ { s _ _ ( 'ClusterIntegration|Issuer Email' ) } }
< / label >
< div class = "input-group" >
2021-03-11 19:13:27 +05:30
<!-- eslint - disable vue / no - mutating - props -- >
2020-06-23 00:09:42 +05:30
< input
id = "cert-manager-issuer-email"
v - model = "applications.cert_manager.email"
: readonly = "certManagerInstalled"
type = "text"
class = "form-control js-email"
/ >
2021-03-11 19:13:27 +05:30
<!-- eslint - enable vue / no - mutating - props -- >
2019-02-15 15:39:39 +05:30
< / div >
2020-06-23 00:09:42 +05:30
< p class = "form-text text-muted" >
{ {
s _ _ ( ` ClusterIntegration|Issuers represent a certificate authority.
You must provide an email address for your Issuer . ` )
} }
< gl-link
href = "http://docs.cert-manager.io/en/latest/reference/issuers.html?highlight=email"
target = "_blank"
> { { _ _ ( 'More information' ) } } < / g l - l i n k
>
< / p >
2019-02-15 15:39:39 +05:30
< / div >
< / template >
< / application-row >
< application-row
2018-12-05 23:21:45 +05:30
id = "prometheus"
2020-06-23 00:09:42 +05:30
: logo - url = "$options.logos.prometheusLogo"
2018-12-05 23:21:45 +05:30
: 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"
2019-07-31 22:56:46 +05:30
: installed = "applications.prometheus.installed"
: install - failed = "applications.prometheus.installFailed"
: uninstallable = "applications.prometheus.uninstallable"
: uninstall - successful = "applications.prometheus.uninstallSuccessful"
: uninstall - failed = "applications.prometheus.uninstallFailed"
2018-12-05 23:21:45 +05:30
title - link = "https://prometheus.io/docs/introduction/overview/"
>
2020-06-23 00:09:42 +05:30
< template # description >
< span data -testid = " prometheusDescription " >
< gl-sprintf
: message = "
s _ _ ( ` ClusterIntegration|Prometheus is an open-source monitoring system
with % { linkStart } GitLab Integration % { linkEnd } to monitor deployed applications . ` )
"
>
< template # link = "{ content }" >
< gl-link
2021-01-03 14:25:43 +05:30
href = "https://docs.gitlab.com/ee/user/project/integrations/prometheus.html"
2020-06-23 00:09:42 +05:30
target = "_blank"
> { { content } } < / g l - l i n k
>
< / template >
< / gl-sprintf >
< / span >
< / template >
2018-12-05 23:21:45 +05:30
< / application-row >
< application-row
id = "runner"
2020-06-23 00:09:42 +05:30
: logo - url = "$options.logos.gitlabLogo"
2018-12-05 23:21:45 +05:30
: title = "applications.runner.title"
: status = "applications.runner.status"
: status - reason = "applications.runner.statusReason"
: request - status = "applications.runner.requestStatus"
: request - reason = "applications.runner.requestReason"
2019-03-02 22:35:43 +05:30
: version = "applications.runner.version"
: chart - repo = "applications.runner.chartRepo"
2019-09-04 21:01:54 +05:30
: update - available = "applications.runner.updateAvailable"
2019-07-31 22:56:46 +05:30
: installed = "applications.runner.installed"
: install - failed = "applications.runner.installFailed"
: update - successful = "applications.runner.updateSuccessful"
: update - failed = "applications.runner.updateFailed"
: uninstallable = "applications.runner.uninstallable"
: uninstall - successful = "applications.runner.uninstallSuccessful"
: uninstall - failed = "applications.runner.uninstallFailed"
2018-12-05 23:21:45 +05:30
title - link = "https://docs.gitlab.com/runner/"
>
2020-06-23 00:09:42 +05:30
< template # description >
2019-02-15 15:39:39 +05:30
{ {
2019-07-07 11:18:12 +05:30
s _ _ ( ` ClusterIntegration|GitLab Runner connects to the
2019-12-26 22:10:19 +05:30
repository and executes CI / CD jobs ,
pushing results back and deploying
applications to production . ` )
2019-02-15 15:39:39 +05:30
} }
2020-06-23 00:09:42 +05:30
< / template >
2018-12-05 23:21:45 +05:30
< / application-row >
2019-12-26 22:10:19 +05:30
< application-row
id = "crossplane"
2020-06-23 00:09:42 +05:30
: logo - url = "$options.logos.crossplaneLogo"
2019-12-26 22:10:19 +05:30
: 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 }"
title - link = "https://crossplane.io"
>
2020-06-23 00:09:42 +05:30
< template # description >
< p data -testid = " crossplaneDescription " >
< gl-sprintf
: message = "
s _ _ (
` ClusterIntegration|Crossplane enables declarative provisioning of managed services from your cloud of choice using %{codeStart}kubectl%{codeEnd} or %{linkStart}GitLab Integration%{linkEnd}.
Crossplane runs inside your Kubernetes cluster and supports secure connectivity and secrets management between app containers and the cloud services they depend on . ` ,
)
"
>
2021-03-08 18:12:59 +05:30
< template # code = "{ content }" >
2020-06-23 00:09:42 +05:30
< code > { { content } } < / code >
< / template >
< template # link = "{ content }" >
< gl-link
href = "https://docs.gitlab.com/ee/user/clusters/applications.html#crossplane"
target = "_blank"
> { { content } } < / g l - l i n k
>
< / template >
< / gl-sprintf >
< / p >
< div class = "form-group" >
< CrossplaneProviderStack :crossplane = "crossplane" @set ="setCrossplaneProviderStack" / >
2019-12-26 22:10:19 +05:30
< / div >
< / template >
< / application-row >
2018-12-05 23:21:45 +05:30
< application-row
id = "jupyter"
2020-06-23 00:09:42 +05:30
: logo - url = "$options.logos.jupyterhubLogo"
2018-12-05 23:21:45 +05:30
: title = "applications.jupyter.title"
: status = "applications.jupyter.status"
: status - reason = "applications.jupyter.statusReason"
: request - status = "applications.jupyter.requestStatus"
: request - reason = "applications.jupyter.requestReason"
2019-07-31 22:56:46 +05:30
: installed = "applications.jupyter.installed"
: install - failed = "applications.jupyter.installFailed"
: uninstallable = "applications.jupyter.uninstallable"
: uninstall - successful = "applications.jupyter.uninstallSuccessful"
: uninstall - failed = "applications.jupyter.uninstallFailed"
2018-12-05 23:21:45 +05:30
: install - application - request - params = "{ hostname: applications.jupyter.hostname }"
title - link = "https://jupyterhub.readthedocs.io/en/stable/"
>
2020-06-23 00:09:42 +05:30
< template # description >
2018-12-05 23:21:45 +05:30
< p >
2019-02-15 15:39:39 +05:30
{ {
s _ _ ( ` ClusterIntegration|JupyterHub, a multi-user Hub, spawns,
2019-12-26 22:10:19 +05:30
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 . ` )
2019-02-15 15:39:39 +05:30
} }
2021-01-29 00:20:46 +05:30
< gl-sprintf
: message = "
s _ _ (
'ClusterIntegration|%{boldStart}Note:%{boldEnd} Requires Ingress to be installed.' ,
)
"
>
< template # bold = "{ content }" >
< b > { { content } } < / b >
< / template >
< / gl-sprintf >
2018-12-05 23:21:45 +05:30
< / p >
2018-11-08 19:23:39 +05:30
2019-07-07 11:18:12 +05:30
< template v-if = "ingressExternalEndpoint" >
2018-12-05 23:21:45 +05:30
< div class = "form-group" >
2019-07-31 22:56:46 +05:30
< label for = "jupyter-hostname" > { { s _ _ ( 'ClusterIntegration|Jupyter Hostname' ) } } < / label >
2018-11-08 19:23:39 +05:30
2018-12-05 23:21:45 +05:30
< div class = "input-group" >
2021-03-11 19:13:27 +05:30
<!-- eslint - disable vue / no - mutating - props -- >
2018-12-05 23:21:45 +05:30
< input
2020-06-23 00:09:42 +05:30
id = "jupyter-hostname"
2018-12-05 23:21:45 +05:30
v - model = "applications.jupyter.hostname"
: readonly = "jupyterInstalled"
type = "text"
class = "form-control js-hostname"
/ >
2021-03-11 19:13:27 +05:30
<!-- eslint - enable vue / no - mutating - props -- >
2021-01-03 14:25:43 +05:30
< span class = "input-group-append" >
2018-12-05 23:21:45 +05:30
< clipboard-button
: text = "jupyterHostname"
2019-12-21 20:55:43 +05:30
: title = "s__('ClusterIntegration|Copy Jupyter Hostname')"
2018-12-05 23:21:45 +05:30
class = "js-clipboard-btn"
2018-11-08 19:23:39 +05:30
/ >
2018-12-05 23:21:45 +05:30
< / span >
2018-11-08 19:23:39 +05:30
< / div >
2019-02-15 15:39:39 +05:30
< p v-if = "ingressInstalled" class="form-text text-muted" >
{ {
s _ _ ( ` ClusterIntegration|Replace this with your own hostname if you want.
2019-12-26 22:10:19 +05:30
If you do so , point hostname to Ingress IP Address from above . ` )
2019-02-15 15:39:39 +05:30
} }
2020-06-23 00:09:42 +05:30
< gl-link :href = "ingressDnsHelpPath" target = "_blank" >
2019-09-04 21:01:54 +05:30
{ { _ _ ( 'More information' ) } }
2020-06-23 00:09:42 +05:30
< / gl-link >
2019-02-15 15:39:39 +05:30
< / p >
2018-12-05 23:21:45 +05:30
< / div >
< / template >
2020-06-23 00:09:42 +05:30
< / template >
2018-12-05 23:21:45 +05:30
< / application-row >
2018-12-13 13:39:08 +05:30
< application-row
id = "knative"
2020-06-23 00:09:42 +05:30
: logo - url = "$options.logos.knativeLogo"
2018-12-13 13:39:08 +05:30
: title = "applications.knative.title"
: status = "applications.knative.status"
: status - reason = "applications.knative.statusReason"
: request - status = "applications.knative.requestStatus"
: request - reason = "applications.knative.requestReason"
2019-07-31 22:56:46 +05:30
: installed = "applications.knative.installed"
: install - failed = "applications.knative.installFailed"
2020-04-22 19:07:51 +05:30
: install - application - request - params = " {
hostname : applications . knative . hostname ,
pages _domain _id : applications . knative . pagesDomain && applications . knative . pagesDomain . id ,
} "
2019-07-31 22:56:46 +05:30
: uninstallable = "applications.knative.uninstallable"
: uninstall - successful = "applications.knative.uninstallSuccessful"
: uninstall - failed = "applications.knative.uninstallFailed"
2019-09-04 21:01:54 +05:30
: updateable = "false"
2019-07-31 22:56:46 +05:30
v - bind = "applications.knative"
2018-12-13 13:39:08 +05:30
title - link = "https://github.com/knative/docs"
>
2020-06-23 00:09:42 +05:30
< template # description >
2021-02-22 17:27:13 +05:30
< gl-alert v-if ="!rbac" variant="info" class="rbac-notice gl-my-3" :dismissible ="false" >
2020-06-23 00:09:42 +05:30
{ {
s _ _ ( ` ClusterIntegration|You must have an RBAC-enabled cluster
to install Knative . ` )
} }
< gl-link :href = "helpPath" target = "_blank" > { { _ _ ( 'More information' ) } } < / gl-link >
2021-02-22 17:27:13 +05:30
< / gl-alert >
2018-12-13 13:39:08 +05:30
< p >
2019-02-15 15:39:39 +05:30
{ {
s _ _ ( ` ClusterIntegration|Knative extends Kubernetes to provide
2019-12-26 22:10:19 +05:30
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 . ` )
2019-02-15 15:39:39 +05:30
} }
2018-12-13 13:39:08 +05:30
< / p >
2019-09-04 21:01:54 +05:30
< knative-domain-editor
2020-10-24 23:57:45 +05:30
v - if = "(knative.installed || rbac) && !preInstalledKnative"
2019-09-04 21:01:54 +05:30
: knative = "knative"
: ingress - dns - help - path = "ingressDnsHelpPath"
@ save = "saveKnativeDomain"
2020-04-22 19:07:51 +05:30
@ set = "setKnativeDomain"
2019-09-04 21:01:54 +05:30
/ >
2020-06-23 00:09:42 +05:30
< / template >
2021-01-29 00:20:46 +05:30
< template v-if = "cloudRun" # installed -via >
< span data -testid = " installed -via " >
2020-06-23 00:09:42 +05:30
< gl-sprintf
: message = "s__('ClusterIntegration|installed via %{linkStart}Cloud Run%{linkEnd}')"
>
< template # link = "{ content }" >
< gl-link :href = "cloudRunHelpPath" target = "_blank" > { { content } } < / gl-link >
< / template >
< / gl-sprintf >
< / span >
< / template >
2018-12-13 13:39:08 +05:30
< / application-row >
2019-12-26 22:10:19 +05:30
< application-row
id = "elastic_stack"
2020-06-23 00:09:42 +05:30
: logo - url = "$options.logos.elasticStackLogo"
2019-12-26 22:10:19 +05:30
: 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"
2020-05-24 23:13:21 +05:30
title - link = "https://gitlab.com/gitlab-org/charts/elastic-stack"
2019-12-26 22:10:19 +05:30
>
2020-06-23 00:09:42 +05:30
< template # description >
2019-12-26 22:10:19 +05:30
< p >
{ {
s _ _ (
` ClusterIntegration|The elastic stack collects logs from all pods in your cluster ` ,
)
} }
< / p >
2020-06-23 00:09:42 +05:30
< / template >
2019-12-26 22:10:19 +05:30
< / application-row >
2020-05-24 23:13:21 +05:30
< application-row
id = "fluentd"
2020-06-23 00:09:42 +05:30
: logo - url = "$options.logos.fluentdLogo"
2020-05-24 23:13:21 +05:30
: title = "applications.fluentd.title"
: status = "applications.fluentd.status"
: status - reason = "applications.fluentd.statusReason"
: request - status = "applications.fluentd.requestStatus"
: request - reason = "applications.fluentd.requestReason"
: installed = "applications.fluentd.installed"
: install - failed = "applications.fluentd.installFailed"
: install - application - request - params = " {
host : applications . fluentd . host ,
port : applications . fluentd . port ,
protocol : applications . fluentd . protocol ,
waf _log _enabled : applications . fluentd . wafLogEnabled ,
cilium _log _enabled : applications . fluentd . ciliumLogEnabled ,
} "
: uninstallable = "applications.fluentd.uninstallable"
: uninstall - successful = "applications.fluentd.uninstallSuccessful"
: uninstall - failed = "applications.fluentd.uninstallFailed"
: updateable = "false"
title - link = "https://github.com/helm/charts/tree/master/stable/fluentd"
>
2020-06-23 00:09:42 +05:30
< template # description >
2020-05-24 23:13:21 +05:30
< p >
{ {
s _ _ (
` ClusterIntegration|Fluentd is an open source data collector, which lets you unify the data collection and consumption for a better use and understanding of data. It requires at least one of the following logs to be successfully installed. ` ,
)
} }
< / p >
< fluentd-output-settings
: port = "applications.fluentd.port"
: protocol = "applications.fluentd.protocol"
: host = "applications.fluentd.host"
: waf - log - enabled = "applications.fluentd.wafLogEnabled"
: cilium - log - enabled = "applications.fluentd.ciliumLogEnabled"
: status = "applications.fluentd.status"
: update - failed = "applications.fluentd.updateFailed"
/ >
2020-06-23 00:09:42 +05:30
< / template >
2020-05-24 23:13:21 +05:30
< / application-row >
2020-10-24 23:57:45 +05:30
< div class = "gl-mt-7 gl-border-1 gl-border-t-solid gl-border-gray-100" >
<!-- This empty div serves as a separator . The applications below can be externally installed using a cluster - management project . -- >
< / div >
< application-row
id = "cilium"
: title = "applications.cilium.title"
: logo - url = "$options.logos.gitlabLogo"
: status = "applications.cilium.status"
: status - reason = "applications.cilium.statusReason"
: installable = "applications.cilium.installable"
: uninstallable = "applications.cilium.uninstallable"
: installed = "applications.cilium.installed"
: install - failed = "applications.cilium.installFailed"
: title - link = "ciliumHelpPath"
>
< template # description >
< p data -testid = " ciliumDescription " >
< gl-sprintf
: message = "
s _ _ (
'ClusterIntegration|Protect your clusters with GitLab Container Network Policies by enforcing how pods communicate with each other and other network endpoints. %{linkStart}Learn more about configuring Network Policies here.%{linkEnd}' ,
)
"
>
< template # link = "{ content }" >
< gl-link :href = "ciliumHelpPath" target = "_blank" > { { content } } < / gl-link >
< / template >
< / gl-sprintf >
< / p >
< / template >
< / application-row >
2018-03-17 18:26:18 +05:30
< / div >
< / section >
< / template >