Skip to content

Commit

Permalink
Merge branch 'main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
Allex1 committed Sep 26, 2021
2 parents 2bda3e9 + 7feee0d commit cae0699
Show file tree
Hide file tree
Showing 127 changed files with 1,940 additions and 138 deletions.
3 changes: 2 additions & 1 deletion .github/CODEOWNERS
Validating CODEOWNERS rules …
Expand Up @@ -12,5 +12,6 @@
/charts/promtail/ @unguiculus @Whyeasy
/charts/tempo/ @annanay25 @dgzlopes @joe-elliott @mapno @mdisibio @swartz-k
/charts/tempo-distributed/ @annanay25 @dgzlopes @joe-elliott @mapno @mdisibio @swartz-k
/charts/enterprise-metrics/ @jdbaldry
/charts/enterprise-metrics/ @jdbaldry @chaudum
/charts/enterprise-logs/ @jdbaldry @chaudum
/charts/tempo-vulture/ @Whyeasy @annanay25 @dgzlopes @joe-elliott @mapno @mdisibio
8 changes: 7 additions & 1 deletion .github/workflows/lint-test.yaml
Expand Up @@ -42,4 +42,10 @@ jobs:
if: steps.list-changed.outputs.changed == 'true'

- name: Run chart-testing (install)
run: ct install --config ct.yaml
run: |
changed=$(ct list-changed --config ct.yaml)
if [[ "$changed" == "charts/enterprise-metrics" || "$changed" == "charts/enterprise-logs" ]]; then
# Do not run `ct install` for enterprise-metrics and enterprise-logs
exit 0
fi
ct install --config ct.yaml
1 change: 1 addition & 0 deletions .helmdocsignore
Expand Up @@ -3,3 +3,4 @@ charts/grafana
charts/loki
charts/loki-stack
charts/enterprise-metrics
charts/enterprise-logs
31 changes: 31 additions & 0 deletions charts/enterprise-logs/CHANGELOG.md
@@ -0,0 +1,31 @@
# Changelog

All notable changes to this library will be documented in this file.

Entries should be ordered as follows:

- [CHANGE]
- [FEATURE]
- [ENHANCEMENT]
- [BUGFIX]

Entries should include a reference to the pull request that introduced the change.

## 1.2.0

- [CHANGE] Removed unused deployment of `memcached-index-writes` StatefulSet when using `small.yaml` values file.

## 1.1.1

- [BUGFIX] Ensure that Pods run as non-root user `enterprise-logs` (`uid=10001,gid=10001`). #690

## 1.1.0

* [CHANGE] Updated `loki-distributed` chart dependency to `^0.37.3`. #684
* [CHANGE] Removed table manager deployment, because GEL uses boltdb-shipper and compactor. #684
* [ENHANCEMENT] Enabled deployment of `index-gateway`. #684
* [ENHANCEMENT] Enabled persistent volume for `querier` service. #684

## 1.0.0

* [FEATURE] Initial version of the `enterprise-logs` (GEL) Helm chart. #629
9 changes: 9 additions & 0 deletions charts/enterprise-logs/Chart.lock
@@ -0,0 +1,9 @@
dependencies:
- name: loki-distributed
repository: https://grafana.github.io/helm-charts
version: 0.37.3
- name: minio
repository: https://helm.min.io/
version: 8.0.9
digest: sha256:fa052639999004f64f6ac6e847a91ab2b8ecd814f90df4c4ebab246b3c178e05
generated: "2021-09-16T17:30:46.384947051+02:00"
17 changes: 17 additions & 0 deletions charts/enterprise-logs/Chart.yaml
@@ -0,0 +1,17 @@
apiVersion: "v2"
name: "enterprise-logs"
type: application
version: "1.2.0"
appVersion: "v1.1.0"
kubeVersion: "^1.10.0-0"
description: "Grafana Enterprise Logs"
home: "https://grafana.com/products/enterprise/logs/"
dependencies:
- name: loki-distributed
version: ^0.37.3
repository: https://grafana.github.io/helm-charts
- name: minio
alias: minio
version: 8.0.9
repository: https://helm.min.io/
condition: minio.enabled
79 changes: 79 additions & 0 deletions charts/enterprise-logs/README.md
@@ -0,0 +1,79 @@
# Grafana Enterprise Logs Helm Chart

A Helm chart for deploying [Grafana Enterprise Logs](https://grafana.com/products/enterprise/logs/) to Kubernetes.

## Dependencies

This chart depends on the
[`loki-distributed`](https://github.com/grafana/helm-charts/tree/main/charts/loki-distributed) Helm
chart and extends it with Grafana Enterprise Logs components and configuration.
It also depends on [`minio`](https://github.com/minio/charts/tree/master/minio) Helm chart, if the
variable `minio.enabled` is set to `true` (only recommended for testing).

## Requirements

### License

In order to use any enterprise features of Grafana Enterprise Logs, you need to provide the contents
of a Grafana Enterprise Logs license file as the value for the `license.contents` variable. To
obtain a Grafana Enterprise Logs license, refer to [Get a
license](https://grafana.com/docs/enterprise-logs/latest/get-a-license/).

### Storage

Grafana Enterprise Logs requires an object storage backend to store logs and indexes as well as
metadata objects.

The default chart values will deploy [Minio](https://min.io) for initial set up. Production
deployments must use a separately deployed object store or use a compatible storage from cloud
providers, such as Amazon S3, Google Cloud Storage (GCS), or Microsoft Azure Blob Storage.

## Installation

To install the chart with licensed features enabled, using a local Grafana Enterprise Logs
license file called `license.jwt`:

```console
$ # Add the repository
$ helm repo add grafana https://grafana.github.io/helm-charts
$ helm repo update
$ # Perform install
$ helm install <cluster name> grafana/enterprise-logs \
--set-file 'license.contents=./license.jwt'
```

As part of this chart many different pods and services are installed which all have varying resource
requirements. Please make sure that you have sufficient resources (CPU/memory) available in your
cluster before installing Grafana Enterprise Logs Helm chart.

### Scale values

The default Helm chart values in the `values.yaml` file are configured to allow you to quickly test
out Grafana Enterprise Logs. Alternative values files are included to provide a more realistic
configuration that should facilitate a certain level of ingest and query load.

#### `small.yaml`

These values configure the Grafana Enterprise Logs cluster to handle production ingestion of
~11MiB/s.

To deploy a cluster using `small.yaml` values file:

```console
$ helm install <cluster name> grafana/enterprise-logs \
--set-file 'license.contents=./license.jwt' \
-f small.yaml
```

## Contributing/Releasing

All changes require a bump to the chart version, as this enforced by CI. All changes to the chart
itself should also have a corresponding changelog entry.

When making a change and organizing a release, first ensure your changes are encapuslated in a
commit with a [meaningful commit message](https://chris.beams.io/posts/git-commit/). In a separate
commit, increase the chart version in the `Chart.yaml` file and add an entry in the `CHANGELOG.md`
file under the new version.

Finally, push your changes and open up a pull request with the prefix `[enterprise-logs]` in the
title.
24 changes: 24 additions & 0 deletions charts/enterprise-logs/ci/test-values.yaml
@@ -0,0 +1,24 @@
# Test values to limit the load during CI
compactor:
persistentVolume:
enabled: false

loki-distributed:
ingester:
persistence:
enabled: false
distributor:
persistence:
enabled: false
ruler:
persistence:
enabled: false
querier:
persistence:
enabled: false
queryFrontend:
persistence:
enabled: false
indexGateway:
persistence:
enabled: false
144 changes: 144 additions & 0 deletions charts/enterprise-logs/small.yaml
@@ -0,0 +1,144 @@
# These values configure the Grafana Enterprise Logs cluster to
# handle production ingestion of ~11MiB/s

# Query requirements can vary dramatically depending on query rate and query
# ranges. The values here satisfy a "usual" query load as seen from our
# production clusters at this scale.

# -target=admin-api
# defined in enterprise-logs chart
adminApi:
replicas: 3
extraArgs: {
"admin-api.leader-election.enabled": "true",
"admin-api.leader-election.ring.store": "memberlist",
}
resources:
limits:
cpu: 200m
memory: 256Mi
requests:
cpu: 10m
memory: 64Mi

# -target=compactor
# defined in enterprise-logs chart
compactor:
replicas: 1
persistentVolume:
size: 100Gi
resources:
limits:
cpu: 4
memory: 2Gi
requests:
cpu: 2
memory: 1Gi

# -target=gateway
# defined in enterprise-logs chart
gateway:
replicas: 3
resources:
requests:
cpu: 1
memory: 384Mi

loki-distributed:
# -target=distributor
# defined in loki-distributed chart
distributor:
replicas: 3
resources:
limits:
memory: 1Gi
requests:
cpu: 0.5
memory: 500Mi

# -target=ingester
# defined in loki-distributed chart
ingester:
persistentVolume:
size: 50Gi
replicas: 4
resources:
limits:
cpu: 2
memory: 14Gi
requests:
cpu: 1
memory: 7Gi

# -target=querier
# defined in loki-distributed chart
querier:
replicas: 8
resources:
limits:
cpu: 7
memory: 16Gi
requests:
cpu: 4
memory: 6Gi

# -target=query-frontend
# defined in loki-distributed chart
queryFrontend:
replicas: 2
resources:
limits:
cpu: 3
memory: 10Gi
requests:
cpu: 2
memory: 5Gi

# -target=ruler
# defined in loki-distributed chart
ruler:
replicas: 2
resources:
limits:
cpu: 7
memory: 16Gi
requests:
cpu: 2
memory: 6Gi

# -target=index-gateway
# defined in loki-distributed chart
indexGateway:
replicas: 3
resources:
limits:
cpu: 4
memory: 4Gi
requests:
cpu: 2
memory: 2Gi

# memcached configuration is part of the loki-distributed chart
memcached:
enabled: true
replicas: 1

memcachedExporter:
enabled: true
replicas: 1

memcachedChunks:
enabled: true
replicas: 1

memcachedFrontend:
enabled: true
replicas: 1

memcachedIndexQueries:
enabled: true
replicas: 1

# Disable minio dependency
minio:
enabled: false

0 comments on commit cae0699

Please sign in to comment.