blob: 60d038837f9d477139988e3cd87d7fc865cab77b [file] [log] [blame]
# 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:
labels:
app: {{ template "skywalking.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
component: "{{ .Values.oap.name }}"
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
name: {{ template "skywalking.oap.fullname" . }}
spec:
replicas: {{ .Values.oap.replicas }}
selector:
matchLabels:
app: {{ template "skywalking.name" . }}
component: "{{ .Values.oap.name }}"
release: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ template "skywalking.name" . }}
component: "{{ .Values.oap.name }}"
release: {{ .Release.Name }}
{{- if .Values.oap.podAnnotations }}
annotations:
{{ toYaml .Values.oap.podAnnotations | indent 8 }}
{{- end }}
spec:
serviceAccountName: {{ template "skywalking.serviceAccountName.oap" . }}
affinity:
{{- if eq .Values.oap.antiAffinity "hard" }}
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- topologyKey: "kubernetes.io/hostname"
labelSelector:
matchLabels:
app: "{{ template "skywalking.name" . }}"
release: "{{ .Release.Name }}"
component: "{{ .Values.oap.name }}"
{{- else if eq .Values.oap.antiAffinity "soft" }}
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
podAffinityTerm:
topologyKey: kubernetes.io/hostname
labelSelector:
matchLabels:
app: "{{ template "skywalking.name" . }}"
release: "{{ .Release.Name }}"
component: "{{ .Values.oap.name }}"
{{- end }}
{{- with .Values.oap.nodeAffinity }}
nodeAffinity:
{{ toYaml . | indent 10 }}
{{- end }}
{{- if .Values.oap.nodeSelector }}
nodeSelector:
{{ toYaml .Values.oap.nodeSelector | indent 8 }}
{{- end }}
{{- if .Values.oap.tolerations }}
tolerations:
{{ toYaml .Values.oap.tolerations | indent 8 }}
{{- end }}
initContainers:
{{- include "skywalking.containers.wait-for-es" . | nindent 6 }}
containers:
- name: {{ .Values.oap.name }}
image: "{{ .Values.oap.image.repository }}:{{ .Values.oap.image.tag }}"
imagePullPolicy: {{ .Values.oap.image.pullPolicy }}
livenessProbe:
tcpSocket:
port: 12800
initialDelaySeconds: 15
periodSeconds: 20
readinessProbe:
tcpSocket:
port: 12800
initialDelaySeconds: 15
periodSeconds: 20
ports:
- containerPort: 11800
name: grpc
- containerPort: 12800
name: rest
{{- if .Values.oap.resources }}
resources:
{{ toYaml .Values.oap.resources | indent 10 }}
{{- end }}
env:
- name: JAVA_OPTS
value: "{{ .Values.oap.javaOpts }} -Dmode=no-init"
- name: SW_CLUSTER
value: kubernetes
- name: SW_CLUSTER_K8S_NAMESPACE
value: "{{ .Release.Namespace }}"
{{- if .Values.oap.dynamicConfigEnabled }}
- name: SW_CONFIGURATION
value: k8s-configmap
- name: SW_CONFIG_CONFIGMAP_PERIOD
value: "60"
{{- end }}
- name: SW_CLUSTER_K8S_LABEL
value: "app={{ template "skywalking.name" . }},release={{ .Release.Name }},component={{ .Values.oap.name }}"
- name: SKYWALKING_COLLECTOR_UID
valueFrom:
fieldRef:
fieldPath: metadata.uid
- name: SW_STORAGE
value: {{ .Values.oap.storageType }}
{{- if .Values.oap.envoy.als.enabled }}
- name: SW_ENVOY_ALS_ENABLED
value: {{ .Values.oap.envoy.als.enabled | quote}}
{{- end }}
- name: SW_STORAGE_ES_CLUSTER_NODES
{{- if .Values.elasticsearch.enabled }}
value: "{{ .Values.elasticsearch.clusterName }}-{{ .Values.elasticsearch.nodeGroup }}:{{ .Values.elasticsearch.httpPort }}"
{{- else }}
value: "{{ .Values.elasticsearch.config.host }}:{{ .Values.elasticsearch.config.port.http }}"
{{- end }}
{{- if not .Values.elasticsearch.enabled }}
{{- if .Values.elasticsearch.config.user }}
- name: SW_ES_USER
value: "{{ .Values.elasticsearch.config.user }}"
{{- end }}
{{- if .Values.elasticsearch.config.password }}
- name: SW_ES_PASSWORD
value: "{{ .Values.elasticsearch.config.password }}"
{{- end }}
{{- end }}
{{- range $key, $value := .Values.oap.env }}
- name: {{ $key }}
value: {{ $value | quote }}
{{- end }}