Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Health status customization in Argo for CRD resources #21119

Open
agaudreault opened this issue Dec 10, 2024 · 2 comments · May be fixed by #21323
Open

Health status customization in Argo for CRD resources #21119

agaudreault opened this issue Dec 10, 2024 · 2 comments · May be fixed by #21323
Labels
component:health-check enhancement New feature or request good first issue Good for newcomers

Comments

@agaudreault
Copy link
Member

agaudreault commented Dec 10, 2024

Summary

When CRDs are managed in an Argo CD application, they do not have a health status. CRDs can contain violations, sometime after cluster upgrades. Having health check in Argo to show these resources as degraded will help users detect that their CRDs may need modifications.

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
  creationTimestamp: '2024-05-19T23:35:28Z'
  generation: 3
  name: examples.example.io
spec:
  conversion:
    strategy: None
  group: example.io
  names:
    kind: Example
    listKind: ExampleList
    plural: examples
    shortNames:
      - ex
    singular: example
  preserveUnknownFields: true
  scope: Namespaced
  versions:
    - additionalPrinterColumns:
        - description: >-
            CreationTimestamp is a timestamp representing the server time when
            this object was created. It is not guaranteed to be set in
            happens-before order across separate operations. Clients may not set
            this value. It is represented in RFC3339 form and is in UTC.


            Populated by the system. Read-only. Null for lists. More info:
            https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
          jsonPath: .metadata.creationTimestamp
          name: Age
          type: date
      name: v1alpha1
      served: true
      storage: true
      subresources: {}
status:
  acceptedNames:
    kind: Example
    listKind: ExampleList
    plural: examples
    shortNames:
      - ex
    singular: example
  conditions:
    - lastTransitionTime: '2024-05-19T23:35:28Z'
      message: no conflicts found
      reason: NoConflicts
      status: 'True'
      type: NamesAccepted
    - lastTransitionTime: '2024-05-19T23:35:28Z'
      message: the initial names have been accepted
      reason: InitialNamesAccepted
      status: 'True'
      type: Established
    - lastTransitionTime: '2024-10-26T19:44:57Z'
      message: 'spec.preserveUnknownFields: Invalid value: true: must be false'
      reason: Violations
      status: 'True'
      type: NonStructuralSchema
  storedVersions:
    - v1alpha1

Proposal

Create a health status. One should investigate all the possible conditions a CRD can have.

@agaudreault agaudreault added enhancement New feature or request component:health-check good first issue Good for newcomers labels Dec 10, 2024
@chansuke
Copy link
Contributor

I'd like to work on this issue if I can. @agaudreault. Thanks.

@almoelda
Copy link

Hey @chansuke @agaudreault,
Hope you don’t mind me jumping in! I’m just starting to dive into ArgoCD and thought this issue might be a good way to learn.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:health-check enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants