• Stars
    star
    134
  • Rank 262,081 (Top 6 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated 7 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Create Docker images containing TimescaleDB, Patroni to be used by developers and Kubernetes.

TimescaleDB Docker image for Kubernetes

This directory contains everything that allows us to create a Docker image with the following pieces of software:

  • PostgreSQL
  • Some PostgreSQL extensions, most notably PostGIS
  • TimescaleDB, multiple versions
  • pgBackRest
  • scripts to make it all work in a Kubernetes Context

Currently, our base image is Ubuntu, as we require glibc 2.33+.

It's currently pushing the resulting images to: https://hub.docker.com/r/timescale/timescaledb-ha

Build images

To build an image, run the following make target:

make

As building the whole image takes considerably amounts of time, the default will only install 1 timescaledb version: The head of the master branch of the github.com/timescale/timescaledb.

For more robust build runs do:

make build

Or, if you only want to exclude Timescale License code you can use the following command:

make build-oss

For more information about licensing, please read our blog post about the subject.

By default, the Docker image contains many extensions, including TimescaleDB and PostGIS. You can override which version of the extensions are built by setting environment variables, some examples:

# Build without any PostGIS
POSTGIS_VERSIONS="" make build

For further environment variables that can be set, we point you to the Makefile itself.

For updating changes in versions for timescaledb, promscale, or toolkit, update build_scripts/versions.yaml

Verify your work

For every pushed commit to this repository, a Docker Image will be built. Once your commit is pushed, a Docker Image will be built, and if successful, will be pushed. The tag of this Docker Image will be cicd-<first 7 chars of commit sha>-amd64, for example, for commit baddcafe..., the tag will look like:

timescale/timescaledb-ha:cicd-baddcaf-amd64

Find out tag using commandline

Assuming your current working directory is on the same commit as the one you pushed

echo "timescale/timescaledb-ha:cicd-$(git rev-parse HEAD | cut -c 1-7)"

Find tag using GitHub Web interface

  • Actions
  • Click on the Build branch Workflow for your commit/branch
  • Look at the Build and push branch summary for the tag
Example output
Checking docker.io/timescale/timescaledb-ha:cicd-8578fce-amd64

amd64: the base image was built 93 seconds ago
...

In the above example, your Docker tag is cicd-8578fce-amd64 and your full image url is:

docker.io/timescale/timescaledb-ha:cicd-8578fce-amd64

Test your Docker Image

docker run --rm -ti -e POSTGRES_PASSWORD=smoketest docker.io/timescale/timescaledb-ha:cicd-baddcaf-amd64

Versioning and Releases

Release Process

Between releases, we keep track of notable changes in CHANGELOG.md.

When we want to make a release we should update CHANGELOG.md to contain the release notes for the planned release in a section for the proposed release number. This update is the commit that will be tagged with as the actual release which ensures that each release contains a copy of it's own release notes.

We should also copy the release notes to the Github releases page, but CHANGELOG.md is the primary place to keep the release notes.

The release commit should be tagged with a signed tag:

git tag -s vx.x.x
git push --tags

If you use the release notes in the tag commit message and it will automatically appear in the Github release. On the Github releases page click Draft a new release and then type your tag in the drop down contain @master. The release will automatically be created using the tag commit text.

Publish the images to Docker Hub and other registries

They will be written under quite a few aliases, for example, for PostgreSQL 15.2 and Timescale 2.10.3, the following images will be built and pushed/overwritten:

  • timescale/timescaledb-ha:pg15
  • timescale/timescaledb-ha:pg15-all
  • timescale/timescaledb-ha:pg15-ts2.10
  • timescale/timescaledb-ha:pg15-ts2.10-all
  • timescale/timescaledb-ha:pg15.2-ts2.10.3
  • timescale/timescaledb-ha:pg15.2-ts2.10.3-all

For OSS_ONLY builds, the following tags will be published:

  • timescale/timescaledb-ha:pg15-oss
  • timescale/timescaledb-ha:pg15-all-oss
  • timescale/timescaledb-ha:pg15-ts2.10-oss
  • timescale/timescaledb-ha:pg15-ts2.10-all-oss
  • timescale/timescaledb-ha:pg15.2-ts2.10.3-oss
  • timescale/timescaledb-ha:pg15.2-ts2.10.3-all-oss

The -all portion of the tags specifies that the image contains pg15, as well as version 12, 13, and 14. Otherwise, only the single version of PostgreSQL is included in the image.

More Repositories

1

timescaledb

An open-source time-series SQL database optimized for fast ingest and complex queries. Packaged as a PostgreSQL extension.
C
16,259
star
2

promscale

[DEPRECATED] Promscale is a unified metric and trace observability backend for Prometheus, Jaeger and OpenTelemetry built on PostgreSQL and TimescaleDB.
Go
1,330
star
3

tsbs

Time Series Benchmark Suite, a tool for comparing and evaluating databases for time series data
Go
1,196
star
4

tobs

tobs - The Observability Stack for Kubernetes. Easy install of a full observability stack into a k8s cluster with Helm charts.
Shell
549
star
5

timescaledb-tune

A tool for tuning TimescaleDB for better performance by adjusting settings to match your system's CPU and memory resources.
Go
397
star
6

timescaledb-parallel-copy

A binary for parallel copying of CSV data into a TimescaleDB hypertable
Go
345
star
7

prometheus-postgresql-adapter

Use PostgreSQL as a remote storage database for Prometheus
Go
335
star
8

timescaledb-toolkit

Extension for more hyperfunctions, fully compatible with TimescaleDB and PostgreSQL 📈
Rust
324
star
9

timescaledb-docker

Release Docker builds of TimescaleDB
Dockerfile
279
star
10

helm-charts

Configuration and Documentation to run TimescaleDB in your Kubernetes cluster
Shell
260
star
11

pg_prometheus

PostgreSQL extension for Prometheus data
C
213
star
12

examples

Collection of example applications and tools to help you get familiar with TimescaleDB
JavaScript
119
star
13

nft-starter-kit

Timescale NFT Starter Kit
Python
110
star
14

outflux

Export data from InfluxDB to TimescaleDB
Go
83
star
15

vector-cookbook

Timescale Vector Cookbook. A collection of recipes to build applications with LLMs using PostgreSQL and Timescale Vector.
Jupyter Notebook
77
star
16

opentelemetry-demo

A demo system for exploring the tracing features of Promscale
Python
61
star
17

streaming-replication-docker

TimescaleDB Streaming Replication in Docker
Shell
56
star
18

docs

Timescale product documentation 📖
JavaScript
46
star
19

timescaledb-extras

Helper functions and procedures for timescale
PLpgSQL
39
star
20

benchmark-postgres

Tools for benchmarking TimescaleDB vs PostgreSQL
Go
37
star
21

promscale_extension

[DEPRECATED] Tables, types and functions supporting Promscale
PLpgSQL
37
star
22

docs.timescale.com-content

Content pages for TimescaleDB documentation
JavaScript
35
star
23

timescaledb-backup

Go
33
star
24

pgspot

Spot vulnerabilities in postgres SQL scripts
Python
28
star
25

timescaledb-wale

Dockerized WAL-E with an HTTP API
Python
21
star
26

terraform-provider-timescale

Timescale Cloud Terraform Provider
Go
17
star
27

homebrew-tap

TimescaleDB Homebrew tap, containing formulas for the database, tools, etc.
Ruby
17
star
28

pg_influx

InfluxDB Line Protocol Listener for PostgreSQL
C
16
star
29

python-vector

Jupyter Notebook
16
star
30

tsv-timemachine

Sample application for time aware RAG with Streamlit, LlamaIndex and Timescale Vector. Learn more at https://www.timescale.com/ai
Python
8
star
31

promscale-benchmark

Makefile
8
star
32

templates

Templates to get started with Timescale on Finance or Sensors (IoT)
PLpgSQL
7
star
33

timescale-extension-utils-rs

Rust
5
star
34

doctor

Rule-based recommendations about your timeseries database.
Python
4
star
35

web-developer-assignment

HTML
3
star
36

wikistream-docker

A Docker environment for https://github.com/timescale/wikistream
Shell
3
star
37

mta-timescale

Demo: Load MTA bus feeds into TimescaleDB
3
star
38

cloud-actions

Cloud public actions
Shell
3
star
39

aws-lambda-example

A sample serverless AWS Lambda time-series application.
Python
2
star
40

frontend-developer-assignment

HTML
2
star
41

pg_traceam

Simple table access method that just prints out what functions in the access methods and related functions that are called.
C
2
star
42

state_of_postgres

2019
SCSS
1
star
43

build-actions

GitHub actions for release pipelines (building, publishing, checking, etc.)
Shell
1
star
44

pgschema

1
star
45

docs-htmltojsx

A fork of react-magic html-to-jsx specifically modified to parse timescale docs
JavaScript
1
star
46

postgres_cheat_sheet

1
star
47

promscale_specs

Formal specifications for Promscale components
TLA
1
star