Files
kubesphere/config/ks-core/templates/ingress.yaml
KubeSphere CI Bot 447a51f08b feat: kubesphere 4.0 (#6115)
* feat: kubesphere 4.0

Signed-off-by: ci-bot <ci-bot@kubesphere.io>

* feat: kubesphere 4.0

Signed-off-by: ci-bot <ci-bot@kubesphere.io>

---------

Signed-off-by: ci-bot <ci-bot@kubesphere.io>
Co-authored-by: ks-ci-bot <ks-ci-bot@example.com>
Co-authored-by: joyceliu <joyceliu@yunify.com>
2024-09-06 11:05:52 +08:00

67 lines
2.7 KiB
YAML

{{- if .Values.ingress.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ks-console
namespace: {{ .Release.Namespace }}
annotations:
{{- if .Values.internalTLS }}
{{- if eq .Values.ingress.ingressClassName "nginx" }}
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
{{- else if eq .Values.ingress.ingressClassName "traefik" }}
ingress.kubernetes.io/protocol: "https"
{{- end }}
{{- end }}
{{- if .Values.ingress.tls.enabled }}
{{- if eq .Values.ingress.tls.source "letsEncrypt" }}
{{- if or (.Capabilities.APIVersions.Has "certmanager.k8s.io/v1alpha1") }}
certmanager.k8s.io/issuer: letsencrypt
{{- else if or (.Capabilities.APIVersions.Has "cert-manager.io/v1beta1") (.Capabilities.APIVersions.Has "cert-manager.io/v1alpha2") (.Capabilities.APIVersions.Has "cert-manager.io/v1") }}
cert-manager.io/issuer: letsencrypt
cert-manager.io/issuer-kind: Issuer
{{- end }}
{{- else if eq .Values.ingress.tls.source "generation" }}
{{- if or (.Capabilities.APIVersions.Has "certmanager.k8s.io/v1alpha1") }}
certmanager.k8s.io/issuer: self-signed
{{- else if or (.Capabilities.APIVersions.Has "cert-manager.io/v1beta1") (.Capabilities.APIVersions.Has "cert-manager.io/v1alpha2") (.Capabilities.APIVersions.Has "cert-manager.io/v1") }}
cert-manager.io/issuer: self-signed
cert-manager.io/issuer-kind: Issuer
{{- end }}
{{- end }}
{{- end }}
spec:
{{- if .Values.ingress.ingressClassName }}
ingressClassName: {{ .Values.ingress.ingressClassName }}
{{- end }}
rules:
- host: {{ .Values.portal.hostname }}
http:
paths:
- backend:
{{- if or (.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress") (not (.Capabilities.APIVersions.Has "networking.k8s.io/v1beta1/Ingress")) }}
service:
name: ks-console
port:
{{- if .Values.internalTLS }}
number: 443
{{- else }}
number: 80
{{- end }}
{{- else }}
serviceName: ks-console
{{- if .Values.internalTLS }}
servicePort: 443
{{- else }}
servicePort: 80
{{- end }}
{{- end }}
{{- if or (.Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress") (not (.Capabilities.APIVersions.Has "networking.k8s.io/v1beta1/Ingress")) }}
pathType: ImplementationSpecific
{{- end }}
{{- if .Values.ingress.tls.enabled }}
tls:
- hosts:
- {{ .Values.portal.hostname }}
secretName: {{ .Values.ingress.tls.secretName }}
{{- end }}
{{- end }}