This is an automated email from the ASF dual-hosted git repository. innerpeacez pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/skywalking-kubernetes.git
commit a2f59da8d0e1753a42a562de4ac70b64cafdd052 Author: innerpeacez <37059529+innerpea...@users.noreply.github.com> AuthorDate: Wed May 22 23:13:23 2019 +0800 helm charts (#8) * deploy skywalking to kubernetes using helm charts * Configmap automatically get namespace by Release * fix bug : A volume can only be mounted once * Parameterize terminationGracePeriodSeconds config. * one value is configured for elasticsearch host * oap service type * resources (cpu memory) "toYaml" --- helm/charts/6/6.0.0-GA/skywalking/.helmignore | 21 ++ helm/charts/6/6.0.0-GA/skywalking/Chart.yaml | 9 + .../6/6.0.0-GA/skywalking/templates/NOTES.txt | 19 ++ .../6/6.0.0-GA/skywalking/templates/_helpers.tpl | 32 ++ .../elasticsearch/elasticsearch-service.yml | 31 ++ .../elasticsearch/elasticsearch-statefulset.yml | 122 +++++++ .../skywalking/templates/oap/oap-config.yml | 374 +++++++++++++++++++++ .../skywalking/templates/oap/oap-deployment.yml | 59 ++++ .../skywalking/templates/oap/oap-role.yaml | 24 ++ .../skywalking/templates/oap/oap-rolebinding.yaml | 27 ++ .../skywalking/templates/oap/oap-service.yml | 31 ++ .../templates/oap/oap-serviceaccount.yml | 23 ++ .../skywalking/templates/ui/ui-deployment.yml | 45 +++ .../skywalking/templates/ui/ui-service.yml | 30 ++ helm/charts/6/6.0.0-GA/skywalking/values.yaml | 111 ++++++ 15 files changed, 958 insertions(+) diff --git a/helm/charts/6/6.0.0-GA/skywalking/.helmignore b/helm/charts/6/6.0.0-GA/skywalking/.helmignore new file mode 100644 index 0000000..f0c1319 --- /dev/null +++ b/helm/charts/6/6.0.0-GA/skywalking/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/helm/charts/6/6.0.0-GA/skywalking/Chart.yaml b/helm/charts/6/6.0.0-GA/skywalking/Chart.yaml new file mode 100644 index 0000000..2861d97 --- /dev/null +++ b/helm/charts/6/6.0.0-GA/skywalking/Chart.yaml @@ -0,0 +1,9 @@ +name: skywalking +apiVersion: v1 +appVersion: 6.0.0-GA +description: Apache SkyWalking APM System +version: 0.1.0 + +maintainers: +- name: innerpeacez + email: 10146...@qq.com \ No newline at end of file diff --git a/helm/charts/6/6.0.0-GA/skywalking/templates/NOTES.txt b/helm/charts/6/6.0.0-GA/skywalking/templates/NOTES.txt new file mode 100644 index 0000000..e49295c --- /dev/null +++ b/helm/charts/6/6.0.0-GA/skywalking/templates/NOTES.txt @@ -0,0 +1,19 @@ +1. Get the application URL by running these commands: +{{- if .Values.ui.ingress.enabled }} +{{- range .Values.ui.ingress.hosts }} + http{{ if $.Values.ui.ingress.tls }}s{{ end }}://{{ . }}{{ $.Values.ui.ingress.path }} +{{- end }} +{{- else if contains "NodePort" .Values.ui.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "skywalking.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.ui.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get svc -w {{ include "skywalking.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "skywalking.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + echo http://$SERVICE_IP:{{ .Values.service.port }} +{{- else if contains "ClusterIP" .Values.ui.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ include "skywalking.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl port-forward $POD_NAME 8080:80 +{{- end }} diff --git a/helm/charts/6/6.0.0-GA/skywalking/templates/_helpers.tpl b/helm/charts/6/6.0.0-GA/skywalking/templates/_helpers.tpl new file mode 100644 index 0000000..817da6d --- /dev/null +++ b/helm/charts/6/6.0.0-GA/skywalking/templates/_helpers.tpl @@ -0,0 +1,32 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "skywalking.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "skywalking.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "skywalking.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} diff --git a/helm/charts/6/6.0.0-GA/skywalking/templates/elasticsearch/elasticsearch-service.yml b/helm/charts/6/6.0.0-GA/skywalking/templates/elasticsearch/elasticsearch-service.yml new file mode 100644 index 0000000..78b2719 --- /dev/null +++ b/helm/charts/6/6.0.0-GA/skywalking/templates/elasticsearch/elasticsearch-service.yml @@ -0,0 +1,31 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: v1 +kind: Service +metadata: + name: {{ template "skywalking.fullname" . }}-elasticsearch + labels: + service: {{ .Values.elasticsearch.name }} +spec: + clusterIP: None + ports: + - port: {{ .Values.elasticsearch.ports.http }} + name: serving + - port: {{ .Values.elasticsearch.ports.tcp }} + name: node-to-node + selector: + service: {{ .Values.elasticsearch.name }} \ No newline at end of file diff --git a/helm/charts/6/6.0.0-GA/skywalking/templates/elasticsearch/elasticsearch-statefulset.yml b/helm/charts/6/6.0.0-GA/skywalking/templates/elasticsearch/elasticsearch-statefulset.yml new file mode 100644 index 0000000..e2919d4 --- /dev/null +++ b/helm/charts/6/6.0.0-GA/skywalking/templates/elasticsearch/elasticsearch-statefulset.yml @@ -0,0 +1,122 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: {{ template "skywalking.fullname" . }}-elasticsearch + labels: + service: {{ .Values.elasticsearch.name }} +spec: + serviceName: {{ .Values.elasticsearch.name }} + # NOTE: This is number of nodes that we want to run + # you may update this + replicas: {{ .Values.elasticsearch.replicas }} + selector: + matchLabels: + service: {{ .Values.elasticsearch.name }} + template: + metadata: + labels: + service: {{ .Values.elasticsearch.name }} + spec: + terminationGracePeriodSeconds: {{ .Values.elasticsearch.terminationGracePeriodSeconds }} + initContainers: + # NOTE: + # This is to fix the permission on the volume + # By default elasticsearch container is not run as + # non root user. + # https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#_notes_for_production_use_and_defaults + - name: fix-the-volume-permission + image: busybox + command: + - sh + - -c + - chown -R 1000:1000 /usr/share/elasticsearch/data + securityContext: + privileged: true + volumeMounts: + - name: data + mountPath: /usr/share/elasticsearch/data + # NOTE: + # To increase the default vm.max_map_count to 262144 + # https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod-mode + - name: increase-the-vm-max-map-count + image: busybox + command: + - sysctl + - -w + - vm.max_map_count=262144 + securityContext: + privileged: true + # To increase the ulimit + # https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#_notes_for_production_use_and_defaults + - name: increase-the-ulimit + image: busybox + command: + - sh + - -c + - ulimit -n 65536 + securityContext: + privileged: true + containers: + - name: elasticsearch + image: {{ .Values.elasticsearch.image.repository }}:{{ .Values.elasticsearch.image.tag }} + ports: + - containerPort: {{ .Values.elasticsearch.ports.http }} + name: http + - containerPort: {{ .Values.elasticsearch.ports.tcp }} + name: tcp + # NOTE: you can increase this resources +{{- if .Values.elasticsearch.resources }} + resources: +{{ toYaml .Values.elasticsearch.resources | indent 10 }} +{{- end }} + env: + # NOTE: the cluster name; update this + - name: cluster.name + value: elasticsearch-cluster + - name: node.name + valueFrom: + fieldRef: + fieldPath: metadata.name + # NOTE: This will tell the elasticsearch node where to connect to other nodes to form a cluster + - name: {{ .Values.elasticsearch.clusterHost }} + value: {{ .Values.elasticsearch.name }}:{{ .Values.elasticsearch.ports.tcp }} + # NOTE: You can increase the heap size + - name: ES_JAVA_OPTS + value: {{ .Values.elasticsearch.env.esJavaOpts }} + volumeMounts: + - name: data + mountPath: /usr/share/elasticsearch/data + {{- if .Values.elasticsearch.persistence.enabled }} + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: + - {{ .Values.elasticsearch.persistence.accessMode }} + {{- if .Values.elasticsearch.persistence.storageClass }} + {{- if (eq "-" .Values.elasticsearch.persistence.storageClass) }} + storageClassName: "" + {{- else }} + storageClassName: "{{ .Values.elasticsearch.persistence.storageClass }}" + {{- end }} + {{- end }} + resources: + requests: + storage: "{{ .Values.elasticsearch.persistence.size }}" + {{- end -}} diff --git a/helm/charts/6/6.0.0-GA/skywalking/templates/oap/oap-config.yml b/helm/charts/6/6.0.0-GA/skywalking/templates/oap/oap-config.yml new file mode 100644 index 0000000..ea80c88 --- /dev/null +++ b/helm/charts/6/6.0.0-GA/skywalking/templates/oap/oap-config.yml @@ -0,0 +1,374 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +{{- $oapService := .Values.oap.name -}} +{{- $namespace := .Release.Namespace -}} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "skywalking.fullname" . }}-oap-config +data: + application.yml: |- + cluster: + kubernetes: + watchTimeoutSeconds: 60 + labelSelector: app={{ $oapService }} + uidEnvName: SKYWALKING_COLLECTOR_UID + namespace: {{ $namespace }} + core: + default: + restHost: 0.0.0.0 + restPort: 12800 + restContextPath: / + gRPCHost: 0.0.0.0 + gRPCPort: 11800 + downsampling: + - Hour + - Day + - Month + recordDataTTL: 90 # Unit is minute + minuteMetricsDataTTL: 90 # Unit is minute + hourMetricsDataTTL: 36 # Unit is hour + dayMetricsDataTTL: 45 # Unit is day + monthMetricsDataTTL: 18 # Unit is month + storage: + elasticsearch: + clusterNodes: skywalking-elasticsearch:9200 + indexShardsNumber: 2 + indexReplicasNumber: 0 + bulkActions: 2000 # Execute the bulk every 2000 requests + bulkSize: 20 # flush the bulk every 20mb + flushInterval: 10 # flush the bulk every 10 seconds whatever the number of requests + concurrentRequests: 2 # the number of concurrent requests + receiver-register: + default: + receiver-trace: + default: + bufferPath: /trace-buffer/ # Path to trace buffer files, suggest to use absolute path + bufferOffsetMaxFileSize: 100 # Unit is MB + bufferDataMaxFileSize: 500 # Unit is MB + bufferFileCleanWhenRestart: false + receiver-jvm: + default: + service-mesh: + default: + bufferPath: /mesh-buffer/ # Path to trace buffer files, suggest to use absolute path + bufferOffsetMaxFileSize: 100 # Unit is MB + bufferDataMaxFileSize: 500 # Unit is MB + bufferFileCleanWhenRestart: false + istio-telemetry: + default: + query: + graphql: + path: /graphql + alarm: + default: + telemetry: + prometheus: + + log4j2.xml: |- + <Configuration status="INFO"> + <Appenders> + <Console name="Console" target="SYSTEM_OUT"> + <PatternLayout charset="UTF-8" pattern="%d - %c -%-4r [%t] %-5p %x - %m%n"/> + </Console> + </Appenders> + <Loggers> + <logger name="org.eclipse.jetty" level="INFO"/> + <logger name="org.apache.zookeeper" level="INFO"/> + <logger name="org.elasticsearch.common.network.IfConfig" level="INFO"/> + <logger name="io.grpc.netty" level="INFO"/> + <logger name="org.apache.skywalking.oap.server.receiver.istio.telemetry" level="DEBUG"/> + <Root level="INFO"> + <AppenderRef ref="Console"/> + </Root> + </Loggers> + </Configuration> + + alarm-settings.yml: |- + rules: + service_resp_time_rule: + indicator-name: service_resp_time + include-names: + - dubbox-provider + - dubbox-consumer + threshold: 1000 + op: ">" + period: 10 + count: 1 + webhooks: + + component-libraries.yml: |- + Tomcat: + id: 1 + languages: Java + HttpClient: + id: 2 + languages: Java,C#,Node.js + Dubbo: + id: 3 + languages: Java + H2: + id: 4 + languages: Java + Mysql: + id: 5 + languages: Java,C#,Node.js + ORACLE: + id: 6 + languages: Java + Redis: + id: 7 + languages: Java,C#,Node.js + Motan: + id: 8 + languages: Java + MongoDB: + id: 9 + languages: Java,C#,Node.js + Resin: + id: 10 + languages: Java + Feign: + id: 11 + languages: Java + OKHttp: + id: 12 + languages: Java + SpringRestTemplate: + id: 13 + languages: Java + SpringMVC: + id: 14 + languages: Java + Struts2: + id: 15 + languages: Java + NutzMVC: + id: 16 + languages: Java + NutzHttp: + id: 17 + languages: Java + JettyClient: + id: 18 + languages: Java + JettyServer: + id: 19 + languages: Java + Memcached: + id: 20 + languages: Java + ShardingJDBC: + id: 21 + languages: Java + PostgreSQL: + id: 22 + languages: Java,C#,Node.js + GRPC: + id: 23 + languages: Java + ElasticJob: + id: 24 + languages: Java + RocketMQ: + id: 25 + languages: Java + httpasyncclient: + id: 26 + languages: Java + Kafka: + id: 27 + languages: Java + ServiceComb: + id: 28 + languages: Java + Hystrix: + id: 29 + languages: Java + Jedis: + id: 30 + languages: Java + SQLite: + id: 31 + languages: Java,C# + h2-jdbc-driver: + id: 32 + languages: Java + mysql-connector-java: + id: 33 + languages: Java + ojdbc: + id: 34 + languages: Java + Spymemcached: + id: 35 + languages: Java + Xmemcached: + id: 36 + languages: Java + postgresql-jdbc-driver: + id: 37 + languages: Java + rocketMQ-producer: + id: 38 + languages: Java + rocketMQ-consumer: + id: 39 + languages: Java + kafka-producer: + id: 40 + languages: Java + kafka-consumer: + id: 41 + languages: Java + mongodb-driver: + id: 42 + languages: Java + SOFARPC: + id: 43 + languages: Java + ActiveMQ: + id: 44 + languages: Java + activemq-producer: + id: 45 + languages: Java + activemq-consumer: + id: 46 + languages: Java + Elasticsearch: + id: 47 + languages: Java + transport-client: + id: 48 + languages: Java + http: + id: 49 + languages: Java,C#,Node.js + rpc: + id: 50 + languages: Java,C#,Node.js + RabbitMQ: + id: 51 + languages: Java + rabbitmq-producer: + id: 52 + languages: Java + rabbitmq-consumer: + id: 53 + languages: Java + Canal: + id: 54 + languages: Java + Gson: + id: 55 + languages: Java + Redisson: + id: 56 + languages: Java + AspNetCore: + id: 3001 + languages: C# + EntityFrameworkCore: + id: 3002 + languages: C# + SqlClient: + id: 3003 + languages: C# + CAP: + id: 3004 + languages: C# + StackExchange.Redis: + id: 3005 + languages: C# + SqlServer: + id: 3006 + languages: C# + Npgsql: + id: 3007 + languages: C# + MySqlConnector: + id: 3008 + languages: C# + EntityFrameworkCore.InMemory: + id: 3009 + languages: C# + EntityFrameworkCore.SqlServer: + id: 3010 + languages: C# + EntityFrameworkCore.Sqlite: + id: 3011 + languages: C# + Pomelo.EntityFrameworkCore.MySql: + id: 3012 + languages: C# + Npgsql.EntityFrameworkCore.PostgreSQL: + id: 3013 + languages: C# + InMemoryDatabase: + id: 3014 + languages: C# + AspNet: + id: 3015 + languages: C# + + # NoeJS components + # [4000, 5000) for Node.js agent + HttpServer: + id: 4001 + languages: Node.js + express: + id: 4002 + languages: Node.js + Egg: + id: 4003 + languages: Node.js + Koa: + id: 4004 + languages: Node.js + + # Component Server mapping defines the server display names of some components + # e.g. + # Jedis is a client library in Java for Redis server + Component-Server-Mappings: + mongodb-driver: MongoDB + rocketMQ-producer: RocketMQ + rocketMQ-consumer: RocketMQ + kafka-producer: Kafka + kafka-consumer: Kafka + activemq-producer: ActiveMQ + activemq-consumer: ActiveMQ + rabbitmq-producer: RabbitMQ + rabbitmq-consumer: RabbitMQ + postgresql-jdbc-driver: PostgreSQL + Xmemcached: Memcached + Spymemcached: Memcached + h2-jdbc-driver: H2 + mysql-connector-java: Mysql + Jedis: Redis + StackExchange.Redis: Redis + Redisson: Redis + SqlClient: SqlServer + Npgsql: PostgreSQL + MySqlConnector: Mysql + EntityFrameworkCore.InMemory: InMemoryDatabase + EntityFrameworkCore.SqlServer: SqlServer + EntityFrameworkCore.Sqlite: SQLite + Pomelo.EntityFrameworkCore.MySql: Mysql + Npgsql.EntityFrameworkCore.PostgreSQL: PostgreSQL + transport-client: Elasticsearch + + diff --git a/helm/charts/6/6.0.0-GA/skywalking/templates/oap/oap-deployment.yml b/helm/charts/6/6.0.0-GA/skywalking/templates/oap/oap-deployment.yml new file mode 100644 index 0000000..2bfd271 --- /dev/null +++ b/helm/charts/6/6.0.0-GA/skywalking/templates/oap/oap-deployment.yml @@ -0,0 +1,59 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ template "skywalking.fullname" . }}-oap + labels: + app: {{ .Values.oap.name }} +spec: + replicas: {{ .Values.oap.replicas }} + selector: + matchLabels: + app: {{ .Values.oap.name }} + template: + metadata: + labels: + app: {{ .Values.oap.name }} + spec: + serviceAccountName: {{ .Values.oap.name }} + containers: + - name: {{ .Values.oap.name }} + image: {{ .Values.oap.image.repository }}:{{ .Values.oap.image.tag }} + ports: + - containerPort: {{ .Values.oap.ports.grpc }} + name: grpc + - containerPort: {{ .Values.oap.ports.rest }} + name: rest +{{- if .Values.oap.resources }} + resources: +{{ toYaml .Values.oap.resources | indent 10 }} +{{- end }} + env: + - name: JAVA_OPTS + value: {{ .Values.oap.env.javaOpts }} + - name: SKYWALKING_COLLECTOR_UID + valueFrom: + fieldRef: + fieldPath: metadata.uid + volumeMounts: + - name: config + mountPath: /skywalking/config + volumes: + - name: config + configMap: + name: {{ template "skywalking.fullname" . }}-oap-config \ No newline at end of file diff --git a/helm/charts/6/6.0.0-GA/skywalking/templates/oap/oap-role.yaml b/helm/charts/6/6.0.0-GA/skywalking/templates/oap/oap-role.yaml new file mode 100644 index 0000000..a348796 --- /dev/null +++ b/helm/charts/6/6.0.0-GA/skywalking/templates/oap/oap-role.yaml @@ -0,0 +1,24 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ template "skywalking.fullname" . }}-oap +rules: +- apiGroups: [""] + resources: ["pods"] + verbs: ["get", "watch", "list"] \ No newline at end of file diff --git a/helm/charts/6/6.0.0-GA/skywalking/templates/oap/oap-rolebinding.yaml b/helm/charts/6/6.0.0-GA/skywalking/templates/oap/oap-rolebinding.yaml new file mode 100644 index 0000000..53ce80a --- /dev/null +++ b/helm/charts/6/6.0.0-GA/skywalking/templates/oap/oap-rolebinding.yaml @@ -0,0 +1,27 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: {{ template "skywalking.fullname" . }}-oap +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: {{ template "skywalking.fullname" . }}-oap +subjects: +- kind: ServiceAccount + name: {{ template "skywalking.fullname" . }}-oap \ No newline at end of file diff --git a/helm/charts/6/6.0.0-GA/skywalking/templates/oap/oap-service.yml b/helm/charts/6/6.0.0-GA/skywalking/templates/oap/oap-service.yml new file mode 100644 index 0000000..192ea6c --- /dev/null +++ b/helm/charts/6/6.0.0-GA/skywalking/templates/oap/oap-service.yml @@ -0,0 +1,31 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: v1 +kind: Service +metadata: + name: {{ template "skywalking.fullname" . }}-oap + labels: + service: {{ .Values.oap.name }} +spec: + type: {{ .Values.oap.service.type }} + ports: + - port: {{ .Values.oap.ports.rest }} + name: rest + - port: {{ .Values.oap.ports.grpc }} + name: grpc + selector: + app: {{ .Values.oap.name }} \ No newline at end of file diff --git a/helm/charts/6/6.0.0-GA/skywalking/templates/oap/oap-serviceaccount.yml b/helm/charts/6/6.0.0-GA/skywalking/templates/oap/oap-serviceaccount.yml new file mode 100644 index 0000000..addabf9 --- /dev/null +++ b/helm/charts/6/6.0.0-GA/skywalking/templates/oap/oap-serviceaccount.yml @@ -0,0 +1,23 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ template "skywalking.fullname" . }}-oap + + + diff --git a/helm/charts/6/6.0.0-GA/skywalking/templates/ui/ui-deployment.yml b/helm/charts/6/6.0.0-GA/skywalking/templates/ui/ui-deployment.yml new file mode 100644 index 0000000..b11f9fc --- /dev/null +++ b/helm/charts/6/6.0.0-GA/skywalking/templates/ui/ui-deployment.yml @@ -0,0 +1,45 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ template "skywalking.fullname" . }}-ui + labels: + app: {{ .Values.ui.name }} +spec: + replicas: {{ .Values.ui.replicas }} + selector: + matchLabels: + app: {{ .Values.ui.name }} + template: + metadata: + labels: + app: {{ .Values.ui.name }} + spec: + containers: + - name: {{ .Values.ui.name }} + image: {{ .Values.ui.image.repository }}:{{ .Values.ui.image.tag }} + ports: + - containerPort: {{ .Values.ui.ports.page }} + name: page +{{- if .Values.ui.resources }} + resources: +{{ toYaml .Values.ui.resources | indent 10 }} +{{- end }} + env: + - name: collector.ribbon.listOfServers + value: {{ .Values.oap.name }}:{{ .Values.oap.ports.rest }} diff --git a/helm/charts/6/6.0.0-GA/skywalking/templates/ui/ui-service.yml b/helm/charts/6/6.0.0-GA/skywalking/templates/ui/ui-service.yml new file mode 100644 index 0000000..ac5c26a --- /dev/null +++ b/helm/charts/6/6.0.0-GA/skywalking/templates/ui/ui-service.yml @@ -0,0 +1,30 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: v1 +kind: Service +metadata: + name: {{ template "skywalking.fullname" . }}-ui + labels: + service: {{ .Values.ui.name }} +spec: + ports: + - port: {{ .Values.ui.ports.page }} + name: page + targetPort: page + type: {{ .Values.ui.service.type }} + selector: + app: {{ .Values.ui.name }} \ No newline at end of file diff --git a/helm/charts/6/6.0.0-GA/skywalking/values.yaml b/helm/charts/6/6.0.0-GA/skywalking/values.yaml new file mode 100644 index 0000000..27604d9 --- /dev/null +++ b/helm/charts/6/6.0.0-GA/skywalking/values.yaml @@ -0,0 +1,111 @@ +# Default values for skywalking. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +elasticsearch: + name: skywalking-elasticsearch + replicas: 3 + image: + repository: docker.elastic.co/elasticsearch/elasticsearch-oss + tag: 6.3.2 + pullPolicy: IfNotPresent + ports: + http: 9200 + tcp: 9300 + clusterHost: discovery.zen.ping.unicast.hosts + env: + esJavaOpts: "-Xms4g -Xmx4g" + resources: + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + limits: + # cpu: 100m + memory: 16Gi + requests: + # cpu: 100m + memory: 8Gi + persistence: + enabled: true + ## data Persistent Volume Storage Class + ## If defined, storageClassName: <storageClass> + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + ## + storageClass: fast + ## + ## If you want to reuse an existing claim, you can pass the name of the PVC using + ## the existingClaim variable + # existingClaim: your-claim + accessMode: ReadWriteOnce + size: 30Gi + terminationGracePeriodSeconds: 300 + +oap: + name: skywalking-oap + image: + repository: skywalking/oap + tag: 6.0.0-GA + pullPolicy: IfNotPresent + ports: + grpc: 11800 + rest: 12800 + replicas: 3 + service: + type: ClusterIP + env: + javaOpts: "-Xms256M -Xmx512M" + resources: + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + limits: + # cpu: 100m + memory: 2Gi + requests: + # cpu: 100m + memory: 1Gi + +ui: + name: skywalking-ui + replicas: 1 + image: + repository: skywalking/ui + tag: 6.0.0-GA + pullPolicy: IfNotPresent + ports: + page: 8080 + ingress: + enabled: false + annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + path: / + hosts: + - chart-example.local + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + service: + type: NodePort + port: 80 + resources: + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + limits: + # cpu: 100m + memory: 2Gi + requests: + # cpu: 100m + memory: 1Gi + + +nameOverride: "" +fullnameOverride: ""