This commit is contained in:
zeaslity
2024-10-30 16:30:51 +08:00
commit 437acbeb63
3363 changed files with 653948 additions and 0 deletions

View File

@@ -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 !!!

View File

@@ -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 }}*/}}

View File

@@ -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 }}

View File

@@ -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 }}*/}}
{{/*---*/}}

View File

@@ -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 }}

View File

@@ -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 }}