cockroachdb / cockroachdb/helm-charts

Support Rolling Upgrades for the cockroachdb installed through helm chart

Open
#303 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
105
Forks
152
Avg merge
4d 23h
Merged PRs (30d)
5

Description

Rolling Upgrade for cockroach db statefulset:

Every pod of statefulset should be upgraded one by one and it should wait for the cockroach db cluster to be ready state before upgrading to the new cluster.
Currently, helm chart will upgrade the statefulset in rolling upgrade but it doesn't wait for cockroach cluster to be ready before it upgrades to the next replica.

Proposed Solution:

We already have self-signer utility for certificate management, we can expand that utility to do rolling start as well. This utility will have a sub command of rolling-restart and this will upgrade the statefulset into rolling restart fashion and wait for cockroach db cluster to be ready before upgrading the next pod. We are already doing this for the [cockroach operator](https://github.com/cockroachdb/cockroach-operator/blob/c7ea8c17f2cce43506d50108449b9169323b44fe/pkg/actor/cluster_restart.go#L139)

This utility will be invoked as pre-upgrade command and can be enabled or disable through the values.yaml.

Jira issue: HELM-23

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading the existing self-signer utility and the CockroachDB operator's cluster_restart.go implementation linked in the issue. Then inspect values.yaml and the chart's pre-upgrade command configuration; done means an optional rolling-restart command upgrades StatefulSet pods one at a time and waits for the cluster to become ready before continuing.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, helm, kubernetes
Domain
devops, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.