blob: 1e5b886b3d10716d4b4d4fc6421b45d4e9de09f3 [file] [log] [blame]
# Copyright 2017-present Open Networking Foundation
#
# Licensed 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.
#
# This file describes a cluster of 3 fluentd forwarders that
# send logs to a cluster of 2 fluentd aggregators: one active
# and one standby.
#
# The active fluentd aggregator
#
apiVersion: v1
kind: Service
metadata:
name: fluentdactv
namespace: {{ .Values.global.namespace }}
serviceAccountName: {{ .Values.global.namespace }}-serviceaccount
spec:
clusterIP: None
selector:
app: fluentdactv
ports:
- protocol: TCP
port: 24224
targetPort: 24224
---
#
# Ensure that the active aggregator is not deployed to the
# same node as the standby
#
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: fluentdactv
namespace: {{ .Values.global.namespace }}
serviceAccountName: {{ .Values.global.namespace }}-serviceaccount
spec:
replicas: 1
template:
metadata:
labels:
app: fluentdactv
annotations:
cni: "weave"
spec:
serviceAccountName: {{ .Values.global.namespace }}-serviceaccount
terminationGracePeriodSeconds: 10
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- fluentdstby
topologyKey: kubernetes.io/hostname
containers:
- name: fluentdactv
image: {{ .Values.k8s_docker_registry }}{{ .Values.images.fluentd.repository }}:{{ .Values.images.fluentd.tag }}
imagePullPolicy: {{ .Values.image_pull_policy }}
volumeMounts:
- name: fluentd-log
mountPath: /fluentd/log
- name: config-volume
mountPath: /etc/fluentd-config
ports:
- containerPort: 24224
env:
- name: FLUENTD_ARGS
value: -c /etc/fluentd-config/fluentd-agg.conf
volumes:
- name: config-volume
configMap:
name: fluentd-config
- name: fluentd-log
hostPath:
path: /var/log/voltha/logging_volume
type: Directory
---
#
# The standby fluentd aggregator
#
apiVersion: v1
kind: Service
metadata:
name: fluentdstby
namespace: {{ .Values.global.namespace }}
spec:
clusterIP: None
selector:
app: fluentdstby
ports:
- protocol: TCP
port: 24224
targetPort: 24224
---
#
# Ensure thet the standby aggregator is not deployed to the
# same node as the active
#
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: fluentdstby
namespace: {{ .Values.global.namespace }}
spec:
replicas: 1
template:
metadata:
labels:
app: fluentdstby
annotations:
cni: "weave"
spec:
serviceAccountName: {{ .Values.global.namespace }}-serviceaccount
terminationGracePeriodSeconds: 10
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- fluentdactv
topologyKey: kubernetes.io/hostname
containers:
- name: fluentdstby
image: k8s.gcr.io/fluentd-gcp:1.30
imagePullPolicy: Never
volumeMounts:
- name: fluentd-log
mountPath: /fluentd/log
- name: config-volume
mountPath: /etc/fluentd-config
ports:
- containerPort: 24224
env:
- name: FLUENTD_ARGS
value: -c /etc/fluentd-config/fluentd-agg.conf
volumes:
- name: config-volume
configMap:
name: fluentd-config
- name: fluentd-log
hostPath:
path: /var/log/voltha/logging_volume
type: Directory
---
#
# The cluster of fluentd forwarders. The service itself will be removed once all fluentd forwarding logic are removed
# from the specific voltha services. Fluentd is defined as a DaemonSet which implies that only 1 instance will
# run on each node. Each instance will also gets its configuration data from a config map (fluentd-config.yml).
#
apiVersion: v1
kind: Service
metadata:
name: fluentd
namespace: {{ .Values.global.namespace }}
spec:
clusterIP: None
selector:
app: fluentd
ports:
- protocol: TCP
port: 24224
targetPort: 24224
---
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: fluentd
namespace: {{ .Values.global.namespace }}
spec:
template:
metadata:
labels:
app: fluentd
annotations:
cni: "weave"
spec:
serviceAccountName: {{ .Values.global.namespace }}-serviceaccount
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
containers:
- name: fluentd
image: k8s.gcr.io/fluentd-gcp:1.30
env:
- name: FLUENTD_ARGS
value: -c /etc/fluentd-config/fluentd.conf
volumeMounts:
- name: varlog
mountPath: /var/log/
- name: varlogcontainers
mountPath: /var/lib/docker/containers/
- name: config-volume
mountPath: /etc/fluentd-config
volumes:
- name: varlog
hostPath:
path: /var/log/
- name: varlogcontainers
hostPath:
path: /var/lib/docker/containers/
- name: config-volume
configMap:
name: fluentd-config