optimize ks-core chart (#5305)

Signed-off-by: 24sama <jacksama@foxmail.com>

Signed-off-by: 24sama <jacksama@foxmail.com>
This commit is contained in:
Leo Li
2022-10-20 18:16:40 +08:00
committed by GitHub
parent 3800d738f9
commit 85df617175
6 changed files with 49 additions and 406 deletions

View File

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

View File

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

View File

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

View File

@@ -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: ""

View File

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

View File

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