add
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*.orig
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
ci/*
|
||||
@@ -0,0 +1,30 @@
|
||||
apiVersion: v2
|
||||
name: all-ingress-config
|
||||
description: 中移凌云平台所有的Ingress配置,包含前端,后端,Api/Gateway等
|
||||
|
||||
# A chart can be either an 'application' or a 'library' chart.
|
||||
#
|
||||
# Application charts are a collection of templates that can be packaged into versioned archives
|
||||
# to be deployed.
|
||||
#
|
||||
# Library charts provide useful utilities or functions for the chart developer. They're included as
|
||||
# a dependency of application charts to inject those utilities and functions into the rendering
|
||||
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
|
||||
type: application
|
||||
|
||||
# This is the chart version. This version number should be incremented each time you make changes
|
||||
# to the chart and its templates, including the app version.
|
||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||
version: 1.1.0
|
||||
|
||||
# This is the version number of the application being deployed. This version number should be
|
||||
# incremented each time you make changes to the application. Versions are not expected to
|
||||
# follow Semantic Versioning. They should reflect the version the application is using.
|
||||
appVersion: 2.2.2
|
||||
|
||||
keywords:
|
||||
- uavcloud
|
||||
- ingress
|
||||
- template
|
||||
- function
|
||||
- chinamobile
|
||||
@@ -0,0 +1,33 @@
|
||||
{{- if or .Values.frontendApplication.enabled .Values.backendApplication.enabled .Values.apiGatewayApplication.enabled }}
|
||||
{{- if .Values.frontendApplication.enabled }}
|
||||
-- 已经开启前端应用的Ingress!
|
||||
-- The Ingress of the front-end application has been opened!
|
||||
{{- end }}
|
||||
{{- if .Values.backendApplication.enabled }}
|
||||
-- 已经开启后端应用的Ingress!
|
||||
-- The Ingress of the back-end application has been opened!
|
||||
{{- end }}
|
||||
{{- if .Values.apiGatewayApplication.enabled }}
|
||||
-- 已经开启Api和Gateway应用的Ingress!
|
||||
-- Ingress of Api and Gateway applications has been opened!
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
[ERROR] 您并没有选择开启任何应用的Ingress!仅仅更新ConfigMap!!
|
||||
[ERROR] You did not choose to open Ingress for any app! Just update the ConfigMap! !
|
||||
{{- end }}
|
||||
{{ if .Values.global.domain.IsPrivateDeployment }}
|
||||
-- 您选择了【私有化】域名部署!!
|
||||
-- [INFO] 请注意域名中不包含前缀!
|
||||
-- 当前中移凌云的主页访问地址为:{{- if .Values.global.ingress.tls_enabled -}}https://{{- else -}}http://{{- end -}}{{ .Values.global.domain.DeployDomainName }}/
|
||||
-- You have chosen [Private] domain name deployment! !
|
||||
-- [INFO] Please note that the domain name does not contain a prefix!
|
||||
-- The current homepage access address of China Mobile Lingyun is:{{- if .Values.global.ingress.tls_enabled -}}https://{{- else -}}http://{{- end -}}{{ .Values.global.domain.DeployDomainName }}/
|
||||
{{- else }}
|
||||
-- 当前部署的租户环境为:{{ .Values.global.domain.TenantEnvironment }}
|
||||
-- 当前中移凌云的主页访问地址为:{{- if .Values.global.ingress.tls_enabled -}}https://{{- else -}}http://{{- end -}}{{ .Values.global.domain.DeployDomainName }}/{{ .Values.global.domain.TenantEnvironment }}/
|
||||
-- The currently deployed tenant environment is: {{ .Values.global.domain.TenantEnvironment }}
|
||||
-- The current homepage access address of China Mobile Lingyun is:{{- if .Values.global.ingress.tls_enabled -}}https://{{- else -}}http://{{- end -}}{{ .Values.global.domain.DeployDomainName }}/{{ .Values.global.domain.TenantEnvironment }}/
|
||||
{{- end }}
|
||||
|
||||
[SUCCESS] Ingress Deployment has been accomplished !!!
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "all-ingress.name" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
{{/*
|
||||
Create the tls configuration for https to enable trafik-ingress
|
||||
*/}}
|
||||
{{- define "all-ingress-front.full.applications" -}}
|
||||
- cmii-uav-platform
|
||||
- cmii-uav-platform-ai-brain
|
||||
- cmii-uav-platform-hyperspectral
|
||||
- cmii-uav-platform-mws
|
||||
- cmii-uav-platform-oms
|
||||
- cmii-uav-platform-open
|
||||
- cmii-uav-platform-splice
|
||||
- cmii-uav-platform-splice-visual
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
common annotations of frontend applications
|
||||
*/}}
|
||||
{{- define "all-ingress.frontend.commom.annotations" -}}
|
||||
kubernetes.io/ingress.class: "nginx"
|
||||
nginx.ingress.kubernetes.io/enable-cors: "true"
|
||||
nginx.ingress.kubernetes.io/rewrite-target: /$1
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Specific annotations created for api applications
|
||||
*/}}
|
||||
{{- define "all-ingress.all-apis.commom.annotations" -}}
|
||||
kubernetes.io/ingress.class: "nginx"
|
||||
nginx.ingress.kubernetes.io/enable-cors: "true"
|
||||
nginx.ingress.kubernetes.io/rewrite-target: /$2
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
the specific annotations for project-minio
|
||||
*/}}
|
||||
{{/*{{- define "uavcloud-ingress.apiGateway.project-minio.annotations" -}}*/}}
|
||||
{{/*kubernetes.io/ingress.class: "nginx"*/}}
|
||||
{{/*nginx.ingress.kubernetes.io/enable-cors: "true"*/}}
|
||||
{{/*nginx.ingress.kubernetes.io/rewrite-target: /api/uav/minio/$2*/}}
|
||||
{{/*{{- end }}*/}}
|
||||
@@ -0,0 +1,51 @@
|
||||
{{- if .Values.enabled }}
|
||||
{{- $namespace := .Release.Namespace -}}
|
||||
{{- $TenantEnvironment := .Values.global.domain.TenantEnvironment -}}
|
||||
{{- $DeployDomainName := .Values.global.domain.DeployDomainName -}}
|
||||
{{- $IsPrivateDeployment := .Values.global.domain.IsPrivateDeployment -}}
|
||||
{{- range $applicationName, $values := .Values.frontendApplication.manifest }}
|
||||
---
|
||||
kind: ConfigMap
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
{{- if eq $values.shortname "" }}
|
||||
name: tenant-prefix-platform
|
||||
{{- else }}
|
||||
name: tenant-prefix-{{ $values.shortname }}
|
||||
{{- end }}
|
||||
namespace: {{ $namespace }}
|
||||
data:
|
||||
ingress-config.js: |-
|
||||
// 从ConfigMap中注入
|
||||
// injected from ConfigMap
|
||||
var __GlobalIngressConfig = {
|
||||
{{- if $IsPrivateDeployment }}
|
||||
TenantEnvironment: "",
|
||||
{{- else }}
|
||||
TenantEnvironment: {{ $TenantEnvironment | quote -}},
|
||||
{{- end }}
|
||||
CloudHOST: {{ $DeployDomainName | quote -}},
|
||||
{{- if not (contains "appli" $values.shortname ) }}
|
||||
{{- /* short name not contains application, judge for situations */}}
|
||||
{{- if contains "cms-portal" $values.shortname }}
|
||||
ApplicationShortName: "cmsportal",
|
||||
{{- else if contains "-rescue" $values.shortname }}
|
||||
ApplicationShortName: {{ trimSuffix "-rescue" $values.shortname | quote -}},
|
||||
{{- else if contains "screen" $values.shortname }}
|
||||
ApplicationShortName: {{ trimSuffix "-screen" $values.shortname | quote -}},
|
||||
{{- else }}
|
||||
ApplicationShortName: {{ $values.shortname | quote }},
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
ApplicationShortName: {{ trimSuffix "-application" $values.shortname | quote -}},
|
||||
{{- end }}
|
||||
{{- range $appShortNamePlusTenantEnv, $appClientId := $values}}
|
||||
{{- $realApplicationNamePlusTenantEnv := cat $values.shortname $TenantEnvironment | replace " " "-" }}
|
||||
{{- if hasPrefix $appShortNamePlusTenantEnv $realApplicationNamePlusTenantEnv }}
|
||||
AppClientId: {{ $appClientId | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
}
|
||||
---
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -0,0 +1,215 @@
|
||||
{{- if and .Values.enabled .Values.apiGatewayApplication.enabled }}
|
||||
{{- $namespace := .Release.Namespace -}}
|
||||
{{- $TenantEnvironment := .Values.global.domain.TenantEnvironment -}}
|
||||
{{- $DeployDomainName := ternary (first (regexSplit ":" .Values.global.domain.DeployDomainName -1)) ( .Values.global.domain.DeployDomainName ) (contains ":" .Values.global.domain.DeployDomainName) -}}
|
||||
{{- $IsPrivateDeployment := .Values.global.domain.IsPrivateDeployment -}}
|
||||
{{- $IsTlsEnables := .Values.global.ingress.tls_enabled -}}
|
||||
{{- $scope := $ -}}
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: all-gateways-ingress
|
||||
namespace: {{ $namespace }}
|
||||
labels:
|
||||
type: {{ $.Values.apiGatewayApplication.type }}
|
||||
accessmode: {{ $.Values.apiGatewayApplication.accessmode }}
|
||||
helm.sh/chart: {{ include "all-ingress.name" $scope }}
|
||||
app.kubernetes.io/managed-by: {{ $.Release.Service }}
|
||||
{{- if $.Values.global.image.tag }}
|
||||
app.kubernetes.io/version: {{ $.Values.global.image.tag | quote }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- include "all-ingress.frontend.commom.annotations" $scope | nindent 4 }}
|
||||
{{- if $IsTlsEnables }}
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
nginx.ingress.kubernetes.io/permanent-redirect-code: '301'
|
||||
{{- end }}
|
||||
nginx.ingress.kubernetes.io/configuration-snippet: |
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "Upgrade";
|
||||
spec:
|
||||
rules:
|
||||
- host: {{ $DeployDomainName }}
|
||||
http:
|
||||
paths:
|
||||
{{- if $IsPrivateDeployment }}
|
||||
{{- range $key,$value := .Values.apiGatewayApplication.manifest }}
|
||||
{{- if eq $value false }}
|
||||
{{- $applicationName := ternary (trimPrefix "cmii-uav-" $key) (trimPrefix "cmii-" $key) (contains "cmii-uav" $key) -}}
|
||||
{{- if eq $applicationName "material-warehouse" }}
|
||||
- path: /api/warehouses/?(.*)
|
||||
{{- else if eq $applicationName "gateway" }}
|
||||
- path: /api/?(.*)
|
||||
{{- else if eq $applicationName "admin-gateway" }}
|
||||
- path: /oms/api/?(.*)
|
||||
{{- /* {{- else if eq $applicationName "project-minio" }}*/}}
|
||||
{{- /* - path: /?(.*)/api/minios/?(.*)*/}}
|
||||
{{- else if eq $applicationName "open-gateway" }}
|
||||
- path: /open/api/?(.*)
|
||||
{{- else }}
|
||||
- path: /{{ $applicationName }}/?(.*)
|
||||
{{- end }}
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
serviceName: {{ $key }}
|
||||
servicePort: 8080
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- range $key,$value := .Values.apiGatewayApplication.manifest }}
|
||||
{{- if eq $value false }}
|
||||
{{- $applicationName := ternary (trimPrefix "cmii-uav-" $key) (trimPrefix "cmii-" $key) (contains "cmii-uav" $key) -}}
|
||||
{{- if eq $applicationName "material-warehouse" }}
|
||||
- path: /{{ $TenantEnvironment }}/api/warehouses/?(.*)
|
||||
{{- else if eq $applicationName "gateway" }}
|
||||
- path: /{{ $TenantEnvironment }}/api/?(.*)
|
||||
{{- else if eq $applicationName "admin-gateway" }}
|
||||
- path: /{{ $TenantEnvironment }}/oms/api/?(.*)
|
||||
{{- /* {{- else if eq $applicationName "project-minio" }}*/}}
|
||||
{{- /* - path: /{{ $TenantEnvironment }}/?(.*)/api/minios/?(.*)*/}}
|
||||
{{- else if eq $applicationName "open-gateway" }}
|
||||
- path: /{{ $TenantEnvironment }}/open/api/?(.*)
|
||||
{{- else }}
|
||||
- path: /{{ $applicationName }}/?(.*)
|
||||
{{- end }}
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
serviceName: {{ $key }}
|
||||
servicePort: 8080
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if $IsTlsEnables }}
|
||||
tls:
|
||||
- hosts:
|
||||
- {{ $DeployDomainName }}
|
||||
- secretName: {{ $DeployDomainName | quote }}
|
||||
{{- end }}
|
||||
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: all-apis-ingress
|
||||
namespace: {{ $namespace }}
|
||||
labels:
|
||||
type: {{ $.Values.apiGatewayApplication.type }}
|
||||
accessmode: {{ $.Values.apiGatewayApplication.accessmode }}
|
||||
helm.sh/chart: {{ include "all-ingress.name" $scope }}
|
||||
app.kubernetes.io/managed-by: {{ $.Release.Service }}
|
||||
{{- if $.Values.global.image.tag }}
|
||||
app.kubernetes.io/version: {{ $.Values.global.image.tag | quote }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- include "all-ingress.all-apis.commom.annotations" $scope | nindent 4 }}
|
||||
{{- if $IsTlsEnables }}
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
nginx.ingress.kubernetes.io/permanent-redirect-code: '301'
|
||||
{{- end }}
|
||||
nginx.ingress.kubernetes.io/configuration-snippet: |
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "Upgrade";
|
||||
spec:
|
||||
rules:
|
||||
- host: {{ $DeployDomainName }}
|
||||
http:
|
||||
paths:
|
||||
{{- if $IsPrivateDeployment }}
|
||||
{{- range $key,$value := .Values.apiGatewayApplication.manifest }}
|
||||
{{- $applicationName := ternary (trimPrefix "cmii-uav-" $key) (trimPrefix "cmii-" $key) (contains "cmii-uav" $key) -}}
|
||||
{{- if $value }}
|
||||
{{- if eq $applicationName "material-warehouse" }}
|
||||
- path: /?(.*)/api/warehouses/?(.*)
|
||||
{{- else if eq $applicationName "gateway" }}
|
||||
- path: /api/?(.*)
|
||||
{{- else if eq $applicationName "admin-gateway" }}
|
||||
- path: /oms/api/?(.*)
|
||||
{{- /* {{- else if eq $applicationName "project-minio" }}*/}}
|
||||
{{- /* - path: /?(.*)/api/minios/?(.*)*/}}
|
||||
{{- else if eq $applicationName "open-gateway" }}
|
||||
- path: /open/api/?(.*)
|
||||
{{- else }}
|
||||
- path: /{{ $applicationName }}/?(.*)
|
||||
{{- end }}
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
serviceName: {{ $key }}
|
||||
servicePort: 8080
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- range $key,$value := .Values.apiGatewayApplication.manifest }}
|
||||
{{- if $value }}
|
||||
{{- $applicationName := ternary (trimPrefix "cmii-uav-" $key) (trimPrefix "cmii-" $key) (contains "cmii-uav" $key) -}}
|
||||
{{- if eq $applicationName "material-warehouse" }}
|
||||
- path: /{{ $TenantEnvironment }}/?(.*)/api/warehouses/?(.*)
|
||||
{{- else if eq $applicationName "gateway" }}
|
||||
- path: /{{ $TenantEnvironment }}/api/?(.*)
|
||||
{{- else if eq $applicationName "admin-gateway" }}
|
||||
- path: /{{ $TenantEnvironment }}/oms/api/?(.*)
|
||||
{{- /* {{- else if eq $applicationName "project-minio" }}*/}}
|
||||
{{- /* - path: /{{ $TenantEnvironment }}/?(.*)/api/minios/?(.*)*/}}
|
||||
{{- else if eq $applicationName "open-gateway" }}
|
||||
- path: /{{ $TenantEnvironment }}/open/api/?(.*)
|
||||
{{- else }}
|
||||
- path: /{{ $applicationName }}/?(.*)
|
||||
{{- end }}
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
serviceName: {{ $key }}
|
||||
servicePort: 8080
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if $IsTlsEnables }}
|
||||
tls:
|
||||
- hosts:
|
||||
- {{ $DeployDomainName }}
|
||||
- secretName: {{ $DeployDomainName | quote }}
|
||||
{{- end }}
|
||||
---
|
||||
{{- end }}
|
||||
{{/*apiVersion: networking.k8s.io/v1beta1*/}}
|
||||
{{/*kind: Ingress*/}}
|
||||
{{/*metadata:*/}}
|
||||
{{/* name: project-minio-ingress*/}}
|
||||
{{/* namespace: {{ $namespace }}*/}}
|
||||
{{/* labels:*/}}
|
||||
{{/* type: {{ $.Values.apiGatewayApplication.type }}*/}}
|
||||
{{/* accessmode: {{ $.Values.apiGatewayApplication.accessmode }}*/}}
|
||||
{{/* helm.sh/chart: {{ include "uavcloud-ingress.name" $scope }}*/}}
|
||||
{{/* app.kubernetes.io/managed-by: {{ $.Release.Service }}*/}}
|
||||
{{/* {{- if $.Values.global.image.tag }}*/}}
|
||||
{{/* app.kubernetes.io/version: {{ $.Values.global.image.tag | quote }}*/}}
|
||||
{{/* {{- end }}*/}}
|
||||
{{/* annotations:*/}}
|
||||
{{/* {{- include "uavcloud-ingress.apiGateway.project-minio.annotations" $scope | nindent 4 }}*/}}
|
||||
{{/* {{- if $IsTlsEnables }}*/}}
|
||||
{{/* nginx.ingress.kubernetes.io/ssl-redirect: "true"*/}}
|
||||
{{/* nginx.ingress.kubernetes.io/permanent-redirect-code: '301'*/}}
|
||||
{{/* {{- end }}*/}}
|
||||
{{/* nginx.ingress.kubernetes.io/configuration-snippet: |*/}}
|
||||
{{/* proxy_set_header Upgrade $http_upgrade;*/}}
|
||||
{{/* proxy_set_header Connection "Upgrade";*/}}
|
||||
{{/*spec:*/}}
|
||||
{{/* rules:*/}}
|
||||
{{/* - host: {{ $DeployDomainName }}*/}}
|
||||
{{/* http:*/}}
|
||||
{{/* paths:*/}}
|
||||
{{/* {{- if $IsPrivateDeployment }}*/}}
|
||||
{{/* - path: /?(.*)/api/minio/?(.*)*/}}
|
||||
{{/* {{- else }}*/}}
|
||||
{{/* - path: /{{ $TenantEnvironment }}/?(.*)/api/minio/?(.*)*/}}
|
||||
{{/* {{- end }}*/}}
|
||||
{{/* pathType: ImplementationSpecific*/}}
|
||||
{{/* backend:*/}}
|
||||
{{/* serviceName: cmii-project-minio*/}}
|
||||
{{/* servicePort: 8080*/}}
|
||||
{{/* {{- if $IsTlsEnables }}*/}}
|
||||
{{/* tls:*/}}
|
||||
{{/* - hosts:*/}}
|
||||
{{/* - {{ $DeployDomainName }}*/}}
|
||||
{{/* - secretName: {{ $DeployDomainName | quote }}*/}}
|
||||
{{/* {{- end }}*/}}
|
||||
{{/*---*/}}
|
||||
@@ -0,0 +1,35 @@
|
||||
{{- if and .Values.enabled .Values.backendApplication.enabled }}
|
||||
{{- $namespace := .Release.Namespace -}}
|
||||
{{- $TenantEnvironment := .Values.global.domain.TenantEnvironment -}}
|
||||
{{- $scope := $ -}}
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: backend-applications-ingress
|
||||
namespace: {{ $namespace }}
|
||||
labels:
|
||||
type: {{ .Values.backendApplication.type }}
|
||||
accessmode: {{ $.Values.backendApplication.accessmode }}
|
||||
helm.sh/chart: {{ include "all-ingress.name" $scope }}
|
||||
app.kubernetes.io/managed-by: {{ $.Release.Service }}
|
||||
{{- if $.Values.global.image.tag }}
|
||||
app.kubernetes.io/version: {{ $.Values.global.image.tag | quote }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: "nginx"
|
||||
nginx.ingress.kubernetes.io/enable-cors: "true"
|
||||
spec:
|
||||
rules:
|
||||
{{- range $key,$value := .Values.backendApplication.manifest }}
|
||||
{{- $applicationName := $key | trunc 63 }}
|
||||
- host: {{ $applicationName }}.uavcloud-{{ $TenantEnvironment }}.io
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
backend:
|
||||
serviceName: {{ $applicationName }}
|
||||
servicePort: 8080
|
||||
{{- end }}
|
||||
---
|
||||
{{- end }}
|
||||
@@ -0,0 +1,121 @@
|
||||
{{- if and .Values.enabled .Values.frontendApplication.enabled }}
|
||||
{{- $namespace := .Release.Namespace -}}
|
||||
{{- $TenantEnvironment := .Values.global.domain.TenantEnvironment -}}
|
||||
{{- $DeployDomainName := ternary (first (regexSplit ":" .Values.global.domain.DeployDomainName -1)) ( .Values.global.domain.DeployDomainName ) (contains ":" .Values.global.domain.DeployDomainName) -}}
|
||||
{{- $IsPrivateDeployment := .Values.global.domain.IsPrivateDeployment -}}
|
||||
{{- $scope := $ -}}
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: frontend-applications-ingress
|
||||
namespace: {{ $namespace }}
|
||||
labels:
|
||||
type: {{ .Values.frontendApplication.type }}
|
||||
accessmode: {{ $.Values.frontendApplication.accessmode }}
|
||||
helm.sh/chart: {{ include "all-ingress.name" $scope }}
|
||||
app.kubernetes.io/managed-by: {{ $.Release.Service }}
|
||||
{{- if $.Values.global.image.tag }}
|
||||
app.kubernetes.io/version: {{ $.Values.global.image.tag | quote }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- include "all-ingress.frontend.commom.annotations" $scope | nindent 4 }}
|
||||
{{- if .Values.global.ingress.tls_enabled }}
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
nginx.ingress.kubernetes.io/permanent-redirect-code: '301'
|
||||
{{- end }}
|
||||
nginx.ingress.kubernetes.io/configuration-snippet: |
|
||||
{{- range $applicationName, $values := .Values.frontendApplication.manifest }}
|
||||
{{- if $IsPrivateDeployment }}
|
||||
{{- if eq $values.shortname "" }}
|
||||
{{- /* 主域名的情况, 域名改造 */}}
|
||||
rewrite ^(/green)$ $1/ redirect;
|
||||
rewrite ^(/supervision)$ $1/ redirect;
|
||||
rewrite ^(/inspection)$ $1/ redirect;
|
||||
rewrite ^(/pangu)$ $1/ redirect;
|
||||
{{- /* 主域名的情况, 域名改造 end end end */}}
|
||||
{{- else if not (contains "appli" $values.shortname) }}
|
||||
{{- /* 特殊短域名的情况 */}}
|
||||
{{- /* short name not contains application, judge for situations */}}
|
||||
{{- if contains "-portal" $values.shortname}}
|
||||
rewrite ^(/cmsportal)$ $1/ redirect;
|
||||
{{- else if contains "-rescue" $values.shortname }}
|
||||
rewrite ^(/{{ trimSuffix "-rescue" $values.shortname }})$ $1/ redirect;
|
||||
{{- else if contains "screen" $values.shortname }}
|
||||
rewrite ^(/ {{ trimSuffix "-screen" $values.shortname }})$ $1/ redirect;
|
||||
{{- else }}
|
||||
{{- /* 没有特殊规则的域名 全部会出现在这里 */}}
|
||||
rewrite ^(/{{ $values.shortname }})$ $1/ redirect;
|
||||
{{- end }}
|
||||
{{- else if (contains "appli" $values.shortname) }}
|
||||
rewrite ^(/{{ trimSuffix "-application" $values.shortname }})$ $1/ redirect;
|
||||
{{- else }}
|
||||
{{- /* 备份一下 以防万一 */}}
|
||||
rewrite ^(/{{ $values.shortname }})$ $1/ redirect;
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- if eq $values.shortname "" }}
|
||||
rewrite ^(/{{- $TenantEnvironment -}})$ $1/ redirect;
|
||||
{{- else }}
|
||||
rewrite ^(/{{- cat $TenantEnvironment $values.shortname | replace " " "/" -}})$ $1/ redirect;
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
spec:
|
||||
rules:
|
||||
- host: {{ $DeployDomainName }}
|
||||
http:
|
||||
paths:
|
||||
{{- /* 域名改造, add for demo */}}
|
||||
- path: /inspection/?(.*)
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
serviceName: cmii-uav-platform
|
||||
servicePort: 9528
|
||||
- path: /supervision/?(.*)
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
serviceName: cmii-uav-platform
|
||||
servicePort: 9528
|
||||
- path: /green/?(.*)
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
serviceName: cmii-uav-platform
|
||||
servicePort: 9528
|
||||
- path: /pangu/?(.*)
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
serviceName: cmii-uav-platform
|
||||
servicePort: 9528
|
||||
{{- /* 域名改造, end end end */}}
|
||||
{{- range $applicationName, $values := .Values.frontendApplication.manifest }}
|
||||
{{- if $IsPrivateDeployment }}
|
||||
{{- if eq $values.shortname ""}}
|
||||
- path: /?(.*)
|
||||
{{- else if (contains "appli" $values.shortname) }}
|
||||
- path: /{{ trimSuffix "-application" $values.shortname }}/?(.*)
|
||||
{{- else }}
|
||||
- path: /{{ $values.shortname }}/?(.*)
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- if eq $values.shortname ""}}
|
||||
- path: /{{ $TenantEnvironment }}/?(.*)
|
||||
{{- else if not (contains "appli" $values.shortname) }}
|
||||
- path: /{{ $TenantEnvironment }}/{{ trimSuffix "-application" $values.shortname }}/?(.*)
|
||||
{{- else }}
|
||||
- path: /{{- cat $TenantEnvironment $values.shortname | replace " " "/" -}}/?(.*)
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
pathType: ImplementationSpecific
|
||||
backend:
|
||||
serviceName: {{ $applicationName }}
|
||||
servicePort: 9528
|
||||
{{- end }}
|
||||
{{- if .Values.global.ingress.tls_enabled }}
|
||||
tls:
|
||||
- hosts:
|
||||
- {{ $DeployDomainName }}
|
||||
- secretName: {{ $DeployDomainName | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
@@ -0,0 +1,156 @@
|
||||
# Default values for uavcloud-ingress-core.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
global:
|
||||
domain:
|
||||
DeployDomainName: "lab.uavcmlc.com:31500" # will be overridden by upper values
|
||||
TenantEnvironment: "outside" # please don't modify this, unless you know what you are doing
|
||||
IsPrivateDeployment: true # please don't modify this, unless you know what you are doing
|
||||
ingress:
|
||||
tls_enabled: false
|
||||
|
||||
enabled: true
|
||||
|
||||
frontendApplication:
|
||||
enabled: true
|
||||
type: frontend
|
||||
accessmode: public
|
||||
manifest:
|
||||
# AppFullName vs AppShortName for frontend applications
|
||||
cmii-uav-platform:
|
||||
shortname: ""
|
||||
cmii-uav-platform-ai-brain:
|
||||
shortname: "ai-brain"
|
||||
ai-brain-dev: APP_i6mlNKODBo42OIVn
|
||||
ai-brain-test: APP_0BF17ayVaSpY89O4
|
||||
ai-brain-feature: APP_0BF17ayVaSpY89O4
|
||||
ai-brain-devbase: APP_0BF17ayVaSpY89O4
|
||||
ai-brain-uat: APP_kZeiSXxg9qZxj6ue
|
||||
ai-brain-demo: APP_rafnuCAmBESIVYMH
|
||||
ai-brain-outside: APP_rafnuCAmBESIVYMH # this is actually outside works, copy from demo
|
||||
cmii-uav-platform-hyperspectral:
|
||||
shortname: "hyper"
|
||||
hyper-dev: APP_CN713PC4qwViGj1d
|
||||
hyper-test: APP_xtN9XF2L1J4IRHaB
|
||||
hyper-devbase: APP_xtN9XF2L1J4IRHaB
|
||||
hyper-feature: APP_xtN9XF2L1J4IRHaB
|
||||
hyper-uat: APP_OT4l1kYrzWT4tiif
|
||||
hyper-demo: APP_xbMkKdsbsbv8SH4w
|
||||
hyper-outside: APP_xbMkKdsbsbv8SH4w # this is actually outside works, copy from demo
|
||||
cmii-uav-platform-mws:
|
||||
shortname: "mws"
|
||||
mws-dev: APP_4lVSVI0ZGxTssir8
|
||||
mws-test: APP_MEeBJHp1fSVD1Wuw
|
||||
mws-devbase: APP_MEeBJHp1fSVD1Wuw
|
||||
mws-feature: APP_MEeBJHp1fSVD1Wuw
|
||||
mws-uat: APP_U4GEiHutGQL5prSP
|
||||
mws-demo: APP_uKniXPELlRERBBwK
|
||||
mws-outside: APP_uKniXPELlRERBBwK # this is actually outside works, copy from demo
|
||||
cmii-uav-platform-mws-admin:
|
||||
shortname: "mws-admin"
|
||||
cmii-uav-platform-oms:
|
||||
shortname: "oms"
|
||||
cmii-uav-platform-cms:
|
||||
shortname: "cms"
|
||||
cmii-uav-platform-cms-portal:
|
||||
shortname: "cmsportal"
|
||||
cmii-uav-platform-open:
|
||||
shortname: "open"
|
||||
cmii-uav-platform-splice:
|
||||
shortname: "splice"
|
||||
splice-dev: APP_bYdlPsBBIncZdaYR
|
||||
splice-test: APP_l4HIMixfIXhlCTi9
|
||||
splice-devbase: APP_l4HIMixfIXhlCTi9
|
||||
splice-feature: APP_l4HIMixfIXhlCTi9
|
||||
splice-uat: APP
|
||||
splice-demo: APP_zE0M3sTRXrCIJS8Y
|
||||
splice-outside: APP_zE0M3sTRXrCIJS8Y # this is actually outside works, copy from demo
|
||||
cmii-uav-platform-splice-visual:
|
||||
shortname: "splice-visual"
|
||||
cmii-uav-platform-detection:
|
||||
shortname: "detection"
|
||||
detectiondemo: APP_FDHW2VLVDWPnnOCy
|
||||
detection-outside: APP_FDHW2VLVDWPnnOCy # this is actually outside works, copy from demo
|
||||
cmii-uav-platform-security:
|
||||
shortname: "security"
|
||||
security-demo: APP_JUSEMc7afyWXxvE7
|
||||
security-outside: APP_JUSEMc7afyWXxvE7 # this is actually outside works, copy from demo
|
||||
cmii-uav-platform-visualization:
|
||||
shortname: "visualization"
|
||||
visualization-demo: APP_Jc8i2wOQ1t73QEJS
|
||||
visualization-outside: APP_Jc8i2wOQ1t73QEJS # this is actually outside works, copy from demo
|
||||
cmii-uav-platform-logistics:
|
||||
shortname: "logistics"
|
||||
logistics-demo: APP_PvdfRRRBPL8xbIwl
|
||||
logistics-outside: APP_PvdfRRRBPL8xbIwl
|
||||
cmii-uav-platform-share:
|
||||
shortname: "share"
|
||||
share-demo: APP_4lVSVI0ZGxTssir8
|
||||
share-outside: APP_4lVSVI0ZGxTssir8
|
||||
cmii-uav-platform-base:
|
||||
shortname: "base"
|
||||
base-demo: APP_9LY41OaKSqk2btY0
|
||||
base-outside: APP_9LY41OaKSqk2btY0 # this is actually outside works, copy from demo
|
||||
cmii-uav-platform-traffic-screen:
|
||||
shortname: "traffic"
|
||||
traffic-demo: APP_PvdfRRRBPL8xbIwl
|
||||
traffic-outside: APP_PvdfRRRBPL8xbIwl
|
||||
cmii-uav-platform-emergency-rescue:
|
||||
shortname: "emergency"
|
||||
emergency-demo: APP_aGsTAY1uMZrpKdfk
|
||||
emergency-outside: APP_aGsTAY1uMZrpKdfk
|
||||
|
||||
|
||||
backendApplication:
|
||||
enabled: true
|
||||
type: backend
|
||||
# this ingress is for swagger url, CI/CD url,they can only be accessed only by internal network
|
||||
accessmode: internal
|
||||
manifest:
|
||||
# all backend applications
|
||||
cmii-admin-data: false
|
||||
cmii-admin-user: false
|
||||
cmii-uav-airspace: false
|
||||
cmii-uav-brain: false
|
||||
cmii-uav-clusters: false
|
||||
cmii-uav-data-post-process: false
|
||||
cmii-uav-developer: false
|
||||
cmii-uav-device: false
|
||||
cmii-uav-kpi-monitor: false
|
||||
cmii-uav-live: false
|
||||
cmii-uav-logger: false
|
||||
cmii-uav-mission: false
|
||||
cmii-uav-monitor: false
|
||||
cmii-uav-mqtthandler: false
|
||||
cmii-uav-notice: false
|
||||
cmii-uav-oauth: false
|
||||
cmii-uav-process: false
|
||||
cmii-uav-security-system: false
|
||||
cmii-uav-surveillance: false
|
||||
cmii-uav-user: false
|
||||
cmii-uav-waypoint: false
|
||||
cmii-uav-cms: false
|
||||
cmii-uav-industrial-portfolio: false
|
||||
cmii-project-minio: false
|
||||
cmii-uav-material-warehouse: false
|
||||
cmii-uav-gateway: false
|
||||
cmii-open-gateway: false
|
||||
cmii-admin-gateway: false
|
||||
|
||||
apiGatewayApplication:
|
||||
enabled: true
|
||||
type: "api-gateway"
|
||||
# this ingress is for apis and gateways
|
||||
accessmode: pulic
|
||||
manifest:
|
||||
# all applications need to expose api/gateway to public network
|
||||
# cmii-project-minio: false # deprecated
|
||||
cmii-uav-material-warehouse: true
|
||||
cmii-uav-gateway: false
|
||||
cmii-open-gateway: false
|
||||
cmii-admin-gateway: false
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user