Skip to content

ArgoCD health check missing on RabbitMQ CRD #953

Not planned
@TucoBouchState

Description

@TucoBouchState

Describe the bug

When synchronizing RabbitMQ CRDs such as Exchange, Queue, and Binding using ArgoCD, there is no existing resource health check implemented for these.
For example, if a typo is made in the CRD, ArgoCD will consider it as Synced and OK from ArgoCD’s point of view, but on the RabbitMQ side, the resource creation will fail.
I understand this is related to ArgoCD, but I think it is relevant to discuss here.
ArgoCD currently implements a health check only for the Cluster resource: see ArgoCD RabbitmqCluster.
It would be useful to include health checks for other CRDs as well.

To Reproduce

Steps to reproduce the behavior:
Into a Kubernetes cluster with ArgoCD operator and RabbitMq operator installed
Given a project created in ArgoCD synchronizing RabbitMQ CRD from GIT :

  1. Create a CRD with a typo :
apiVersion: rabbitmq.com/v1beta1
kind: Exchange
metadata:
  name: test-gbo-ajout4
  namespace: my-namespace
spec:
  name: test-gbo-ajout4
  vhost: vhost
  type: error #a typo  here, should be fanout
  durable: true
  rabbitmqClusterReference:
    name: mycluster
    namespace: my-namespace
  1. ArgoCD sync the CRD :
    Image
    But besides, the status of the CRD is :
    Image

  2. My CICD pipeline is checking the synchronization, if everything is synced, the pipeline succeed
    In this case, it should not succeed, ArgoCD should check the status of the CRD

Expected behavior
ArgoCD should implement a health resource (can been seen with a heart in the UI :
Image

By default, ArgoCD only implements for Cluster CRD : see https://github.com/argoproj/argo-cd/tree/master/resource_customizations/rabbitmq.com/RabbitmqCluster

What do you think to handle the implementation of this health check ?
As a workaround, I've implemented one by myself but not sure if correctly implemented.

Version and environment information

  • RabbitMQ: 3.13.7
  • RabbitMQ Cluster Operator: 2.10.0
  • Kubernetes: v1.29.11+148a389 (Open shift)
  • Argo CD : v2.10.18+3d900c7

Additional context

Using ArgoCD and RabbitMQ operators in Openshift

Activity

added
enhancementNew feature or request
and removed
bugSomething isn't working
on Mar 10, 2025
Zerpet

Zerpet commented on Mar 13, 2025

@Zerpet
Member

As you rightly mention, this is related to ArgoCD. The healthcheck was contributed by a member of the community. You are welcome to make a contribution to ArgoCD, and get feedback from them regarding your implementation. From this Operator perspective, the status condition is the interface to determine whether the resource was applied correctly or not, and all resources have at least one status condition.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @Zerpet@MirahImage@TucoBouchState

        Issue actions

          ArgoCD health check missing on RabbitMQ CRD · Issue #953 · rabbitmq/messaging-topology-operator