diff --git a/infra/vultr-kubernetes/chart/fluent-bit/values.yaml b/infra/vultr-kubernetes/chart/fluent-bit/values.yaml new file mode 100644 index 0000000..c303c88 --- /dev/null +++ b/infra/vultr-kubernetes/chart/fluent-bit/values.yaml @@ -0,0 +1,42 @@ +config: + service: | + [SERVICE] + Daemon Off + Flush {{ .Values.flush }} + Log_Level {{ .Values.logLevel }} + Parsers_File /fluent-bit/etc/parsers.conf + Parsers_File /fluent-bit/etc/conf/custom_parsers.conf + inputs: | + [INPUT] + Name tail + Path /var/log/containers/*.log + multiline.parser docker, cri + Tag kube.* + Mem_Buf_Limit 5MB + Skip_Long_Lines On + + [INPUT] + Name systemd + Tag host.* + Systemd_Filter _SYSTEMD_UNIT=kubelet.service + Read_From_Tail On + filters: | + [FILTER] + Name kubernetes + Match kube.*Merge_log On + Keep_Log Off + K8S-Logging.Parser On + K8S-Logging.Exclude On + outputs: | + [OUTPUT] + Name openobserve + Match * + URI /api/default/default/_json + Host openobserve.logging.svc.cluster.local + Port 5080 + tls On + Format json + Json_date_key _timestamp + Json_date_format iso8601 + HTTP_User mail@shockrah.xyz + HTTP_Passwd kXWpwEK4SIxUzjgp diff --git a/infra/vultr-kubernetes/fluent-bit.tf b/infra/vultr-kubernetes/fluent-bit.tf new file mode 100644 index 0000000..a10b286 --- /dev/null +++ b/infra/vultr-kubernetes/fluent-bit.tf @@ -0,0 +1,10 @@ +resource helm_release "fluent_bit" { + name = "fluent-bit" + repository = "https://fluent.github.io/helm-charts" + chart = "fluent-bit" + namespace = kubernetes_namespace.logging.metadata[0].name + + values = [ + file("${path.module}/chart/fluent-bit/values.yaml") + ] +} \ No newline at end of file diff --git a/infra/vultr-kubernetes/observe.yaml b/infra/vultr-kubernetes/observe.yaml new file mode 100644 index 0000000..c905e40 --- /dev/null +++ b/infra/vultr-kubernetes/observe.yaml @@ -0,0 +1,73 @@ +# This yaml file is a sample file used to setup open observe bu tdoesn't contain any relevant data +apiVersion: v1 +kind: Service +metadata: + name: openobserve + namespace: openobserve +spec: + clusterIP: None + selector: + app: openobserve + ports: + - name: http + port: 5080 + targetPort: 5080 +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: openobserve + namespace: openobserve + labels: + name: openobserve +spec: + serviceName: openobserve + replicas: 1 + selector: + matchLabels: + name: openobserve + app: openobserve + template: + metadata: + labels: + name: openobserve + app: openobserve + spec: + securityContext: + fsGroup: 2000 + runAsUser: 10000 + runAsGroup: 3000 + runAsNonRoot: true + containers: + - name: openobserve + image: o2cr.ai/openobserve/openobserve-enterprise:v0.15.3 + env: + - name: ZO_ROOT_USER_EMAIL + value: root@example.com + - name: ZO_ROOT_USER_PASSWORD + value: Complexpass#123 + - name: ZO_DATA_DIR + value: /data + imagePullPolicy: Always + resources: + limits: + cpu: 4096m + memory: 2048Mi + requests: + cpu: 256m + memory: 50Mi + ports: + - containerPort: 5080 + name: http + volumeMounts: + - name: data + mountPath: /data + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi