{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":660239301,"defaultBranch":"main","name":"node-disruption-controller","ownerLogin":"criteo","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-06-29T14:53:43.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1713646?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1723560073.0","currentOid":""},"activityList":{"items":[{"before":"1376a1d9a11e98c310c5fc0482588ccf1b4a07ce","after":"bf78b8ebe122e12146078c571810226585465d9e","ref":"refs/heads/main","pushedAt":"2024-08-12T18:49:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Improve PVC phase handling (#70)\n\nNow:\r\n- ignore PVC that are pending\r\n- raise a specific error if the phase is not expected\r\n\r\nSince Status is a subresource, it has to be updated directly in the tests","shortMessageHtmlLink":"Improve PVC phase handling (#70)"}},{"before":"7d7fd5207f73f0d2d1483efe1e80b691277b5cdc","after":"1376a1d9a11e98c310c5fc0482588ccf1b4a07ce","ref":"refs/heads/main","pushedAt":"2024-06-28T14:19:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Implement spec.type to Node Disruption API (#67)\n\nImplement #64\r\n\r\nSigned-off-by: f.bouzghaia \r\nCo-authored-by: f.bouzghaia ","shortMessageHtmlLink":"Implement spec.type to Node Disruption API (#67)"}},{"before":"71846368bfe778b8429515b78361b7990a38b983","after":"7d7fd5207f73f0d2d1483efe1e80b691277b5cdc","ref":"refs/heads/main","pushedAt":"2024-06-28T09:50:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Pin go correctly to 1.21 (#69)\n\nIf go-version is given as numerical it will resolve as 1.2 (instead of 1.20)\r\nSo this commit use string instead and also upgrade setup-go.","shortMessageHtmlLink":"Pin go correctly to 1.21 (#69)"}},{"before":"aaf472299e608fe95ccef23d493770b93a6d19d9","after":"71846368bfe778b8429515b78361b7990a38b983","ref":"refs/heads/main","pushedAt":"2024-06-18T07:29:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Improve deadline exceed message (#65)\n\n* Improve deadline exceed message\r\n\r\nDeadline exceeded is what the status of a node disruption will\r\nshow once a Node Disruption is fully rejected. Most of the time,\r\nwe reach the deadline because some budgets are preventing\r\nfrom reaching the granted state. In the previous version, we lost\r\nthe context and had to look at logs. Now we keep the previous\r\nstatus and only append a reason. This way we know why the last\r\nattempt was rejected.\r\n\r\n* Refactor internal disruption status to avoid shallow functions\r\n\r\n* Refactor to remove duplication of code\r\n\r\nMake the reference calculation a method from ndr\r\nRemove redondant error handling for RejectOverlappingDisruption","shortMessageHtmlLink":"Improve deadline exceed message (#65)"}},{"before":"b2eae25e590768aa8b1552a106e4e08080a6b67b","after":"aaf472299e608fe95ccef23d493770b93a6d19d9","ref":"refs/heads/main","pushedAt":"2024-04-11T07:43:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Properly set labels for disruption budgets (#63)\n\nLabels were not matching the actual labels of metrics\r\nso we were not deleting them","shortMessageHtmlLink":"Properly set labels for disruption budgets (#63)"}},{"before":"08e16e78077dde6301fa4885b250279d549662e6","after":"b2eae25e590768aa8b1552a106e4e08080a6b67b","ref":"refs/heads/main","pushedAt":"2024-04-11T07:42:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Fix hook metrics indexed with ND instead of budgets (#62)\n\nWe were using the node disruption name instead of the\r\nbudget name.","shortMessageHtmlLink":"Fix hook metrics indexed with ND instead of budgets (#62)"}},{"before":"2624aa16be3bf5da2d76389a1d41c73527b3be2d","after":"08e16e78077dde6301fa4885b250279d549662e6","ref":"refs/heads/main","pushedAt":"2024-04-05T12:18:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Fix empty node name in watched nodes (#60)\n\nBefore, if we had a pod without a nodeName (which\r\nhappens when a pod is pending), it was added to\r\nwatchedNodes as empty string. It could also be\r\nused in the intersection with disruption to calculate\r\nthe budgets. Now, we ignore the pod if its node is\r\nmissing.","shortMessageHtmlLink":"Fix empty node name in watched nodes (#60)"}},{"before":"f6940f9be0881b7cc5e53437f86f0874d5173f93","after":"2624aa16be3bf5da2d76389a1d41c73527b3be2d","ref":"refs/heads/main","pushedAt":"2024-04-05T12:18:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Fix bugs on metrics (#61)\n\n* Enable auto discovery of metrics\r\n\r\nBefore they had to be specified in the main. With\r\npromauto, they can be defined in only one place\r\n\r\n* Add a metric to export state as label\r\n\r\nit is an alternative to using the value.\r\n\r\n* Fix leak of disruptions and nodes\r\n\r\nOver time the budget might target new nodes but we\r\nonly cleaned nodes or disruption when a budget is deleted\r\nNow, we wipe the list of node/disruptions metrics before\r\nrepopulating again","shortMessageHtmlLink":"Fix bugs on metrics (#61)"}},{"before":"1ef9f97e647d31ed878950d41232e4a4965a3024","after":"f6940f9be0881b7cc5e53437f86f0874d5173f93","ref":"refs/heads/main","pushedAt":"2024-03-29T13:34:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Prepare bump to 0.3.0 (#59)\n\n* Prepare bump to 0.3.0\r\n\r\n* Add fancy badge for tests","shortMessageHtmlLink":"Prepare bump to 0.3.0 (#59)"}},{"before":"a1ad67c54532174cac16df90787d2106c260929e","after":"1ef9f97e647d31ed878950d41232e4a4965a3024","ref":"refs/heads/main","pushedAt":"2024-03-29T10:33:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Remove healthURL to use healthHook only (#58)\n\nhealthURL has been deprecated and replaced with healthHook.\r\nhealthHook is more powerful as it provides more configuration\r\nand it sends the nodeDisruption in the POST body.","shortMessageHtmlLink":"Remove healthURL to use healthHook only (#58)"}},{"before":"4c1b8dfcfd9a537f36aa116fc43ccf2f32cdcbc2","after":"a1ad67c54532174cac16df90787d2106c260929e","ref":"refs/heads/main","pushedAt":"2024-03-29T08:36:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Update CRD with new version of kubebuilder (#57)","shortMessageHtmlLink":"Update CRD with new version of kubebuilder (#57)"}},{"before":"b1723c78446fe10ea0360fd03384d19908371091","after":"4c1b8dfcfd9a537f36aa116fc43ccf2f32cdcbc2","ref":"refs/heads/main","pushedAt":"2024-03-29T08:35:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Add metrics for budget (#56)\n\n* Add metrics about grant/rejected of disruption budgets\r\n* Add metrics to reflect the state of budgets\r\n\r\n---------\r\n\r\nCo-authored-by: Fatma Bouzghaia ","shortMessageHtmlLink":"Add metrics for budget (#56)"}},{"before":"9ecf0306caa4496eaa0406df8beed4c5fd6f2172","after":"b1723c78446fe10ea0360fd03384d19908371091","ref":"refs/heads/main","pushedAt":"2024-03-27T17:35:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Add full API documentation (#55)","shortMessageHtmlLink":"Add full API documentation (#55)"}},{"before":"bc3ac728cd1c91119764399bfde1dc2f578559b8","after":"9ecf0306caa4496eaa0406df8beed4c5fd6f2172","ref":"refs/heads/main","pushedAt":"2024-03-15T09:49:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Several metrics improvements (#54)\n\n* Fix incorrect state in log\r\n\r\nWe were logging the version of the old state, now\r\nthe state logged is the one being persisted to Kubernetes.\r\n\r\n* Change state of node disruption state\r\n\r\n-1 is more explicit for rejection\r\n\r\n* Prefix metric by the name of the project\r\n\r\nMake it easier to filter and pull metrics in Prometheus\r\n\r\n* Add metrics to get the total count of granted/rejected state\r\n\r\nThese metrics are incremented everytime we grant or reject a node disruption.","shortMessageHtmlLink":"Several metrics improvements (#54)"}},{"before":"e12ca3fd6b43b97c9f47da12872039f778ae9b6c","after":"bc3ac728cd1c91119764399bfde1dc2f578559b8","ref":"refs/heads/main","pushedAt":"2024-03-12T10:26:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Add support for prometheus metrics in helm chart (#53)\n\nPrometheus metrics via prometheus operator can be enabled\r\nwith `controllerManager.serviceMonitor.enabled: true`.","shortMessageHtmlLink":"Add support for prometheus metrics in helm chart (#53)"}},{"before":"79b3985863005bfd0398f7025e8525b68efe945d","after":"e12ca3fd6b43b97c9f47da12872039f778ae9b6c","ref":"refs/heads/main","pushedAt":"2024-02-21T12:49:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Add metrics to node disruption (#52)\n\nAdd the following metrics:\r\n- state: reflect the state of the node disruption\r\n- created and deadline: report as value the creation timestamp and the deadline\r\n- impact nodes: report for each nodes a metric, helpful for interesection\r\n\r\nUnittesting of metrics in go is not easy, it will be part of a future change","shortMessageHtmlLink":"Add metrics to node disruption (#52)"}},{"before":"fcb19c322530fb6b33d413541a04fc38f8d63b8e","after":"79b3985863005bfd0398f7025e8525b68efe945d","ref":"refs/heads/main","pushedAt":"2023-12-12T11:35:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Add a proper content type to Healthhook (#51)\n\nSome application require the Content-Type be set to json\r\nto parse json. So now we provide it by default","shortMessageHtmlLink":"Add a proper content type to Healthhook (#51)"}},{"before":"0e729ad766365539ab337bdc5eb34f400bfb4930","after":"fcb19c322530fb6b33d413541a04fc38f8d63b8e","ref":"refs/heads/main","pushedAt":"2023-12-12T11:22:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Misc fixes (#50)\n\n* Fix misspelled occurrences of \"resource\"\r\n\r\n* Fix various typos\r\n\r\n* Fix regressions\r\n\r\n* Rename NDB -> NDC","shortMessageHtmlLink":"Misc fixes (#50)"}},{"before":"9149bdbd0628149c261a056fe2ba6f4dc88bc94f","after":"aa7bf3f3c47cee1b55747051ec786c84703c4b8a","ref":"refs/heads/misc-fixes","pushedAt":"2023-12-11T20:46:29.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"komuta","name":"Julien Pepy","path":"/komuta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/120297?s=80&v=4"},"commit":{"message":"Rename NDB -> NDC","shortMessageHtmlLink":"Rename NDB -> NDC"}},{"before":null,"after":"9149bdbd0628149c261a056fe2ba6f4dc88bc94f","ref":"refs/heads/misc-fixes","pushedAt":"2023-12-11T20:19:22.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"komuta","name":"Julien Pepy","path":"/komuta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/120297?s=80&v=4"},"commit":{"message":"Fix various typos","shortMessageHtmlLink":"Fix various typos"}},{"before":"7b330a03ff83933ee936017779d5979190bf3c25","after":"0e729ad766365539ab337bdc5eb34f400bfb4930","ref":"refs/heads/main","pushedAt":"2023-12-11T20:18:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"komuta","name":"Julien Pepy","path":"/komuta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/120297?s=80&v=4"},"commit":{"message":"Reject overlapping disruptions (#49)\n\nThis option is opt-in through the command line flag `--reject-overlapping-disruption`.\r\nIf enabled, a new disruption (not yet transitioned to `pending`) will be checked against the others already processed and rejected if any disrupted node overlaps another disruption's node list.","shortMessageHtmlLink":"Reject overlapping disruptions (#49)"}},{"before":"f680c895e5ea61d644853747050c265fda84599e","after":"35556b4ba7f1f15e1ca84c6046a8bf88a28b5094","ref":"refs/heads/reject-overlapping-disruptions","pushedAt":"2023-12-11T13:06:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"komuta","name":"Julien Pepy","path":"/komuta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/120297?s=80&v=4"},"commit":{"message":"Refactor overlapping disruption check","shortMessageHtmlLink":"Refactor overlapping disruption check"}},{"before":"9ce204f3fa9aa40243d0a41ed301ecfd60443fcd","after":"f680c895e5ea61d644853747050c265fda84599e","ref":"refs/heads/reject-overlapping-disruptions","pushedAt":"2023-12-11T08:39:24.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"komuta","name":"Julien Pepy","path":"/komuta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/120297?s=80&v=4"},"commit":{"message":"Extract overlapping node disruption check in dedicated method","shortMessageHtmlLink":"Extract overlapping node disruption check in dedicated method"}},{"before":"4e0c420eee9983c25b6ec8e3fb63213f80866d56","after":"9ce204f3fa9aa40243d0a41ed301ecfd60443fcd","ref":"refs/heads/reject-overlapping-disruptions","pushedAt":"2023-12-07T11:43:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"komuta","name":"Julien Pepy","path":"/komuta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/120297?s=80&v=4"},"commit":{"message":"Fix feature applied only if RejectOverlappingDisruption flag enabled","shortMessageHtmlLink":"Fix feature applied only if RejectOverlappingDisruption flag enabled"}},{"before":"e8314e07a8ea1d06a789b0801593a25c879fcdc3","after":"4e0c420eee9983c25b6ec8e3fb63213f80866d56","ref":"refs/heads/reject-overlapping-disruptions","pushedAt":"2023-12-07T11:43:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"komuta","name":"Julien Pepy","path":"/komuta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/120297?s=80&v=4"},"commit":{"message":"Fix private method","shortMessageHtmlLink":"Fix private method"}},{"before":"5f570f6037a61f4bb9a8bc84c801bce90e838b0e","after":"e8314e07a8ea1d06a789b0801593a25c879fcdc3","ref":"refs/heads/reject-overlapping-disruptions","pushedAt":"2023-12-05T10:40:47.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"komuta","name":"Julien Pepy","path":"/komuta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/120297?s=80&v=4"},"commit":{"message":"Handle potential errors on NodeDisruptions list\n\nNot the most elegant solution though...","shortMessageHtmlLink":"Handle potential errors on NodeDisruptions list"}},{"before":null,"after":"5f570f6037a61f4bb9a8bc84c801bce90e838b0e","ref":"refs/heads/reject-overlapping-disruptions","pushedAt":"2023-12-05T08:34:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"komuta","name":"Julien Pepy","path":"/komuta","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/120297?s=80&v=4"},"commit":{"message":"Reject overlapping disruptions","shortMessageHtmlLink":"Reject overlapping disruptions"}},{"before":"44bc2b5b9e7c978c8b2ef561567035d660dd2f31","after":"7b330a03ff83933ee936017779d5979190bf3c25","ref":"refs/heads/main","pushedAt":"2023-11-24T08:30:44.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Fix flaky test when reconciler start before previous one still up\n\nbetween test, the reconciler is stopped and started again.\nStop is not instant but we started a new instance right away.\nSince it bind a port, the new one crashed because the old\none didn't release it yet. Instead we wait for the manager to\nbe properly down before starting a new one","shortMessageHtmlLink":"Fix flaky test when reconciler start before previous one still up"}},{"before":"e8f26cd0eece5d4066b9d435e5202492532e82e2","after":"44bc2b5b9e7c978c8b2ef561567035d660dd2f31","ref":"refs/heads/main","pushedAt":"2023-11-03T14:02:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Add support for tolerations in helm chart","shortMessageHtmlLink":"Add support for tolerations in helm chart"}},{"before":"57bbc9ee2bb8aec5effc32c6d79794849873664f","after":"e8f26cd0eece5d4066b9d435e5202492532e82e2","ref":"refs/heads/main","pushedAt":"2023-11-03T09:58:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geobeau","name":"Geoffrey Beausire","path":"/geobeau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12186336?s=80&v=4"},"commit":{"message":"Prepare bump to 0.2.0","shortMessageHtmlLink":"Prepare bump to 0.2.0"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0xMlQxODo0OToyOC4wMDAwMDBazwAAAASYcJAD","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0xMlQxODo0OToyOC4wMDAwMDBazwAAAASYcJAD","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0xMS0wM1QwOTo1ODozMy4wMDAwMDBazwAAAAOmmMGK"}},"title":"Activity ยท criteo/node-disruption-controller"}