From 85df61717559f425c59adaf18bf8837e9ffaab07 Mon Sep 17 00:00:00 2001 From: Leo Li Date: Thu, 20 Oct 2022 18:16:40 +0800 Subject: [PATCH] optimize ks-core chart (#5305) Signed-off-by: 24sama Signed-off-by: 24sama --- config/ks-core/templates/NOTES.txt | 17 + config/ks-core/templates/_helpers.tpl | 34 +- config/ks-core/templates/account.yaml | 2 +- config/ks-core/templates/ks-console.yml | 6 - .../templates/sample-bookinfo-configmap.yaml | 380 ------------------ config/ks-core/values.yaml | 16 +- 6 files changed, 49 insertions(+), 406 deletions(-) delete mode 100644 config/ks-core/templates/sample-bookinfo-configmap.yaml diff --git a/config/ks-core/templates/NOTES.txt b/config/ks-core/templates/NOTES.txt index e69de29bb..c79ca1aad 100644 --- a/config/ks-core/templates/NOTES.txt +++ b/config/ks-core/templates/NOTES.txt @@ -0,0 +1,17 @@ +Please wait for several seconds for KubeSphere deployment to complete. + +1. Make sure KubeSphere components are running: + + kubectl get pods -n {{ .Release.Namespace }} + +2. Then you should be able to visit the console NodePort: + + Console: http://{{ include "getNodeAddress" . }}:{{ .Values.console.nodePort }} + +3. To login to your KubeSphere console: + + Account: admin + Password: {{ include "printOrDefaultPass" . | quote }} + NOTE: Please change the default password after login. + +For more details, please visit https://kubesphere.io. \ No newline at end of file diff --git a/config/ks-core/templates/_helpers.tpl b/config/ks-core/templates/_helpers.tpl index 695c969c4..fcc5b79f8 100644 --- a/config/ks-core/templates/_helpers.tpl +++ b/config/ks-core/templates/_helpers.tpl @@ -66,10 +66,36 @@ Create the name of the service account to use Returns user's password or use default */}} {{- define "getOrDefaultPass" }} -{{- $pws := (lookup "iam.kubesphere.io/v1alpha2" "User" "" .Name) -}} -{{- if $pws }} -{{- $pws.spec.password -}} +{{- if not .Values.adminPassword -}} +{{- printf "$2a$10$zcHepmzfKPoxCVCYZr5K7ORPZZ/ySe9p/7IUb/8u./xHrnSX2LOCO" -}} {{- else -}} -{{- .Default -}} +{{- printf "%s" .Values.adminPassword -}} {{- end -}} {{- end }} + +{{/* +Returns user's password or use default. Used by NOTES.txt +*/}} +{{- define "printOrDefaultPass" }} +{{- if not .Values.adminPassword -}} +{{- printf "P@88w0rd" -}} +{{- else -}} +{{- printf "%s" .Values.adminPassword -}} +{{- end -}} +{{- end }} + +{{- define "getNodeAddress" -}} +{{- $address := "127.0.0.1"}} +{{- range $index, $node := (lookup "v1" "Node" "" "").items -}} + {{- range $k, $v := $node.status.addresses }} + {{- if (eq $v.type "InternalIP") }} + {{- $address = $v.address }} + {{- break }} + {{- end }} + {{- end }} + {{- if (ne $address "127.0.0.1") }} + {{- break }} + {{- end }} +{{- end }} +{{- printf "%s" $address }} +{{- end }} \ No newline at end of file diff --git a/config/ks-core/templates/account.yaml b/config/ks-core/templates/account.yaml index c6b2d4064..1308343cc 100644 --- a/config/ks-core/templates/account.yaml +++ b/config/ks-core/templates/account.yaml @@ -8,6 +8,6 @@ metadata: helm.sh/resource-policy: keep spec: email: admin@kubesphere.io - password: "{{ include "getOrDefaultPass" (dict "Name" "admin" "Default" "$2a$10$zcHepmzfKPoxCVCYZr5K7ORPZZ/ySe9p/7IUb/8u./xHrnSX2LOCO") }}" + password: {{ include "getOrDefaultPass" . | quote }} status: state: Active \ No newline at end of file diff --git a/config/ks-core/templates/ks-console.yml b/config/ks-core/templates/ks-console.yml index 8cc1a89f0..82d1be0c0 100644 --- a/config/ks-core/templates/ks-console.yml +++ b/config/ks-core/templates/ks-console.yml @@ -32,8 +32,6 @@ spec: - mountPath: /opt/kubesphere/console/server/local_config.yaml name: ks-console-config subPath: local_config.yaml - - mountPath: /opt/kubesphere/console/server/sample - name: sample-bookinfo - mountPath: /etc/localtime name: host-time readOnly: true @@ -70,10 +68,6 @@ spec: - key: local_config.yaml path: local_config.yaml name: ks-console-config - - configMap: - defaultMode: 420 - name: sample-bookinfo - name: sample-bookinfo - hostPath: path: /etc/localtime type: "" diff --git a/config/ks-core/templates/sample-bookinfo-configmap.yaml b/config/ks-core/templates/sample-bookinfo-configmap.yaml deleted file mode 100644 index 076022be9..000000000 --- a/config/ks-core/templates/sample-bookinfo-configmap.yaml +++ /dev/null @@ -1,380 +0,0 @@ -apiVersion: v1 -data: - bookinfo.yaml: | - apiVersion: app.k8s.io/v1beta1 - kind: Application - metadata: - name: bookinfo - namespace: servicemesh - labels: - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - annotations: - servicemesh.kubesphere.io/enabled: 'true' - spec: - selector: - matchLabels: - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - addOwnerRef: true - descriptor: - icons: - - src: '/assets/bookinfo.svg' - componentKinds: - - group: '' - kind: Service - - group: apps - kind: Deployment - - group: apps - kind: StatefulSet - - group: extensions - kind: Ingress - - group: servicemesh.kubesphere.io - kind: Strategy - - group: servicemesh.kubesphere.io - kind: ServicePolicy - - --- - apiVersion: apps/v1 - kind: Deployment - metadata: - namespace: servicemesh - annotations: - kubesphere.io/isElasticReplicas: 'false' - servicemesh.kubesphere.io/enabled: 'true' - labels: - app: productpage - version: v1 - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - name: productpage-v1 - spec: - replicas: 1 - selector: - matchLabels: - app: productpage - version: v1 - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - template: - metadata: - labels: - app: productpage - version: v1 - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - annotations: - sidecar.istio.io/inject: 'true' - spec: - containers: - - name: productpage - resources: - requests: - cpu: 10m - memory: 10Mi - limits: - cpu: '1' - memory: 1000Mi - imagePullPolicy: IfNotPresent - image: {{ .Values.image.bookinfo_productpage_v1_repo }}:{{ .Values.image.bookinfo_productpage_v1_tag }} - ports: - - name: http-web - protocol: TCP - containerPort: 9080 - servicePort: 9080 - serviceAccount: default - strategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 25% - maxSurge: 25% - --- - apiVersion: v1 - kind: Service - metadata: - namespace: servicemesh - labels: - app: productpage - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - annotations: - kubesphere.io/workloadType: Deployment - servicemesh.kubesphere.io/enabled: 'true' - name: productpage - spec: - type: ClusterIP - sessionAffinity: None - selector: - app: productpage - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - ports: - - name: http-web - protocol: TCP - port: 9080 - targetPort: 9080 - - --- - apiVersion: apps/v1 - kind: Deployment - metadata: - namespace: servicemesh - annotations: - kubesphere.io/isElasticReplicas: 'false' - servicemesh.kubesphere.io/enabled: 'true' - labels: - app: reviews - version: v1 - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - name: reviews-v1 - spec: - replicas: 1 - selector: - matchLabels: - app: reviews - version: v1 - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - template: - metadata: - labels: - app: reviews - version: v1 - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - annotations: - sidecar.istio.io/inject: 'true' - spec: - containers: - - name: reviews - resources: - requests: - cpu: 10m - memory: 10Mi - limits: - cpu: '1' - memory: 1000Mi - imagePullPolicy: IfNotPresent - image: {{ .Values.image.bookinfo_reviews_v1_repo }}:{{ .Values.image.bookinfo_reviews_v1_tag }} - ports: - - name: http-web - protocol: TCP - containerPort: 9080 - servicePort: 9080 - serviceAccount: default - strategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 25% - maxSurge: 25% - --- - apiVersion: v1 - kind: Service - metadata: - namespace: servicemesh - labels: - app: reviews - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - annotations: - kubesphere.io/workloadType: Deployment - servicemesh.kubesphere.io/enabled: 'true' - name: reviews - spec: - type: ClusterIP - sessionAffinity: None - selector: - app: reviews - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - ports: - - name: http-web - protocol: TCP - port: 9080 - targetPort: 9080 - - --- - apiVersion: apps/v1 - kind: Deployment - metadata: - namespace: servicemesh - annotations: - kubesphere.io/isElasticReplicas: 'false' - servicemesh.kubesphere.io/enabled: 'true' - labels: - app: details - version: v1 - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - name: details-v1 - spec: - replicas: 1 - selector: - matchLabels: - app: details - version: v1 - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - template: - metadata: - labels: - app: details - version: v1 - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - annotations: - sidecar.istio.io/inject: 'true' - spec: - containers: - - name: details - resources: - requests: - cpu: 10m - memory: 10Mi - limits: - cpu: '1' - memory: 1000Mi - imagePullPolicy: IfNotPresent - image: {{ .Values.image.bookinfo_details_v1_repo }}:{{ .Values.image.bookinfo_details_v1_tag }} - ports: - - name: http-web - protocol: TCP - containerPort: 9080 - servicePort: 9080 - serviceAccount: default - strategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 25% - maxSurge: 25% - --- - apiVersion: v1 - kind: Service - metadata: - namespace: servicemesh - labels: - app: details - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - annotations: - kubesphere.io/workloadType: Deployment - servicemesh.kubesphere.io/enabled: 'true' - name: details - spec: - type: ClusterIP - sessionAffinity: None - selector: - app: details - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - ports: - - name: http-web - protocol: TCP - port: 9080 - targetPort: 9080 - - --- - apiVersion: apps/v1 - kind: Deployment - metadata: - namespace: servicemesh - annotations: - kubesphere.io/isElasticReplicas: 'false' - servicemesh.kubesphere.io/enabled: 'true' - labels: - app: ratings - version: v1 - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - name: ratings-v1 - spec: - replicas: 1 - selector: - matchLabels: - app: ratings - version: v1 - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - template: - metadata: - labels: - app: ratings - version: v1 - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - annotations: - sidecar.istio.io/inject: 'true' - spec: - containers: - - name: ratings - resources: - requests: - cpu: 10m - memory: 10Mi - limits: - cpu: '1' - memory: 1000Mi - imagePullPolicy: IfNotPresent - image: {{ .Values.image.bookinfo_ratings_v1_repo }}:{{ .Values.image.bookinfo_ratings_v1_tag }} - ports: - - name: http-web - protocol: TCP - containerPort: 9080 - servicePort: 9080 - serviceAccount: default - strategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 25% - maxSurge: 25% - --- - apiVersion: v1 - kind: Service - metadata: - namespace: servicemesh - labels: - app: ratings - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - annotations: - kubesphere.io/workloadType: Deployment - servicemesh.kubesphere.io/enabled: 'true' - name: ratings - spec: - type: ClusterIP - sessionAffinity: None - selector: - app: ratings - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - ports: - - name: http-web - protocol: TCP - port: 9080 - targetPort: 9080 - - --- - apiVersion: networking.k8s.io/v1 - kind: Ingress - metadata: - namespace: servicemesh - labels: - app.kubernetes.io/version: v1 - app.kubernetes.io/name: bookinfo - name: bookinfo-ingress - spec: - rules: - - http: - paths: - - backend: - service: - name: productpage - port: - number: 9080 - path: / - pathType: ImplementationSpecific - host: productpage.servicemesh.139.198.121.92.nip.io -kind: ConfigMap -metadata: - name: sample-bookinfo diff --git a/config/ks-core/values.yaml b/config/ks-core/values.yaml index c4fd7dc4e..0a866cbad 100644 --- a/config/ks-core/values.yaml +++ b/config/ks-core/values.yaml @@ -15,23 +15,9 @@ image: ks_kubectl_repo: kubesphere/kubectl ks_kubectl_tag: "" - nginx_ingress_controller_repo: kubesphere/nginx-ingress-controller - nginx_ingress_controller_tag: "v1.1.0" - - bookinfo_productpage_v1_repo: kubesphere/examples-bookinfo-productpage-v1 - bookinfo_productpage_v1_tag: "1.16.2" - - bookinfo_reviews_v1_repo: kubesphere/examples-bookinfo-reviews-v1 - bookinfo_reviews_v1_tag: "1.16.2" - - bookinfo_details_v1_repo: kubesphere/examples-bookinfo-details-v1 - bookinfo_details_v1_tag: "1.16.2" - - bookinfo_ratings_v1_repo: kubesphere/examples-bookinfo-ratings-v1 - bookinfo_ratings_v1_tag: "1.16.3" - pullPolicy: IfNotPresent +adminPassword: "" config: # Specifies whether the kubesphere-config configmap should be created