Code Monkey home page Code Monkey logo

pipecd's People

Contributors

cakecatz avatar caniszczyk avatar chaspy avatar dependabot[bot] avatar dgannon991 avatar ffjlabo avatar funera1 avatar gkuga avatar golemiso avatar hosshii avatar hungran avatar karamaru-alpha avatar kentakozuka avatar kevin-namba avatar khanhtc1202 avatar knanao avatar kurochan avatar nakabonne avatar nghialv avatar nnnkkk7 avatar ono-max avatar ouchi2501 avatar sanposhiho avatar sivchari avatar stormcat24 avatar szarny avatar t-kikuc avatar tako8ki avatar tonkyh avatar warashi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pipecd's Issues

Investigate analysis with dynamic data

What would you like to be added:

Why is this needed:

Analysis by Prometheusの検証

実際のユースケースに近いクエリで検証

  • container_cpu_usage_seconds_total
  • カスタムクエリ色々書く

Prepare built-in AnalysisTemplate for Istio

What would you like to be added:
We can pre-define it because queries for Istio are fixed.

Refer to the following order when templates are specified:

  • custom template
  • built-in template

Why is this needed:

Implement Kubernetes application deployment

What would you like to be added:

Executor

  • Primary Variant
  • Canary Vairant
  • Baseline Variant
  • PlainYAML
  • Helm
  • Kustomize
  • Rollback

Planner

  • Decide pipeline based on commit changes
  • Register rollback executor

Why is this needed:

/assign @nghialv
/label area/piped

Support for Image Watcher

Image Watcher lets us spawn Deployment when an image tag stored at a container registry is udpated.

Implement piped API

What would you like to be added:
https://github.com/pipe-cd/pipe/tree/master/pkg/app/api/service/pipedservice

PipedService

  • Ping
  • ReportPipedMeta
  • ListApplications
  • ReportApplicationSyncState
  • ReportMostRecentSuccessfulDeployment
  • ListNotCompletedDeployments
  • GetMostRecentDeployment
  • CreateDeployment
  • ReportDeploymentPlanned
  • ReportDeploymentStatusChanged
  • ReportDeploymentCompleted
  • SaveDeploymentMetadata
  • SaveStageMetadata
  • ReportStageLogs
  • ReportStageLogsFromLastCheckpoint
  • ReportStageStatusChanged
  • ListUnhandledCommands
  • ReportCommandHandled
  • ReportApplicationLiveState
  • ReportApplicationLiveStateEvents

Why is this needed:

Enable to sync latest repo when being force pushed

What would you like to be added:
It currently has no way to re-sync the latest commit history after the repository is force updated. We need to provider two features like:

  • Show clear messages what's happened
  • A way to refresh commit history of the repo

Why is this needed:
It would be important to provide options for repair while telling them that it's abnormal.

Make Logo

What would you like to be added:

Why is this needed:

Unable to update Firestore entity cased by not found

What happened:
Despite the app whose id is pipecd:dev:kubernetes-analysis-by-metrics-nakabonne obviously exists, Firestore emits Not found error.

log:

10:00:14	failed to report application sync state	{"application-id": "pipecd:dev:kubernetes-analysis-by-metrics-nakabonne", "state": {"status":3,"short_reason":"There are 1 missing manifests and 2 redundant manifests.","reason":"There are 1 missing manifests- v1:Service:default:analysis-by-metricsThere are 2 redundant manifests- apps/v1:Deployment:default:analysis-by-metrics-canary- v1:Service:default:analysis-by-metrics","timestamp":1592442014}, "error": "rpc error: code = InvalidArgument desc = application is not found"}

Occurred at:
https://github.com/pipe-cd/pipe/blob/9619d29c35d00999d32379509abaf55f4a491512/pkg/datastore/firestore/firestore.go#L189-L193

What you expected to happen:

How to reproduce it:

Environment:

  • Kubernetes version (use kubectl version):
  • Cloud provider or hardware configuration:
  • OS (e.g. from /etc/os-release):
  • Others:

Canary Variantのlabelを参照できるように

What would you like to be added:
canary variantに対してクエリを投げるために、Analysis configからcanary variantを識別できるようにする必要がある。
つまり、pod label pipecd.dev/variant=canary を使ってクエリをフィルタリングする必要がある。それをユーザーに任せる。

ユーザーに任せるメリット

  • canaryとprimaryを比較するようなクエリなども自由に書ける
  • k8s pod labelでフィルタリングするのは少し複雑になるため、任せたほうがシンプルになる

TODO:

  • ArgoとFlaggerがどのように識別してるか調査
  • {{ .Labels.CanaryPod }}などで参照できるように
  • Deployment configから直接使いたいため、AnalysisTemplate以外でもGo Template Engineを使えるようにする?

Why is this needed:

Decide how to check if the body is expected one

https://github.com/pipe-cd/pipe/blob/c7fa9f48c8b151dc0790b9e7d2ae055632db53b1/pkg/app/piped/analysisprovider/http/http.go#L66-L69

Idea1

Compare with the specific value in the JSON body, like Argo Rollouts: https://argoproj.github.io/argo-rollouts/features/analysis/#web-metrics

          https:
            - url: https://canary-endpoint.dev
              method: GET
              expectedCode: 200
              expectedValue: true
              jsonPath: "{$.results.ok}"

Pros:

  • simple

Cons:

  • The response must be JSON format

links

This was created by todo plugin since "TODO:" was found in https://github.com/kapetaniosci/pipe/commit/8e251542d85152397e9b0c5e9025e76d98090e65 when #141 was merged. cc: @nakabonne.

Implement web API

What would you like to be added:
https://github.com/pipe-cd/pipe/tree/master/pkg/app/api/service/webservice

Environment

  • AddEnvironment
  • UpdateEnvironmentDesc
  • ListEnvironments

Piped

  • RegisterPiped (p2)
  • DisablePiped
  • ListPipeds
  • GetPiped

Application

  • AddApplication (p2)
  • DisableApplication
  • ListApplications (p2)
  • SyncApplication
  • GetApplication

Deployment

  • ListDeployments (p2)
  • GetDeployment (p1)
  • GetStageLog (p1)
  • CancelDeployment
  • ApproveStage

ApplicationLiveState

  • GetApplicationLiveState (p1)

Account

  • GetProject
  • GetMe

Command

  • GetCommand

Why is this needed:

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.