From 1392f9c5154c50cc962535f2e50645afbf4e6b9d Mon Sep 17 00:00:00 2001 From: mango Date: Thu, 11 Nov 2021 13:56:46 +0800 Subject: [PATCH 1/6] Upgrade ks-installer chart to v3.2.0 --- src/main/ks-installer/Chart.yaml | 2 +- src/main/ks-installer/README.md | 2 +- src/main/ks-installer/values.yaml | 2 +- src/test/ks-installer/Chart.yaml | 2 +- src/test/ks-installer/README.md | 2 +- src/test/ks-installer/values.yaml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/ks-installer/Chart.yaml b/src/main/ks-installer/Chart.yaml index 49b44e24..4eed72a6 100644 --- a/src/main/ks-installer/Chart.yaml +++ b/src/main/ks-installer/Chart.yaml @@ -23,4 +23,4 @@ version: 0.2.2 # 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: 3.1.0 +appVersion: 3.2.0 diff --git a/src/main/ks-installer/README.md b/src/main/ks-installer/README.md index 01cc6c06..dd62d662 100644 --- a/src/main/ks-installer/README.md +++ b/src/main/ks-installer/README.md @@ -44,7 +44,7 @@ The following table lists the configurable parameters of the ks-installer chart Parameter | Description | Default --- | --- | --- `image.repository` | The image of ks-installer container | `kubesphere/ks-installer` -`image.tag` | The tag of the ks-installer image | `v3.0.0` +`image.tag` | The tag of the ks-installer image | `v3.2.0` `image.pullPolicy` | The pull policy of the ks-installer image | `Always` ## KubeSphere Configuration diff --git a/src/main/ks-installer/values.yaml b/src/main/ks-installer/values.yaml index efed6ae4..30770d28 100644 --- a/src/main/ks-installer/values.yaml +++ b/src/main/ks-installer/values.yaml @@ -9,7 +9,7 @@ image: repository: kubesphere/ks-installer pullPolicy: Always # Overrides the image tag whose default is the chart appVersion. - tag: v3.1.0 + tag: v3.2.0 serviceAccount: # Specifies whether a service account should be created diff --git a/src/test/ks-installer/Chart.yaml b/src/test/ks-installer/Chart.yaml index 49b44e24..4eed72a6 100644 --- a/src/test/ks-installer/Chart.yaml +++ b/src/test/ks-installer/Chart.yaml @@ -23,4 +23,4 @@ version: 0.2.2 # 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: 3.1.0 +appVersion: 3.2.0 diff --git a/src/test/ks-installer/README.md b/src/test/ks-installer/README.md index 51b2b045..5573710a 100644 --- a/src/test/ks-installer/README.md +++ b/src/test/ks-installer/README.md @@ -42,7 +42,7 @@ The following table lists the configurable parameters of the ks-installer chart Parameter | Description | Default --- | --- | --- `image.repository` | The image of ks-installer container | `kubesphere/ks-installer` -`image.tag` | The tag of the ks-installer image | `v3.0.0` +`image.tag` | The tag of the ks-installer image | `v3.2.0` `image.pullPolicy` | The pull policy of the ks-installer image | `Always` ## KubeSphere Configuration diff --git a/src/test/ks-installer/values.yaml b/src/test/ks-installer/values.yaml index efed6ae4..30770d28 100644 --- a/src/test/ks-installer/values.yaml +++ b/src/test/ks-installer/values.yaml @@ -9,7 +9,7 @@ image: repository: kubesphere/ks-installer pullPolicy: Always # Overrides the image tag whose default is the chart appVersion. - tag: v3.1.0 + tag: v3.2.0 serviceAccount: # Specifies whether a service account should be created From e3b368edca4dccc239909e61547a03d138627407 Mon Sep 17 00:00:00 2001 From: mango Date: Fri, 19 Nov 2021 14:10:37 +0800 Subject: [PATCH 2/6] refactor: refactor cc template and values. Signed-off-by: mango --- .../templates/clusterconfiguration.yaml | 79 +---- src/main/ks-installer/values.yaml | 325 +++++++++--------- 2 files changed, 170 insertions(+), 234 deletions(-) diff --git a/src/main/ks-installer/templates/clusterconfiguration.yaml b/src/main/ks-installer/templates/clusterconfiguration.yaml index a3344c7f..f4648452 100644 --- a/src/main/ks-installer/templates/clusterconfiguration.yaml +++ b/src/main/ks-installer/templates/clusterconfiguration.yaml @@ -9,82 +9,5 @@ metadata: labels: version: {{ .Chart.AppVersion }} spec: -{{- if .Values.registry}} - local_registry: {{ .Values.registry }} -{{- end}} - persistence: - storageClass: "{{ .Values.persistence.storageClass}}" - authentication: - jwtSecret: "{{ .Values.authentication.jwtSecret }}" - etcd: - monitoring: {{ .Values.etcd.monitoring }} - endpointIps: {{ .Values.etcd.endpointIps }} - port: 2379 - tlsEnable: {{ .Values.etcd.tlsEnable }} - common: - redis: - enabled: {{ .Values.common.redis.enabled }} - openldap: - enabled: {{ .Values.common.openldap.enabled }} - minioVolumeSize: {{ .Values.common.minioVolumeSize }} - openldapVolumeSize: {{ .Values.common.openldapVolumeSize }} - redisVolumSize: {{ .Values.common.redisVolumSize }} - es: - elasticsearchMasterVolumeSize: {{ .Values.common.es.elasticsearchMasterVolumeSize }} - elasticsearchDataVolumeSize: {{ .Values.common.es.elasticsearchDataVolumeSize }} - logMaxAge: {{ .Values.common.es.logMaxAge }} - elkPrefix: {{ .Values.common.es.elkPrefix }} - basicAuth: - enabled: {{ .Values.common.es.basicAuth.enabled }} - username: "{{ .Values.common.es.basicAuth.username }}" - password: "{{ .Values.common.es.basicAuth.password }}" - externalElasticsearchUrl: "{{ .Values.common.es.externalElasticsearchUrl }}" - externalElasticsearchPort: "{{ .Values.common.es.externalElasticsearchPort }}" - console: - enableMultiLogin: {{ .Values.console.enableMultiLogin }} - port: {{ .Values.console.port }} - alerting: - enabled: {{ .Values.alerting.enabled }} - auditing: - enabled: {{ .Values.auditing.enabled }} - devops: - enabled: {{ .Values.devops.enabled }} - jenkinsMemoryLim: {{ .Values.devops.jenkinsMemoryLim }} - jenkinsMemoryReq: {{ .Values.devops.jenkinsMemoryReq }} - jenkinsVolumeSize: {{ .Values.devops.jenkinsVolumeSize }} - jenkinsJavaOpts_Xms: {{ .Values.devops.jenkinsJavaOpts_Xms }} - jenkinsJavaOpts_Xmx: {{ .Values.devops.jenkinsJavaOpts_Xmx }} - jenkinsJavaOpts_MaxRAM: {{ .Values.devops.jenkinsJavaOpts_MaxRAM }} - events: - enabled: {{ .Values.events.enabled }} - ruler: - enabled: {{ .Values.events.ruler.enabled }} - replicas: {{ .Values.events.ruler.replicas }} - logging: - enabled: {{ .Values.logging.enabled }} - logsidecar: - enabled: {{ .Values.logging.logsidecar.enabled }} - replicas: {{ .Values.logging.logsidecar.replicas }} - metrics_server: - enabled: {{ .Values.logging.enabled }} - monitoring: - storageClass: "{{ .Values.monitoring.storageClass }}" - prometheusMemoryRequest: {{ .Values.monitoring.prometheusMemoryRequest }} - prometheusVolumeSize: {{ .Values.monitoring.prometheusVolumeSize }} - multicluster: - clusterRole: {{ .Values.multicluster.clusterRole }} - network: - networkpolicy: - enabled: {{ .Values.network.networkpolicy.enabled }} - ippool: - type: {{ .Values.network.ippool.type }} - topology: - type: {{ .Values.network.topology.type }} - openpitrix: - store: - enabled: {{ .Values.openpitrix.store.enabled }} - servicemesh: - enabled: {{ .Values.servicemesh.enabled }} - kubeedge: -{{ toYaml .Values.kubeedge | indent 4 }} +{{ toYaml .Values.clusterConfiguration | indent 2 }} {{ end -}} \ No newline at end of file diff --git a/src/main/ks-installer/values.yaml b/src/main/ks-installer/values.yaml index 30770d28..b5a465a3 100644 --- a/src/main/ks-installer/values.yaml +++ b/src/main/ks-installer/values.yaml @@ -38,160 +38,173 @@ tolerations: [] affinity: {} -persistence: - storageClass: "" - -# Keep the jwtSecret consistent with the host cluster. Retrive the jwtSecret by executing -# "kubectl -n kubesphere-system get cm kubesphere-config -o yaml | grep -v "apiVersion" | grep jwtSecret" -# on the host cluster. -authentication: - jwtSecret: "" - -etcd: - monitoring: false - endpointIps: localhost - tlsEnable: true - -common: - redis: - enabled: false - openldap: - enabled: false - minioVolumeSize: 20Gi - openldapVolumeSize: 2Gi - redisVolumSize: 2Gi - # Storage backend for logging, events and auditing. - es: - elasticsearchMasterVolumeSize: 4Gi - elasticsearchDataVolumeSize: 20Gi - logMaxAge: 7 - elkPrefix: logstash - basicAuth: +clusterConfiguration: + persistence: + storageClass: "" # If there is no default StorageClass in your cluster, you need to specify an existing StorageClass here. + authentication: + jwtSecret: "" # Keep the jwtSecret consistent with the Host Cluster. Retrieve the jwtSecret by executing "kubectl -n kubesphere-system get cm kubesphere-config -o yaml | grep -v "apiVersion" | grep jwtSecret" on the Host Cluster. + + local_registry: "" # Add your private registry address if it is needed. + + # dev_tag: "" # Add your kubesphere image tag you want to install, by default it's same as ks-install release version. + + etcd: + monitoring: false # Enable or disable etcd monitoring dashboard installation. You have to create a Secret for etcd before you enable it. + endpointIps: localhost # etcd cluster EndpointIps. It can be a bunch of IPs here. + port: 2379 # etcd port. + tlsEnable: true + + common: + core: + console: + enableMultiLogin: true # Enable or disable simultaneous logins. It allows different users to log in with the same account at the same time. + port: 30880 + type: NodePort + # apiserver: # Enlarge the apiserver and controller manager's resource requests and limits for the large cluster + # resources: {} + # controllerManager: + # resources: {} + redis: enabled: false - username: "" - password: "" - externalElasticsearchUrl: "" - externalElasticsearchPort: "" - -# Enable or disable simultaneous logins. It allows different users -# to log in with the same account at the same time. -console: - enableMultiLogin: true - port: 30880 - -# It enables users to customize alerting policies to send messages -# to receivers in time with different time intervals and alerting -# levels to choose from. -alerting: - enabled: false - -# Provide a security-relevant chronological set of records,recording -# the sequence of activities happening on the platform, initiated by -# different tenants. -auditing: - enabled: false - -# Provide an out-of-the-box CI/CD system based on Jenkins, and automated -# workflow tools including Source-to-Image & Binary-to-Image. -devops: - enabled: false - jenkinsMemoryLim: 2Gi - jenkinsMemoryReq: 1500Mi - jenkinsVolumeSize: 8Gi - jenkinsJavaOpts_Xms: 512m - jenkinsJavaOpts_Xmx: 512m - jenkinsJavaOpts_MaxRAM: 2g - -# Provide a graphical web console for Kubernetes Events exporting, -# filtering and alerting in multi-tenant Kubernetes clusters. -events: - enabled: false - ruler: - enabled: true - replicas: 2 - -# Flexible logging functions are provided for log query, collection -# and management in a unified console. Additional log collectors can -# be added, such as Elasticsearch, Kafka and Fluentd. -logging: - enabled: false - logsidecar: - enabled: true - replicas: 2 - -# Whether to install metrics-server. IT enables HPA (Horizontal Pod Autoscaler). -metrics_server: - enabled: false - -monitoring: - # If there is an independent StorageClass you need for Prometheus, you can - # specify it here. The default StorageClass is used by default. - storageClass: "" - # Prometheus request memory. - prometheusMemoryRequest: 400Mi - # Prometheus PVC size. - prometheusVolumeSize: 20Gi - -# You can install a solo cluster, or specify it as the Host or Member Cluster. -# host | member | none -multicluster: - clusterRole: none - -network: - # Network policies allow network isolation within the same cluster, which means - # firewalls can be set up between certain instances (Pods). - # Make sure that the CNI network plugin used by the cluster supports NetworkPolicy. - # There are a number of CNI network plugins that support NetworkPolicy, including - # Calico, Cilium, Kube-router, Romana and Weave Net. - networkpolicy: - enabled: false - # Use Pod IP Pools to manage the Pod network address space. Pods to be created can - # be assigned IP addresses from a Pod IP Pool. - # Specify "calico" for this field if Calico is used as your CNI plugin. "none" means - # that Pod IP Pools are disabled. - ippool: - type: none - # Use Service Topology to view Service-to-Service communication based on Weave Scope. - # Specify "weave-scope" for this field to enable Service Topology. "none" means that - # Service Topology is disabled. - topology: - type: none - -# An App Store that is accessible to all platform tenants. You can use it to manage -# apps across their entire lifecycle. -openpitrix: - store: - enabled: false - -# Provide fine-grained traffic management, observability and tracing, and visualized traffic topology. -# Base component (pilot). Enable or disable KubeSphere Service Mesh (Istio-based). -servicemesh: - enabled: false - -# Add edge nodes to your cluster and deploy workloads on edge nodes. -kubeedge: - enabled: false - cloudCore: - nodeSelector: {"node-role.kubernetes.io/worker": ""} - tolerations: [] - cloudhubPort: "10000" - cloudhubQuicPort: "10001" - cloudhubHttpsPort: "10002" - cloudstreamPort: "10003" - tunnelPort: "10004" - cloudHub: - advertiseAddress: # At least a public IP address or an IP address which can be accessed by edge nodes must be provided. - - "" # Note that once KubeEdge is enabled, CloudCore will malfunction if the address is not provided. - nodeLimit: "100" - service: - cloudhubNodePort: "30000" - cloudhubQuicNodePort: "30001" - cloudhubHttpsNodePort: "30002" - cloudstreamNodePort: "30003" - tunnelNodePort: "30004" - edgeWatcher: - nodeSelector: {"node-role.kubernetes.io/worker": ""} - tolerations: [] - edgeWatcherAgent: - nodeSelector: {"node-role.kubernetes.io/worker": ""} - tolerations: [] \ No newline at end of file + volumeSize: 2Gi # Redis PVC size. + openldap: + enabled: false + volumeSize: 2Gi # openldap PVC size. + minio: + volumeSize: 20Gi # Minio PVC size. + monitoring: + # type: external # Whether to specify the external prometheus stack, and need to modify the endpoint at the next line. + endpoint: http://prometheus-operated.kubesphere-monitoring-system.svc:9090 # Prometheus endpoint to get metrics data. + GPUMonitoring: # Enable or disable the GPU-related metrics. If you enable this switch but have no GPU resources, Kubesphere will set it to zero. + enabled: false + gpu: # Install GPUKinds. The default GPU kind is nvidia.com/gpu. Other GPU kinds can be added here according to your needs. + kinds: + - resourceName: "nvidia.com/gpu" + resourceType: "GPU" + default: true + es: # Storage backend for logging, events and auditing. + # master: + # volumeSize: 4Gi # The volume size of Elasticsearch master nodes. + # replicas: 1 # The total number of master nodes. Even numbers are not allowed. + # resources: {} + # data: + # volumeSize: 20Gi # The volume size of Elasticsearch data nodes. + # replicas: 1 # The total number of data nodes. + # resources: {} + logMaxAge: 7 # Log retention time in built-in Elasticsearch. It is 7 days by default. + elkPrefix: logstash # The string making up index names. The index name will be formatted as ks--log. + basicAuth: + enabled: false + username: "" + password: "" + externalElasticsearchUrl: "" + externalElasticsearchPort: "" + alerting: # (CPU: 0.1 Core, Memory: 100 MiB) It enables users to customize alerting policies to send messages to receivers in time with different time intervals and alerting levels to choose from. + enabled: false # Enable or disable the KubeSphere Alerting System. + # thanosruler: + # replicas: 1 + # resources: {} + auditing: # Provide a security-relevant chronological set of records,recording the sequence of activities happening on the platform, initiated by different tenants. + enabled: false # Enable or disable the KubeSphere Auditing Log System. + # operator: + # resources: {} + # webhook: + # resources: {} + devops: # (CPU: 0.47 Core, Memory: 8.6 G) Provide an out-of-the-box CI/CD system based on Jenkins, and automated workflow tools including Source-to-Image & Binary-to-Image. + enabled: false # Enable or disable the KubeSphere DevOps System. + # resources: {} + jenkinsMemoryLim: 2Gi # Jenkins memory limit. + jenkinsMemoryReq: 1500Mi # Jenkins memory request. + jenkinsVolumeSize: 8Gi # Jenkins volume size. + jenkinsJavaOpts_Xms: 512m # The following three fields are JVM parameters. + jenkinsJavaOpts_Xmx: 512m + jenkinsJavaOpts_MaxRAM: 2g + events: # Provide a graphical web console for Kubernetes Events exporting, filtering and alerting in multi-tenant Kubernetes clusters. + enabled: false # Enable or disable the KubeSphere Events System. + # operator: + # resources: {} + # exporter: + # resources: {} + # ruler: + # enabled: true + # replicas: 2 + # resources: {} + logging: # (CPU: 57 m, Memory: 2.76 G) Flexible logging functions are provided for log query, collection and management in a unified console. Additional log collectors can be added, such as Elasticsearch, Kafka and Fluentd. + enabled: false # Enable or disable the KubeSphere Logging System. + containerruntime: docker + logsidecar: + enabled: true + replicas: 2 + # resources: {} + metrics_server: # (CPU: 56 m, Memory: 44.35 MiB) It enables HPA (Horizontal Pod Autoscaler). + enabled: false # Enable or disable metrics-server. + monitoring: + storageClass: "" # If there is an independent StorageClass you need for Prometheus, you can specify it here. The default StorageClass is used by default. + # kube_rbac_proxy: + # resources: {} + # kube_state_metrics: + # resources: {} + # prometheus: + # replicas: 1 # Prometheus replicas are responsible for monitoring different segments of data source and providing high availability. + # volumeSize: 20Gi # Prometheus PVC size. + # resources: {} + # operator: + # resources: {} + # adapter: + # resources: {} + # node_exporter: + # resources: {} + # alertmanager: + # replicas: 1 # AlertManager Replicas. + # resources: {} + # notification_manager: + # resources: {} + # operator: + # resources: {} + # proxy: + # resources: {} + gpu: # GPU monitoring-related plugins installation. + nvidia_dcgm_exporter: + enabled: false + # resources: {} + multicluster: + clusterRole: none # host | member | none # You can install a solo cluster, or specify it as the Host or Member Cluster. + network: + networkpolicy: # Network policies allow network isolation within the same cluster, which means firewalls can be set up between certain instances (Pods). + # Make sure that the CNI network plugin used by the cluster supports NetworkPolicy. There are a number of CNI network plugins that support NetworkPolicy, including Calico, Cilium, Kube-router, Romana and Weave Net. + enabled: false # Enable or disable network policies. + ippool: # Use Pod IP Pools to manage the Pod network address space. Pods to be created can be assigned IP addresses from a Pod IP Pool. + type: none # Specify "calico" for this field if Calico is used as your CNI plugin. "none" means that Pod IP Pools are disabled. + topology: # Use Service Topology to view Service-to-Service communication based on Weave Scope. + type: none # Specify "weave-scope" for this field to enable Service Topology. "none" means that Service Topology is disabled. + openpitrix: # An App Store that is accessible to all platform tenants. You can use it to manage apps across their entire lifecycle. + store: + enabled: false # Enable or disable the KubeSphere App Store. + servicemesh: # (0.3 Core, 300 MiB) Provide fine-grained traffic management, observability and tracing, and visualized traffic topology. + enabled: false # Base component (pilot). Enable or disable KubeSphere Service Mesh (Istio-based). + kubeedge: # Add edge nodes to your cluster and deploy workloads on edge nodes. + enabled: false # Enable or disable KubeEdge. + cloudCore: + nodeSelector: { "node-role.kubernetes.io/worker": "" } + tolerations: [ ] + cloudhubPort: "10000" + cloudhubQuicPort: "10001" + cloudhubHttpsPort: "10002" + cloudstreamPort: "10003" + tunnelPort: "10004" + cloudHub: + advertiseAddress: # At least a public IP address or an IP address which can be accessed by edge nodes must be provided. + - "" # Note that once KubeEdge is enabled, CloudCore will malfunction if the address is not provided. + nodeLimit: "100" + service: + cloudhubNodePort: "30000" + cloudhubQuicNodePort: "30001" + cloudhubHttpsNodePort: "30002" + cloudstreamNodePort: "30003" + tunnelNodePort: "30004" + edgeWatcher: + nodeSelector: { "node-role.kubernetes.io/worker": "" } + tolerations: [ ] + edgeWatcherAgent: + nodeSelector: { "node-role.kubernetes.io/worker": "" } + tolerations: [ ] From 034150c7bc0ed3acaeec10c726332ea01251b1cc Mon Sep 17 00:00:00 2001 From: mango Date: Fri, 19 Nov 2021 14:55:59 +0800 Subject: [PATCH 3/6] refactor: refactor cc template, values and update README file. Signed-off-by: mango --- src/main/ks-installer/README.md | 81 +++-- .../templates/clusterconfiguration.yaml | 2 +- src/main/ks-installer/values.yaml | 2 +- src/test/ks-installer/README.md | 91 ++--- .../templates/clusterconfiguration.yaml | 79 +---- src/test/ks-installer/values.yaml | 325 +++++++++--------- 6 files changed, 258 insertions(+), 322 deletions(-) diff --git a/src/main/ks-installer/README.md b/src/main/ks-installer/README.md index dd62d662..d4b6f9f3 100644 --- a/src/main/ks-installer/README.md +++ b/src/main/ks-installer/README.md @@ -53,51 +53,50 @@ You can set the configuration of kubesphere in `values.yaml` Parameter | Description | Default --- | --- | --- -`persistence.storageClass` | Installer will use the default StorageClass, you can also designate another StorageClass| `""` -`authentication.jwtSecret `| Keep the jwtSecret consistent with the host cluster. | `""` -`etcd.monitoring `| Whether to enable etcd monitoring|`false` -`etcd.endpointIps`|etcd address(for etcd cluster,see an example value like `192.168.0.7,192.168.0.8,192.168.0.9`)|`localhost` -`etcd.port`|etcd port (Default port: 2379, you can appoint any other port) | `2379` -`etcd.tlsEnable`|Whether to enable etcd TLS certificate authentication.(true / false)| `true` -`common.redis.enabled`|Whether to install redis|`false` -`common.redis.openldap`|Whether to install openldap|`false` -`common.minioVolumeSize`|Minio volume size (cannot be modified after set)|`20Gi` -`common.openldapVolumeSize`|openldap volume size (cannot be modified after set)|`2Gi` -`common.redisVolumSize`|redis volume size (cannot be modified after set)|`2Gi` -`common.es.elasticsearchMasterVolumeSize`|Volume size of Elasticsearch master nodes (cannot be modified after set)|`4Gi` -`common.es.elasticsearchDataVolumeSize`|Volume size of Elasticsearch data nodes (cannot be modified after set)|`20Gi` -`common.es.logMaxAge`|Log retention time in built-in Elasticsearch (days)|`7` -`common.es.elkPrefix`|redis volume size (cannot be modified after set)|`2Gi` -`console.enableMultiLogin`|Whether to enable multiple point login of one account(true / false)|`false` -`console.port`|Console Port(NodePort)|`30880` -`alerting.enabled`|Whether to install KubeSphere alerting system. It enables Users to customize alerting policies to send messages to receivers in time with different time intervals and alerting levels to choose from. (true / false)|`false` -`auditing.enabled`|Whether to install KubeSphere audit log system. It provides a security-relevant chronological set of records,recording the sequence of activities happened in platform, initiated by different tenants. (true / false)|`false` -`devops.enabled`|Whether to install KubeSphere DevOps System. It provides out-of-box CI/CD system based on Jenkins, and automated workflow tools including Source-to-Image & Binary-to-Image. (true / false) | `false` -`devops.jenkinsMemoryLim`|Jenkins Memory Limit|`2Gi` -`devops.jenkinsMemoryReq`|Jenkins Memory Request|`1500Mi` -`devops.jenkinsVolumeSize`|Jenkins volume size|`8Gi` -`devops.jenkinsJavaOpts_Xms`|Jenkins JVM parameter(Xms)|`512m` -`devops.jenkinsJavaOpts_Xmx`|Jenkins JVM parameter(Xmx)|`512m` -`devops.jenkinsJavaOpts_MaxRAM`|Jenkins JVM parameter(MaxRAM)|`2Gi` -`events.enabled`|Whether to install KubeSphere events system. It provides a graphical web console for Kubernetes Events exporting, filtering and alerting in multi-tenant Kubernetes clusters. (true / false)|`false` -`logging.enabled`|Whether to install KubeSphere logging system. Flexible logging functions are provided for log query, collection and management in a unified console. Additional log collectors can be added, such as Elasticsearch, Kafka and Fluentd. (true / false)|`false` -`logging.logsidecar.replicas`|Logsidecar replicas|`2` -`metrics_server.enabled`|Whether to install metrics_servertrue (true / false)| `false` -`monitoring.endpoint`|Prometheus endpoint to get metrics data|`http://prometheus-operated.kubesphere-monitoring-system.svc:9090` -`monitoring.storageClass`|If there is an independent StorageClass you need for Prometheus, you can specify it here| `""` -`monitoring.prometheusMemoryRequest`|Prometheus memory request|`400Mi` -`monitoring.prometheusVolumeSize`|Prometheus volume size|`20Gi` -`multicluster.clusterRole`|You can install a solo cluster, or specify it as the role of host or member cluster. (host / member / none) |`none` -`network.networkpolicy.enabled` |Network policies allow network isolation within the same cluster, which means firewalls can be set up between certain instances (Pods). (true / false) |`false` -`network.ippool.type` |Specify "calico" for this field if Calico is used as your CNI plugin. "none" means that Pod IP Pools are disabled.|`none` -`network.topology.type` | Specify "weave-scope" for this field to enable Service Topology. "none" means that Service Topology is disabled.|`none` -`openpitrix.store.enabled `|Enable or disable the KubeSphere App Store. (true / false) |`false` -`servicemesh.enabled`|Whether to install KubeSphere Service Mesh (Istio-based). It provides fine-grained traffic management, observability and tracing, and offer visualization for traffic topology. (true / false) |`false` +`cc.persistence.storageClass` | Installer will use the default StorageClass, you can also designate another StorageClass| `""` +`cc.authentication.jwtSecret `| Keep the jwtSecret consistent with the host cluster. | `""` +`cc.etcd.monitoring `| Whether to enable etcd monitoring|`false` +`cc.etcd.endpointIps`|etcd address(for etcd cluster,see an example value like `192.168.0.7,192.168.0.8,192.168.0.9`)|`localhost` +`cc.etcd.port`|etcd port (Default port: 2379, you can appoint any other port) | `2379` +`cc.etcd.tlsEnable`|Whether to enable etcd TLS certificate authentication.(true / false)| `true` +`cc.common.redis.enabled`|Whether to install redis|`false` +`cc.common.redis.volumeSize`|redis volume size (cannot be modified after set)|`2Gi` +`cc.common.openldap.enabled`|Whether to install openldap|`false` +`cc.common.openldap.volumeSize`|openldap volume size (cannot be modified after set)|`2Gi` +`cc.common.minio.volumeSize`|Minio volume size (cannot be modified after set)|`20Gi` +`cc.common.es.master.volumeSize`|Volume size of Elasticsearch master nodes (cannot be modified after set)|`4Gi` +`cc.common.es.data.volumeSize`|Volume size of Elasticsearch data nodes (cannot be modified after set)|`20Gi` +`cc.common.es.logMaxAge`|Log retention time in built-in Elasticsearch (days)|`7` +`cc.common.es.elkPrefix`|redis volume size (cannot be modified after set)|`2Gi` +`cc.common.core.console.enableMultiLogin`|Whether to enable multiple point login of one account(true / false)|`false` +`cc.common.core.console.port`|Console Port(NodePort)|`30880` +`cc.alerting.enabled`|Whether to install KubeSphere alerting system. It enables Users to customize alerting policies to send messages to receivers in time with different time intervals and alerting levels to choose from. (true / false)|`false` +`cc.auditing.enabled`|Whether to install KubeSphere audit log system. It provides a security-relevant chronological set of records,recording the sequence of activities happened in platform, initiated by different tenants. (true / false)|`false` +`cc.devops.enabled`|Whether to install KubeSphere DevOps System. It provides out-of-box CI/CD system based on Jenkins, and automated workflow tools including Source-to-Image & Binary-to-Image. (true / false) | `false` +`cc.devops.jenkinsMemoryLim`|Jenkins Memory Limit|`2Gi` +`cc.devops.jenkinsMemoryReq`|Jenkins Memory Request|`1500Mi` +`cc.devops.jenkinsVolumeSize`|Jenkins volume size|`8Gi` +`cc.devops.jenkinsJavaOpts_Xms`|Jenkins JVM parameter(Xms)|`512m` +`cc.devops.jenkinsJavaOpts_Xmx`|Jenkins JVM parameter(Xmx)|`512m` +`cc.devops.jenkinsJavaOpts_MaxRAM`|Jenkins JVM parameter(MaxRAM)|`2Gi` +`cc.events.enabled`|Whether to install KubeSphere events system. It provides a graphical web console for Kubernetes Events exporting, filtering and alerting in multi-tenant Kubernetes clusters. (true / false)|`false` +`cc.logging.enabled`|Whether to install KubeSphere logging system. Flexible logging functions are provided for log query, collection and management in a unified console. Additional log collectors can be added, such as Elasticsearch, Kafka and Fluentd. (true / false)|`false` +`cc.logging.logsidecar.replicas`|Logsidecar replicas|`2` +`cc.metrics_server.enabled`|Whether to install metrics_servertrue (true / false)| `false` +`cc.monitoring.storageClass`|If there is an independent StorageClass you need for Prometheus, you can specify it here| `""` +`cc.monitoring.gpu.nvidia_dcgm_exporter.enabled`|Whether to install GPU monitoring-related plugins.| `false` +`cc.multicluster.clusterRole`|You can install a solo cluster, or specify it as the role of host or member cluster. (host / member / none) |`none` +`cc.network.networkpolicy.enabled` |Network policies allow network isolation within the same cluster, which means firewalls can be set up between certain instances (Pods). (true / false) |`false` +`cc.network.ippool.type` |Specify "calico" for this field if Calico is used as your CNI plugin. "none" means that Pod IP Pools are disabled.|`none` +`cc.network.topology.type` | Specify "weave-scope" for this field to enable Service Topology. "none" means that Service Topology is disabled.|`none` +`cc.openpitrix.store.enabled `|Enable or disable the KubeSphere App Store. (true / false) |`false` +`cc.servicemesh.enabled`|Whether to install KubeSphere Service Mesh (Istio-based). It provides fine-grained traffic management, observability and tracing, and offer visualization for traffic topology. (true / false) |`false` +`cc.kubeedge.enabled`|Add edge nodes to your cluster and deploy workloads on edge nodes. (true / false) |`false` Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example: ```console -$ helm install --name my-release ks-installer --set persistence.storageClass=local +$ helm install --name my-release ks-installer --set cc.persistence.storageClass=local ``` Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example: diff --git a/src/main/ks-installer/templates/clusterconfiguration.yaml b/src/main/ks-installer/templates/clusterconfiguration.yaml index f4648452..7ea1212a 100644 --- a/src/main/ks-installer/templates/clusterconfiguration.yaml +++ b/src/main/ks-installer/templates/clusterconfiguration.yaml @@ -9,5 +9,5 @@ metadata: labels: version: {{ .Chart.AppVersion }} spec: -{{ toYaml .Values.clusterConfiguration | indent 2 }} +{{ toYaml .Values.cc | indent 2 }} {{ end -}} \ No newline at end of file diff --git a/src/main/ks-installer/values.yaml b/src/main/ks-installer/values.yaml index b5a465a3..7afc2aa4 100644 --- a/src/main/ks-installer/values.yaml +++ b/src/main/ks-installer/values.yaml @@ -38,7 +38,7 @@ tolerations: [] affinity: {} -clusterConfiguration: +cc: persistence: storageClass: "" # If there is no default StorageClass in your cluster, you need to specify an existing StorageClass here. authentication: diff --git a/src/test/ks-installer/README.md b/src/test/ks-installer/README.md index 5573710a..5a903479 100644 --- a/src/test/ks-installer/README.md +++ b/src/test/ks-installer/README.md @@ -1,14 +1,16 @@ -# Ks-installer Helm Chart +# KubeSphere Helm Chart ## Introduction +[KubeSphere](https://kubesphere.io/) is a distributed operating system managing cloud native applications with Kubernetes as its kernel, and provides plug-and-play architecture for the seamless integration of third-party applications to boost its ecosystem. + The helm chart of KubeSphere, supports installing KubeSphere on existing Kubernetes. ## Prerequisites - - Kubernetes v1.17.x、v1.18.x、v1.19.x、v1.20.x - - PV dynamic provisioning support on the underlying infrastructure (StorageClass) - - Helm3 +- Kubernetes v1.17.x、v1.18.x、v1.19.x、v1.20.x +- PV dynamic provisioning support on the underlying infrastructure (StorageClass) +- Helm3 ## Installing @@ -51,51 +53,50 @@ You can set the configuration of kubesphere in `values.yaml` Parameter | Description | Default --- | --- | --- -`persistence.storageClass` | Installer will use the default StorageClass, you can also designate another StorageClass| `""` -`authentication.jwtSecret `| Keep the jwtSecret consistent with the host cluster. | `""` -`etcd.monitoring `| Whether to enable etcd monitoring|`false` -`etcd.endpointIps`|etcd address(for etcd cluster,see an example value like `192.168.0.7,192.168.0.8,192.168.0.9`)|`localhost` -`etcd.port`|etcd port (Default port: 2379, you can appoint any other port) | `2379` -`etcd.tlsEnable`|Whether to enable etcd TLS certificate authentication.(true / false)| `true` -`common.redis.enabled`|Whether to install redis|`false` -`common.redis.openldap`|Whether to install openldap|`false` -`common.minioVolumeSize`|Minio volume size (cannot be modified after set)|`20Gi` -`common.openldapVolumeSize`|openldap volume size (cannot be modified after set)|`2Gi` -`common.redisVolumSize`|redis volume size (cannot be modified after set)|`2Gi` -`common.es.elasticsearchMasterVolumeSize`|Volume size of Elasticsearch master nodes (cannot be modified after set)|`4Gi` -`common.es.elasticsearchDataVolumeSize`|Volume size of Elasticsearch data nodes (cannot be modified after set)|`20Gi` -`common.es.logMaxAge`|Log retention time in built-in Elasticsearch (days)|`7` -`common.es.elkPrefix`|redis volume size (cannot be modified after set)|`2Gi` -`console.enableMultiLogin`|Whether to enable multiple point login of one account(true / false)|`false` -`console.port`|Console Port(NodePort)|`30880` -`alerting.enabled`|Whether to install KubeSphere alerting system. It enables Users to customize alerting policies to send messages to receivers in time with different time intervals and alerting levels to choose from. (true / false)|`false` -`auditing.enabled`|Whether to install KubeSphere audit log system. It provides a security-relevant chronological set of records,recording the sequence of activities happened in platform, initiated by different tenants. (true / false)|`false` -`devops.enabled`|Whether to install KubeSphere DevOps System. It provides out-of-box CI/CD system based on Jenkins, and automated workflow tools including Source-to-Image & Binary-to-Image. (true / false) | `false` -`devops.jenkinsMemoryLim`|Jenkins Memory Limit|`2Gi` -`devops.jenkinsMemoryReq`|Jenkins Memory Request|`1500Mi` -`devops.jenkinsVolumeSize`|Jenkins volume size|`8Gi` -`devops.jenkinsJavaOpts_Xms`|Jenkins JVM parameter(Xms)|`512m` -`devops.jenkinsJavaOpts_Xmx`|Jenkins JVM parameter(Xmx)|`512m` -`devops.jenkinsJavaOpts_MaxRAM`|Jenkins JVM parameter(MaxRAM)|`2Gi` -`events.enabled`|Whether to install KubeSphere events system. It provides a graphical web console for Kubernetes Events exporting, filtering and alerting in multi-tenant Kubernetes clusters. (true / false)|`false` -`logging.enabled`|Whether to install KubeSphere logging system. Flexible logging functions are provided for log query, collection and management in a unified console. Additional log collectors can be added, such as Elasticsearch, Kafka and Fluentd. (true / false)|`false` -`logging.logsidecar.replicas`|Logsidecar replicas|`2` -`metrics_server.enabled`|Whether to install metrics_servertrue (true / false)| `false` -`monitoring.endpoint`|Prometheus endpoint to get metrics data|`http://prometheus-operated.kubesphere-monitoring-system.svc:9090` -`monitoring.storageClass`|If there is an independent StorageClass you need for Prometheus, you can specify it here| `""` -`monitoring.prometheusMemoryRequest`|Prometheus memory request|`400Mi` -`monitoring.prometheusVolumeSize`|Prometheus volume size|`20Gi` -`multicluster.clusterRole`|You can install a solo cluster, or specify it as the role of host or member cluster. (host / member / none) |`none` -`network.networkpolicy.enabled` |Network policies allow network isolation within the same cluster, which means firewalls can be set up between certain instances (Pods). (true / false) |`false` -`network.ippool.type` |Specify "calico" for this field if Calico is used as your CNI plugin. "none" means that Pod IP Pools are disabled.|`none` -`network.topology.type` | Specify "weave-scope" for this field to enable Service Topology. "none" means that Service Topology is disabled.|`none` -`openpitrix.store.enabled `|Enable or disable the KubeSphere App Store. (true / false) |`false` -`servicemesh.enabled`|Whether to install KubeSphere Service Mesh (Istio-based). It provides fine-grained traffic management, observability and tracing, and offer visualization for traffic topology. (true / false) |`false` +`cc.persistence.storageClass` | Installer will use the default StorageClass, you can also designate another StorageClass| `""` +`cc.authentication.jwtSecret `| Keep the jwtSecret consistent with the host cluster. | `""` +`cc.etcd.monitoring `| Whether to enable etcd monitoring|`false` +`cc.etcd.endpointIps`|etcd address(for etcd cluster,see an example value like `192.168.0.7,192.168.0.8,192.168.0.9`)|`localhost` +`cc.etcd.port`|etcd port (Default port: 2379, you can appoint any other port) | `2379` +`cc.etcd.tlsEnable`|Whether to enable etcd TLS certificate authentication.(true / false)| `true` +`cc.common.redis.enabled`|Whether to install redis|`false` +`cc.common.redis.volumeSize`|redis volume size (cannot be modified after set)|`2Gi` +`cc.common.openldap.enabled`|Whether to install openldap|`false` +`cc.common.openldap.volumeSize`|openldap volume size (cannot be modified after set)|`2Gi` +`cc.common.minio.volumeSize`|Minio volume size (cannot be modified after set)|`20Gi` +`cc.common.es.master.volumeSize`|Volume size of Elasticsearch master nodes (cannot be modified after set)|`4Gi` +`cc.common.es.data.volumeSize`|Volume size of Elasticsearch data nodes (cannot be modified after set)|`20Gi` +`cc.common.es.logMaxAge`|Log retention time in built-in Elasticsearch (days)|`7` +`cc.common.es.elkPrefix`|redis volume size (cannot be modified after set)|`2Gi` +`cc.common.core.console.enableMultiLogin`|Whether to enable multiple point login of one account(true / false)|`false` +`cc.common.core.console.port`|Console Port(NodePort)|`30880` +`cc.alerting.enabled`|Whether to install KubeSphere alerting system. It enables Users to customize alerting policies to send messages to receivers in time with different time intervals and alerting levels to choose from. (true / false)|`false` +`cc.auditing.enabled`|Whether to install KubeSphere audit log system. It provides a security-relevant chronological set of records,recording the sequence of activities happened in platform, initiated by different tenants. (true / false)|`false` +`cc.devops.enabled`|Whether to install KubeSphere DevOps System. It provides out-of-box CI/CD system based on Jenkins, and automated workflow tools including Source-to-Image & Binary-to-Image. (true / false) | `false` +`cc.devops.jenkinsMemoryLim`|Jenkins Memory Limit|`2Gi` +`cc.devops.jenkinsMemoryReq`|Jenkins Memory Request|`1500Mi` +`cc.devops.jenkinsVolumeSize`|Jenkins volume size|`8Gi` +`cc.devops.jenkinsJavaOpts_Xms`|Jenkins JVM parameter(Xms)|`512m` +`cc.devops.jenkinsJavaOpts_Xmx`|Jenkins JVM parameter(Xmx)|`512m` +`cc.devops.jenkinsJavaOpts_MaxRAM`|Jenkins JVM parameter(MaxRAM)|`2Gi` +`cc.events.enabled`|Whether to install KubeSphere events system. It provides a graphical web console for Kubernetes Events exporting, filtering and alerting in multi-tenant Kubernetes clusters. (true / false)|`false` +`cc.logging.enabled`|Whether to install KubeSphere logging system. Flexible logging functions are provided for log query, collection and management in a unified console. Additional log collectors can be added, such as Elasticsearch, Kafka and Fluentd. (true / false)|`false` +`cc.logging.logsidecar.replicas`|Logsidecar replicas|`2` +`cc.metrics_server.enabled`|Whether to install metrics_servertrue (true / false)| `false` +`cc.monitoring.storageClass`|If there is an independent StorageClass you need for Prometheus, you can specify it here| `""` +`cc.monitoring.gpu.nvidia_dcgm_exporter.enabled`|Whether to install GPU monitoring-related plugins.| `false` +`cc.multicluster.clusterRole`|You can install a solo cluster, or specify it as the role of host or member cluster. (host / member / none) |`none` +`cc.network.networkpolicy.enabled` |Network policies allow network isolation within the same cluster, which means firewalls can be set up between certain instances (Pods). (true / false) |`false` +`cc.network.ippool.type` |Specify "calico" for this field if Calico is used as your CNI plugin. "none" means that Pod IP Pools are disabled.|`none` +`cc.network.topology.type` | Specify "weave-scope" for this field to enable Service Topology. "none" means that Service Topology is disabled.|`none` +`cc.openpitrix.store.enabled `|Enable or disable the KubeSphere App Store. (true / false) |`false` +`cc.servicemesh.enabled`|Whether to install KubeSphere Service Mesh (Istio-based). It provides fine-grained traffic management, observability and tracing, and offer visualization for traffic topology. (true / false) |`false` +`cc.kubeedge.enabled`|Add edge nodes to your cluster and deploy workloads on edge nodes. (true / false) |`false` Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example: ```console -$ helm install --name my-release ks-installer --set persistence.storageClass=local +$ helm install --name my-release ks-installer --set cc.persistence.storageClass=local ``` Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example: diff --git a/src/test/ks-installer/templates/clusterconfiguration.yaml b/src/test/ks-installer/templates/clusterconfiguration.yaml index a3344c7f..7ea1212a 100644 --- a/src/test/ks-installer/templates/clusterconfiguration.yaml +++ b/src/test/ks-installer/templates/clusterconfiguration.yaml @@ -9,82 +9,5 @@ metadata: labels: version: {{ .Chart.AppVersion }} spec: -{{- if .Values.registry}} - local_registry: {{ .Values.registry }} -{{- end}} - persistence: - storageClass: "{{ .Values.persistence.storageClass}}" - authentication: - jwtSecret: "{{ .Values.authentication.jwtSecret }}" - etcd: - monitoring: {{ .Values.etcd.monitoring }} - endpointIps: {{ .Values.etcd.endpointIps }} - port: 2379 - tlsEnable: {{ .Values.etcd.tlsEnable }} - common: - redis: - enabled: {{ .Values.common.redis.enabled }} - openldap: - enabled: {{ .Values.common.openldap.enabled }} - minioVolumeSize: {{ .Values.common.minioVolumeSize }} - openldapVolumeSize: {{ .Values.common.openldapVolumeSize }} - redisVolumSize: {{ .Values.common.redisVolumSize }} - es: - elasticsearchMasterVolumeSize: {{ .Values.common.es.elasticsearchMasterVolumeSize }} - elasticsearchDataVolumeSize: {{ .Values.common.es.elasticsearchDataVolumeSize }} - logMaxAge: {{ .Values.common.es.logMaxAge }} - elkPrefix: {{ .Values.common.es.elkPrefix }} - basicAuth: - enabled: {{ .Values.common.es.basicAuth.enabled }} - username: "{{ .Values.common.es.basicAuth.username }}" - password: "{{ .Values.common.es.basicAuth.password }}" - externalElasticsearchUrl: "{{ .Values.common.es.externalElasticsearchUrl }}" - externalElasticsearchPort: "{{ .Values.common.es.externalElasticsearchPort }}" - console: - enableMultiLogin: {{ .Values.console.enableMultiLogin }} - port: {{ .Values.console.port }} - alerting: - enabled: {{ .Values.alerting.enabled }} - auditing: - enabled: {{ .Values.auditing.enabled }} - devops: - enabled: {{ .Values.devops.enabled }} - jenkinsMemoryLim: {{ .Values.devops.jenkinsMemoryLim }} - jenkinsMemoryReq: {{ .Values.devops.jenkinsMemoryReq }} - jenkinsVolumeSize: {{ .Values.devops.jenkinsVolumeSize }} - jenkinsJavaOpts_Xms: {{ .Values.devops.jenkinsJavaOpts_Xms }} - jenkinsJavaOpts_Xmx: {{ .Values.devops.jenkinsJavaOpts_Xmx }} - jenkinsJavaOpts_MaxRAM: {{ .Values.devops.jenkinsJavaOpts_MaxRAM }} - events: - enabled: {{ .Values.events.enabled }} - ruler: - enabled: {{ .Values.events.ruler.enabled }} - replicas: {{ .Values.events.ruler.replicas }} - logging: - enabled: {{ .Values.logging.enabled }} - logsidecar: - enabled: {{ .Values.logging.logsidecar.enabled }} - replicas: {{ .Values.logging.logsidecar.replicas }} - metrics_server: - enabled: {{ .Values.logging.enabled }} - monitoring: - storageClass: "{{ .Values.monitoring.storageClass }}" - prometheusMemoryRequest: {{ .Values.monitoring.prometheusMemoryRequest }} - prometheusVolumeSize: {{ .Values.monitoring.prometheusVolumeSize }} - multicluster: - clusterRole: {{ .Values.multicluster.clusterRole }} - network: - networkpolicy: - enabled: {{ .Values.network.networkpolicy.enabled }} - ippool: - type: {{ .Values.network.ippool.type }} - topology: - type: {{ .Values.network.topology.type }} - openpitrix: - store: - enabled: {{ .Values.openpitrix.store.enabled }} - servicemesh: - enabled: {{ .Values.servicemesh.enabled }} - kubeedge: -{{ toYaml .Values.kubeedge | indent 4 }} +{{ toYaml .Values.cc | indent 2 }} {{ end -}} \ No newline at end of file diff --git a/src/test/ks-installer/values.yaml b/src/test/ks-installer/values.yaml index 30770d28..7afc2aa4 100644 --- a/src/test/ks-installer/values.yaml +++ b/src/test/ks-installer/values.yaml @@ -38,160 +38,173 @@ tolerations: [] affinity: {} -persistence: - storageClass: "" - -# Keep the jwtSecret consistent with the host cluster. Retrive the jwtSecret by executing -# "kubectl -n kubesphere-system get cm kubesphere-config -o yaml | grep -v "apiVersion" | grep jwtSecret" -# on the host cluster. -authentication: - jwtSecret: "" - -etcd: - monitoring: false - endpointIps: localhost - tlsEnable: true - -common: - redis: - enabled: false - openldap: - enabled: false - minioVolumeSize: 20Gi - openldapVolumeSize: 2Gi - redisVolumSize: 2Gi - # Storage backend for logging, events and auditing. - es: - elasticsearchMasterVolumeSize: 4Gi - elasticsearchDataVolumeSize: 20Gi - logMaxAge: 7 - elkPrefix: logstash - basicAuth: +cc: + persistence: + storageClass: "" # If there is no default StorageClass in your cluster, you need to specify an existing StorageClass here. + authentication: + jwtSecret: "" # Keep the jwtSecret consistent with the Host Cluster. Retrieve the jwtSecret by executing "kubectl -n kubesphere-system get cm kubesphere-config -o yaml | grep -v "apiVersion" | grep jwtSecret" on the Host Cluster. + + local_registry: "" # Add your private registry address if it is needed. + + # dev_tag: "" # Add your kubesphere image tag you want to install, by default it's same as ks-install release version. + + etcd: + monitoring: false # Enable or disable etcd monitoring dashboard installation. You have to create a Secret for etcd before you enable it. + endpointIps: localhost # etcd cluster EndpointIps. It can be a bunch of IPs here. + port: 2379 # etcd port. + tlsEnable: true + + common: + core: + console: + enableMultiLogin: true # Enable or disable simultaneous logins. It allows different users to log in with the same account at the same time. + port: 30880 + type: NodePort + # apiserver: # Enlarge the apiserver and controller manager's resource requests and limits for the large cluster + # resources: {} + # controllerManager: + # resources: {} + redis: enabled: false - username: "" - password: "" - externalElasticsearchUrl: "" - externalElasticsearchPort: "" - -# Enable or disable simultaneous logins. It allows different users -# to log in with the same account at the same time. -console: - enableMultiLogin: true - port: 30880 - -# It enables users to customize alerting policies to send messages -# to receivers in time with different time intervals and alerting -# levels to choose from. -alerting: - enabled: false - -# Provide a security-relevant chronological set of records,recording -# the sequence of activities happening on the platform, initiated by -# different tenants. -auditing: - enabled: false - -# Provide an out-of-the-box CI/CD system based on Jenkins, and automated -# workflow tools including Source-to-Image & Binary-to-Image. -devops: - enabled: false - jenkinsMemoryLim: 2Gi - jenkinsMemoryReq: 1500Mi - jenkinsVolumeSize: 8Gi - jenkinsJavaOpts_Xms: 512m - jenkinsJavaOpts_Xmx: 512m - jenkinsJavaOpts_MaxRAM: 2g - -# Provide a graphical web console for Kubernetes Events exporting, -# filtering and alerting in multi-tenant Kubernetes clusters. -events: - enabled: false - ruler: - enabled: true - replicas: 2 - -# Flexible logging functions are provided for log query, collection -# and management in a unified console. Additional log collectors can -# be added, such as Elasticsearch, Kafka and Fluentd. -logging: - enabled: false - logsidecar: - enabled: true - replicas: 2 - -# Whether to install metrics-server. IT enables HPA (Horizontal Pod Autoscaler). -metrics_server: - enabled: false - -monitoring: - # If there is an independent StorageClass you need for Prometheus, you can - # specify it here. The default StorageClass is used by default. - storageClass: "" - # Prometheus request memory. - prometheusMemoryRequest: 400Mi - # Prometheus PVC size. - prometheusVolumeSize: 20Gi - -# You can install a solo cluster, or specify it as the Host or Member Cluster. -# host | member | none -multicluster: - clusterRole: none - -network: - # Network policies allow network isolation within the same cluster, which means - # firewalls can be set up between certain instances (Pods). - # Make sure that the CNI network plugin used by the cluster supports NetworkPolicy. - # There are a number of CNI network plugins that support NetworkPolicy, including - # Calico, Cilium, Kube-router, Romana and Weave Net. - networkpolicy: - enabled: false - # Use Pod IP Pools to manage the Pod network address space. Pods to be created can - # be assigned IP addresses from a Pod IP Pool. - # Specify "calico" for this field if Calico is used as your CNI plugin. "none" means - # that Pod IP Pools are disabled. - ippool: - type: none - # Use Service Topology to view Service-to-Service communication based on Weave Scope. - # Specify "weave-scope" for this field to enable Service Topology. "none" means that - # Service Topology is disabled. - topology: - type: none - -# An App Store that is accessible to all platform tenants. You can use it to manage -# apps across their entire lifecycle. -openpitrix: - store: - enabled: false - -# Provide fine-grained traffic management, observability and tracing, and visualized traffic topology. -# Base component (pilot). Enable or disable KubeSphere Service Mesh (Istio-based). -servicemesh: - enabled: false - -# Add edge nodes to your cluster and deploy workloads on edge nodes. -kubeedge: - enabled: false - cloudCore: - nodeSelector: {"node-role.kubernetes.io/worker": ""} - tolerations: [] - cloudhubPort: "10000" - cloudhubQuicPort: "10001" - cloudhubHttpsPort: "10002" - cloudstreamPort: "10003" - tunnelPort: "10004" - cloudHub: - advertiseAddress: # At least a public IP address or an IP address which can be accessed by edge nodes must be provided. - - "" # Note that once KubeEdge is enabled, CloudCore will malfunction if the address is not provided. - nodeLimit: "100" - service: - cloudhubNodePort: "30000" - cloudhubQuicNodePort: "30001" - cloudhubHttpsNodePort: "30002" - cloudstreamNodePort: "30003" - tunnelNodePort: "30004" - edgeWatcher: - nodeSelector: {"node-role.kubernetes.io/worker": ""} - tolerations: [] - edgeWatcherAgent: - nodeSelector: {"node-role.kubernetes.io/worker": ""} - tolerations: [] \ No newline at end of file + volumeSize: 2Gi # Redis PVC size. + openldap: + enabled: false + volumeSize: 2Gi # openldap PVC size. + minio: + volumeSize: 20Gi # Minio PVC size. + monitoring: + # type: external # Whether to specify the external prometheus stack, and need to modify the endpoint at the next line. + endpoint: http://prometheus-operated.kubesphere-monitoring-system.svc:9090 # Prometheus endpoint to get metrics data. + GPUMonitoring: # Enable or disable the GPU-related metrics. If you enable this switch but have no GPU resources, Kubesphere will set it to zero. + enabled: false + gpu: # Install GPUKinds. The default GPU kind is nvidia.com/gpu. Other GPU kinds can be added here according to your needs. + kinds: + - resourceName: "nvidia.com/gpu" + resourceType: "GPU" + default: true + es: # Storage backend for logging, events and auditing. + # master: + # volumeSize: 4Gi # The volume size of Elasticsearch master nodes. + # replicas: 1 # The total number of master nodes. Even numbers are not allowed. + # resources: {} + # data: + # volumeSize: 20Gi # The volume size of Elasticsearch data nodes. + # replicas: 1 # The total number of data nodes. + # resources: {} + logMaxAge: 7 # Log retention time in built-in Elasticsearch. It is 7 days by default. + elkPrefix: logstash # The string making up index names. The index name will be formatted as ks--log. + basicAuth: + enabled: false + username: "" + password: "" + externalElasticsearchUrl: "" + externalElasticsearchPort: "" + alerting: # (CPU: 0.1 Core, Memory: 100 MiB) It enables users to customize alerting policies to send messages to receivers in time with different time intervals and alerting levels to choose from. + enabled: false # Enable or disable the KubeSphere Alerting System. + # thanosruler: + # replicas: 1 + # resources: {} + auditing: # Provide a security-relevant chronological set of records,recording the sequence of activities happening on the platform, initiated by different tenants. + enabled: false # Enable or disable the KubeSphere Auditing Log System. + # operator: + # resources: {} + # webhook: + # resources: {} + devops: # (CPU: 0.47 Core, Memory: 8.6 G) Provide an out-of-the-box CI/CD system based on Jenkins, and automated workflow tools including Source-to-Image & Binary-to-Image. + enabled: false # Enable or disable the KubeSphere DevOps System. + # resources: {} + jenkinsMemoryLim: 2Gi # Jenkins memory limit. + jenkinsMemoryReq: 1500Mi # Jenkins memory request. + jenkinsVolumeSize: 8Gi # Jenkins volume size. + jenkinsJavaOpts_Xms: 512m # The following three fields are JVM parameters. + jenkinsJavaOpts_Xmx: 512m + jenkinsJavaOpts_MaxRAM: 2g + events: # Provide a graphical web console for Kubernetes Events exporting, filtering and alerting in multi-tenant Kubernetes clusters. + enabled: false # Enable or disable the KubeSphere Events System. + # operator: + # resources: {} + # exporter: + # resources: {} + # ruler: + # enabled: true + # replicas: 2 + # resources: {} + logging: # (CPU: 57 m, Memory: 2.76 G) Flexible logging functions are provided for log query, collection and management in a unified console. Additional log collectors can be added, such as Elasticsearch, Kafka and Fluentd. + enabled: false # Enable or disable the KubeSphere Logging System. + containerruntime: docker + logsidecar: + enabled: true + replicas: 2 + # resources: {} + metrics_server: # (CPU: 56 m, Memory: 44.35 MiB) It enables HPA (Horizontal Pod Autoscaler). + enabled: false # Enable or disable metrics-server. + monitoring: + storageClass: "" # If there is an independent StorageClass you need for Prometheus, you can specify it here. The default StorageClass is used by default. + # kube_rbac_proxy: + # resources: {} + # kube_state_metrics: + # resources: {} + # prometheus: + # replicas: 1 # Prometheus replicas are responsible for monitoring different segments of data source and providing high availability. + # volumeSize: 20Gi # Prometheus PVC size. + # resources: {} + # operator: + # resources: {} + # adapter: + # resources: {} + # node_exporter: + # resources: {} + # alertmanager: + # replicas: 1 # AlertManager Replicas. + # resources: {} + # notification_manager: + # resources: {} + # operator: + # resources: {} + # proxy: + # resources: {} + gpu: # GPU monitoring-related plugins installation. + nvidia_dcgm_exporter: + enabled: false + # resources: {} + multicluster: + clusterRole: none # host | member | none # You can install a solo cluster, or specify it as the Host or Member Cluster. + network: + networkpolicy: # Network policies allow network isolation within the same cluster, which means firewalls can be set up between certain instances (Pods). + # Make sure that the CNI network plugin used by the cluster supports NetworkPolicy. There are a number of CNI network plugins that support NetworkPolicy, including Calico, Cilium, Kube-router, Romana and Weave Net. + enabled: false # Enable or disable network policies. + ippool: # Use Pod IP Pools to manage the Pod network address space. Pods to be created can be assigned IP addresses from a Pod IP Pool. + type: none # Specify "calico" for this field if Calico is used as your CNI plugin. "none" means that Pod IP Pools are disabled. + topology: # Use Service Topology to view Service-to-Service communication based on Weave Scope. + type: none # Specify "weave-scope" for this field to enable Service Topology. "none" means that Service Topology is disabled. + openpitrix: # An App Store that is accessible to all platform tenants. You can use it to manage apps across their entire lifecycle. + store: + enabled: false # Enable or disable the KubeSphere App Store. + servicemesh: # (0.3 Core, 300 MiB) Provide fine-grained traffic management, observability and tracing, and visualized traffic topology. + enabled: false # Base component (pilot). Enable or disable KubeSphere Service Mesh (Istio-based). + kubeedge: # Add edge nodes to your cluster and deploy workloads on edge nodes. + enabled: false # Enable or disable KubeEdge. + cloudCore: + nodeSelector: { "node-role.kubernetes.io/worker": "" } + tolerations: [ ] + cloudhubPort: "10000" + cloudhubQuicPort: "10001" + cloudhubHttpsPort: "10002" + cloudstreamPort: "10003" + tunnelPort: "10004" + cloudHub: + advertiseAddress: # At least a public IP address or an IP address which can be accessed by edge nodes must be provided. + - "" # Note that once KubeEdge is enabled, CloudCore will malfunction if the address is not provided. + nodeLimit: "100" + service: + cloudhubNodePort: "30000" + cloudhubQuicNodePort: "30001" + cloudhubHttpsNodePort: "30002" + cloudstreamNodePort: "30003" + tunnelNodePort: "30004" + edgeWatcher: + nodeSelector: { "node-role.kubernetes.io/worker": "" } + tolerations: [ ] + edgeWatcherAgent: + nodeSelector: { "node-role.kubernetes.io/worker": "" } + tolerations: [ ] From cc3630fedd2bbec3ee30528680f71e0b90ec2ecf Mon Sep 17 00:00:00 2001 From: mango Date: Sun, 21 Nov 2021 14:20:11 +0800 Subject: [PATCH 4/6] update ks-installer's notes Signed-off-by: mango --- src/main/ks-installer/templates/NOTES.txt | 2 +- src/test/ks-installer/templates/NOTES.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/ks-installer/templates/NOTES.txt b/src/main/ks-installer/templates/NOTES.txt index 794df397..83c6711a 100644 --- a/src/main/ks-installer/templates/NOTES.txt +++ b/src/main/ks-installer/templates/NOTES.txt @@ -1,5 +1,5 @@ 1. Get the application URL by running these commands: -{{- if .Values.console.port }} +{{- if .Values.cc.common.core.console.port }} export NODE_PORT=$(kubectl get --namespace kubesphere-system -o jsonpath="{.spec.ports[0].nodePort}" services ks-console) export NODE_IP=$(kubectl get nodes --namespace kubesphere-system-o jsonpath="{.items[0].status.addresses[0].address}") echo http://$NODE_IP:$NODE_PORT diff --git a/src/test/ks-installer/templates/NOTES.txt b/src/test/ks-installer/templates/NOTES.txt index 794df397..83c6711a 100644 --- a/src/test/ks-installer/templates/NOTES.txt +++ b/src/test/ks-installer/templates/NOTES.txt @@ -1,5 +1,5 @@ 1. Get the application URL by running these commands: -{{- if .Values.console.port }} +{{- if .Values.cc.common.core.console.port }} export NODE_PORT=$(kubectl get --namespace kubesphere-system -o jsonpath="{.spec.ports[0].nodePort}" services ks-console) export NODE_IP=$(kubectl get nodes --namespace kubesphere-system-o jsonpath="{.items[0].status.addresses[0].address}") echo http://$NODE_IP:$NODE_PORT From d360d81a25dc8af07e6ee3fe4857d89036dadc43 Mon Sep 17 00:00:00 2001 From: mango Date: Wed, 24 Nov 2021 10:29:15 +0800 Subject: [PATCH 5/6] update chart version to `1.0.0` Signed-off-by: mango --- src/main/ks-installer/Chart.yaml | 2 +- src/test/ks-installer/Chart.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/ks-installer/Chart.yaml b/src/main/ks-installer/Chart.yaml index 4eed72a6..61e4aead 100644 --- a/src/main/ks-installer/Chart.yaml +++ b/src/main/ks-installer/Chart.yaml @@ -18,7 +18,7 @@ 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: 0.2.2 +version: 1.0.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 diff --git a/src/test/ks-installer/Chart.yaml b/src/test/ks-installer/Chart.yaml index 4eed72a6..61e4aead 100644 --- a/src/test/ks-installer/Chart.yaml +++ b/src/test/ks-installer/Chart.yaml @@ -18,7 +18,7 @@ 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: 0.2.2 +version: 1.0.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 From 4617dc288ba1d0ed9c46dc1aa4fa6ce496f70bb8 Mon Sep 17 00:00:00 2001 From: mango Date: Wed, 24 Nov 2021 23:21:42 +0800 Subject: [PATCH 6/6] update chart version to `0.3.0` Signed-off-by: mango --- src/main/ks-installer/Chart.yaml | 2 +- src/test/ks-installer/Chart.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/ks-installer/Chart.yaml b/src/main/ks-installer/Chart.yaml index 61e4aead..7a627578 100644 --- a/src/main/ks-installer/Chart.yaml +++ b/src/main/ks-installer/Chart.yaml @@ -18,7 +18,7 @@ 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.0.0 +version: 0.3.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 diff --git a/src/test/ks-installer/Chart.yaml b/src/test/ks-installer/Chart.yaml index 61e4aead..7a627578 100644 --- a/src/test/ks-installer/Chart.yaml +++ b/src/test/ks-installer/Chart.yaml @@ -18,7 +18,7 @@ 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.0.0 +version: 0.3.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