diff --git a/index.yaml b/index.yaml index 8aebaa978ff..f1dda5344b3 100644 --- a/index.yaml +++ b/index.yaml @@ -36175,6 +36175,22 @@ entries: urls: - https://giantswarm.github.io/control-plane-test-catalog/logging-operator-0.0.6-7db18e7000aa39f401ee151b22b54601e09603bf.tgz version: 0.0.6-7db18e7000aa39f401ee151b22b54601e09603bf + - annotations: + application.giantswarm.io/metadata: https://giantswarm.github.io/control-plane-test-catalog/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz-meta/main.yaml + application.giantswarm.io/readme: https://giantswarm.github.io/control-plane-test-catalog/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz-meta/README.md + application.giantswarm.io/team: atlas + application.giantswarm.io/values-schema: https://giantswarm.github.io/control-plane-test-catalog/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz-meta/values.schema.json + config.giantswarm.io/version: 1.x.x + apiVersion: v2 + appVersion: 0.0.6-6d4cf30290bb21102314fc23e04307991a98f571 + created: "2023-09-30T11:26:50.06653939Z" + description: The logging-operator manages loki and promtail related config. + digest: 7dccd792d2169bf0e07e0cb111845fe94f67e35fe5fd9c70bc83b68e86648dac + home: https://github.com/giantswarm/logging-operator + name: logging-operator + urls: + - https://giantswarm.github.io/control-plane-test-catalog/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz + version: 0.0.6-6d4cf30290bb21102314fc23e04307991a98f571 - annotations: application.giantswarm.io/metadata: https://giantswarm.github.io/control-plane-test-catalog/logging-operator-0.0.6-58080e0475821688936d2c9e9346ef789c91c116.tgz-meta/main.yaml application.giantswarm.io/readme: https://giantswarm.github.io/control-plane-test-catalog/logging-operator-0.0.6-58080e0475821688936d2c9e9346ef789c91c116.tgz-meta/README.md @@ -57663,4 +57679,4 @@ entries: urls: - https://giantswarm.github.io/control-plane-test-catalog/vertical-pod-autoscaler-crd-2.0.1-26fb2ef9f02e57e4dad5c48b1c37708aad60819f.tgz version: 2.0.1-26fb2ef9f02e57e4dad5c48b1c37708aad60819f -generated: "2023-09-30T11:09:38.460931207Z" +generated: "2023-09-30T11:26:50.065855764Z" diff --git a/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz b/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz new file mode 100644 index 00000000000..5205a41b73c Binary files /dev/null and b/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz differ diff --git a/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz-meta/README.md b/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz-meta/README.md new file mode 100644 index 00000000000..5809fd7c5ce --- /dev/null +++ b/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz-meta/README.md @@ -0,0 +1,43 @@ +[![CircleCI](https://dl.circleci.com/status-badge/img/gh/giantswarm/logging-operator/tree/main.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/giantswarm/logging-operator/tree/main) + +# logging-operator + +This operator is in charge of handling the setup and configuration of the logging stack at Giant Swarm. + +It reconciles `cluster.cluster.x-k8s.io` objects and makes sure each `Cluster` is provided with a [`promtail`](https://github.com/giantswarm/promtail-app) instance and the necessary configuration to ship logs into [`loki`](https://github.com/giantswarm/loki-app). + +## Getting started + +Get the code and build it via: + +```bash +git clone https://github.com/giantswarm/logging-operator.git +cd logging-operator +make +``` + +See `make help` for help. + +## Architecture + +The operator is built around a central reconciler, that calls multiple sub-reconcilers sequentially. +![image](images/logging-operator-architecture.png) + +* Logging-Credentials are created if they don't exist. Then, their data (credentials) is used to create the next resources. +* grafana datasource configures Grafana to read data from Loki +* loki-multi-tenant-auth secures all Loki communication (per-tenant read/write access) +* promtail client configures write access to Loki for Promtail +* Promtail config setups some Promtail settings (like which logs to collect) +* Promtail toggle enables/disables promtail deployment on WCs +* Promtail wiring ensures promtail-app reads configs from previous steps + +## Gathering logs from WCs + +When the need to gather logs from the WCs appears, the logging-operator will deploy promtail on those so that one may see the logs from the MC's grafana. In order to achieve that, one has to label the cluster(s) one wants to gather logs from thanks to the following command : +``` +kubectl label cluster -n giantswarm.io/logging=true +``` + +## Credits + +This operator was built using [`kubebuilder`](https://book.kubebuilder.io/quick-start.html). diff --git a/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz-meta/main.yaml b/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz-meta/main.yaml new file mode 100644 index 00000000000..0db1bea054f --- /dev/null +++ b/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz-meta/main.yaml @@ -0,0 +1,11 @@ +annotations: + application.giantswarm.io/metadata: https://giantswarm.github.io/control-plane-test-catalog/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz-meta/main.yaml + application.giantswarm.io/readme: https://giantswarm.github.io/control-plane-test-catalog/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz-meta/README.md + application.giantswarm.io/team: atlas + application.giantswarm.io/values-schema: https://giantswarm.github.io/control-plane-test-catalog/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz-meta/values.schema.json + config.giantswarm.io/version: 1.x.x +chartApiVersion: v2 +chartFile: logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz +dateCreated: '2023-09-30T11:26:43.495018' +digest: 7dccd792d2169bf0e07e0cb111845fe94f67e35fe5fd9c70bc83b68e86648dac +home: https://github.com/giantswarm/logging-operator diff --git a/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz-meta/values.schema.json b/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz-meta/values.schema.json new file mode 100644 index 00000000000..694aa6fcf01 --- /dev/null +++ b/logging-operator-0.0.6-6d4cf30290bb21102314fc23e04307991a98f571.tgz-meta/values.schema.json @@ -0,0 +1,119 @@ +{ + "$schema": "http://json-schema.org/schema#", + "type": "object", + "properties": { + "ciliumNetworkPolicy": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "image": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "tag": { + "type": "string" + } + } + }, + "registry": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "pullSecret": { + "type": "object", + "properties": { + "dockerConfigJSON": { + "type": "string" + } + } + } + } + }, + "resources": { + "type": "object", + "properties": { + "limits": { + "type": "object", + "properties": { + "cpu": { + "type": "string" + }, + "memory": { + "type": "string" + } + } + }, + "requests": { + "type": "object", + "properties": { + "cpu": { + "type": "string" + }, + "memory": { + "type": "string" + } + } + } + } + }, + "securityContext": { + "type": "object", + "properties": { + "container": { + "type": "object", + "properties": { + "allowPrivilegeEscalation": { + "type": "boolean" + }, + "capabilities": { + "type": "object", + "properties": { + "drop": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "seccompProfile": { + "type": "object", + "properties": { + "type": { + "type": "string" + } + } + } + } + }, + "pod": { + "type": "object", + "properties": { + "runAsNonRoot": { + "type": "boolean" + }, + "runAsUser": { + "type": "integer" + }, + "seccompProfile": { + "type": "object", + "properties": { + "type": { + "type": "string" + } + } + } + } + } + } + } + } +}