load_tests/daemonset/cloudwatch.yaml (236 lines of code) (raw):

apiVersion: v1 kind: ServiceAccount metadata: name: load-test-fluent-bit-eks namespace: load-test-fluent-bit-eks-ns --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: load-test-fluent-bit-eks-role rules: - apiGroups: [""] resources: - namespaces - pods verbs: ["get", "list", "watch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: load-test-fluent-bit-eks-role-binding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: load-test-fluent-bit-eks-role subjects: - kind: ServiceAccount name: load-test-fluent-bit-eks namespace: load-test-fluent-bit-eks-ns --- apiVersion: v1 kind: ConfigMap metadata: name: cloudwatch-$THROUGHPUT-config namespace: load-test-fluent-bit-eks-ns labels: k8s-app: load-test-fluent-bit-eks data: fluent-bit.conf: | [SERVICE] Flush 1 Grace 30 Log_Level info Daemon off Parsers_File parsers.conf HTTP_Server On HTTP_Listen 0.0.0.0 HTTP_Port 2020 @INCLUDE application-log.conf application-log.conf: | [INPUT] Name tail Tag kube.* Path /var/log/containers/ds-cloudwatch-$THROUGHPUT* Docker_Mode On Parser docker DB /var/fluent-bit/cloudwatch/$THROUGHPUT/flb_log.db DB.locking true Mem_Buf_Limit 5GB buffer_chunk_size 80MB buffer_max_size 5GB Skip_Long_Lines On Skip_Empty_Lines On Refresh_Interval 10 Read_from_Head On Rotate_Wait 600 [FILTER] Name kubernetes Match kube.* Kube_URL https://kubernetes.default.svc:443 Kube_Tag_Prefix kube.var.log.containers Merge_Log On Merge_Log_Key log_processed K8S-Logging.Parser On K8S-Logging.Exclude Off Labels Off Annotations Off [OUTPUT] Name cloudwatch_logs Match kube.* region us-west-2 log_group_name $CW_LOG_GROUP_NAME log_stream_prefix load-test-fluent-bit- auto_create_group false log_key log workers 1 auto_retry_requests true net.keepalive off retry_limit 5 parsers.conf: | [PARSER] Name docker Format json Time_Key time Time_Format %Y-%m-%dT%H:%M:%S.%LZ [PARSER] Name syslog Format regex Regex ^(?<time>[^ ]* {1,2}[^ ]* [^ ]*) (?<host>[^ ]*) (?<ident>[a-zA-Z0-9_\/\.\-]*)(?:\[(?<pid>[0-9]+)\])?(?:[^\:]*\:)? *(?<message>.*)$ Time_Key time Time_Format %b %d %H:%M:%S [PARSER] Name container_firstline Format regex Regex (?<log>(?<="log":")\S(?!\.).*?)(?<!\\)".*(?<stream>(?<="stream":").*?)".*(?<time>\d{4}-\d{1,2}-\d{1,2}T\d{2}:\d{2}:\d{2}\.\w*).*(?=}) Time_Key time Time_Format %Y-%m-%dT%H:%M:%S.%LZ [PARSER] Name cwagent_firstline Format regex Regex (?<log>(?<="log":")\d{4}[\/-]\d{1,2}[\/-]\d{1,2}[ T]\d{2}:\d{2}:\d{2}(?!\.).*?)(?<!\\)".*(?<stream>(?<="stream":").*?)".*(?<time>\d{4}-\d{1,2}-\d{1,2}T\d{2}:\d{2}:\d{2}\.\w*).*(?=}) Time_Key time Time_Format %Y-%m-%dT%H:%M:%S.%LZ --- apiVersion: apps/v1 kind: DaemonSet metadata: name: ds-cloudwatch-$THROUGHPUT namespace: load-test-fluent-bit-eks-ns labels: k8s-app: load-test-fluent-bit-eks version: v1 kubernetes.io/cluster-service: "true" spec: selector: matchLabels: k8s-app: load-test-fluent-bit-eks template: metadata: labels: k8s-app: load-test-fluent-bit-eks version: v1 kubernetes.io/cluster-service: "true" spec: containers: - name: fluent-bit image: $FLUENT_BIT_IMAGE imagePullPolicy: Always resources: limits: memory: 1Gi requests: cpu: 1.0 memory: 1Gi volumeMounts: # Please don't change below read-only permissions - name: fluentbitstate mountPath: /var/fluent-bit/state - name: fluentbitcloudwatch$THROUGHPUT mountPath: /var/fluent-bit/cloudwatch/$THROUGHPUT - name: varlog mountPath: /var/log readOnly: true - name: varlibdockercontainers mountPath: /var/lib/docker/containers readOnly: true - name: cloudwatch-$THROUGHPUT-config mountPath: /fluent-bit/etc/ - name: app-one image: $APP_IMAGE imagePullPolicy: Always env: - name: TIME value: "$TIME" - name: ITERATION value: "$THROUGHPUT" volumeMounts: - mountPath: /var/log name: varlog resources: requests: cpu: 1.0 memory: 1Gi limits: memory: 1Gi - name: app-two image: $APP_IMAGE imagePullPolicy: Always env: - name: TIME value: "$TIME" - name: ITERATION value: "$THROUGHPUT" volumeMounts: - mountPath: /var/log name: varlog resources: requests: cpu: 1.0 memory: 1Gi limits: memory: 1Gi - name: app-third image: $APP_IMAGE imagePullPolicy: Always env: - name: TIME value: "$TIME" - name: ITERATION value: "$THROUGHPUT" volumeMounts: - mountPath: /var/log name: varlog resources: requests: cpu: 1.0 memory: 1Gi limits: memory: 1Gi nodeSelector: destination: cloudwatch terminationGracePeriodSeconds: 60 volumes: - name: fluentbitstate hostPath: path: /var/fluent-bit/state - name: fluentbitcloudwatch$THROUGHPUT hostPath: path: /var/fluent-bit/cloudwatch/$THROUGHPUT - name: varlog hostPath: path: /var/log - name: varlibdockercontainers hostPath: path: /var/lib/docker/containers - name: cloudwatch-$THROUGHPUT-config configMap: name: cloudwatch-$THROUGHPUT-config serviceAccountName: load-test-fluent-bit-eks tolerations: - key: node-role.kubernetes.io/master operator: Exists effect: NoSchedule - operator: "Exists" effect: "NoExecute" - operator: "Exists" effect: "NoSchedule"