Support Argo Rollouts resources
rgeraskin opened this issue · 1 comments
rgeraskin commented
Hi,
Argo Rollouts is a Kubernetes controller and set of CRDs which provide advanced deployment capabilities such as blue-green, canary, canary analysis, experimentation, and progressive delivery features to Kubernetes.
Is it possible to support the Rollout CRD so that kubedog will output the events from the resource?
example:
❯ kubectl describe -n demo-chart-ru-test6 ro demo-chart
Name: demo-chart
Namespace: demo-chart-ru-test6
Labels: app.kubernetes.io/managed-by=Helm
Annotations: meta.helm.sh/release-name: demo-chart-ru-test6
meta.helm.sh/release-namespace: demo-chart-ru-test6
project.werf.io/env: ru-test6
project.werf.io/name: demo-chart
rollout.argoproj.io/revision: 6
werf.io/version: v1.2.12+fix2
API Version: argoproj.io/v1alpha1
Kind: Rollout
Metadata:
Creation Timestamp: 2021-08-13T11:36:56Z
Generation: 1
Resource Version: 69707558
Self Link: /apis/argoproj.io/v1alpha1/namespaces/demo-chart-ru-test6/rollouts/demo-chart
UID: a0bfbdf7-daf6-4da3-86e1-637fb726c338
Spec:
Replicas: 2
Strategy:
Blue Green:
Active Service: demo-chart-active
Preview Service: demo-chart-preview
Workload Ref:
API Version: apps/v1
Kind: Deployment
Name: demo-chart
Status:
HPA Replicas: 2
Available Replicas: 2
Blue Green:
Active Selector: f7c6c9ff5
Preview Selector: 675858897c
Canary:
Conditions:
Last Transition Time: 2021-08-13T11:36:57Z
Last Update Time: 2021-08-13T11:36:57Z
Message: Rollout has minimum availability
Reason: AvailableReason
Status: True
Type: Available
Last Transition Time: 2021-08-16T09:21:19Z
Last Update Time: 2021-08-16T09:21:19Z
Message: RolloutCompleted
Reason: RolloutCompleted
Status: False
Type: Completed
Last Transition Time: 2021-08-16T09:33:44Z
Last Update Time: 2021-08-16T09:33:44Z
Message: ReplicaSet "demo-chart-675858897c" has timed out progressing.
Reason: ProgressDeadlineExceeded
Status: False
Type: Progressing
Current Pod Hash: 675858897c
Message: ProgressDeadlineExceeded: ReplicaSet "demo-chart-675858897c" has timed out progressing.
Observed Generation: 1
Phase: Degraded
Ready Replicas: 2
Replicas: 4
Selector: app.kubernetes.io/instance=demo-chart-ru-test6,app.kubernetes.io/name=demo-chart,rollouts-pod-template-hash=f7c6c9ff5
Stable RS: f7c6c9ff5
Updated Replicas: 2
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal RolloutUpdated 28m rollouts-controller Rollout updated to revision 5
Normal NewReplicaSetCreated 28m rollouts-controller Created ReplicaSet demo-chart-68f6dc5fbf (revision 5) with size 2
Normal SwitchService 28m rollouts-controller Switched selector for service 'demo-chart-preview' from 'f7c6c9ff5' to '68f6dc5fbf'
Normal RolloutUpdated 25m rollouts-controller Rollout updated to revision 6
Normal NewReplicaSetCreated 25m rollouts-controller Created ReplicaSet demo-chart-675858897c (revision 6) with size 2
Normal ScalingReplicaSet 25m rollouts-controller Scaled down ReplicaSet demo-chart-68f6dc5fbf (revision 5) from 2 to 0
Normal SwitchService 25m rollouts-controller Switched selector for service 'demo-chart-preview' from '68f6dc5fbf' to '675858897c'
Thanks!
distorhead commented
@rgeraskin Hi! It is totally possible to implement such tracker. Support for flagger Canary resource kind have been added recently #218. Argo Rollouts can be added in a similar way.
We welcome PRs adding even some very basic version of such tracker (which could just hang until Rollout is ready, without underhood details).