Skip to content
This repository was archived by the owner on Apr 2, 2024. It is now read-only.
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
124 changes: 0 additions & 124 deletions .github/workflows/helm.yml

This file was deleted.

6 changes: 4 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ We use the following categories for changes:

### Changed

- Helm chart code was migrated to https://github.com/timescale/helm-charts [#1562]

### Fixed
- Make Jaeger Event queryable using name and tags [#1553]

Expand Down Expand Up @@ -57,11 +59,11 @@ We use the following categories for changes:
- Add `readinessProbe` in helm chart [#1266]
- Set number of ingest copiers to the number of DB CPUs [#1387]
- Ability to reload rules and alerting config [#1426]
- Support arrays in trace attribute values [#1381]
- Support arrays in trace attribute values [#1381]
- Support for glob in rule_files [#1443]

### Fixed
- Trace query returns empty result when queried with
- Trace query returns empty result when queried with
- Tags from process table in Jaeger UI [#1385]
- Tags that have a numeric value, like `http.status_code=200` [#1385]
- Tags that involve status code [#1384]
Expand Down
6 changes: 0 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,6 @@ go-lint:
generate:
go generate ./...

.PHONY: generate-helm
generate-helm: deploy/helm-chart/templates/prometheus-rule.yaml

deploy/helm-chart/templates/prometheus-rule.yaml:
./scripts/generate-helm-alerts.sh

.PHONY: shellcheck
shellcheck:
shellcheck -S warning -f gcc $(shell find . -type f -name "*.sh")
Expand Down
14 changes: 0 additions & 14 deletions deploy/helm-chart/Chart.yaml

This file was deleted.

144 changes: 1 addition & 143 deletions deploy/helm-chart/README.md
Original file line number Diff line number Diff line change
@@ -1,145 +1,3 @@
# Promscale Helm chart

This directory contains a Helm chart to deploy the Promscale Connector on Kubernetes.
If you are looking to deploy an entire observability suite including Prometheus,
Promscale, Grafana and other tools, we suggest using
[The Observability Suite for Kubernetes (tobs)](https://github.com/timescale/tobs).

This chart will do the following:

* Create a Kubernetes Deployment (by default) with one pod
* The pod has a container created using the [Promscale Connector Docker Image](https://hub.docker.com/timescale/promscale)
* Create a Kubernetes Service exposing access to the Connector pods
* By default a LoadBalancer, but can be disabled to only a ClusterIP with a configurable port
* Create a Kubernetes CronJob that deletes the data chunks that fall out of the retention period

**Note:** We have dropped compatibility with TimescaleDB 1.x. If you would like to use Promscale with TimescaleDB 1.x then use the helm charts from Promscale release 0.6.0.

## Prerequisites

For promscale to work correctly it needs a set of data to connect to timescale database. This
configuration can be supplied in two ways either by using DB URI or by specifying connection
parameters. Options are mutually exclusive and specifying URI takes priority.

### Using DB URI

You can use db uri to connect to TimescaleDB. To do so, specify the URI in values.yaml as follows:

```yaml
connection:
uri: <TIMESCALE_DB_URI>
```

### Using Connection Parameters

Instead of using db uri, you can specify all parameters necessary for connecting promscale to timescaledb using `connection` map.
Bear in mind that timescale database should exist before starting promscale or at least credentials should be available.

Following are the default configuration values:

```yaml
connection:
user: postgres
password: ""
host: timescaledb.default.svc.cluster.local
port: 5432
sslMode: require
dbName: timescale
```

### User-Managed Connection Parameter Secret

**Note:** We primarily provide this feature for workflow convenience, but it is an advanced feature requiring more care to configure correctly. We suggest that you configure the connection options in `values.yaml` instead. If you are using GitOps and do not want to store database passwords unencrypted in your Git repo, you probably want to use tooling like [helm-secrets](https://github.com/jkroepke/helm-secrets) instead.

If you would like to provide connections details via your own secret which is managed outside the lifecycle of this helm chart, you can do so. The secret must contain the environment variables corresponding to Promscale's connection configuration. Additionally, the `connectionSecretName` parameter of this helm chart must be configured with the name of your secret, and your secret must be in the same namespace as the deployment.

An example of what this could look like is as follows:

```yaml
# secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: my-promscale-connection-secret
stringData:
PROMSCALE_DB_PORT: "5432"
PROMSCALE_DB_USER: "postgres"
PROMSCALE_DB_PASSWORD: "password"
PROMSCALE_DB_HOST: "db.timescale.svc.cluster.local"
PROMSCALE_DB_NAME: "timescale"
PROMSCALE_DB_SSL_MODE: "require"
```

In the values.yml of the helm chart you would then have the following:

```yaml
# extract from values.yaml
connectionSecretName: my-promscale-connection-secret
```

**Note:** The Promscale pod, once started, will not automatically take on any changes to the contents of `connectionSecretName`.

## Installing

To install the chart with the release name `my-release`:

```shell script
helm install --name my-release .
```

You can override parameters using the `--set key=value[,key=value]` argument
to `helm install`, e.g. to install the chart with specifying a previously created
secret `timescale-secret` and an existing TimescaleDB instance:

```shell script
helm install --name my-release . \
--set connectionSecretName="promscale-connection-secret"
```

You can also install by referencing the db uri secret created previously:

```shell script
helm install --name my-release . \
--set connectionSecretName="promscale-connection-secret"
```

Alternatively, a YAML file the specifies the values for the parameters can be provided
while installing the chart. For example:

```shell script
helm install --name my-release -f myvalues.yaml .
```

## Configuration

| Parameter | Description | Default |
|---------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------|
| `image` | The image (with tag) to pull | `timescale/promscale` |
| `imagePullPolicy` | The image pull policy | `IfNotPresent` |
| `replicaCount` | Number of pods for the connector | `1` |
| `upgradeStrategy` | Promscale deployment upgrade strategy, By default set to `Recreate` as during Promscale upgrade we expect no Promscale to be connected to TimescaleDB | `Recreate` |
| `resources` | Requests and limits for each of the pods | `{}` |
| `readinessProbe` | Readiness probe for promscale connector containers | see [values.yaml](./values.yaml) |
| `nodeSelector` | Node labels to use for scheduling | `{}` |
| `tolerations` | Tolerations to use for scheduling | `[]` |
| `affinity` | PodAffinity and PodAntiAffinity settings | `{}` |
| `extraArgs` | Additional promscale CLI arguments | `[]` |
| `extraEnv` | Additional promscale environment variables | `[]` |
| `extraEnvFrom` | Additional promscale environment variables originating from e.g. secrets or configmaps | `[]` |
| `annotations` | Annotations added to promscale Deployment | `{}` |
| `podAnnotations` | Annotations added to promscale Pods | `{}` |
| `connection.uri` | DB uri string used for database connection. When not empty it takes priority over other settings in `connection` map. | `""` |
| `connection.user` | Username to connect to TimescaleDB with | `postgres` |
| `connection.password` | The DB password for user specified in `connection.user` | `""` |
| `connection.host` | Hostname of timescaledb instance | `db.timescaledb.svc.cluster.local` |
| `connection.port` | Port the db listens to | `5432` |
| `connection.dbName` | Database name in TimescaleDB to connect to | `timescale` |
| `connection.sslMode` | SSL mode for connection | `require` |
| `config` | Promscale configuration options. Full list of options is available at [docs/configuration.md](https://github.com/timescale/promscale/blob/master/docs/configuration.md) | `` |
| `service.type` | Type of Service to be used | `ClusterIP` |
| `service.annotations` | Annotations to set to the Service | `{}` |
| `service.prometheus.enabled` | Expose prometheus remote_write port in the Service object to allow sending prometheus data to promscale. | `true` |
| `service.prometheus.port` | Port the connector Service accepts prometheus remote_write connections on | `9201` |
| `service.openTelemetry.port` | Port the connector Service will accept otlp connections on | `9202` |
| `service.openTelemetry.enabled` | Expose OpenTelemetry port in the Service object to allow sending OTel data to promscale. | `true` |
| `serviceMonitor.enabled` | Enable creation of serviceMonitor object used by prometheus-operator. Setting this to false enables prometheus annotation-based scraping. | `false` |
Promscale helm chart code was migrated to [timescale/helm-charts](https://github.com/timescale/helm-charts/tree/master/charts/promscale) repository.
53 changes: 0 additions & 53 deletions deploy/helm-chart/templates/_helpers.tpl

This file was deleted.

13 changes: 0 additions & 13 deletions deploy/helm-chart/templates/config.yaml

This file was deleted.

Loading