Remove ReviewDB-support

Since Gerrit 3.0 does not need a ReviewDB anymore and since it is
unlikely that the Kubernetes setup will be used with an earlier version
of the chart, the support for a ReviewDB is also removed with this
change. This also reduces the container size and startup time.

Change-Id: I11f3d8717f045f0b71c7b5d759a0be256d4626aa
diff --git a/LICENSE b/LICENSE
index d087f95..51706c7 100644
--- a/LICENSE
+++ b/LICENSE
@@ -226,11 +226,6 @@
 All rights reserved. \
 3-Clause BSD License (https://passlib.readthedocs.io/en/stable/copyright.html)
 
-PyMySQL \
-https://github.com/PyMySQL/PyMySQL \
-Copyright (c) 2010, 2013 PyMySQL contributors \
-MIT License (https://github.com/PyMySQL/PyMySQL/blob/master/LICENSE)
-
 pyOpenSSL \
 https://github.com/pyca/pyopenssl \
 Copyright (c) 2001 The pyOpenSSL developers \
@@ -246,12 +241,6 @@
 Copyright 2018 Kenneth Reitz \
 Apache 2 license (https://github.com/requests/requests/blob/master/LICENSE)
 
-SQLAlchemy \
-https://github.com/sqlalchemy/sqlalchemy/ \
-Copyright (c) 2005-2019 Michael Bayer and contributors.
-SQLAlchemy is a trademark of Michael Bayer. \
-MIT License (https://docs.sqlalchemy.org/en/latest/copyright.html)
-
 ---
 ## The MIT License (MIT)
 
diff --git a/Pipfile b/Pipfile
index f0af386..646dc0c 100644
--- a/Pipfile
+++ b/Pipfile
@@ -14,8 +14,6 @@
 passlib = "~=1.7.1"
 pyopenssl = "~=18.0.0"
 requests = "~=2.21.0"
-sqlalchemy = "~=1.3.0"
-pymysql = "~=0.9.2"
 
 [requires]
 python_version = "3.7"
diff --git a/Pipfile.lock b/Pipfile.lock
index fbeb0b3..355fea9 100644
--- a/Pipfile.lock
+++ b/Pipfile.lock
@@ -1,7 +1,7 @@
 {
     "_meta": {
         "hash": {
-            "sha256": "c482f922f07d16fdb10dd313a480edeec79819be4366ee17da881b9e672673ba"
+            "sha256": "abb246e4d04aaa73d1ac30c1d15db235accf031381d8439b4edaefa74e15bb52"
         },
         "pipfile-spec": 6,
         "requires": {
@@ -192,14 +192,6 @@
             ],
             "version": "==2.19"
         },
-        "pymysql": {
-            "hashes": [
-                "sha256:3943fbbbc1e902f41daf7f9165519f140c4451c179380677e6a848587042561a",
-                "sha256:d8c059dcd81dedb85a9f034d5e22dcb4442c0b201908bede99e306d65ea7c8e7"
-            ],
-            "index": "pypi",
-            "version": "==0.9.3"
-        },
         "pyopenssl": {
             "hashes": [
                 "sha256:26ff56a6b5ecaf3a2a59f132681e2a80afcc76b4f902f612f518f92c2a1bf854",
@@ -245,13 +237,6 @@
             ],
             "version": "==2.0.5"
         },
-        "sqlalchemy": {
-            "hashes": [
-                "sha256:217e7fc52199a05851eee9b6a0883190743c4fb9c8ac4313ccfceaffd852b0ff"
-            ],
-            "index": "pypi",
-            "version": "==1.3.6"
-        },
         "urllib3": {
             "hashes": [
                 "sha256:2393a695cd12afedd0dcb26fe5d50d0cf248e5a66f75dbd89a3d4eb333a61af4",
diff --git a/README.md b/README.md
index 9171e9f..656824f 100644
--- a/README.md
+++ b/README.md
@@ -86,10 +86,6 @@
   javaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre
 ```
 
-The mysql-replication-init docker image is only required for setting up the Gerrit
-slave on Kubernetes. If deploying the Gerrit slave outside of Kubernetes, it can
-be ignored.
-
 # Helm Charts
 
 These Helm charts can be used to install a Gerrit cluster consisting of a
@@ -110,12 +106,10 @@
 
 ## Gerrit Master
 
-* Install a [MySQL master](helm-charts/gerrit-master/docs/mysqld.md)
 * Install a [Gerrit master](helm-charts/gerrit-master/README.md)
 
 ## Gerrit Slave
 
-* Install a [MySQL slave](helm-charts/gerrit-slave/docs/mysqld.md)
 * Install a [Gerrit slave](helm-charts/gerrit-slave/README.md)
 
 # Running tests
diff --git a/build b/build
index 16211d1..aeea82f 100755
--- a/build
+++ b/build
@@ -63,7 +63,7 @@
 
 if test $# -eq 0 ; then
     docker_build_gerrit_base
-    for IMAGE in apache-git-http-backend gerrit-master gerrit-slave git-gc mysql-replication-init gerrit-init; do
+    for IMAGE in apache-git-http-backend gerrit-master gerrit-slave git-gc gerrit-init; do
         docker_build $IMAGE
     done
 else
diff --git a/container-images/gerrit-base/Dockerfile b/container-images/gerrit-base/Dockerfile
index 241767e..48548b4 100644
--- a/container-images/gerrit-base/Dockerfile
+++ b/container-images/gerrit-base/Dockerfile
@@ -3,7 +3,6 @@
 RUN apt-get update && \
     apt-get -y install \
       curl \
-      unzip \
       openjdk-8-jdk && \
     apt-get clean && \
     rm -rf /var/lib/apt/lists/*
diff --git a/container-images/gerrit-init/Dockerfile b/container-images/gerrit-init/Dockerfile
index 97014fd..e3474cb 100644
--- a/container-images/gerrit-init/Dockerfile
+++ b/container-images/gerrit-init/Dockerfile
@@ -10,13 +10,9 @@
 
 RUN apt-get update && \
     apt-get install -y \
-      mysql-client \
-      python3 \
-      python3-pip && \
+      python3 && \
     apt-get clean && \
-    rm -rf /var/lib/apt/lists/* && \
-    pip3 install pipenv && \
-    pipenv install --system
+    rm -rf /var/lib/apt/lists/*
 
 USER gerrit
 
diff --git a/container-images/gerrit-init/README.md b/container-images/gerrit-init/README.md
index 2dc2333..669ae39 100644
--- a/container-images/gerrit-init/README.md
+++ b/container-images/gerrit-init/README.md
@@ -1,8 +1,7 @@
 # Gerrit slave init container image
 
 Kubernetes init container for initializing gerrit. The python script running in
-the container makes sure, that the database is initialized (currently supported:
-H2 and MySQL) and initializes Gerrit including the installation of configured
+the container initializes Gerrit including the installation of configured
 core plugins.
 
 ## Content
@@ -11,8 +10,7 @@
 
 ## Setup and configuration
 
-* install mysql-client, python 3, pip and pipenv
-* install sqlalchemy and mysql driver for python using pipenv
+* install python 3
 * copy tool scripts
 
 ## Start
@@ -22,29 +20,11 @@
 The `gerrit_init.py`-script
 
 * reads configuration from gerrit.config (via `gerrit_config_parser.py`)
-* waits for the database to start (via `validate_db.py`)
 * initializes Gerrit
 
-The `validate_db.py`-script
-
-* reads database configuration from gerrit.config (via `gerrit_config_parser.py`)
-* waits for the database to start
-* waits for the reviewdb database
-+ waits for some selected tables to ensure that the schema is initialized
-
 The `validate_notedb.py`-script
 
 * validates and waits for the repository `All-Projects.git` with the refs
 `refs/meta/config`.
 * validates and waits for the repository `All-Users.git` with the ref
 `refs/meta/config`.
-
-## How to install/update python packages in container
-
-* Python 3.6 is required
-* Install `pipenv`
-* Navigate to `./container-images/gerrit-init/tools`
-* Run `pipenv install <package>`
-
-This will update the `Pipfile` and `Pipfile.lock`, which will be copied into the
-container image, when the container image is built.
diff --git a/container-images/gerrit-init/tools/Pipfile b/container-images/gerrit-init/tools/Pipfile
deleted file mode 100644
index 66e01bc..0000000
--- a/container-images/gerrit-init/tools/Pipfile
+++ /dev/null
@@ -1,13 +0,0 @@
-[[source]]
-name = "pypi"
-url = "https://pypi.org/simple"
-verify_ssl = true
-
-[dev-packages]
-
-[packages]
-sqlalchemy = "~=1.3.0"
-pymysql = "~=0.9.2"
-
-[requires]
-python_version = "3.6"
diff --git a/container-images/gerrit-init/tools/Pipfile.lock b/container-images/gerrit-init/tools/Pipfile.lock
deleted file mode 100644
index 0d6e4da..0000000
--- a/container-images/gerrit-init/tools/Pipfile.lock
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-    "_meta": {
-        "hash": {
-            "sha256": "d87c5aa27a5520841f560eaa4fbee325110730a1a9e088bf2bc2e24cdc6d155d"
-        },
-        "pipfile-spec": 6,
-        "requires": {
-            "python_version": "3.6"
-        },
-        "sources": [
-            {
-                "name": "pypi",
-                "url": "https://pypi.org/simple",
-                "verify_ssl": true
-            }
-        ]
-    },
-    "default": {
-        "pymysql": {
-            "hashes": [
-                "sha256:3943fbbbc1e902f41daf7f9165519f140c4451c179380677e6a848587042561a",
-                "sha256:d8c059dcd81dedb85a9f034d5e22dcb4442c0b201908bede99e306d65ea7c8e7"
-            ],
-            "index": "pypi",
-            "version": "==0.9.3"
-        },
-        "sqlalchemy": {
-            "hashes": [
-                "sha256:91c54ca8345008fceaec987e10924bf07dcab36c442925357e5a467b36a38319"
-            ],
-            "index": "pypi",
-            "version": "==1.3.3"
-        }
-    },
-    "develop": {}
-}
diff --git a/container-images/gerrit-init/tools/gerrit_init.py b/container-images/gerrit-init/tools/gerrit_init.py
index 18bb786..85f4a5d 100755
--- a/container-images/gerrit-init/tools/gerrit_init.py
+++ b/container-images/gerrit-init/tools/gerrit_init.py
@@ -21,16 +21,14 @@
 
 from git_config_parser import GitConfigParser
 from log import get_logger
-from validate_db import select_db
 
 LOG = get_logger("init")
 
 
 class GerritInit:
-    def __init__(self, site, wanted_plugins, enable_reviewdb):
+    def __init__(self, site, wanted_plugins):
         self.site = site
         self.wanted_plugins = set(wanted_plugins)
-        self.enable_reviewdb = enable_reviewdb
 
         self.gerrit_config = self._parse_gerrit_config()
         self.is_slave = self._is_slave()
@@ -44,10 +42,6 @@
 
         return None
 
-    def _ensure_database_connection(self):
-        database = select_db(self.site)
-        database.wait_for_db_server()
-
     def _is_slave(self):
         if self.gerrit_config:
             return self.gerrit_config.get_boolean("container.slave", False)
@@ -111,8 +105,6 @@
 
         if self.gerrit_config:
             LOG.info("Existing gerrit.config found.")
-            if self.enable_reviewdb:
-                self._ensure_database_connection()
         else:
             LOG.info("No gerrit.config found. Initializing default site.")
 
@@ -164,14 +156,7 @@
         action="append",
         default=list(),
     )
-    parser.add_argument(
-        "-d",
-        "--reviewdb",
-        help="Whether a reviewdb is part of the Gerrit installation.",
-        dest="reviewdb",
-        action="store_true",
-    )
     args = parser.parse_args()
 
-    init = GerritInit(args.site, args.wanted_plugins, args.reviewdb)
+    init = GerritInit(args.site, args.wanted_plugins)
     init.execute()
diff --git a/container-images/gerrit-init/tools/validate_db.py b/container-images/gerrit-init/tools/validate_db.py
deleted file mode 100755
index 357eea7..0000000
--- a/container-images/gerrit-init/tools/validate_db.py
+++ /dev/null
@@ -1,222 +0,0 @@
-#!/usr/bin/python3
-
-# Copyright (C) 2018 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import argparse
-import os.path
-import sys
-import time
-
-from abc import ABC, abstractmethod
-from sqlalchemy import create_engine
-from sqlalchemy.exc import SQLAlchemyError
-
-from git_config_parser import GitConfigParser
-from log import get_logger
-
-LOG = get_logger("validate-db")
-
-
-class DatabaseConfig:
-    def __init__(self, name, host, port, user, pwd):
-        self.name = name
-        self.host = host
-        self.port = port
-        self.user = user
-        self.pwd = pwd
-
-
-class AbstractGerritDB(ABC):
-    def __init__(self, config, secure_config):
-        self._read_config(config, secure_config)
-
-    @abstractmethod
-    def _read_config(self, config, secure_config):
-        """
-    Read all required configuration values.
-    """
-
-    @abstractmethod
-    def _create_db_url(self):
-        """
-    Create a URL with which the database can be reached.
-    """
-
-    @abstractmethod
-    def wait_for_db_server(self):
-        """
-    Wait until a connection with the database server is achieved.
-    """
-
-    @abstractmethod
-    def wait_for_db(self):
-        """
-    Check whether a database with the name configured for the ReviewDB
-    exists on the database server and wait for its creation.
-    """
-
-    @abstractmethod
-    def wait_for_schema(self):
-        """
-    Check whether the schema of the ReviewDBwas created and wait for its
-    creation.
-    """
-
-
-class H2GerritDB(AbstractGerritDB):
-    def __init__(self, config, secure_config, site):
-        super().__init__(config, secure_config)
-        self.site = site
-        self.url = self._create_db_url()
-
-    def _read_config(self, config, secure_config):
-        name = config.get("database.database", default="ReviewDB")
-        self.db_config = DatabaseConfig(name, None, None, None, None)
-
-    def _create_db_url(self):
-        suffix = ".h2.db"
-        if os.path.isabs(self.db_config.name):
-            if self.db_config.name.endswith(suffix):
-                return self.db_config.name
-            return self.db_config.name + suffix
-        return os.path.join(self.site, "db", self.db_config.name) + suffix
-
-    def wait_for_db_server(self):
-        # Not required. H2 is an embedded database.
-        pass
-
-    def wait_for_db(self):
-        LOG.info("Waiting for database to be available...")
-        while not os.path.exists(self.url):
-            time.sleep(3)
-            LOG.info("Still waiting...")
-        LOG.info("Found it!")
-
-    def wait_for_schema(self):
-        # Since no replication of a H2 databas is implemented yet, this test is not
-        # needed, because the schema is created by Gerrit.
-        pass
-
-
-class MysqlGerritDB(AbstractGerritDB):
-    def __init__(self, config, secure_config):
-        super().__init__(config, secure_config)
-
-        # tables expected in Gerrit 2.12 - 2.16
-        self.tables = ["changes", "patch_sets"]
-        self.server_url, self.reviewdb_url = self._create_db_url()
-
-        self.engine = None
-        self.connection = None
-
-    def _read_config(self, config, secure_config):
-        name = config.get("database.database", default="reviewdb")
-        host = config.get("database.hostname", default="localhost")
-        port = config.get("database.port", default="3306")
-        user = secure_config.get("database.username", default="")
-        pwd = secure_config.get("database.password", default="")
-        self.db_config = DatabaseConfig(name, host, port, user, pwd)
-
-    def _create_db_url(self):
-        server_url = "mysql+pymysql://%s:%s@%s:%s" % (
-            self.db_config.user,
-            self.db_config.pwd,
-            self.db_config.host,
-            self.db_config.port,
-        )
-        reviewdb_url = "%s/%s" % (server_url, self.db_config.name)
-        return (server_url, reviewdb_url)
-
-    def _connect_to_db(self, url):
-        self.engine = create_engine(url)
-        self.connection = self.engine.connect()
-
-    def wait_for_db_server(self):
-        LOG.info("Waiting for database server connection...")
-        while not self.connection or self.connection.closed:
-            try:
-                self._connect_to_db(self.server_url)
-                continue
-            except SQLAlchemyError:
-                LOG.info("Still waiting...")
-                time.sleep(3)
-        self.connection.close()
-        LOG.info("Connection successful!")
-
-    def wait_for_db(self):
-        LOG.info("Waiting for database to be available...")
-        self.connection.close()
-        while not self.connection or self.connection.closed:
-            try:
-                self._connect_to_db(self.reviewdb_url)
-                continue
-            except SQLAlchemyError:
-                LOG.info("Still waiting...")
-                time.sleep(3)
-        self.connection.close()
-        LOG.info("Found it!")
-
-    def wait_for_schema(self):
-        LOG.info("Waiting for database schema to be created...")
-        for table in self.tables:
-            while not self.engine.dialect.has_table(self.engine, table):
-                LOG.info("Still waiting for table %s...", table)
-                time.sleep(3)
-        LOG.info("Schema appears to have been created!")
-
-
-def select_db(gerrit_site_path):
-    gerrit_config_path = os.path.join(gerrit_site_path, "etc/gerrit.config")
-    config = GitConfigParser(gerrit_config_path)
-
-    gerrit_secure_config_path = os.path.join(gerrit_site_path, "etc/secure.config")
-    secure_config = GitConfigParser(gerrit_secure_config_path)
-
-    db_type = config.get("database.type")
-
-    if db_type.upper() == "H2":
-        gerrit_db = H2GerritDB(config, secure_config, gerrit_site_path)
-    elif db_type.upper() == "MYSQL":
-        gerrit_db = MysqlGerritDB(config, secure_config)
-    else:
-        LOG.error("Unknown database type.")
-        sys.exit(1)
-
-    return gerrit_db
-
-
-def validate_db(gerrit_site_path):
-    gerrit_db = select_db(gerrit_site_path)
-
-    gerrit_db.wait_for_db_server()
-    gerrit_db.wait_for_db()
-    gerrit_db.wait_for_schema()
-
-
-# pylint: disable=C0103
-if __name__ == "__main__":
-    parser = argparse.ArgumentParser()
-    parser.add_argument(
-        "-s",
-        "--site",
-        help="Path to Gerrit site",
-        dest="site",
-        action="store",
-        default="/var/gerrit",
-        required=True,
-    )
-    args = parser.parse_args()
-
-    validate_db(args.site)
diff --git a/container-images/gerrit-init/tools/validate_notedb.py b/container-images/gerrit-init/tools/validate_notedb.py
index 4fec993..92f96f0 100755
--- a/container-images/gerrit-init/tools/validate_notedb.py
+++ b/container-images/gerrit-init/tools/validate_notedb.py
@@ -30,7 +30,7 @@
 
         self.notedb_repos = ["All-Projects.git", "All-Users.git"]
         self.required_refs = {
-            "All-Projects.git": ["refs/meta/config"],
+            "All-Projects.git": ["refs/meta/config", "refs/meta/version"],
             "All-Users.git": ["refs/meta/config"],
         }
 
diff --git a/container-images/gerrit-slave/Dockerfile b/container-images/gerrit-slave/Dockerfile
index be5a81f..01cb993 100644
--- a/container-images/gerrit-slave/Dockerfile
+++ b/container-images/gerrit-slave/Dockerfile
@@ -2,7 +2,5 @@
 
 COPY tools/* /var/tools/
 
-# Initialize Gerrit site, install MySQL driver for Gerrit and configure Gerrit
-# as slave
-RUN /var/tools/download_db_driver && \
-    git config -f /var/gerrit/etc/gerrit.config container.slave true
+# Configure Gerrit as slave
+RUN git config -f /var/gerrit/etc/gerrit.config container.slave true
diff --git a/container-images/gerrit-slave/README.md b/container-images/gerrit-slave/README.md
index 65073a2..d78c2c9 100644
--- a/container-images/gerrit-slave/README.md
+++ b/container-images/gerrit-slave/README.md
@@ -5,18 +5,14 @@
 ## Content
 
 * gerrit-base image
-* mysql-driver for Gerrit
 
 ## Setup and configuration
 
-* batch initialize Gerrit site in `/var/gerrit`
-* install plugins
-* install MySQL driver
+* copy entrypoint scripts to image
 * ensure gerrit is configured as gerrit slave
 
 ## Start
 
 * starts the container via start script `/var/tools/start`
-(Entrypoint is inherited from gerrit-base image)
 * If configuration files (`gerrit.config`, `secret.config`, and `keystore`) are
 provide in `/var/config`, they will be symlinked into the Gerrit site.
diff --git a/container-images/gerrit-slave/tools/download_db_driver b/container-images/gerrit-slave/tools/download_db_driver
deleted file mode 100755
index 1f24517..0000000
--- a/container-images/gerrit-slave/tools/download_db_driver
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-set -e
-
-GERRIT_VERSION="$(java -jar /var/gerrit/bin/gerrit.war --version | cut -c 16-19)"
-
-if ([ "${GERRIT_VERSION}" = "2.12" ] || [ "${GERRIT_VERSION}" = "2.13" ]); then
-    PGM_INIT_JAR="gerrit-pgm-init.jar"
-elif ([ "${GERRIT_VERSION}" = "2.14" ] || [ "${GERRIT_VERSION}" = "2.15" ]); then
-    PGM_INIT_JAR="gerrit-pgm-libinit.jar"
-else
-    PGM_INIT_JAR="com_google_gerrit_pgm_init_libinit.jar"
-fi
-
-unzip -xOf /var/gerrit/bin/gerrit.war WEB-INF/lib/${PGM_INIT_JAR} -d /tmp
-LIBRARY_CONFIG_PATH="com/google/gerrit/pgm/init/libraries.config"
-unzip -xOf /tmp/WEB-INF/lib/${PGM_INIT_JAR} ${LIBRARY_CONFIG_PATH} -d /tmp
-( cd /var/gerrit/lib &&
-    curl -LO $(git config --file /tmp/${LIBRARY_CONFIG_PATH} --get library.mysqlDriver.url) )
-git config --file /tmp/${LIBRARY_CONFIG_PATH} --get library.mysqlDriver.sha1  && \
-echo "$(git config --file /tmp/${LIBRARY_CONFIG_PATH} --get library.mysqlDriver.sha1)  $(find /var/gerrit/lib -name 'mysql-connector-java-*.jar')" | shasum -c -
-rm -rf /tmp/WEB-INF /tmp/${LIBRARY_CONFIG_PATH}
\ No newline at end of file
diff --git a/container-images/gerrit-slave/tools/start b/container-images/gerrit-slave/tools/start
index b7dc32e..340816f 100755
--- a/container-images/gerrit-slave/tools/start
+++ b/container-images/gerrit-slave/tools/start
@@ -8,23 +8,11 @@
   done
 }
 
-create_missing_repository(){
-  test -d $1 || git init --bare $1
-}
-
 # Ensure that configuration provided at /var/config is symlinked to the Gerrit
 # site. This is necessary, because mounting files from secrets/configmaps in
 # Kubernetes make the containing directory read-only.
 symlink_config_to_site
 
-create_missing_repository /var/gerrit/git/All-Projects.git
-create_missing_repository /var/gerrit/git/All-Users.git
-
-DB=$(git config --file /var/gerrit/etc/gerrit.config --get database.type)
-if [[ "${DB^^}" == "MYSQL" ]]; then
-  /var/tools/download_db_driver
-fi
-
 # workaround gerrit.sh does not start httpd
 JAVA_OPTIONS=$(git config --file /var/gerrit/etc/gerrit.config --get-all container.javaOptions)
 java ${JAVA_OPTIONS} -jar /var/gerrit/bin/gerrit.war daemon \
diff --git a/container-images/mysql-replication-init/Dockerfile b/container-images/mysql-replication-init/Dockerfile
deleted file mode 100644
index b68d2be..0000000
--- a/container-images/mysql-replication-init/Dockerfile
+++ /dev/null
@@ -1,11 +0,0 @@
-FROM ubuntu:18.04
-
-RUN apt-get update && \
-    apt-get install -y \
-      mysql-client && \
-    apt-get clean && \
-    rm -rf /var/lib/apt/lists/*
-
-COPY tools/* /var/tools/
-
-ENTRYPOINT ["/bin/bash", "/var/tools/start"]
diff --git a/container-images/mysql-replication-init/README.md b/container-images/mysql-replication-init/README.md
deleted file mode 100644
index 8a167c5..0000000
--- a/container-images/mysql-replication-init/README.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# MySQL slave init container image
-
-Kubernetes init container for initializing a MySQL slave
-
-## Content
-
-* Ubuntu 18.04
-
-## Setup and configuration
-
-* install mysql-client
-* copy tool scripts
-
-## Start
-
-* start the container via start script `/var/tools/start`
-
-The start script
-
-* waits for database dump file from MySQL master to be copied into the container.
- The path to which the dump-file has to be copied, can be configured by setting the
- environment variable $FILEPATH (default: `/var/data/db/master_dump.sql`).
- The file can be copied into the container using `kubectl cp` or `docker cp`.
-* imports the database dump from MySQL master into MySQL slave
-* configures the MySQL slave
-* starts the MySQL slave
\ No newline at end of file
diff --git a/container-images/mysql-replication-init/tools/start b/container-images/mysql-replication-init/tools/start
deleted file mode 100755
index 7cbcded..0000000
--- a/container-images/mysql-replication-init/tools/start
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/bash
-
-test -z "${FILEPATH}" && FILEPATH=/var/data/db/master_dump.sql
-mkdir -p $(dirname "${FILEPATH}")
-useradd gerrit -u 1000 -g users
-chown -R gerrit:users /var/data/db
-rm -f ${FILEPATH} || echo "File did not exist yet."
-
-getTimeFromLastChange() {
-    lastAccess=$(stat --format=%Y ${FILEPATH})
-    now=$(date +%s)
-    timePassed=$((now - lastAccess))
-    echo ${timePassed}
-}
-
-echo "$(date): Started"
-echo "Waiting for database dump file at ${FILEPATH}"
-while ! test -f ${FILEPATH}; do
-    sleep 1
-done
-echo "$(date): File appeared"
-
-echo "Waiting for the copy process to finish."
-while [ "$(getTimeFromLastChange ${FILEPATH})" -lt 5 ]; do
-    sleep 1
-done
-echo "$(date): Database dump received"
-
-# Load database dump into database
-mysql -h ${MYSQL_HOST} -P${MYSQL_PORT} -u root -p${MYSQL_ROOT_PASSWORD} < ${FILEPATH}
-
-# Configure and start database slave
-mysql -h ${MYSQL_HOST} -P${MYSQL_PORT} -u root -p${MYSQL_ROOT_PASSWORD} \
-    -e "set @replpwd='${REPL_PASSWORD}'; source /var/sql/initialize-slave.sql;"
diff --git a/helm-charts/gerrit-master/Chart.yaml b/helm-charts/gerrit-master/Chart.yaml
index 6f4bed4..8217192 100644
--- a/helm-charts/gerrit-master/Chart.yaml
+++ b/helm-charts/gerrit-master/Chart.yaml
@@ -8,7 +8,7 @@
 
     [1](https://en.wikipedia.org/wiki/Gerrit_(software)
 name: gerrit-master
-version: 0.1.0
+version: 0.2.0
 maintainers:
 - name: Thomas Draebing
   email: thomas.draebing@sap.com
diff --git a/helm-charts/gerrit-master/README.md b/helm-charts/gerrit-master/README.md
index 933b5c1..3e6d271 100644
--- a/helm-charts/gerrit-master/README.md
+++ b/helm-charts/gerrit-master/README.md
@@ -4,6 +4,11 @@
 chart provides a Gerrit setup that can be deployed on Kubernetes.
 In addition, the chart provides a CronJob to perform Git garbage collection.
 
+***note
+Gerrit versions before 3.0 are no longer supported, since the support of ReviewDB
+was removed.
+***
+
 ## Prerequisites
 
 - Helm and Tiller (of course)
@@ -30,11 +35,6 @@
   A [Java keystore](https://gerrit-review.googlesource.com/Documentation/config-gerrit.html#httpd.sslKeyStore)
   to be used by Gerrit.
 
-- (Optional: Required, for Gerrit versions lower than 2.16)
-  A relational database to contain the ReviewDB, e.g. as provided by the
-  [reviewdb chart](/helm-charts/reviewdb). With Gerrit 2.16 an embedded H2-
-  database is usually enough, since the data is not changed during runtime.
-
 ## Installing the Chart
 
 ***note
@@ -198,17 +198,6 @@
 
     The canonical web URL has to be set to the Ingress host.
 
-- `database.*`
-
-    If the database is installed in the same Kubernetes cluster, the name of the
-    service exposing the database deployment may be used as a hostname.
-
-    With newer versions of the MySQL-driver used by Gerrit, using SSL-encrypted
-    communication with the database is enforced by default. This can be deactivated
-    by setting the `useSSL=false`-option. To do that in Gerrit, the database-URL
-    has to be provided manually:
-    `url = jdbc:mysql://<db-host>:<db-port>/<db-name>?nullNamePatternMatchesAll=true&useSSL=false`
-
 - `httpd.listenURL`
 
     This has to be set to `proxy-http://*:8080/` or `proxy-https://*:8080`,
diff --git a/helm-charts/gerrit-master/templates/gerrit-master.stateful-set.yaml b/helm-charts/gerrit-master/templates/gerrit-master.stateful-set.yaml
index 1c8be83..a307c3c 100644
--- a/helm-charts/gerrit-master/templates/gerrit-master.stateful-set.yaml
+++ b/helm-charts/gerrit-master/templates/gerrit-master.stateful-set.yaml
@@ -70,9 +70,6 @@
           fi
 
           /var/tools/gerrit_init.py \
-            {{- if .Values.gerritMaster.reviewdb.enabled }}
-            --reviewdb \
-            {{- end }}
             -s /var/gerrit \
             -p replication \
             -p commit-message-length-validator \
@@ -80,10 +77,6 @@
             -p reviewnotes
 
           symlink_config_to_site
-
-          {{- if .Values.gerritMaster.reviewdb.enabled }}
-          /var/tools/validate_db.py -s /var/gerrit
-          {{- end }}
         volumeMounts:
         - name: gerrit-site
           mountPath: "/var/gerrit"
diff --git a/helm-charts/gerrit-master/values.yaml b/helm-charts/gerrit-master/values.yaml
index ff5a5f9..ad4042f 100644
--- a/helm-charts/gerrit-master/values.yaml
+++ b/helm-charts/gerrit-master/values.yaml
@@ -129,9 +129,6 @@
   # automatic encoding using helm does not work here.
   keystore:
 
-  reviewdb:
-    enabled: false
-
   config:
     # Some values are expected to have a specific value for the deployment installed
     # by this chart to work. These are marked with `# FIXED`.
diff --git a/helm-charts/gerrit-slave/Chart.yaml b/helm-charts/gerrit-slave/Chart.yaml
index 10ef0d6..f85e02f 100644
--- a/helm-charts/gerrit-slave/Chart.yaml
+++ b/helm-charts/gerrit-slave/Chart.yaml
@@ -5,7 +5,7 @@
     that it receives from a Gerrit master instance via replication. It can be
     used to reduce the load on Gerrit master instances.
 name: gerrit-slave
-version: 0.1.0
+version: 0.2.0
 maintainers:
 - name: Thomas Draebing
   email: thomas.draebing@sap.com
diff --git a/helm-charts/gerrit-slave/README.md b/helm-charts/gerrit-slave/README.md
index 1c2cbab..13d3479 100644
--- a/helm-charts/gerrit-slave/README.md
+++ b/helm-charts/gerrit-slave/README.md
@@ -10,6 +10,11 @@
 The Gerrit slave is capable of receiving replicated git repositories from a
 Gerrit master. The Gerrit slave can then serve authenticated read-only requests.
 
+***note
+Gerrit versions before 3.0 are no longer supported, since the support of ReviewDB
+was removed.
+***
+
 ## Prerequisites
 
 - Helm and Tiller (of course)
@@ -36,11 +41,6 @@
   A [Java keystore](https://gerrit-review.googlesource.com/Documentation/config-gerrit.html#httpd.sslKeyStore)
   to be used by Gerrit.
 
-- (Optional: Required, for Gerrit versions lower than 2.16)
-  A relational database to contain the ReviewDB, e.g. as provided by the
-  [reviewdb chart](/helm-charts/reviewdb). With Gerrit 2.16 an embedded H2-
-  database is usually enough, since the data is not changed during runtime.
-
 ## Installing the Chart
 
 ***note
@@ -62,11 +62,11 @@
 [configuration section](#Configuration) lists the parameters that can be
 configured during installation.
 
-If the NoteDB is used, the Gerrit slave requires the replicated `All-Projects.git`-
-and `All-Users.git`-repositories to be present in the `/var/gerrit/git`-directory.
-The `gerrit-init`-InitContainer will wait for this being the case. A way to do
-this is to access the Gerrit slave pod and to clone the repositories from the
-Gerrit master (Make sure that you have the correct access rights do so.):
+The Gerrit slave requires the replicated `All-Projects.git`- and `All-Users.git`-
+repositories to be present in the `/var/gerrit/git`-directory. The `gerrit-init`-
+InitContainer will wait for this being the case. A way to do this is to access
+the Gerrit slave pod and to clone the repositories from the Gerrit master (Make
+sure that you have the correct access rights do so.):
 
 ```sh
 kubectl exec -it <gerrit-slave-pod> -c gerrit-init bash
@@ -191,30 +191,30 @@
 is mandatory, if access to the Gerrit slave is required!
 ***
 
-| Parameter                                   | Description                                                                                                              | Default                           |
-|---------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|-----------------------------------|
-| `gerritSlave.images.gerritInit`             | Image name of the Gerrit init container image                                                                            | `k8s-gerrit/gerrit-init`          |
-| `gerritSlave.images.gerritSlave`            | Image name of the Gerrit slave container image                                                                           | `k8s-gerrit/gerrit-slave`         |
-| `gerritSlave.replicas`                      | Number of pod replicas to deploy                                                                                         | `1`                               |
-| `gerritSlave.maxSurge`                      | Max. percentage or number of pods allowed to be scheduled above the desired number                                       | `25%`                             |
-| `gerritSlave.maxUnavailable`                | Max. percentage or number of pods allowed to be unavailable at a time                                                    | `100%`                            |
-| `gerritSlave.initializeTestSite.enabled`    | Enable the initialization of a site. USE ONLY for testing, if you do not plan to replicate repositories or the database. | `true`                            |
-| `gerritSlave.resources`                     | Configure the amount of resources the pod requests/is allowed                                                            | `requests.cpu: 1`                 |
-|                                             |                                                                                                                          | `requests.memory: 5Gi`            |
-|                                             |                                                                                                                          | `limits.cpu: 1`                   |
-|                                             |                                                                                                                          | `limits.memory: 6Gi`              |
-| `gerritSlave.persistence.enabled`           | Whether to persist the Gerrit site                                                                                       | `true`                            |
-| `gerritSlave.persistence.size`              | Storage size for persisted Gerrit site                                                                                   | `10Gi`                            |
-| `gerritSlave.service.type`                  | Which kind of Service to deploy                                                                                          | `NodePort`                        |
-| `gerritSlave.service.http.port`             | Port over which to expose HTTP                                                                                           | `80`                              |
-| `gerritSlave.ingress.host`                  | REQUIRED: Host name to use for the Ingress (required for Ingress)                                                        | `nil`                             |
-| `gerritSlave.ingress.additionalAnnotations` | Additional annotations for the Ingress                                                                                   | `nil`                             |
-| `gerritSlave.ingress.tls.enabled`           | Whether to enable TLS termination in the Ingress                                                                         | `false`                           |
-| `gerritSlave.ingress.tls.cert`              | Public SSL server certificate                                                                                            | `-----BEGIN CERTIFICATE-----`     |
-| `gerritSlave.ingress.tls.key`               | Private SSL server certificate                                                                                           | `-----BEGIN RSA PRIVATE KEY-----` |
-| `gerritSlave.keystore`                      | base64-encoded Java keystore (`cat keystore.jks | base64`) to be used by Gerrit, when using SSL                          | `nil`                             |
-| `gerritSlave.config.gerrit`                 | The contents of the gerrit.config                                                                                        | [see here](#Gerrit-config-files)  |
-| `gerritSlave.config.secure`                 | The contents of the secure.config                                                                                        | [see here](#Gerrit-config-files)  |
+| Parameter                                   | Description                                                                                              | Default                           |
+|---------------------------------------------|----------------------------------------------------------------------------------------------------------|-----------------------------------|
+| `gerritSlave.images.gerritInit`             | Image name of the Gerrit init container image                                                            | `k8s-gerrit/gerrit-init`          |
+| `gerritSlave.images.gerritSlave`            | Image name of the Gerrit slave container image                                                           | `k8s-gerrit/gerrit-slave`         |
+| `gerritSlave.replicas`                      | Number of pod replicas to deploy                                                                         | `1`                               |
+| `gerritSlave.maxSurge`                      | Max. percentage or number of pods allowed to be scheduled above the desired number                       | `25%`                             |
+| `gerritSlave.maxUnavailable`                | Max. percentage or number of pods allowed to be unavailable at a time                                    | `100%`                            |
+| `gerritSlave.initializeTestSite.enabled`    | Enable the initialization of a site. USE ONLY for testing, if you do not plan to replicate repositories. | `true`                            |
+| `gerritSlave.resources`                     | Configure the amount of resources the pod requests/is allowed                                            | `requests.cpu: 1`                 |
+|                                             |                                                                                                          | `requests.memory: 5Gi`            |
+|                                             |                                                                                                          | `limits.cpu: 1`                   |
+|                                             |                                                                                                          | `limits.memory: 6Gi`              |
+| `gerritSlave.persistence.enabled`           | Whether to persist the Gerrit site                                                                       | `true`                            |
+| `gerritSlave.persistence.size`              | Storage size for persisted Gerrit site                                                                   | `10Gi`                            |
+| `gerritSlave.service.type`                  | Which kind of Service to deploy                                                                          | `NodePort`                        |
+| `gerritSlave.service.http.port`             | Port over which to expose HTTP                                                                           | `80`                              |
+| `gerritSlave.ingress.host`                  | REQUIRED: Host name to use for the Ingress (required for Ingress)                                        | `nil`                             |
+| `gerritSlave.ingress.additionalAnnotations` | Additional annotations for the Ingress                                                                   | `nil`                             |
+| `gerritSlave.ingress.tls.enabled`           | Whether to enable TLS termination in the Ingress                                                         | `false`                           |
+| `gerritSlave.ingress.tls.cert`              | Public SSL server certificate                                                                            | `-----BEGIN CERTIFICATE-----`     |
+| `gerritSlave.ingress.tls.key`               | Private SSL server certificate                                                                           | `-----BEGIN RSA PRIVATE KEY-----` |
+| `gerritSlave.keystore`                      | base64-encoded Java keystore (`cat keystore.jks | base64`) to be used by Gerrit, when using SSL          | `nil`                             |
+| `gerritSlave.config.gerrit`                 | The contents of the gerrit.config                                                                        | [see here](#Gerrit-config-files)  |
+| `gerritSlave.config.secure`                 | The contents of the secure.config                                                                        | [see here](#Gerrit-config-files)  |
 
 ### Gerrit config files
 
@@ -244,17 +244,6 @@
 
     The canonical web URL has to be set to the Ingress host.
 
-- `database.*`
-
-    If the database is installed in the same Kubernetes cluster, the name of the
-    service exposing the database deployment may be used as a hostname.
-
-    With newer versions of the MySQL-driver used by Gerrit, using SSL-encrypted
-    communication with the database is enforced by default. This can be deactivated
-    by setting the `useSSL=false`-option. To do that in Gerrit, the database-URL
-    has to be provided manually:
-    `url = jdbc:mysql://<db-host>:<db-port>/<db-name>?nullNamePatternMatchesAll=true&useSSL=false`
-
 - `httpd.listenURL`
 
     This has to be set to `proxy-http://*:8080/` or `proxy-https://*:8080`,
diff --git a/helm-charts/gerrit-slave/docs/mysql.md b/helm-charts/gerrit-slave/docs/mysql.md
deleted file mode 100644
index df33ca2..0000000
--- a/helm-charts/gerrit-slave/docs/mysql.md
+++ /dev/null
@@ -1,273 +0,0 @@
-# Configuring the MySQL-slave
-
-To install a MySQL slave database with the gerrit-slave chart, set
-`database.provider` to `mysql` and `mysql.enabled`to true in the `values.yaml`.
-This will then install the [mysql chart](https://github.com/helm/charts/tree/master/stable/mysql)
-onto the Kubernetes cluster as a dependency of the gerrit-slave chart.
-
-## Configuring the master DB instance
-
-For the replication to work, the MySQL database master has to be configured
-accordingly and some data about the database state has to be collected. The
-necessary steps are detailed in this section. If it is not planned to replicate
-the master database, skip this section.
-
-### Create technical user
-
-Connect to the MySQL database master and create a technical user to handle the
-replication:
-
-```sql
-CREATE USER 'repl' IDENTIFIED BY 'password';
-GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'
-  IDENTIFIED BY 'password'
-  REQUIRE SUBJECT '/C=DE/O=Gerrit/CN=gerrit-db-slave';
-FLUSH PRIVILEGES;
-```
-
-The username, password and certificate subject can be chosen as needed, but should
-be written down, since they are needed in coming steps.
-
-### Create certificates for SSL-encrypted communication
-
-For SSL-encrypted communication, a set of certificates is needed. If the master
-does not yet possess a CA, private- and public key, use the following commands
-to create them after adjusting the subject strings:
-
-```sh
-openssl genrsa -out ./ca.key.pem 4096
-
-openssl req \
-    -key ./ca.key.pem \
-    -new \
-    -x509 \
-    -days 7300 \
-    -sha256 \
-    -out ./ca.cert.pem \
-    -subj "/C=DE/O=Gerrit/CN=gerrit-db-master" \
-    -nodes
-
-openssl genrsa -out ./master.key.pem 4096
-
-openssl req \
-    -key ./master.key.pem \
-    -new \
-    -sha256 \
-    -out ./master.csr.pem \
-    -subj "/C=DE/O=Gerrit/CN=gerrit-db-master" \
-    -nodes
-
-openssl x509 \
-    -req \
-    -CA ./ca.cert.pem \
-    -CAkey ./ca.key.pem \
-    -CAcreateserial \
-    -in ./master.csr.pem \
-    -out ./master.cert.pem
-```
-
-Then a private and a public key for the slave has to be created. If the master
-did already possess a CA, change the corresponding paths in the commands below.
-The subject string has to be the same as the one used, when creating the
-[MySQL user for replication](#Create-technical-user). The content of the
-CA-certificate and the slave's private and public key (here: `slave.key.pem` and
-`slave.cert.pem`) have to be noted for later use.
-
-```sh
-openssl genrsa -out ./slave.key.pem 4096
-
-openssl req \
-    -key ./slave.key.pem \
-    -new -sha256 \
-    -out ./slave.csr.pem \
-    -subj "/C=DE/O=Gerrit/CN=gerrit-db-slave" \
-    -nodes
-
-openssl x509 \
-    -req \
-    -CA ./ca.cert.pem \
-    -CAkey ./ca.key.pem \
-    -CAcreateserial \
-    -in ./slave.csr.pem \
-    -out ./slave.cert.pem
-```
-
-### Configure the master database
-
-The master DB has to be configured for replication by adding the following entries
-to the configuration-file of the MySQL instance:
-
-```python
-[mysqld]
-server-id=1                     # Has to be unique under all masters/slaves.
-log_bin=mysql-bin               # Name of the logs used for replication
-
-ssl-ca=/ssl/ca.pem              # Location of the CA-certificate
-ssl-cert=/ssl/server-cert.pem   # Location of the public key
-ssl-key=/ssl/server-key.pem     # Location of the private key
-```
-
-### Create database dump and note database state
-
-In the next steps the content of the database has to be retrieved and the corresponding
-status of the transaction logs has to be retrieved. Depending on the traffic the
-database receives, the master DB should be stopped for these steps, since the
-information could get out off sync, if the data is changed inbetween the steps:
-
-```sql
-STOP MASTER;
-```
-
-Retrieve the status of the master:
-
-```sql
-SHOW MASTER STATUS;
-
-  +------------------+----------+--------------+------------------+-------------------+
-  | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
-  +------------------+----------+--------------+------------------+-------------------+
-  | mysql-bin.000004 | 69444891 |              |                  |                   |
-  +------------------+----------+--------------+------------------+-------------------+
-```
-
-The filename and position should be written down, since they will be needed for
-the configuration of the slave.
-
-Dump the content of the database:
-
-```sh
-mysqldump --user=root -p --all-databases > ./master_dump.sql
-```
-
-Afterwards, the master can be started again:
-
-```sql
-START MASTER;
-```
-
-## Configuration
-
-### mysql-chart
-
-The configuration of the database is done in the `values.yaml`of the gerrit-slave
-chart under the `mysql`-key. The complete list of options for the mysql-chart can
-be viewed in the chart's [documentation](https://github.com/helm/charts/blob/master/stable/mysql/README.md).
-The options referenced in the gerrit-slave chart's `values.yaml` are listed here:
-
-| Parameter                                  | Description                                                                                                                                          | Default                                                                           |
-|--------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|
-| `mysql.enabled`                            | Whether to install the MySQL database                                                                                                                | `true`                                                                            |
-| `mysql.image`                              | Which container image containing MySQL to use                                                                                                        | `mysql`                                                                           |
-| `mysql.imageTag`                           | Tag of container image (usually the database version)                                                                                                | `5.5.61`                                                                          |
-| `mysql.mysqlRootPassword`                  | Password of the database `root` user                                                                                                                 | `big_secret`                                                                      |
-| `mysql.mysqlUser`                          | Database user (The technical user used by the Gerrit slave)                                                                                          | `gerrit`                                                                          |
-| `mysql.mysqlPassword`                      | Password of the database user                                                                                                                        | `secret`                                                                          |
-| `mysql.livenessProbe.initialDelaySeconds`  | Delay before liveness probe is initiated                                                                                                             | `30`                                                                              |
-| `mysql.livenessProbe.periodSeconds`        | How often to perform the probe                                                                                                                       | `10`                                                                              |
-| `mysql.livenessProbe.timeoutSeconds`       | When the probe times out                                                                                                                             | `5`                                                                               |
-| `mysql.livenessProbe.successThreshold`     | Minimum consecutive successes for the probe to be considered successful after having failed.                                                         | `1`                                                                               |
-| `mysql.livenessProbe.failureThreshold`     | Minimum consecutive failures for the probe to be considered failed after having succeeded.                                                           | `3`                                                                               |
-| `mysql.readinessProbe.initialDelaySeconds` | Delay before readiness probe is initiated                                                                                                            | `5`                                                                               |
-| `mysql.readinessProbe.periodSeconds`       | How often to perform the probe                                                                                                                       | `10`                                                                              |
-| `mysql.readinessProbe.timeoutSeconds`      | When the probe times out                                                                                                                             | `1`                                                                               |
-| `mysql.readinessProbe.successThreshold`    | Minimum consecutive successes for the probe to be considered successful after having failed.                                                         | `1`                                                                               |
-| `mysql.readinessProbe.failureThreshold`    | Minimum consecutive failures for the probe to be considered failed after having succeeded.                                                           | `3`                                                                               |
-| `mysql.persistence.enabled`                | Create a volume to store data                                                                                                                        | `true`                                                                            |
-| `mysql.persistence.size`                   | Size of persistent volume claim                                                                                                                      | `8Gi`                                                                             |
-| `mysql.persistence.storageClass`           | Type of persistent volume claim                                                                                                                      | `default`                                                                         |
-| `mysql.persistence.accessMode`             | ReadWriteOnce or ReadOnly                                                                                                                            | `ReadWriteOnce`                                                                   |
-| `mysql.resources`                          | Configure the amount of resources the pod requests/is allowed                                                                                        | `requests.cpu: 250m`                                                              |
-|                                            |                                                                                                                                                      | `requests.memory: 1Gi`                                                            |
-|                                            |                                                                                                                                                      | `limits.cpu: 250m`                                                                |
-|                                            |                                                                                                                                                      | `limits.memory: 1Gi`                                                              |
-| `mysql.configurationFiles`                 | Add configuration files for MySQL                                                                                                                    | `mysql.cnf` (check the [mysql.cnf-section](#mysql.cnf) for configuration options) |
-| `mysql.initializationFiles`                | Add scripts that are executed, when the database is started the first time                                                                           | `initialize_reviewdb.sql` (Should not be changed)                                 |
-| `mysql.service.type`                       | Type of the Service used to expose the database                                                                                                      | `NodePort`                                                                        |
-| `mysql.service.port`                       | The port used to expose the database                                                                                                                 | `3306`                                                                            |
-| `ssl.enabled`                              | Setup and use SSL for MySQL connections                                                                                                              | `false`                                                                           |
-| `ssl.secret`                               | Name of the secret containing the SSL certificates                                                                                                   | slave-ssl-certs                                                                   |
-| `ssl.certificates[0].name`                 | Name of the secret containing the SSL certificates                                                                                                   | slave-ssl-certs                                                                   |
-| `ssl.certificates[0].ca`                   | CA certificate (if using replication use the CA created [peviously](#Create-certificates-for-SSL-encrypted-communication))                           | `-----BEGIN CERTIFICATE-----`                                                     |
-| `ssl.certificates[0].cert`                 | Server certificate (public key) (if using replication use the certificate created [peviously](#Create-certificates-for-SSL-encrypted-communication)) | `-----BEGIN CERTIFICATE-----`                                                     |
-| `ssl.certificates[0].key`                  | Server key (private key) (if using replication use the key created [peviously](#Create-certificates-for-SSL-encrypted-communication))                | `-----BEGIN RSA PRIVATE KEY-----`                                                 |
-
-### mysql.cnf
-
-The configuration file for the MySQL-server is provided under the key
-`mysql.configurationsFiles.mysql.cnf`. The provided values provide necessary
-configuration to receive replicated databases from the master database. The
-following options should normally not be changed:
-
-```sh
-[mysqld]
-
-log-bin=/var/lib/mysql/bin.log
-log-bin-index=/var/lib/mysql/log-bin.index
-log-error=/var/lib/mysql/error.log
-
-relay-log=/var/lib/mysql/relay.log
-relay-log-info-file=/var/lib/mysql/relay-log.info
-relay-log-index=/var/lib/mysql/relay-log.index
-
-log-error=/var/lib/mysql/error.log
-log_slave_updates = 1
-
-sql_mode="ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
-```
-
-The other provided options should be adapted to the respective setup:
-
-| Parameter             | Description                                                                                                                 | Default |
-|-----------------------|-----------------------------------------------------------------------------------------------------------------------------|---------|
-| `read_only`           | Toggle read only mode. In production this should be on (`1`). The test mode of the Gerrit slave expects it to be off (`0`). | `0`     |
-| `replicate-ignore-db` | Databases not to replicate (replicating the `mysql`-DB for example would overwrite database users)                          | `mysql` |
-| `binlog_format`       | Format of the binlogs (Has to be the same as on master)                                                                     | `row`   |
-| `server-id`           | ID unique in the MySQL setup                                                                                                | `42`    |
-
-In addition, if using SSL for MySQL-requests the following options have to be made
-available by uncommenting them. The values must not be changed, when using the chart:
-
-```sh
-ssl-ca=/ssl/ca.pem
-ssl-cert=/ssl/server-cert.pem
-ssl-key=/ssl/server-key.pem
-```
-
-### Replication
-
-The replication of the MySQL database from master to slave is performed using the
-replication functionality provided by MySQL. To start replication a database dump
-from the master has to be loaded into the database slave. Then the slave has to
-be configured for replication and replication has to be started. This is done by
-a job provided by the chart.
-
-The Job needs to be configured with the data retrieved from the database master
-by configuring the corresponding values in the `values.yaml`-file:
-
-| Parameter                                          | Description                                                                                                            | Default                        |
-|----------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|--------------------------------|
-| `database.replication.mysql.config.masterHost`     | Hostname of the Mysql database master                                                                                  | `mysql.example.com`            |
-| `database.replication.mysql.config.masterPort`     | Port of the Mysql database master                                                                                      | `3306`                         |
-| `database.replication.mysql.config.masterUser`     | Username of technical user created [previously](#Create-technical-user)                                                | `repl`                         |
-| `database.replication.mysql.config.masterPassword` | Password of technical user created [previously](#Create-technical-user)                                                | `password`                     |
-| `database.replication.mysql.config.masterLogFile`  | Transaction log file at timepoint of dump as retrieved [previously](#Create-database-dump-and-note-database-state)     | `mysql-bin.000001`             |
-| `database.replication.mysql.config.masterLogPos`   | Transaction log position at timepoint of dump as retrieved [previously](#Create-database-dump-and-note-database-state) | `111`                          |
-| `database.replication.mysql.dbDumpAcceptPath`      | Path, where the replication init script will expect the database dump file to appear                                   | `/var/data/db/master_dump.sql` |
-
-## Initialize replication
-
-Deploying the gerrit-slave chart with the configuration detailed above, will
-create a MySQL database with a technical user to be used by the Gerrit
-slave and an empty ReviewDB database. In addition a Job will be deployed that
-waits for a database dump to be copied into the container to the location specified
-in `database.replication.mysql.dbDumpAcceptPath`. The dump file can be copied
-using kubectl:
-
-```sh
-JOB_POD=$(kubectl get pod -l app=mysql-replication-init -o jsonpath="{.items[0].metadata.name}")
-kubectl cp <PATH_TO_DUMP> ${JOB_POD}:<DB_DUMP_ACCEPT_PATH>
-```
-
-As soon as the file is fully copied into the container, the script will load
-the dump into the database and initialize the replication in the slave. The
-database is then fully configured.
\ No newline at end of file
diff --git a/helm-charts/gerrit-slave/templates/NOTES.txt b/helm-charts/gerrit-slave/templates/NOTES.txt
index c128fb8..19fd906 100644
--- a/helm-charts/gerrit-slave/templates/NOTES.txt
+++ b/helm-charts/gerrit-slave/templates/NOTES.txt
@@ -25,17 +25,6 @@
 
 The Gerrit slave is starting up.
 
-{{ if .Values.gerritSlave.initializeTestSite.enabled -}}
-Since the test-mode was activated, a Gerrit site will be initialized after the
-database connection could be established.
-{{- else }}
-The deployment will wait for the replication of repositories and the databse scheme.
-The repository replication is checked by testing for the presence of the 'All-Projects.git'-
-and 'All-Users.git'-repository. The database-scheme is tested by testing for the
-presence of a database with the configured name, containing the tables 'accounts',
-'changes' and 'patch_sets'.
-{{- end }}
-
 The initialization process may take some time. Afterwards the git repositories
 will be available under:
 
diff --git a/helm-charts/gerrit-slave/templates/gerrit-slave.deployment.yaml b/helm-charts/gerrit-slave/templates/gerrit-slave.deployment.yaml
index b158e3e..da33a26 100644
--- a/helm-charts/gerrit-slave/templates/gerrit-slave.deployment.yaml
+++ b/helm-charts/gerrit-slave/templates/gerrit-slave.deployment.yaml
@@ -57,13 +57,7 @@
         - -ce
         args:
         - |
-          mkdir -p /var/gerrit/etc
-          ln -sf /var/config/secure.config /var/gerrit/etc/secure.config
-
           /var/tools/gerrit_init.py \
-            {{- if .Values.gerritSlave.reviewdb.enabled }}
-            --reviewdb \
-            {{- end }}
             -s /var/gerrit \
             -p singleusergroup
 
@@ -72,12 +66,9 @@
         volumeMounts:
         - name: gerrit-site
           mountPath: "/var/gerrit"
-        - name: gerrit-slave-secure-config
-          mountPath: "/var/config/secure.config"
-          subPath: secure.config
       {{- end }}
-      # Wait for database to be ready and, if configured, run initialization
-      # taking the given Gerrit configuration and persisted volumes into account.
+      # If configured, run initialization taking the given Gerrit configuration
+      # and persisted volumes into account.
       - name: gerrit-init
         image: {{ template "registry" . }}{{ .Values.gerritSlave.images.gerritInit }}:{{ .Values.images.version }}
         imagePullPolicy: {{ .Values.images.imagePullPolicy }}
@@ -103,20 +94,13 @@
 
           {{ if .Values.gerritSlave.initializeTestSite.enabled -}}
           /var/tools/gerrit_init.py \
-            {{- if .Values.gerritSlave.reviewdb.enabled }}
-            --reviewdb \
-            {{- end }}
             -s /var/gerrit \
             -p singleusergroup
 
           symlink_config_to_site
           {{- end }}
 
-          {{- if .Values.gerritSlave.reviewdb.enabled }}
-          /var/tools/validate_db.py -s /var/gerrit
-          {{- else }}
           /var/tools/validate_notedb.py -s /var/gerrit
-          {{- end }}
         volumeMounts:
         - name: gerrit-site
           mountPath: "/var/gerrit"
diff --git a/helm-charts/gerrit-slave/values.yaml b/helm-charts/gerrit-slave/values.yaml
index 3472871..8b4d028 100644
--- a/helm-charts/gerrit-slave/values.yaml
+++ b/helm-charts/gerrit-slave/values.yaml
@@ -147,9 +147,8 @@
   maxUnavailable: 100%
 
   # If you only intend to test the Gerrit slave and do not wish to actually
-  # replicate repositories and the database, activate this option to initialize
-  # a new site.
-  # NOTE: The database must not run in read-only mode for this to work!
+  # replicate repositories, activate this option to initialize a new site,
+  # including a notedb.
   initializeTestSite:
     enabled: true
 
@@ -192,9 +191,6 @@
   # automatic encoding using helm does not work here.
   keystore:
 
-  reviewdb:
-    enabled: false
-
   config:
     # Some values are expected to have a specific value for the deployment installed
     # by this chart to work. These are marked with `# FIXED`.
diff --git a/helm-charts/reviewdb/.helmignore b/helm-charts/reviewdb/.helmignore
deleted file mode 100644
index 4f4562f..0000000
--- a/helm-charts/reviewdb/.helmignore
+++ /dev/null
@@ -1,24 +0,0 @@
-# Patterns to ignore when building packages.
-# This supports shell glob matching, relative path matching, and
-# negation (prefixed with !). Only one pattern per line.
-.DS_Store
-# Common VCS dirs
-.git/
-.gitignore
-.bzr/
-.bzrignore
-.hg/
-.hgignore
-.svn/
-# Common backup files
-*.swp
-*.bak
-*.tmp
-*~
-# Various IDEs
-.project
-.idea/
-*.tmproj
-
-docs/
-supplements/
diff --git a/helm-charts/reviewdb/Chart.yaml b/helm-charts/reviewdb/Chart.yaml
deleted file mode 100644
index 34eb33f..0000000
--- a/helm-charts/reviewdb/Chart.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-apiVersion: v1
-appVersion: 2.16
-description: |-
-    This chart provisions a database to be used with a Gerrit master or Gerrit
-    slave setup, if the Gerrit version is lower than 2.16. This database is
-    needed to store userdata.
-
-    Note, that with the upcoming Gerrit release the reviewdb-database will be
-    fully migrated to notedb and this chart is not required to run the gerrit-
-    master and gerrit-slave charts.
-name: reviewdb
-version: 0.1.0
-maintainers:
-- name: Thomas Draebing
-  email: thomas.draebing@sap.com
-- name: Matthias Sohn
-  email: matthias.sohn@sap.com
-- name: Sasa Zivkov
-  email: sasa.zivkov@sap.com
-- name: Christian Halstrick
-  email: christian.halstrick@sap.com
-home: https://gerrit.googlesource.com/k8s-gerrit/+/master/helm-charts/review-db
-icon: http://commondatastorage.googleapis.com/gerrit-static/diffy-w200.png
-sources:
-- https://gerrit.googlesource.com/k8s-gerrit/+/master/
-keywords:
-- gerrit
-- git
-- reviewdb
diff --git a/helm-charts/reviewdb/LICENSE b/helm-charts/reviewdb/LICENSE
deleted file mode 100644
index 028fc9f..0000000
--- a/helm-charts/reviewdb/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
-   Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "{}"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright (C) 2018 The Android Open Source Project
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
diff --git a/helm-charts/reviewdb/README.md b/helm-charts/reviewdb/README.md
deleted file mode 100644
index 6298c0d..0000000
--- a/helm-charts/reviewdb/README.md
+++ /dev/null
@@ -1,320 +0,0 @@
-# A ReviewDB for Gerrit on Kubernetes
-
-Gerrit requires a database to store user and change data. The database is commonly
-called ReviewDB. Gerrit provides a set of options, which database technology to
-use. This chart is meant to install a database and initialize it, so it can be
-used as a ReviewDB for Gerrit-master and -slave setups installed with the
-respective charts. Currently, the following databases sre supported by this chart:
-
-- MySQL
-
-***note
-The gerrit-master and gerrit-slave charts also support H2, but since H2-databases
-do not require a separate server, this chart is not required in that case.
-***
-
-***note
-With upcoming versions of Gerrit, the ReviewDB will be completely migrated to
-NoteDB, removing the dependency on a external relational database.
-***
-
-## Installation
-
-To install a MySQL database with the reviewdb chart, set `mysql.enabled`to
-true in the `values.yaml`. This will then install the
-[mysql chart](https://github.com/helm/charts/tree/master/stable/mysql)
-onto the Kubernetes cluster as a dependency.
-
-To install the chart with the release name `reviewdb`, execute:
-
-```sh
-cd $(git rev-parse --show-toplevel)/helm-charts
-helm install ./reviewdb \
-  --dep-up \
-  -n reviewdb \
-  -f <path-to-custom-values>.yaml
-```
-
-## Configuration
-
-### Common
-
-#### Container images
-
-| Parameter                                  | Description                                          | Default                                                              |
-|--------------------------------------------|------------------------------------------------------|----------------------------------------------------------------------|
-| `images.registry.name`                     | The image registry to pull the container images from | ``                                                                   |
-| `images.registry.ImagePullSecret.name`     | Name of the ImagePullSecret                          | `image-pull-secret` (if empty no image pull secret will be deployed) |
-| `images.registry.ImagePullSecret.create`   | Whether to create an ImagePullSecret                 | `false`                                                              |
-| `images.registry.ImagePullSecret.username` | The image registry username                          | `nil`                                                                |
-| `images.registry.ImagePullSecret.password` | The image registry password                          | `nil`                                                                |
-| `images.version`                           | The image version (image tag) to use                 | `latest`                                                             |
-| `images.imagePullPolicy`                   | Image pull policy                                    | `Always`                                                             |
-
-#### Storage classes
-
-For information of how a `StorageClass` is configured in Kubernetes, read the
-[official Documentation](https://kubernetes.io/docs/concepts/storage/storage-classes/#introduction).
-
-| Parameter                              | Description                                                       | Default                                           |
-|----------------------------------------|-------------------------------------------------------------------|---------------------------------------------------|
-| `storageClasses.default.name`          | The name of the default StorageClass (RWO)                        | `default`                                         |
-| `storageClasses.default.create`        | Whether to create the StorageClass                                | `false`                                           |
-| `storageClasses.default.provisioner`   | Provisioner of the StorageClass                                   | `kubernetes.io/aws-ebs`                           |
-| `storageClasses.default.reclaimPolicy` | Whether to `Retain` or `Delete` volumes, when they become unbound | `Delete`                                          |
-| `storageClasses.default.parameters`    | Parameters for the provisioner                                    | `parameters.type: gp2`, `parameters.fsType: ext4` |
-
-#### Replication
-
-***note
-Currently, only master-slave replication is possible. Thus, enabling replication
-always means to use the database as slave.
-***
-
-| Parameter | Description                                            | Default |
-|-----------|--------------------------------------------------------|---------|
-| `isSlave` | Whether to switch on replication from another database | `false` |
-
-
-#### MySQL
-
-***note
-Not all options available in the mysql-chart that is used as a dependency are
-listed in the `values.yaml`-file of this chart. The complete list of options for
-the mysql-chart can be viewed in the chart's
-[documentation](https://github.com/helm/charts/blob/master/stable/mysql/README.md).
-***
-
-| Parameter                                  | Description                                                                                                                                     | Default                                                                                        |
-|--------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
-| `mysql.enabled`                            | Whether to install the MySQL database                                                                                                           | `true`                                                                                         |
-| `mysql.replication`                        | Only used, if `isSlave` is `true`                                                                                                               | `{}`                                                                                           |
-| `mysql.replication.config.masterHost`      | Hostname of the Mysql database master                                                                                                           | `mysql.example.com`                                                                            |
-| `mysql.replication.config.masterPort`      | Port of the Mysql database master                                                                                                               | `3306`                                                                                         |
-| `mysql.replication.config.masterUser`      | Username of technical user created for replication                                                                                              | `repl`                                                                                         |
-| `mysql.replication.config.masterPassword`  | Password of technical user created for replication                                                                                              | `password`                                                                                     |
-| `mysql.replication.config.masterLogFile`   | Transaction log file at timepoint of dump as retrieved [here](#Create-database-dump-and-note-database-state)                                    | `mysql-bin.000001`                                                                             |
-| `mysql.replication.config.masterLogPos`    | Transaction log position at timepoint of dump as retrieved [here](#Create-database-dump-and-note-database-state)                                | `111`                                                                                          |
-| `mysql.replication.dbDumpAcceptPath`       | Path, where the replication init script will expect the database dump file to appear                                                            | `/var/data/db/master_dump.sql`                                                                 |
-| `mysql.image`                              | Which container image containing MySQL to use                                                                                                   | `mysql`                                                                                        |
-| `mysql.imageTag`                           | Tag of container image (usually the database version)                                                                                           | `5.5.61`                                                                                       |
-| `mysql.mysqlRootPassword`                  | Password of the database `root` user                                                                                                            | `big_secret`                                                                                   |
-| `mysql.mysqlUser`                          | Database user (The technical user used by Gerrit)                                                                                               | `gerrit`                                                                                       |
-| `mysql.mysqlPassword`                      | Password of the database user                                                                                                                   | `secret`                                                                                       |
-| `mysql.livenessProbe.initialDelaySeconds`  | Delay before liveness probe is initiated                                                                                                        | `30`                                                                                           |
-| `mysql.livenessProbe.periodSeconds`        | How often to perform the probe                                                                                                                  | `10`                                                                                           |
-| `mysql.livenessProbe.timeoutSeconds`       | When the probe times out                                                                                                                        | `5`                                                                                            |
-| `mysql.livenessProbe.successThreshold`     | Minimum consecutive successes for the probe to be considered successful after having failed.                                                    | `1`                                                                                            |
-| `mysql.livenessProbe.failureThreshold`     | Minimum consecutive failures for the probe to be considered failed after having succeeded.                                                      | `3`                                                                                            |
-| `mysql.readinessProbe.initialDelaySeconds` | Delay before readiness probe is initiated                                                                                                       | `5`                                                                                            |
-| `mysql.readinessProbe.periodSeconds`       | How often to perform the probe                                                                                                                  | `10`                                                                                           |
-| `mysql.readinessProbe.timeoutSeconds`      | When the probe times out                                                                                                                        | `1`                                                                                            |
-| `mysql.readinessProbe.successThreshold`    | Minimum consecutive successes for the probe to be considered successful after having failed.                                                    | `1`                                                                                            |
-| `mysql.readinessProbe.failureThreshold`    | Minimum consecutive failures for the probe to be considered failed after having succeeded.                                                      | `3`                                                                                            |
-| `mysql.persistence.enabled`                | Create a volume to store data                                                                                                                   | `true`                                                                                         |
-| `mysql.persistence.size`                   | Size of persistent volume claim                                                                                                                 | `8Gi`                                                                                          |
-| `mysql.persistence.storageClass`           | Type of persistent volume claim                                                                                                                 | `default`                                                                                      |
-| `mysql.persistence.accessMode`             | ReadWriteOnce or ReadOnly                                                                                                                       | `ReadWriteOnce`                                                                                |
-| `mysql.resources`                          | Configure the amount of resources the pod requests/is allowed                                                                                   | `requests.cpu: 250m`                                                                           |
-|                                            |                                                                                                                                                 | `requests.memory: 1Gi`                                                                         |
-|                                            |                                                                                                                                                 | `limits.cpu: 250m`                                                                             |
-|                                            |                                                                                                                                                 | `limits.memory: 1Gi`                                                                           |
-| `mysql.configurationFiles`                 | Add configuration files for MySQL                                                                                                               | `{}` (check the [Configuration files-section](#Configuration-files) for configuration options) |
-| `mysql.initializationFiles`                | Add scripts that are executed, when the database is started the first time                                                                      | `{}` (check the [Initialization files-section](#Initialization-files) for details)             |
-| `mysql.service.type`                       | Type of the Service used to expose the database                                                                                                 | `NodePort`                                                                                     |
-| `mysql.service.port`                       | The port used to expose the database                                                                                                            | `3306`                                                                                         |
-| `mysql.ssl.enabled`                        | Setup and use SSL for MySQL connections                                                                                                         | `false`                                                                                        |
-| `mysql.ssl.secret`                         | Name of the secret containing the SSL certificates (Has to be different between multiple instances running in the same cluster)                 | `ssl-certs`                                                                                    |
-| `mysql.ssl.certificates[0].name`           | Name of the secret containing the SSL certificates (Has to be different between multiple instances running in the same cluster)                 | `ssl-certs`                                                                                    |
-| `mysql.ssl.certificates[0].ca`             | CA certificate (if using replication use the CA created [here](#create-certificates-for-ssl_encrypted-communication))                           | `-----BEGIN CERTIFICATE-----`                                                                  |
-| `mysql.ssl.certificates[0].cert`           | Server certificate (public key) (if using replication use the certificate created [here](#create-certificates-for-ssl_encrypted-communication)) | `-----BEGIN CERTIFICATE-----`                                                                  |
-| `mysql.ssl.certificates[0].key`            | Server key (private key) (if using replication use the key created [here](#create-certificates-for-ssl_encrypted-communication))                | `-----BEGIN RSA PRIVATE KEY-----`                                                              |
-
-##### Configuration files
-
-The configuration file for the MySQL-server is provided under the keys
-`mysql.configurationsFiles.*.cnf`. There are three different config-files provided:
-
-- `common.cnf`: Contains configuration, which is the same for master- and slave-
-databases:
-
-| Parameter       | Description                                              | Default           |
-|-----------------|----------------------------------------------------------|-------------------|
-| `log-bin`       | Name of transaction logs (used for database replication) | `mysql-bin`       |
-| `log-bin-index` | Name of transaction log indices                          | `mysql-bin.index` |
-| `log-error`     | Error log file                                           | `error.log`       |
-| `binlog_format` | Format of the binlogs (Has to be the same as on master)  | `row`             |
-
-In addition, if using SSL for MySQL-requests the following options have to be made
-available by uncommenting them. The values must not be changed, when using the chart:
-
-```sh
-ssl-ca=/ssl/ca.pem
-ssl-cert=/ssl/server-cert.pem
-ssl-key=/ssl/server-key.pem
-```
-
-- `mysql-master.cnf`: Contains configuration specific for the master database:
-
-| Parameter   | Description                  | Default |
-|-------------|------------------------------|---------|
-| `server-id` | ID unique in the MySQL setup | `1`     |
-
-- `mysql-slave.cnf`: Contains configuration specific for the slave database:
-
-| Parameter             | Description                                                                                                                 | Default                                                                   |
-|-----------------------|-----------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------|
-| `relay-log`           | The slave's relay log location                                                                                              | `/var/lib/mysql/relay.log`                                                |
-| `relay-log-info-file` | The slave's relay log info file location                                                                                    | `/var/lib/mysql/relay-log.info`                                           |
-| `relay-log-index`     | The slave's relay log index location                                                                                        | `/var/lib/mysql/relay-log.index`                                          |
-| `log_slave_updates`   | Whether to log slave update                                                                                                 | `1`                                                                       |
-| `sql_mode`            | Configure SQL-mode                                                                                                          | `"ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"` |
-| `read_only`           | Toggle read only mode. In production this should be on (`1`). The test mode of the Gerrit slave expects it to be off (`0`). | `0`                                                                       |
-| `replicate-ignore-db` | Databases not to replicate (replicating the `mysql`-DB for example would overwrite database users)                          | `mysql`                                                                   |
-| `server-id`           | ID unique in the MySQL setup                                                                                                | `42`                                                                      |
-
-The `mysql-master.cnf`- and `mysql-slave.cnf`-files are mutually exclusive.
-Comment out the contents of the file, that is not needed, depending on installing
-a master or slave database.
-
-##### Initialization files
-
-- `initialize_reviewdb.sql`
-
-Creates a database called 'reviewdb', that can be used by Gerrit for the ReviewDB.
-Leave this file unchanged.
-
-- `create_repl_user.sql`
-
-Creates a user, that can be used for database replication. This user is only needed
-on the master database and only, when the data is supposed to be replicated to
-slaves. To use it, uncomment the code and change the username, password and
-certificate subject as needed.
-
-## Aditional configuration steps
-
-### Create certificates for SSL-encrypted communication
-
-For SSL-encrypted communication, a set of certificates is needed. Use the
-following commands to create them after adjusting the subject strings:
-
-```sh
-openssl genrsa -out ./ca.key.pem 4096
-
-openssl req \
-    -key ./ca.key.pem \
-    -new \
-    -x509 \
-    -days 7300 \
-    -sha256 \
-    -out ./ca.cert.pem \
-    -subj "/C=DE/O=Gerrit/CN=gerrit-db-master" \
-    -nodes
-
-openssl genrsa -out ./master.key.pem 4096
-
-openssl req \
-    -key ./master.key.pem \
-    -new \
-    -sha256 \
-    -out ./master.csr.pem \
-    -subj "/C=DE/O=Gerrit/CN=gerrit-db-master" \
-    -nodes
-
-openssl x509 \
-    -req \
-    -CA ./ca.cert.pem \
-    -CAkey ./ca.key.pem \
-    -CAcreateserial \
-    -in ./master.csr.pem \
-    -out ./master.cert.pem
-
-openssl genrsa -out ./slave.key.pem 4096
-
-openssl req \
-    -key ./slave.key.pem \
-    -new \
-    -sha256 \
-    -out ./slave.csr.pem \
-    -subj "/C=DE/O=Gerrit/CN=gerrit-db-slave" \
-    -nodes
-
-openssl x509 \
-    -req \
-    -CA ./ca.cert.pem \
-    -CAkey ./ca.key.pem \
-    -CAcreateserial \
-    -in ./slave.csr.pem \
-    -out ./slave.cert.pem
-```
-
-***note
-The `CN` has to be the hostname of the database instances. In case the database
-is running on Kubernetes it can be the service name.
-***
-
-### Configuring a master DB instance for replication
-
-For the replication to work, the MySQL database master has to be configured
-accordingly and some data about the database state has to be collected. The
-necessary steps are detailed in this section. If it is not planned to replicate
-the master database, skip this section.
-
-#### Create database dump and note database state
-
-In the next steps the content of the database has to be retrieved and the corresponding
-status of the transaction logs has to be retrieved. Depending on the traffic the
-database receives, the master DB should be stopped for these steps, since the
-information could get out off sync, if the data is changed inbetween the steps:
-
-```sql
-STOP MASTER;
-```
-
-Retrieve the status of the master:
-
-```sql
-SHOW MASTER STATUS;
-
-  +------------------+----------+--------------+------------------+-------------------+
-  | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
-  +------------------+----------+--------------+------------------+-------------------+
-  | mysql-bin.000004 | 69444891 |              |                  |                   |
-  +------------------+----------+--------------+------------------+-------------------+
-```
-
-The filename and position have to be entered in the database slave's `values.yaml`
-under `mysql.replication.config.masterLogFile` and
-`mysql.replication.config.masterLogPos`.
-
-Dump the content of the database:
-
-```sh
-mysqldump --user=root -p --databases reviewdb > ./master_dump.sql
-```
-
-Afterwards, the master can be started again:
-
-```sql
-START MASTER;
-```
-
-## Initialize replication
-
-### MySQL
-
-Deploying the reviewdb chart with replication enabled, will create a MySQL
-database with a technical user to be used by the Gerrit slave and an empty
-ReviewDB database. In addition a Job will be deployed that waits for a database
-dump to be copied into the container to the location specified in
-`mysql.replication.dbDumpAcceptPath`. The dump file can be copied into the
-container using kubectl:
-
-```sh
-JOB_POD=$(kubectl get pod -l app=mysql-replication-init -o jsonpath="{.items[0].metadata.name}")
-kubectl cp <PATH_TO_DUMP> ${JOB_POD}:<DB_DUMP_ACCEPT_PATH>
-```
-
-As soon as the file is fully copied into the container, the script will load
-the dump into the database and initialize the replication in the slave. The
-database is then fully configured.
diff --git a/helm-charts/reviewdb/requirements.yaml b/helm-charts/reviewdb/requirements.yaml
deleted file mode 100644
index c0b68f3..0000000
--- a/helm-charts/reviewdb/requirements.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-dependencies:
-- name: mysql
-  version: 0.10.1
-  repository: https://kubernetes-charts.storage.googleapis.com/
-  condition: mysql.enabled
\ No newline at end of file
diff --git a/helm-charts/reviewdb/templates/NOTES.txt b/helm-charts/reviewdb/templates/NOTES.txt
deleted file mode 100644
index 123eea9..0000000
--- a/helm-charts/reviewdb/templates/NOTES.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-A ReviewDB has been deployed.
-==================================
-
-A {{ if .Values.mysql.enabled -}} MySQL {{- end }} database has been deployed and
-initialized to serve a ReviewDB-database.
-
-{{ if .Values.isSlave -}}
-The components to initialize database replication have been deployed. To start
-initialization the Job needs a database dump containing the master's data. Use
-the following command to make the database dump available to the job:
-
-  JOB_POD=$(kubectl get pod -l app=mysql-replication-init -o jsonpath="{.items[0].metadata.name}")
-  kubectl cp <PATH_TO_DUMP> ${JOB_POD}:{{ .Values.mysql.replication.dbDumpAcceptPath }}
-
-Depending on the size of the database the initialization will take a while. When
-finished the job will shut down.
-{{- end }}
diff --git a/helm-charts/reviewdb/templates/_helpers.tpl b/helm-charts/reviewdb/templates/_helpers.tpl
deleted file mode 100644
index f4468cd..0000000
--- a/helm-charts/reviewdb/templates/_helpers.tpl
+++ /dev/null
@@ -1,20 +0,0 @@
-{{/*
-Create chart name and version as used by the chart label.
-*/}}
-{{- define "reviewdb.chart" -}}
-{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-{{/*
-Create secret to access docker registry
-*/}}
-{{- define "imagePullSecret" }}
-{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .Values.images.registry.name (printf "%s:%s" .Values.images.registry.ImagePullSecret.username .Values.images.registry.ImagePullSecret.password | b64enc) | b64enc }}
-{{- end }}
-
-{{/*
-Add '/' to registry if needed.
-*/}}
-{{- define "registry" -}}
-{{ if .Values.images.registry.name }}{{- printf "%s/" .Values.images.registry.name -}}{{end}}
-{{- end -}}
diff --git a/helm-charts/reviewdb/templates/image-pull.secret.yaml b/helm-charts/reviewdb/templates/image-pull.secret.yaml
deleted file mode 100644
index d107472..0000000
--- a/helm-charts/reviewdb/templates/image-pull.secret.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-{{ if and .Values.images.registry.ImagePullSecret.name .Values.images.registry.ImagePullSecret.create -}}
-apiVersion: v1
-kind: Secret
-metadata:
-  name: {{ .Values.images.registry.ImagePullSecret.name }}
-type: kubernetes.io/dockerconfigjson
-data:
-  .dockerconfigjson: {{ template "imagePullSecret" . }}
-{{- end }}
\ No newline at end of file
diff --git a/helm-charts/reviewdb/templates/mysql-replication-init.job.yaml b/helm-charts/reviewdb/templates/mysql-replication-init.job.yaml
deleted file mode 100644
index 6e8c9b8..0000000
--- a/helm-charts/reviewdb/templates/mysql-replication-init.job.yaml
+++ /dev/null
@@ -1,100 +0,0 @@
-{{ if and .Values.isSlave .Values.mysql.enabled }}
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: {{ .Release.Name }}-mysql-replication-init-configmap
-  labels:
-    app: mysql-replication-init
-    chart: {{ template "reviewdb.chart" . }}
-    heritage: {{ .Release.Service }}
-    release: {{ .Release.Name }}
-data:
-  initialize-slave.sql: |
-    SET @query = CONCAT(
-      "CHANGE MASTER TO ",
-      "MASTER_HOST = '{{ .Values.mysql.replication.config.masterHost }}' , ",
-      "MASTER_PORT = {{ .Values.mysql.replication.config.masterPort }} , ",
-      "MASTER_USER = '{{ .Values.mysql.replication.config.masterUser }}' , ",
-      "MASTER_PASSWORD ='", @replpwd, "', ",
-      "MASTER_LOG_FILE = '{{ .Values.mysql.replication.config.masterLogFile }}' , ",
-      "MASTER_LOG_POS = {{ .Values.mysql.replication.config.masterLogPos }} , ",
-      "MASTER_SSL = {{ if .Values.mysql.ssl.enabled }} 1 {{ else }} 0 {{ end }} , ",
-      "MASTER_SSL_CA = '/ssl/ca.pem', ",
-      "MASTER_SSL_CERT = '/ssl/server-cert.pem', ",
-      "MASTER_SSL_KEY = '/ssl/server-key.pem', ",
-      "MASTER_SSL_VERIFY_SERVER_CERT = 1;");
-    PREPARE stmt FROM @query;
-    EXECUTE stmt;
-    DEALLOCATE PREPARE stmt;
-
-    START SLAVE;
-    DO SLEEP(15);
-    SHOW SLAVE STATUS\G;
-  dump-filepath: {{ .Values.mysql.replication.dbDumpAcceptPath }}
----
-apiVersion: v1
-kind: Secret
-metadata:
-  name: {{ .Release.Name }}-mysql-replication-init-secret
-  labels:
-    app: mysql-replication-init
-    chart: {{ template "reviewdb.chart" . }}
-    heritage: {{ .Release.Service }}
-    release: {{ .Release.Name }}
-data:
-  repl-password: {{ .Values.mysql.replication.config.masterPassword | b64enc }}
-type: Opaque
----
-apiVersion: batch/v1
-kind: Job
-metadata:
-  name: {{ .Release.Name }}-mysql-replication-init-job
-  labels:
-    app: mysql-replication-init
-    chart: {{ template "reviewdb.chart" . }}
-    heritage: {{ .Release.Service }}
-    release: {{ .Release.Name }}
-spec:
-  template:
-    metadata:
-      name:  {{ .Release.Name }}-mysql-replication-init
-      labels:
-        app: mysql-replication-init
-    spec:
-      restartPolicy: OnFailure
-      {{ if .Values.images.registry.ImagePullSecret.name -}}
-      imagePullSecrets:
-      - name: {{ .Values.images.registry.ImagePullSecret.name }}
-      {{- end }}
-      containers:
-      - name: mysql-replication-init
-        imagePullPolicy: {{ .Values.images.imagePullPolicy }}
-        image: {{ template "registry" . }}{{ .Values.mysql.replication.image }}:{{ .Values.images.version }}
-        env:
-        - name: REPL_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: {{ .Release.Name }}-mysql-replication-init-secret
-              key: repl-password
-        - name: MYSQL_ROOT_PASSWORD
-          valueFrom:
-            secretKeyRef:
-              name: {{ printf "%s-mysql" .Release.Name }}
-              key: mysql-root-password
-        - name: FILEPATH
-          valueFrom:
-            configMapKeyRef:
-              name: {{ .Release.Name }}-mysql-replication-init-configmap
-              key: dump-filepath
-        - name: MYSQL_HOST
-          value: {{ printf "%s-mysql" .Release.Name }}
-        - name: MYSQL_PORT
-          value: {{ .Values.mysql.service.port | quote }}
-        volumeMounts:
-        - name: mysql-replication-init-configmap
-          mountPath: "/var/sql"
-      volumes:
-      - name: mysql-replication-init-configmap
-        configMap:
-          name: {{ .Release.Name }}-mysql-replication-init-configmap
-{{- end }}
diff --git a/helm-charts/reviewdb/templates/storageclasses.yaml b/helm-charts/reviewdb/templates/storageclasses.yaml
deleted file mode 100644
index e0764fc..0000000
--- a/helm-charts/reviewdb/templates/storageclasses.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-{{ if .Values.storageClasses.default.create -}}
-kind: StorageClass
-apiVersion: storage.k8s.io/v1
-metadata:
-  name: {{ .Values.storageClasses.default.name }}
-  labels:
-    chart: {{ template "reviewdb.chart" . }}
-    heritage: {{ .Release.Service }}
-    release: {{ .Release.Name }}
-provisioner: {{ .Values.storageClasses.default.provisioner }}
-reclaimPolicy: {{ .Values.storageClasses.default.reclaimPolicy }}
-{{ if .Values.storageClasses.shared.parameters -}}
-parameters:
-{{- range $key, $value := .Values.storageClasses.default.parameters }}
-  {{ $key }}: {{ $value }}
-{{- end }}
-{{- end }}
-{{- end }}
diff --git a/helm-charts/reviewdb/values.yaml b/helm-charts/reviewdb/values.yaml
deleted file mode 100644
index 33658f9..0000000
--- a/helm-charts/reviewdb/values.yaml
+++ /dev/null
@@ -1,187 +0,0 @@
-images:
-  registry:
-    # The registry name must NOT contain a trailing slash
-    name:
-    ImagePullSecret:
-      # Leave blank, if no ImagePullSecret is needed.
-      name: image-pull-secret
-      # If set to false, the gerrit-master chart expects either a ImagePullSecret
-      # with the name configured above to be present on the cluster or that no
-      # credentials are needed.
-      create: false
-      username:
-      password:
-  version: latest
-  imagePullPolicy: Always
-
-
-storageClasses:
-  # Storage class used for storing logs and other pod-specific persisted data
-  default:
-    # If create is set to false, an existing StorageClass with the given
-    # name is expected to exist in the cluster. Setting create to true will
-    # create a storage class with the parameters given below.
-    name: default
-    create: false
-    provisioner: kubernetes.io/aws-ebs
-    reclaimPolicy: Delete
-    # Use the parameters key to set all parameters needed for the provisioner
-    parameters:
-      type: gp2
-      fsType: ext4
-
-
-isSlave: false
-
-
-mysql:
-  # Enabling the installation of the MySQL database will only make sense, if
-  # `mysql` is chosen as a provider under `database.provider`.
-  enabled: true
-
-  replication:
-    image: k8sgerrit/mysql-replication-init
-    config:
-      masterHost: mysql.example.com
-      masterPort: 3306
-      masterUser: repl
-      masterPassword: password
-      masterLogFile: mysql-bin.000001
-      masterLogPos: 111
-    dbDumpAcceptPath: /var/data/db/master_dump.sql
-
-  image: mysql
-  # The major.minor version of mysql should be the same as for the master database
-  imageTag: 5.5.61
-
-  mysqlRootPassword: big_secret
-  mysqlUser: gerrit
-  mysqlPassword: secret
-
-  livenessProbe:
-    initialDelaySeconds: 30
-    periodSeconds: 10
-    timeoutSeconds: 5
-    successThreshold: 1
-    failureThreshold: 3
-
-  readinessProbe:
-    initialDelaySeconds: 5
-    periodSeconds: 10
-    timeoutSeconds: 1
-    successThreshold: 1
-    failureThreshold: 3
-
-  persistence:
-    enabled: true
-    storageClass: default
-    accessMode: ReadWriteOnce
-    size: 8Gi
-
-  resources:
-    requests:
-      cpu: 250m
-      memory: 1Gi
-    limits:
-      cpu: 250m
-      memory: 1Gi
-
-  configurationFiles:
-    common.cnf: |-
-      [mysqld]
-
-      # Name of transaction logs (used for database replication)
-      log-bin=mysql-bin
-      log-bin-index=mysql-bin.index
-      log-error=error.log
-
-      # Adapt to the binlog format of the Gerrit master's database
-      binlog_format=row
-
-      # Add the following options to the config, if using SSL (`mysql.ssl.enabled: true`)
-      # But do not change the values.
-      # ssl-ca=/ssl/ca.pem
-      # ssl-cert=/ssl/server-cert.pem
-      # ssl-key=/ssl/server-key.pem
-
-    # Use only one of the following configuration files, depending on whether
-    # the database deployment should be used as master or as slave, and comment
-    # out the contents of the other one.
-    mysql-master.cnf: |-
-      [mysqld]
-
-      # Adapt the following changes to your setup
-      ###########################################
-
-      # Has to be different for each database in the replication setup.
-      server-id=1
-
-    mysql-slave.cnf: |-
-    #   [mysqld]
-
-    #   # The following options should not be changed
-    #   #############################################
-
-    #   relay-log=/var/lib/mysql/relay.log
-    #   relay-log-info-file=/var/lib/mysql/relay-log.info
-    #   relay-log-index=/var/lib/mysql/relay-log.index
-
-    #   log_slave_updates = 1
-
-    #   sql_mode="ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
-
-    #   # Adapt the following changes to your setup
-    #   ###########################################
-
-    #   # Should usually set to '1', when running in production.
-    #   read_only=1
-
-    #   # The mysql database should not be replicated to avoid to overwrite user data
-    #   # of the database
-    #   replicate-ignore-db=mysql
-
-    #   # Has to be different for each database in the replication setup.
-    #   server-id=42
-
-  initializationFiles:
-    # Do not change or remove this script.
-    initialize_reviewdb.sql: |-
-      CREATE DATABASE reviewdb DEFAULT CHARACTER SET 'utf8';
-      GRANT ALL ON reviewdb.* TO 'gerrit';
-      FLUSH PRIVILEGES;
-
-    # Uncomment this, if you plan to run this database instance as master and
-    # plan to replicate data to a slave. This will create a user that can be used
-    # for replication. Change username, password and certificate subject as needed.
-    #
-    # create_repl_user.sql: |-
-    #   CREATE USER 'repl' IDENTIFIED BY 'password';
-    #   GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'
-    #     IDENTIFIED BY 'password'
-    #     REQUIRE SUBJECT '/C=DE/O=Gerrit/CN=db-slave-mysql';
-    #   FLUSH PRIVILEGES;
-
-  service:
-    type: NodePort
-    port: 3306
-
-  ssl:
-    # If enabled, add the required lines to the configuration as described in
-    # `mysql.configurationFiles.mysql.cnf`
-    enabled: false
-    # Has to be different between multiple instances running in the same cluster
-    secret: ssl-certs
-    certificates:
-    - name: ssl-certs
-      ca: |-
-        -----BEGIN CERTIFICATE-----
-
-        -----END CERTIFICATE-----
-      cert: |-
-        -----BEGIN CERTIFICATE-----
-
-        -----END CERTIFICATE-----
-      key: |-
-        -----BEGIN RSA PRIVATE KEY-----
-
-        -----END RSA PRIVATE KEY-----
diff --git a/supplements/gerrit-master.minikube.values.yaml b/supplements/gerrit-master.minikube.values.yaml
index f891b4b..9f1ba31 100644
--- a/supplements/gerrit-master.minikube.values.yaml
+++ b/supplements/gerrit-master.minikube.values.yaml
@@ -45,8 +45,6 @@
         basePath = git
         serverId = gerrit-master-1
         canonicalWebUrl = http://master.gerrit
-      [database]
-        type = h2
       [index]
         type = LUCENE
       [auth]
@@ -71,10 +69,6 @@
         javaOptions = -Xmx300m
 
     secure: |-
-      [database]
-        username = gerrit
-        password = secret
-
       [remote "slave"]
         username = git
         password = secret
diff --git a/supplements/gerrit-slave.minikube.values.yaml b/supplements/gerrit-slave.minikube.values.yaml
index 72f5d91..9eabab4 100644
--- a/supplements/gerrit-slave.minikube.values.yaml
+++ b/supplements/gerrit-slave.minikube.values.yaml
@@ -63,8 +63,6 @@
         basePath = git
         serverId = gerrit-slave-1
         canonicalWebUrl = http://slave.gerrit
-      [database]
-        type = h2
       [index]
         type = LUCENE
       [auth]
@@ -88,8 +86,3 @@
         javaOptions = -Djavax.net.ssl.trustStore=/var/gerrit/etc/keystore
         javaOptions = -Xms300m
         javaOptions = -Xmx300m
-
-    secure: |-
-      [database]
-        username = gerrit
-        password = secret
diff --git a/tests/conftest.py b/tests/conftest.py
index 8fdc1fe..44de092 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -167,10 +167,3 @@
 @pytest.fixture(scope="session")
 def gerrit_init_image(container_images, docker_build, base_image, gerrit_base_image):
     return docker_build(container_images["gerrit-init"], "gerrit-init")
-
-
-@pytest.fixture(scope="session")
-def mysql_replication_init_image(container_images, docker_build):
-    return docker_build(
-        container_images["mysql-replication-init"], "mysql-replication-init"
-    )
diff --git a/tests/container-images/conftest.py b/tests/container-images/conftest.py
index 0cdc3a8..5ca6b67 100644
--- a/tests/container-images/conftest.py
+++ b/tests/container-images/conftest.py
@@ -13,70 +13,10 @@
 # limitations under the License.
 
 import os.path
-import time
-
-from sqlalchemy import create_engine
-from sqlalchemy.exc import SQLAlchemyError
 
 import pytest
 
 
-class MySQLContainer:
-    def __init__(self, docker_client, docker_network, mysql_config):
-        self.docker_client = docker_client
-        self.docker_network = docker_network
-        self.mysql_config = mysql_config
-
-        self.mysql_container = None
-
-    def _wait_for_db_connection(self):
-        connection = None
-        while connection is None:
-            try:
-                connection = self.connect()
-                continue
-            except SQLAlchemyError:
-                time.sleep(1)
-        connection.close()
-
-    def connect(self):
-        engine = create_engine(
-            "mysql+pymysql://root:%s@localhost:%s"
-            % (
-                self.mysql_config["MYSQL_ROOT_PASSWORD"],
-                self.mysql_config["MYSQL_PORT"],
-            )
-        )
-        return engine.connect()
-
-    def start(self):
-        self.mysql_container = self.docker_client.containers.run(
-            image="mysql:5.5.61",
-            environment={
-                "MYSQL_ROOT_PASSWORD": self.mysql_config["MYSQL_ROOT_PASSWORD"],
-                "MYSQL_DATABASE": "reviewdb",
-            },
-            ports={"3306": self.mysql_config["MYSQL_PORT"]},
-            network=self.docker_network.name,
-            name=self.mysql_config["MYSQL_HOST"],
-            detach=True,
-            auto_remove=True,
-        )
-
-        self._wait_for_db_connection()
-
-    def stop(self):
-        self.mysql_container.stop(timeout=1)
-
-
-@pytest.fixture(scope="session")
-def mysql_container_factory():
-    def get_mysql_container(docker_client, docker_network, mysql_config):
-        return MySQLContainer(docker_client, docker_network, mysql_config)
-
-    return get_mysql_container
-
-
 class GerritContainer:
     def __init__(self, docker_client, docker_network, tmp_dir, image, configs, port):
         self.docker_client = docker_client
diff --git a/tests/container-images/gerrit-init/test_container_structure_gerrit_init.py b/tests/container-images/gerrit-init/test_container_structure_gerrit_init.py
index 909a3b5..0b6c3bf 100755
--- a/tests/container-images/gerrit-init/test_container_structure_gerrit_init.py
+++ b/tests/container-images/gerrit-init/test_container_structure_gerrit_init.py
@@ -24,26 +24,17 @@
 
 @pytest.fixture(
     scope="function",
-    params=[
-        "/var/tools/gerrit_init.py",
-        "/var/tools/git_config_parser.py",
-        "/var/tools/validate_db.py",
-    ],
+    params=["/var/tools/gerrit_init.py", "/var/tools/git_config_parser.py"],
 )
 def expected_script(request):
     return request.param
 
 
-@pytest.fixture(scope="function", params=["python3", "pip3", "mysql"])
+@pytest.fixture(scope="function", params=["python3"])
 def expected_tool(request):
     return request.param
 
 
-@pytest.fixture(scope="function", params=["pymysql", "sqlalchemy"])
-def expected_pip_package(request):
-    return request.param
-
-
 def test_gerrit_init_inherits_from_gerrit_base(gerrit_init_image):
     contains_tag = False
     for layer in gerrit_init_image.history():
@@ -65,13 +56,6 @@
     assert exit_code == 0
 
 
-def test_gerrit_init_contains_expected_pip_packages(
-    container_run, expected_pip_package
-):
-    exit_code, _ = container_run.exec_run("pip3 show %s" % expected_pip_package)
-    assert exit_code == 0
-
-
 def test_gerrit_init_has_entrypoint(gerrit_init_image):
     entrypoint = gerrit_init_image.attrs["ContainerConfig"]["Entrypoint"]
     assert len(entrypoint) >= 1
diff --git a/tests/container-images/gerrit-master/test_container_integration_gerrit_master.py b/tests/container-images/gerrit-master/test_container_integration_gerrit_master.py
index f654465..61791db 100644
--- a/tests/container-images/gerrit-master/test_container_integration_gerrit_master.py
+++ b/tests/container-images/gerrit-master/test_container_integration_gerrit_master.py
@@ -37,9 +37,6 @@
       [gerrit]
         basePath = git
 
-      [database]
-        type = H2
-
       [httpd]
         listenUrl = http://*:8081
 
diff --git a/tests/container-images/gerrit-slave/test_container_integration_gerrit_slave.py b/tests/container-images/gerrit-slave/test_container_integration_gerrit_slave.py
index ac97b24..86132d1 100644
--- a/tests/container-images/gerrit-slave/test_container_integration_gerrit_slave.py
+++ b/tests/container-images/gerrit-slave/test_container_integration_gerrit_slave.py
@@ -14,8 +14,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from glob import glob
-
 import os
 import os.path
 import re
@@ -35,7 +33,7 @@
 
 
 @pytest.fixture(scope="class")
-def container_run_h2(
+def container_run(
     request,
     docker_client,
     docker_network,
@@ -48,9 +46,6 @@
       [gerrit]
         basePath = git
 
-      [database]
-        type = H2
-
       [httpd]
         listenUrl = http://*:8081
 
@@ -65,6 +60,7 @@
           success = True
       """,
     }
+
     test_setup = gerrit_container_factory(
         docker_client, docker_network, tmp_dir, gerrit_slave_image, configs, 8081
     )
@@ -75,43 +71,9 @@
     return test_setup.gerrit_container
 
 
-@pytest.fixture(scope="class")
-def container_run_mysql(
-    request,
-    docker_client,
-    docker_network,
-    tmp_dir,
-    gerrit_slave_image,
-    gerrit_container_factory,
-):
-    configs = {
-        "gerrit.config": """
-      [gerrit]
-        basePath = git
-
-      [database]
-        type = MySQL
-
-      [httpd]
-        listenUrl = http://*:8082
-
-      [container]
-        slave = true
-      """
-    }
-    test_setup = gerrit_container_factory(
-        docker_client, docker_network, tmp_dir, gerrit_slave_image, configs, 8082
-    )
-    test_setup.start()
-
-    request.addfinalizer(test_setup.stop)
-
-    return test_setup.gerrit_container
-
-
 @pytest.mark.slow
 @pytest.mark.incremental
-class TestGerritSlaveH2:
+class TestGerritSlave:
     @pytest.fixture(params=CONFIG_FILES)
     def config_file_to_test(self, request):
         return request.param
@@ -120,18 +82,18 @@
     def expected_repository(self, request):
         return request.param
 
-    def test_gerrit_slave_gerrit_starts_up(self, container_run_h2):
+    def test_gerrit_slave_gerrit_starts_up(self, container_run):
         def wait_for_gerrit_start():
-            log = container_run_h2.logs().decode("utf-8")
+            log = container_run.logs().decode("utf-8")
             return log, re.search(r"Gerrit Code Review .+ ready", log)
 
         finished_in_time, _ = utils.exec_fn_with_timeout(wait_for_gerrit_start, 60)
         assert finished_in_time
 
     def test_gerrit_slave_custom_gerrit_config_available(
-        self, container_run_h2, config_file_to_test
+        self, container_run, config_file_to_test
     ):
-        exit_code, output = container_run_h2.exec_run(
+        exit_code, output = container_run.exec_run(
             "git config --file=/var/gerrit/etc/%s --get test.success"
             % config_file_to_test
         )
@@ -139,38 +101,19 @@
         assert exit_code == 0
         assert output == "True"
 
-    def test_gerrit_slave_repository_exists(
-        self, container_run_h2, expected_repository
-    ):
-        exit_code, _ = container_run_h2.exec_run(
+    def test_gerrit_slave_repository_exists(self, container_run, expected_repository):
+        exit_code, _ = container_run.exec_run(
             "test -d /var/gerrit/git/%s" % expected_repository
         )
         assert exit_code == 0
 
-    def test_gerrit_slave_clone_repo_works(self, container_run_h2, tmp_path_factory):
-        container_run_h2.exec_run("git init --bare /var/gerrit/git/test.git")
+    def test_gerrit_slave_clone_repo_works(self, container_run, tmp_path_factory):
+        container_run.exec_run("git init --bare /var/gerrit/git/test.git")
         clone_dest = tmp_path_factory.mktemp("gerrit_slave_clone_test")
         repo = git.Repo.clone_from("http://localhost:8081/test.git", clone_dest)
         assert repo.git_dir == os.path.join(clone_dest, ".git")
 
-    def test_gerrit_slave_webui_not_accessible(self, container_run_h2):
+    def test_gerrit_slave_webui_not_accessible(self, container_run):
         response = requests.get("http://localhost:8081")
         assert response.status_code == 404
         assert response.text == "Not Found"
-
-
-@pytest.mark.slow
-def test_gerrit_slave_downloads_mysql_driver(container_run_mysql, tmp_dir):
-    def wait_for_mysql_driver_download():
-        _, output = container_run_mysql.exec_run(
-            "find /var/gerrit/lib -name 'mysql-connector-java-*.jar'"
-        )
-        output = output.decode("utf-8").strip()
-        return output, re.match(r"/var/gerrit/lib/mysql-connector-java-.*\.jar", output)
-
-    finished_in_time, _ = utils.exec_fn_with_timeout(wait_for_mysql_driver_download, 20)
-    assert finished_in_time
-
-    driver_path_pattern = os.path.join(tmp_dir, "lib", "mysql-connector-java-*.jar")
-    lib_files = [f for f in glob(driver_path_pattern) if os.path.isfile(f)]
-    assert lib_files
diff --git a/tests/container-images/gerrit-slave/test_container_structure_gerrit_slave.py b/tests/container-images/gerrit-slave/test_container_structure_gerrit_slave.py
index 3e363d8..25b5ea2 100755
--- a/tests/container-images/gerrit-slave/test_container_structure_gerrit_slave.py
+++ b/tests/container-images/gerrit-slave/test_container_structure_gerrit_slave.py
@@ -12,8 +12,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import re
-
 import pytest
 
 
@@ -24,9 +22,7 @@
     container_run.stop(timeout=1)
 
 
-@pytest.fixture(
-    scope="function", params=["/var/tools/start", "/var/tools/download_db_driver"]
-)
+@pytest.fixture(scope="function", params=["/var/tools/start"])
 def expected_script(request):
     return request.param
 
@@ -52,15 +48,6 @@
     assert exit_code == 3
 
 
-def test_gerrit_slave_contains_downloaded_mysql_driver(container_run):
-    exit_code, output = container_run.exec_run(
-        "find /var/gerrit/lib -name 'mysql-connector-java-*.jar'"
-    )
-    output = output.decode("utf-8").strip()
-    assert exit_code == 0
-    assert re.match(r"/var/gerrit/lib/mysql-connector-java-.*\.jar", output)
-
-
 def test_gerrit_slave_gerrit_is_configured_slave(container_run):
     exit_code, output = container_run.exec_run(
         "git config -f /var/gerrit/etc/gerrit.config --get container.slave"
diff --git a/tests/container-images/mysql-replication-init/test_container_build_mysql_replication_init.py b/tests/container-images/mysql-replication-init/test_container_build_mysql_replication_init.py
deleted file mode 100644
index 439ad15..0000000
--- a/tests/container-images/mysql-replication-init/test_container_build_mysql_replication_init.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright (C) 2018 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import pytest
-
-
-def test_build_mysql_replication_init(
-    mysql_replication_init_image, tag_of_cached_container
-):
-    if tag_of_cached_container:
-        pytest.skip("Cached image used for testing. Build will not be tested.")
-    assert mysql_replication_init_image.id is not None
diff --git a/tests/container-images/mysql-replication-init/test_container_integration_mysql_replication_init.py b/tests/container-images/mysql-replication-init/test_container_integration_mysql_replication_init.py
deleted file mode 100644
index eff71b4..0000000
--- a/tests/container-images/mysql-replication-init/test_container_integration_mysql_replication_init.py
+++ /dev/null
@@ -1,153 +0,0 @@
-# Copyright (C) 2018 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import os.path
-import re
-import time
-
-import pytest
-
-MYSQL_CONFIG = {
-    "MYSQL_HOST": "k8sgerrit-mysql",
-    "MYSQL_PORT": 3306,
-    "MYSQL_ROOT_PASSWORD": "big_secret",
-    "REPL_PASSWORD": "test",
-}
-
-
-@pytest.fixture()
-def mock_dump():
-    return (
-        "CREATE DATABASE `users`;"
-        "USE `users`;"
-        "CREATE TABLE `users` ("
-        "`id` INT(11) NOT NULL,"
-        "`first_name` VARCHAR(50),"
-        "`last_name` VARCHAR(50),"
-        "`password` VARCHAR(100),"
-        "PRIMARY KEY (`id`))"
-    )
-
-
-@pytest.fixture(scope="module")
-def mock_sql_script(tmp_path_factory):
-    tmp_dir = tmp_path_factory.mktemp("mysql_init_script")
-    with open(os.path.join(tmp_dir, "initialize-slave.sql"), "w") as sql_file:
-        sql_file.write(
-            (
-                "USE `users`;"
-                "SET @query = CONCAT("
-                '"INSERT INTO `users` (id, first_name, last_name, password) ",'
-                "\"VALUES (1, 'John', 'Doe', '\", @replpwd, \"');\");"
-                "PREPARE stmt FROM @query;"
-                "EXECUTE stmt;"
-            )
-        )
-    return tmp_dir
-
-
-@pytest.fixture(scope="module")
-def mysql_container(request, docker_client, docker_network, mysql_container_factory):
-    mysql_container = mysql_container_factory(
-        docker_client, docker_network, MYSQL_CONFIG
-    )
-    mysql_container.start()
-
-    request.addfinalizer(mysql_container.stop)
-
-    return mysql_container
-
-
-@pytest.fixture(scope="module")
-def init_container(
-    request,
-    docker_client,
-    docker_network,
-    mysql_replication_init_image,
-    mock_sql_script,
-):
-    container_run = docker_client.containers.run(
-        image=mysql_replication_init_image.id,
-        environment=MYSQL_CONFIG,
-        volumes={mock_sql_script: {"bind": "/var/sql", "mode": "ro"}},
-        network=docker_network.name,
-        name="mysql-replication-init",
-        detach=True,
-    )
-
-    def stop_container():
-        container_run.stop(timeout=1)
-        container_run.remove(v=True, force=True)
-
-    request.addfinalizer(stop_container)
-
-    return container_run
-
-
-@pytest.fixture(scope="module")
-def containers(mysql_container, init_container):
-    return mysql_container, init_container
-
-
-@pytest.mark.slow
-@pytest.mark.incremental
-class TestMysqlInitScript:
-    def test_mysql_replication_init_waiting_for_dump(self, containers):
-        (_, init_container) = containers
-        timeout = time.time() + 20
-        while time.time() < timeout:
-            last_log_line = init_container.logs(tail=1).decode("utf-8").strip()
-            if (
-                last_log_line
-                == "Waiting for database dump file at /var/data/db/master_dump.sql"
-            ):
-                break
-        assert timeout > time.time()
-
-    def test_mysql_replication_init_accepts_dump(self, containers, mock_dump):
-        (_, init_container) = containers
-        cmd = "/bin/bash -c \"echo '%s' > /var/data/db/master_dump.sql\"" % mock_dump
-        init_container.exec_run(cmd)
-        timeout = time.time() + 20
-        while time.time() < timeout:
-            logs = init_container.logs().decode("utf-8")
-            if re.search(r"Database dump received", logs):
-                break
-        assert timeout > time.time()
-
-    def test_mysql_replication_init_finishes(self, containers):
-        (_, init_container) = containers
-        timeout = time.time() + 20
-        while time.time() < timeout:
-            init_container.reload()
-            if init_container.status == "exited":
-                break
-        assert timeout > time.time()
-        assert init_container.attrs["State"]["ExitCode"] == 0
-
-    def test_mysql_replication_init_applies_dump(self, containers):
-        (mysql_container, _) = containers
-        connection = mysql_container.connect()
-        result = connection.execute("SHOW DATABASES;")
-        connection.close()
-        assert "users" in [row[0] for row in result]
-
-    def test_mysql_replication_init_runs_slave_init_script(self, containers):
-        (mysql_container, _) = containers
-        connection = mysql_container.connect()
-        result = connection.execute("USE `users`;")
-        result = connection.execute("SELECT password FROM users WHERE id=1 LIMIT 1;")
-        connection.close()
-        for row in result:
-            assert MYSQL_CONFIG["REPL_PASSWORD"] in row["password"]
diff --git a/tests/container-images/mysql-replication-init/test_container_structure_mysql_replication_init.py b/tests/container-images/mysql-replication-init/test_container_structure_mysql_replication_init.py
deleted file mode 100644
index 66d6299..0000000
--- a/tests/container-images/mysql-replication-init/test_container_structure_mysql_replication_init.py
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright (C) 2018 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import pytest
-
-
-@pytest.fixture(scope="module")
-def container_run(docker_client, mysql_replication_init_image):
-    container_run = docker_client.containers.run(
-        image=mysql_replication_init_image.id,
-        entrypoint="/bin/bash",
-        command=["-c", "tail -f /dev/null"],
-        detach=True,
-        auto_remove=True,
-    )
-
-    yield container_run
-    container_run.stop(timeout=1)
-
-
-def test_mysql_replication_init_contains_mysql_client(container_run):
-    exit_code, _ = container_run.exec_run("which mysql")
-    assert exit_code == 0
-
-
-def test_mysql_replication_init_contains_start_script(container_run):
-    exit_code, _ = container_run.exec_run("test -f /var/tools/start")
-    assert exit_code == 0
-
-
-def test_mysql_replication_init_has_entrypoint(mysql_replication_init_image):
-    entrypoint = mysql_replication_init_image.attrs["ContainerConfig"]["Entrypoint"]
-    assert len(entrypoint) >= 1
-    assert "/var/tools/start" in entrypoint