Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ketama sync to main #347

Merged
merged 2 commits into from
Oct 5, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 12 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,13 @@ See our [website](https://rhobs-handbook.netlify.app/) for more information abou

* Go 1.17+

### macOS

* findutils (for GNU xargs)
* gnu-sed

Both can be installed using Homebrew: `brew install gnu-sed findutils`. Afterwards, update the `SED` and `XARGS` variables in the Makefile to use `gsed` and `gxargs` or replace them in your environment.

## Usage

This repository contains [Jsonnet](https://jsonnet.org/) configuration that allows generating Kubernetes objects that compose RHOBS service and its observability.
Expand All @@ -16,9 +23,9 @@ This repository contains [Jsonnet](https://jsonnet.org/) configuration that allo

The jsonnet files for RHOBS service can be found in [services](./services) directory. In order to compose *RHOBS Service* we import many Jsonnet libraries from different open source repositories including [kube-thanos](https://github.com/thanos-io/kube-thanos) for Thanos components, [Observatorium](https://github.com/observatorium/observatorium) for Observatorium, Minio, Memcached, Gubernator, Dex components, [thanos-receive-controller](https://github.com/observatorium/thanos-receive-controller) for Thanos receive controller component, [parca](https://github.com/parca-dev/parca) for Parca component, [observatorium api](https://github.com/observatorium/api) for API component, [observatorium up](https://github.com/observatorium/up) for up component, [rules-objstore](https://github.com/observatorium/rules-objstore) for rules-objstore component.

Currently, RHOBS components are rendered as [OpenShift Templates](https://docs.openshift.com/container-platform/4.7/openshift_images/using-templates.html) that allows parameters. This is how we deploy to multiple clusters, sharing the same configuration core, but having different details like resources or names.
Currently, RHOBS components are rendered as [OpenShift Templates](https://docs.openshift.com/container-platform/latest/openshift_images/using-templates.html) that allows parameters. This is how we deploy to multiple clusters, sharing the same configuration core, but having different details like resources or names.

> This is why there might be a gap between vanilla [Observatorium](https://github.com/observatorium/observatorium) and RHOBS. We have plans to resolve this gap in the future.
> This is why there might be a gap between vanilla [Observatorium](https://github.com/observatorium/observatorium) and RHOBS. We have plans to resolve this gap in the future.

Running `make manifests` generates all required files into [resources/services](./resources/services) directory.

Expand All @@ -30,13 +37,13 @@ Running `make prometheusrules grafana` generates all required files into [resour

### Updating Dependencies

Up-to-date list of jsonnet dependencies can be found in [jsonnetfile.json](./jsonnetfile.json). Fetching all deps is done through `make vendor` utility.
Up-to-date list of jsonnet dependencies can be found in [jsonnetfile.json](./jsonnetfile.json). Fetching all deps is done through `make vendor_jsonnet` utility.

To update a dependency, normally the process would be:

```console
make vendor # This installs dependencies like `jb` thanks to bingo project.
JB=`ls .bin/jb-* -t | head -1`
make vendor_jsonnet # This installs dependencies like `jb` thanks to Bingo project.
JB=`ls $(go env GOPATH)/bin/jb-* -t | head -1`

# Updates `kube-thanos` to master and sets the new hash in `jsonnetfile.lock.json`.
$JB update https://github.com/thanos-io/kube-thanos/jsonnet/kube-thanos@main
Expand Down
1 change: 1 addition & 0 deletions resources/services/observatorium-metrics-template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1958,6 +1958,7 @@ objects:
"type": "JAEGER"
- --receive.default-tenant-id=FB870BF3-9F3A-44FF-9BF7-D7A047A52F43
- --receive.hashrings-algorithm=${THANOS_RECEIVE_HASHRINGS_ALGORITHM}
- --receive.grpc-compression=none
env:
- name: NAME
valueFrom:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -402,6 +402,7 @@ local thanosRuleSyncer = import './sidecars/thanos-rule-syncer.libsonnet';
args+: [
'--receive.default-tenant-id=FB870BF3-9F3A-44FF-9BF7-D7A047A52F43',
'--receive.hashrings-algorithm=${THANOS_RECEIVE_HASHRINGS_ALGORITHM}',
'--receive.grpc-compression=none',
],
env+: s3EnvVars + [{
name: 'DEBUG',
Expand Down