From e79a1d2100f38a5b0360d0ab6148673fc260b3a8 Mon Sep 17 00:00:00 2001 From: Paul Czarkowski Date: Tue, 18 Apr 2023 09:19:28 -0400 Subject: [PATCH] create rosa-loki chart (#51) Signed-off-by: Paul Czarkowski --- README.md | 2 +- charts/rosa-loki/.helmignore | 23 +++ charts/rosa-loki/Chart.yaml | 12 ++ charts/rosa-loki/README.md | 181 ++++++++++++++++++ charts/rosa-loki/files/loki-logs.png | Bin 0 -> 117024 bytes charts/rosa-loki/files/operatorhub.yaml | 30 +++ charts/rosa-loki/templates/NOTES.txt | 0 charts/rosa-loki/templates/_helpers.tpl | 62 ++++++ .../templates/clusterlogforwarder.yaml | 20 ++ .../rosa-loki/templates/clusterlogging.yaml | 15 ++ .../templates/grafana-datasource.yaml | 39 ++++ charts/rosa-loki/templates/grafana-rbac.yaml | 29 +++ charts/rosa-loki/templates/lokistack.yaml | 19 ++ .../templates/secret-credentials.yaml | 13 ++ charts/rosa-loki/values.yaml | 16 ++ 15 files changed, 460 insertions(+), 1 deletion(-) create mode 100644 charts/rosa-loki/.helmignore create mode 100644 charts/rosa-loki/Chart.yaml create mode 100644 charts/rosa-loki/README.md create mode 100644 charts/rosa-loki/files/loki-logs.png create mode 100644 charts/rosa-loki/files/operatorhub.yaml create mode 100644 charts/rosa-loki/templates/NOTES.txt create mode 100644 charts/rosa-loki/templates/_helpers.tpl create mode 100644 charts/rosa-loki/templates/clusterlogforwarder.yaml create mode 100644 charts/rosa-loki/templates/clusterlogging.yaml create mode 100644 charts/rosa-loki/templates/grafana-datasource.yaml create mode 100644 charts/rosa-loki/templates/grafana-rbac.yaml create mode 100644 charts/rosa-loki/templates/lokistack.yaml create mode 100644 charts/rosa-loki/templates/secret-credentials.yaml create mode 100644 charts/rosa-loki/values.yaml diff --git a/README.md b/README.md index ab8b8bd..8a592ec 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ See [/charts](charts) for a list of charts. ## Starters -To create a new chat using one of our starters, clone down this repo and run +To create a new chart using one of our starters, clone down this repo and run ```bash helm create example-cr --starter $(pwd)/../starters/cr diff --git a/charts/rosa-loki/.helmignore b/charts/rosa-loki/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/charts/rosa-loki/.helmignore @@ -0,0 +1,23 @@ +# 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 +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/rosa-loki/Chart.yaml b/charts/rosa-loki/Chart.yaml new file mode 100644 index 0000000..fb29cf4 --- /dev/null +++ b/charts/rosa-loki/Chart.yaml @@ -0,0 +1,12 @@ +apiVersion: v2 +name: rosa-loki +description: A Helm chart for Kubernetes +type: application +version: 0.1.0 +dependencies: + - name: grafana-cr + version: "0.2.1" + repository: "https://rh-mobb.github.io/helm-charts/" +home: "https://rh-mobb.github.io/helm-charts/" +maintainers: + - name: rh-mobb diff --git a/charts/rosa-loki/README.md b/charts/rosa-loki/README.md new file mode 100644 index 0000000..f55e0a4 --- /dev/null +++ b/charts/rosa-loki/README.md @@ -0,0 +1,181 @@ +# Helm Chart to configure Lokistack on ROSA + +This helm chart will set up a ROSA cluster to store Audit, Infrastructure, and Application logs in Loki (backed by s3). + +## Prerequisites + +* A ROSA cluster +* Helm CLI + +## Prepare Environment + +1. Set some environment variables + + > Change these to suit your environment / cluster + + ```bash + export CLUSTER_NAME="$(whoami)-sts" + export NAMESPACE=cluster-logging + export AWS_REGION=us-east-1 + export SCRATCH=/tmp/rosa-loki + mkdir -p $SCRATCH + ``` + +1. Add the MOBB chart repository to your Helm + + ```bash + helm repo add mobb https://rh-mobb.github.io/helm-charts/ + ``` + +1. Update your repositories + + ```bash + helm repo update + ``` + +## Prepare AWS Account + +1. Create S3 bucket + + ```bash + aws s3api create-bucket --bucket "rosa-${CLUSTER_NAME}-loki" \ + --region "${AWS_REGION}" + ``` + +1. Create an IAM Policy + + ```bash + cat << EOF > ${SCRATCH}/policy.json + { + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "s3:ListBucket", + "s3:PutObject", + "s3:GetObject", + "s3:DeleteObject" + ], + "Resource": [ + "arn:aws:s3:::rosa-${CLUSTER_NAME}-loki", + "arn:aws:s3:::rosa-${CLUSTER_NAME}-loki/*" + ] + } + ] + } + EOF + POLICY_ARN=$(aws iam create-policy --policy-name "rosa-${CLUSTER_NAME}-loki" \ + --policy-document file:///${SCRATCH}/policy.json --query Policy.Arn --output text) + echo ${POLICY_ARN} + ``` + +1. Create an IAM user for Loki + + ```bash + aws iam create-user \ + --user-name rosa-${CLUSTER_NAME}-loki \ + > $SCRATCH/aws-user.json + ``` + +1. Create IAM Access Key and save it to variables + + ```bash + aws iam create-access-key \ + --user-name rosa-${CLUSTER_NAME}-loki \ + > $SCRATCH/aws-access-key.json + + AWS_ID=`cat $SCRATCH/aws-access-key.json | jq -r '.AccessKey.AccessKeyId'` + AWS_KEY=`cat $SCRATCH/aws-access-key.json | jq -r '.AccessKey.SecretAccessKey'` + ``` + +## Deploy and Configure Loki + +1. Create a namespace to deploy to + + ```bash + oc new-project $NAMESPACE + ``` + +1. Use the `mobb/operatorhub` chart to deploy the needed operators + + ```bash + helm upgrade -n $NAMESPACE custom-logging-operators \ + mobb/operatorhub --install \ + --values https://raw.githubusercontent.com/rh-mobb/helm-charts/main/charts/rosa-loki/files/operatorhub.yaml + ``` + +1. Wait until the two operators are running + + ```bash + oc -n openshift-logging rollout status \ + deployment cluster-logging-operator + oc -n $NAMESPACE rollout status deployment \ + grafana-operator-controller-manager + oc -n openshift-operators-redhat rollout status \ + deployment loki-operator-controller-manager + ``` + + ``` + deployment "cluster-logging-operator" successfully rolled out + deployment "grafana-operator-controller-manager" successfully rolled out + deployment "loki-operator-controller-manager" successfully rolled out + ``` + +## Deploy the Helm Chart + +1. Install a Chart + + ```bash + helm upgrade --install -n $NAMESPACE cluster-logging \ + --set "aws_access_key_id=${AWS_ID}" \ + --set "aws_access_key_secret=${AWS_KEY}" \ + --set "aws_region=${AWS_REGION}" \ + --set "aws_s3_bucket_name=rosa-${CLUSTER_NAME}-loki" \ + mobb/rosa-loki + ``` + +1. Check to see the Lokistack pods are started + + ```bash + oc -n openshift-logging get pods + ``` + + ``` + NAME READY STATUS RESTARTS AGE + cluster-logging-operator-6fd6dbc575-xzxpc 1/1 Running 0 38m + collector-4ckl2 2/2 Running 0 98s + collector-dw4jn 2/2 Running 0 97s + collector-fjv4p 2/2 Running 0 97s + collector-lth49 2/2 Running 0 97s + collector-qqxv8 2/2 Running 0 97s + logging-loki-compactor-0 1/1 Running 0 86s + logging-loki-distributor-79d8db5f89-xmpmz 1/1 Running 0 86s + logging-loki-gateway-69f68f5685-54bgz 2/2 Running 0 86s + logging-loki-gateway-69f68f5685-ql6hk 2/2 Running 0 86s + logging-loki-index-gateway-0 1/1 Running 0 86s + logging-loki-ingester-0 1/1 Running 0 86s + logging-loki-querier-766cfd6bcd-79k28 1/1 Running 0 86s + logging-loki-query-frontend-7f8cdb6885-x5n49 1/1 Running 0 86s + logging-view-plugin-b97d78895-wwqts 1/1 Running 0 102s + ``` + +> Note: If you want to view logs from the Console, you can enabled it via **Operators > Installed Operators > Red Hat OpenShift Logging > Console Plugin**. + +1. Fetch the Route for Grafana + + ```bash + oc get route grafana-route -o jsonpath='{"https://"}{.spec.host}{"\n"}' + ``` + + ``` + https://grafana-route-cluster-logging.apps.pczarkow-sts.h5yv.p1.openshiftapps.com + ``` + +1. Browse to the Route via your preferred Web browser and log in using your OpenShift credentials. + +1. Click the Compass icon in the menu and Click **Explore** + +1. Change the Source from `Grafana` to `Loki (Infrastructure)` and search for `{kubernetes_namespace_name="cluster-logging"}`. + + ![screenshot showing loki accessing logs](./files/loki-logs.png) diff --git a/charts/rosa-loki/files/loki-logs.png b/charts/rosa-loki/files/loki-logs.png new file mode 100644 index 0000000000000000000000000000000000000000..effd8450a22805fbad9127c39fe27c0fef5a8557 GIT binary patch literal 117024 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

G&TN^79knC%LC^t|Z)lbnM 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℘~t?FPy@7R4nt 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 literal 0 HcmV?d00001 diff --git a/charts/rosa-loki/files/operatorhub.yaml b/charts/rosa-loki/files/operatorhub.yaml new file mode 100644 index 0000000..98e6824 --- /dev/null +++ b/charts/rosa-loki/files/operatorhub.yaml @@ -0,0 +1,30 @@ +subscriptions: + - name: grafana-operator + channel: v4 + installPlanApproval: Automatic + source: community-operators + sourceNamespace: openshift-marketplace + - name: cluster-logging + namespace: openshift-logging + channel: stable + installPlanApproval: Automatic + source: redhat-operators + sourceNamespace: openshift-marketplace + - name: loki-operator + channel: stable + installPlanApproval: Automatic + source: redhat-operators + sourceNamespace: openshift-marketplace + namespace: openshift-operators-redhat +operatorGroups: + - name: cluster-logging + targetNamespace: ~ + - name: openshift-operators-redhat + namespace: openshift-operators-redhat + targetNamespace: all +catalogSources: [] +# - name: operatorhubio +# sourceType: grpc +# image: quay.io/operator-framework/upstream-community-operators:latest +# displayName: Community Operators +# publisher: OperatorHub.io diff --git a/charts/rosa-loki/templates/NOTES.txt b/charts/rosa-loki/templates/NOTES.txt new file mode 100644 index 0000000..e69de29 diff --git a/charts/rosa-loki/templates/_helpers.tpl b/charts/rosa-loki/templates/_helpers.tpl new file mode 100644 index 0000000..a7af4b6 --- /dev/null +++ b/charts/rosa-loki/templates/_helpers.tpl @@ -0,0 +1,62 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "rosa-loki.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 "rosa-loki.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 "rosa-loki.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "rosa-loki.labels" -}} +helm.sh/chart: {{ include "rosa-loki.chart" . }} +{{ include "rosa-loki.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "rosa-loki.selectorLabels" -}} +app.kubernetes.io/name: {{ include "rosa-loki.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "rosa-loki.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "rosa-loki.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/charts/rosa-loki/templates/clusterlogforwarder.yaml b/charts/rosa-loki/templates/clusterlogforwarder.yaml new file mode 100644 index 0000000..e6bba39 --- /dev/null +++ b/charts/rosa-loki/templates/clusterlogforwarder.yaml @@ -0,0 +1,20 @@ +apiVersion: logging.openshift.io/v1 +kind: ClusterLogForwarder +metadata: + name: instance + namespace: openshift-logging +spec: + pipelines: + - name: logs-to-default + inputRefs: + {{ if .Values.forward_infrastructure }} + - infrastructure + {{ end }} + {{ if .Values.forward_application }} + - application + {{ end }} + {{ if .Values.forward_audit }} + - audit + {{ end }} + outputRefs: + - default diff --git a/charts/rosa-loki/templates/clusterlogging.yaml b/charts/rosa-loki/templates/clusterlogging.yaml new file mode 100644 index 0000000..7424e37 --- /dev/null +++ b/charts/rosa-loki/templates/clusterlogging.yaml @@ -0,0 +1,15 @@ +apiVersion: logging.openshift.io/v1 +kind: ClusterLogging +metadata: + name: instance + namespace: openshift-logging + labels: + {{- include "rosa-loki.labels" . | nindent 4 }} +spec: + managementState: Managed + logStore: + type: lokistack + lokistack: + name: logging-loki + collection: + type: vector diff --git a/charts/rosa-loki/templates/grafana-datasource.yaml b/charts/rosa-loki/templates/grafana-datasource.yaml new file mode 100644 index 0000000..982edd7 --- /dev/null +++ b/charts/rosa-loki/templates/grafana-datasource.yaml @@ -0,0 +1,39 @@ +# https://github.com/grafana/loki/blob/main/operator/hack/addon_grafana_gateway_ocp_oauth.yaml +apiVersion: integreatly.org/v1alpha1 +kind: GrafanaDataSource +metadata: + name: {{ include "rosa-loki.fullname" . }}-prometheus + labels: + {{- include "rosa-loki.labels" . | nindent 4 }} +spec: + name: {{ include "rosa-loki.fullname" . }}.yaml + datasources: + {{ if .Values.forward_application }} + - name: Loki (Application) + type: loki + editable: true + access: proxy + url: https://logging-loki-gateway-http.openshift-logging.svc.cluster.local:8080/api/logs/v1/application/ + jsonData: + # tlsAuthWithCACert: true + tlsSkipVerify: true + {{ end }} + {{ if .Values.forward_infrastructure }} + - name: Loki (Infrastructure) + type: loki + editable: true + access: proxy + url: https://logging-loki-gateway-http.openshift-logging.svc.cluster.local:8080/api/logs/v1/infrastructure/ + jsonData: + # tlsAuthWithCACert: true + tlsSkipVerify: true + {{ end }} + {{ if .Values.forward_audit }} + - name: Loki (Audit) + type: loki + access: proxy + url: https://logging-loki-gateway-http.openshift-logging.svc.cluster.local:8080/api/logs/v1/audit/ + jsonData: + # tlsAuthWithCACert: true + tlsSkipVerify: true + {{ end }} diff --git a/charts/rosa-loki/templates/grafana-rbac.yaml b/charts/rosa-loki/templates/grafana-rbac.yaml new file mode 100644 index 0000000..133df5c --- /dev/null +++ b/charts/rosa-loki/templates/grafana-rbac.yaml @@ -0,0 +1,29 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ include "rosa-loki.fullname" . }}-grafana-auth-delegator + labels: + {{- include "rosa-loki.labels" . | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: system:auth-delegator +subjects: +- kind: ServiceAccount + name: grafana-serviceaccount + namespace: {{ .Release.Namespace }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ include "rosa-loki.fullname" . }}-users-application-logs-reader + labels: + {{- include "rosa-loki.labels" . | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: logging-application-logs-reader +subjects: +- apiGroup: rbac.authorization.k8s.io + kind: Group + name: system:authenticated diff --git a/charts/rosa-loki/templates/lokistack.yaml b/charts/rosa-loki/templates/lokistack.yaml new file mode 100644 index 0000000..7ce0ff3 --- /dev/null +++ b/charts/rosa-loki/templates/lokistack.yaml @@ -0,0 +1,19 @@ +apiVersion: loki.grafana.com/v1 +kind: LokiStack +metadata: + name: logging-loki + namespace: openshift-logging + labels: + {{- include "rosa-loki.labels" . | nindent 4 }} +spec: + size: {{ .Values.loki_size }} + storage: + schemas: + - version: v12 + effectiveDate: "2022-06-01" + secret: + name: {{ include "rosa-loki.fullname" . }}-loki-creds + type: s3 + storageClassName: {{ .Values.loki_storage_class }} + tenants: + mode: openshift-logging diff --git a/charts/rosa-loki/templates/secret-credentials.yaml b/charts/rosa-loki/templates/secret-credentials.yaml new file mode 100644 index 0000000..cf5167c --- /dev/null +++ b/charts/rosa-loki/templates/secret-credentials.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "rosa-loki.fullname" . }}-loki-creds + namespace: openshift-logging + labels: + {{- include "rosa-loki.labels" . | nindent 4 }} +stringData: + access_key_id: {{ .Values.aws_access_key_id }} + access_key_secret: {{ .Values.aws_access_key_secret }} + bucketnames: {{ .Values.aws_s3_bucket_name }} + endpoint: https://s3.{{ .Values.aws_region }}.amazonaws.com + region: {{ .Values.aws_region }} diff --git a/charts/rosa-loki/values.yaml b/charts/rosa-loki/values.yaml new file mode 100644 index 0000000..9f9c2da --- /dev/null +++ b/charts/rosa-loki/values.yaml @@ -0,0 +1,16 @@ +aws_access_key_id: +aws_access_key_secret: +aws_region: us-east-1 +aws_s3_bucket_name: s3-bucket-name + +loki_size: 1x.extra-small +loki_storage_class: gp3 + +forward_infrastructure: true +forward_application: true +forward_debug: false + +grafana-cr: + basicAuthUsername: "admin" + basicAuthPassword: "th5t43r43t43sdfsd" + # serviceAccountAnnotations: {}