kubesphere / kubesphere/ks-devops

[Solution] Idependent Upgrade DevOps

Open
#425 2 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
164
Forks
140
PR merge metrics
No merged PRs in 30d

Description

Motivation

At present, the Devops backend has been separated from KubeSphere as a separate project, ks-devops. However, due to the low release frequency of KubeSphere, some problems of Devops cannot be repaired in time, which is particularly distressed for community users. In order to quickly solve the problems raised by community users as soon as possible, it is very necessary for us to launch a plan - independent upgrade Devops.

Goals

ks-devops is installed in Kubernetes in the form of helm charts. We only need to update helm charts and values to complete the upgrade of ks-devops.

Non-Goals

Separate front end of ks-devops from KubeSphere.

Online environment upgrade example
  1. Create values.yaml

    image:
      apiserver:
        tag: v3.2.2
      controller:
        tag: v3.2.2
      tools:
        tag: v3.2.2
      pullPolicy: IfNotPresent
      registry: kubesphere
    
  2. Upgrade ks-devops

    helm -n kubesphere-devops-system upgrade devops ks-devops --version 0.1.10 --repo https://kubesphere-sigs.github.io/ks-devops-helm-chart/ --install --reuse-values -f values.yaml
    
Offline environment upgrade example
  1. Create values.yaml

    image:
      apiserver:
        tag: v3.2.2
      controller:
        tag: v3.2.2
      tools:
        tag: v3.2.2
      pullPolicy: IfNotPresent
      registry: kubesphere
    
  2. Download package of ks-devops helm charts

    Download from: https://github.com/kubesphere-sigs/ks-devops-helm-chart/releases/download/ks-devops-0.1.10/ks-devops-0.1.10.tgz.

  3. Upgrade ks-devops

    helm -n kubesphere-devops-system upgrade devops ./ks-devops-0.1.10.tgz --version 0.1.10 --install --reuse-values -f values.yaml
    
Drawback
  • Since the front end has not been separated from KubeSphere, we cannot upgrade the whole DevOps it using this approach.
  • There are too many paramters involved and it is error-prone.
  • The helm command is required on the user's operating environment.
Alternatives
  • Provides a CLI to upgrade ks-devops with only one command.
  • Create an operator of ks-devops to upgrade ks-devops

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the values.yaml examples and the online and offline Helm upgrade commands described in the issue. Review the ks-devops Helm chart and determine the implementation scope for independent upgrades, with completion defined as upgrading ks-devops separately from KubeSphere through the proposed chart and values flow.

Written by the indexing model from the issue text.

Assessment

Tech stack
helm, kubernetes
Domain
ci-cd, devops, release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.