Coder Social home page Coder Social logo

Support flagger canary resources about kubedog HOT 5 OPEN

werf avatar werf commented on July 19, 2024 7
Support flagger canary resources

from kubedog.

Comments (5)

daviddelucca avatar daviddelucca commented on July 19, 2024 3

@dudicoco we will try to implement it. I will let you know as soon we have tested in our pipeline.

from kubedog.

sly-roar avatar sly-roar commented on July 19, 2024 2

@daviddelucca Thank you for your contribution into the project and for your implementation of supporting canary releases!
I have been looking for a tool that would be able to provide the status of canary releases performed by Flagger for a long time.

However, I faced with strange behavior of it. For example, I have a test canary release named podinfo in test namespace:

% kubectl -n test get canary
NAME      STATUS      WEIGHT   LASTTRANSITIONTIME
podinfo   Succeeded   0        2021-09-17T11:46:06Z
% kubectl -n test describe canary podinfo
..........
Status:
  Canary Weight:  0
  Conditions:
    Last Transition Time:  2021-09-17T11:46:06Z
    Last Update Time:      2021-09-17T11:46:06Z
    Message:               Canary analysis completed successfully, promotion finished.
    Reason:                Succeeded
    Status:                True
    Type:                  Promoted
  Failed Checks:           0
  Iterations:              0
  Last Applied Spec:       5b7578bd5f
  Last Transition Time:    2021-09-17T11:46:06Z
  Phase:                   Succeeded
  Tracked Configs:
Events:
  Type    Reason  Age   From     Message
  ----    ------  ----  ----     -------
  Normal  Synced  33m   flagger  New revision detected! Scaling up podinfo.test
  Normal  Synced  32m   flagger  Starting canary analysis for podinfo.test
  Normal  Synced  32m   flagger  Pre-rollout check acceptance-test passed
  Normal  Synced  32m   flagger  Advance podinfo.test canary weight 25
  Normal  Synced  31m   flagger  Advance podinfo.test canary weight 50
  Normal  Synced  30m   flagger  Copying podinfo.test template spec to podinfo-primary.test
  Normal  Synced  29m   flagger  Routing all traffic to primary
  Normal  Synced  28m   flagger  Promotion completed! Scaling down podinfo.test

According to the output above canary releases with the help of Flagger are working properly. But kubedog v0.6.2, which should contain your solution already, shows the following:

$ echo '{"Canaries":[{"ResourceName":"podinfo","Namespace":"test"}]}' | kubedog multitrack
┌ Status progress
│ CANARY                            STATUS                WEIGHT                 LASTUPDATE                                
│ podinfo                                                 0                      0001-01-01 00:00:00 +0000 UTC             
└ Status progress

┌ Status progress
│ CANARY                            STATUS                WEIGHT                  LASTUPDATE                                
│ podinfo                                                 0                      0001-01-01 00:00:00 +0000 UTC             
└ Status progress

So kubedog does not show status of canary release and the time of its last update.
Besides that it does not monitor the status because it does not get changed when canary deploy is going.

Could you point me to a misconfiguration if it is somewhere or point the direction that I should dig in for figuring out the cause of the wrong behavior?
Thank you in advance.

from kubedog.

daviddelucca avatar daviddelucca commented on July 19, 2024

@dudicoco #218

echo '{ "Canaries": [ { "ResourceName": "mycanary", "Namespace": "myns" } ] }' | go run main.go multitrack

from kubedog.

dudicoco avatar dudicoco commented on July 19, 2024

thanks @daviddelucca!

from kubedog.

distorhead avatar distorhead commented on July 19, 2024

@dudicoco @daviddelucca Check this out, you can now use helm built into werf, which uses kubedog, to automatically watch all flagger canaries found in the helm chart (werf installation):

. $(trdl use werf 1.2 alpha)
werf helm upgrade --install --wait myrelease CHART 

from kubedog.

Related Issues (20)

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.