Project: Feature: User should be able to specify db image with custom tag or versions

Created on 19 Jun 2018  路  5Comments  路  Source: kubedb/project

A lot of users run postgres with certain extensions/add-ons that require a certain version of postgres or additional software bundled with the container.

To satisfy these requirements I suggest we make it possible to use own versions of the kubedb postgres image. i.e. kubedb/postgres:10.2-timescaledb0.9.2

proposal extension

Most helpful comment

The proposal is to add a new crd called <DB>Version . This will be a non-namespaced crd . The official installer will create one for each supported DB version during installation.

Users can create their own variation/version with pre-built extensions and create a <DB>Version crd.

Then in the actual db crd spec.version, users use the name of the <DB>Version .

# created via installer for the cluster
apiVersion: kubedb.com/v1alpha1
kind: PostgresVersion
metadata:
  name: 9.6 # non-namespaced
spec:
  version: 9.6 # postgres version
  db:
    image: kubedb/posrtgres: 9.6
  exporter:
    image: kubedb/posrtgres_exporter: 9.6
  tools:
    image: kubedb/posrtgres_tools: 9.6
---
# manually created once by user for the cluster
apiVersion: kubedb.com/v1alpha1
kind: PostgresVersion
metadata:
  name: tiemscaledb-9.6 # non-namespaced
spec:
  version: 9.6 # postgres version
  db:
    image: myco/timescale: 9.6
  exporter:
    image: myco/timescale_exporter: 9.6
  tools:
    image: myco/timescale_tools: 9.6
---
apiVersion: kubedb.com/v1alpha1
kind: Postgres
metadata:
  name: quick-postgres
  namespace: demo
spec:
  version: tiemscaledb-9.6 # 9.6
  doNotPause: true
  storage:
    storageClassName: "standard"
    accessModes:
    - ReadWriteOnce
    resources:
      requests:
        storage: 50Mi

All 5 comments

The proposal is to add a new crd called <DB>Version . This will be a non-namespaced crd . The official installer will create one for each supported DB version during installation.

Users can create their own variation/version with pre-built extensions and create a <DB>Version crd.

Then in the actual db crd spec.version, users use the name of the <DB>Version .

# created via installer for the cluster
apiVersion: kubedb.com/v1alpha1
kind: PostgresVersion
metadata:
  name: 9.6 # non-namespaced
spec:
  version: 9.6 # postgres version
  db:
    image: kubedb/posrtgres: 9.6
  exporter:
    image: kubedb/posrtgres_exporter: 9.6
  tools:
    image: kubedb/posrtgres_tools: 9.6
---
# manually created once by user for the cluster
apiVersion: kubedb.com/v1alpha1
kind: PostgresVersion
metadata:
  name: tiemscaledb-9.6 # non-namespaced
spec:
  version: 9.6 # postgres version
  db:
    image: myco/timescale: 9.6
  exporter:
    image: myco/timescale_exporter: 9.6
  tools:
    image: myco/timescale_tools: 9.6
---
apiVersion: kubedb.com/v1alpha1
kind: Postgres
metadata:
  name: quick-postgres
  namespace: demo
spec:
  version: tiemscaledb-9.6 # 9.6
  doNotPause: true
  storage:
    storageClassName: "standard"
    accessModes:
    - ReadWriteOnce
    resources:
      requests:
        storage: 50Mi
$ kubectl get pgversions

NAME             DB_IMAGE
9.6              kubedb/postgres:9.6
timescale-9.6    myco/timescale:9.6

@the-redback :

Fixed

Was this page helpful?
0 / 5 - 0 ratings

Related issues

JamesLaverack picture JamesLaverack  路  6Comments

tamalsaha picture tamalsaha  路  7Comments

fjammes picture fjammes  路  9Comments

tamalsaha picture tamalsaha  路  5Comments

antonu17 picture antonu17  路  5Comments