Giter VIP home page Giter VIP logo

rudder's Introduction

Rudder

About the project

Application packaging system based on helm Charts.

Status

The project is still in alpha version.

Design

Learn more about rudder on design doc

Versioning

Branch Compass
release-0.5 2.11.x
release-0.4 2.9.x
release-0.3 2.8.x

2.10.x 无功能修改,继续沿用 release-0.4 分支

⚠️ ATTENTION

rudder 使用的 Go 版本是 1.10,故无法切换到 go mod(1.13)或升级依赖。此外,2.11.x 后会去掉 rudder。

rudder's People

Contributors

bbbmj avatar caicloud-bot avatar hezhizhen avatar kdada avatar li-ang avatar pendoragon avatar qianlei90 avatar whalecold avatar yejiayu avatar zhujian7 avatar zoumo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rudder's Issues

release-controller must compare new and old job spec before updating jobs

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:

/kind bug

/kind feature

What happened:

Now, release-controller can not compare new and old job spec before updating job.

Release-controller update job by delete old job and then create new job, it could be cause the following problems:

  1. Job will be re-create after restarting release-controller
  2. https://github.com/caicloud/rudder/blob/master/pkg/release/handler.go#L75-L83

What you expected to happen:

How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:

release-controller cannot update job

Is this a BUG REPORT or FEATURE REQUEST?:

/kind bug

What happened:

Updating some job' config is not allowded. release-controller must re-create job when updating it

What you expected to happen:

How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:

Remain/Remove release-related PVC when release is deleted

We have a mechanism that we will delete PVCs created by chart template when release is deleted. But StatefulSet have an opposite mode. It remains all PVCs created by itself.

The two behaviors is divisive. So release controller should decide a consistent way to handle all PVCs in release.

Four ways:

  1. Delete all PVCs when release is deleted.
  2. Remain all PVCs and leave them to Volume Module.
  3. Keep a switch in release controller.
  4. Keep the switch in Release API.

releasehistory will add infinite if update failed

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:

/kind bug
/kind feature

What happened:

releasehistory will add infinite if update failed

What you expected to happen:

How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:

release controller 在某些特殊情况下会删掉自己的子资源

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:

/kind bug

What happened:
日志如下:

I0812 16:32:21.834783       1 controller.go:74] Enqueue: kube-system/config-admission
I0812 16:32:21.834830       1 controller.go:116] Handle release by key: kube-system/config-admission
I0812 16:32:21.834896       1 release.go:147] Start release handler of kube-system/config-admission
I0812 16:32:21.834903       1 controller.go:140] Handled release: kube-system/config-admission
I0812 16:32:21.834930       1 handler.go:39] Start handler: kube-system/config-admission
I0812 16:32:21.835061       1 apply.go:33] Apply release kube-system/config-admission
W0812 16:32:21.929465       1 controller.go:232] relesae(kube-system/config-admission)'s manifest is empty
I0812 16:32:22.532060       1 apply.go:116] Update manifest of release kube-system/config-admission for version 1
W0812 16:32:23.633680       1 controller.go:232] relesae(kube-system/config-admission)'s manifest is empty
I0812 16:32:26.428942       1 request.go:530] Throttling request took 2.989373431s, request: PATCH:https://10.254.0.1:443/apis/release.caicloud.io/v1alpha1/namespaces/kube-system/releases/con
fig-admission
W0812 16:32:27.134927       1 controller.go:232] relesae(kube-system/config-admission)'s manifest is empty
W0812 16:32:27.235038       1 controller.go:232] relesae(kube-system/config-admission)'s manifest is empty
W0812 16:32:27.235053       1 controller.go:232] relesae(kube-system/config-admission)'s manifest is empty
W0812 16:32:27.235061       1 controller.go:232] relesae(kube-system/config-admission)'s manifest is empty
W0812 16:32:27.235094       1 controller.go:232] relesae(kube-system/config-admission)'s manifest is empty
W0812 16:32:27.235139       1 controller.go:232] relesae(kube-system/config-admission)'s manifest is empty
I0812 16:32:27.928916       1 controller.go:404] Delete resource Deployment kube-system/config-admission-admission-v1-0[b7588b9f-bcdb-11e9-8730-00163e143eb0] successfully
W0812 16:32:28.129703       1 controller.go:232] relesae(kube-system/config-admission)'s manifest is empty
I0812 16:32:28.132058       1 controller.go:74] Enqueue: kube-system/config-admission
I0812 16:32:28.132116       1 controller.go:116] Handle release by key: kube-system/config-admission
I0812 16:32:28.132143       1 controller.go:140] Handled release: kube-system/config-admission
I0812 16:32:28.139185       1 controller.go:404] Delete resource Service kube-system/config-admission[b748aca0-bcdb-11e9-8730-00163e143eb0] successfully

What you expected to happen:

How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:

lint should exit with non-zero code when prombles found

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:

/kind bug
/kind feature

What happened:

release-cli lint just print the error message and exit with 0

What you expected to happen:

Return non-zero code

lint should exit with non-zero value

cc @kdada

implements release status more accurate

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:

/kind bug
/kind feature

What happened:

What you expected to happen:

How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:

lint cannot find out syntax error of "command" in release yaml

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:

/kind bug

What happened:

I'm using lint function to check release yaml syntax

lint returned no error, but cannot be applied by release-controller

Here is the wrong part of yaml below:

  controllers:
  - containers:
    - env:
      - name: CLUSTER_NAME
        from:
          type: Config
          name: cluster-info
          key: name
    - command:
      - /eventer
      - --v=3
      image: 'xxx:v0.1.3'
      imagePullPolicy: IfNotPresent
      mounts:

And the logs of release-controller returns error:

Can't apply release kube-system/xxx: Deployment.apps "xxx-v1-0" is invalid: spec.template.spec.containers[0].image: Required value, retry

What you expected to happen:

The reason of this error is because error syntax of [containers.command] in release grammar, but it totally correct for yaml grammar

the correct yaml:

  controllers:
  - containers:
    - env:
      - name: CLUSTER_NAME
        from:
          type: Config
          name: cluster-info
          key: name
      command:    # no "-"
        - /eventer
        - --v=3
      image: 'xxx:v0.1.3'
      imagePullPolicy: IfNotPresent
      mounts:

How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:

/cc @supereagle @caitong93

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.