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

EndpointSlice Object with no conditions causes syncing loop #15554

Open
3 tasks done
claire-fletcher opened this issue Sep 19, 2023 · 2 comments
Open
3 tasks done

EndpointSlice Object with no conditions causes syncing loop #15554

claire-fletcher opened this issue Sep 19, 2023 · 2 comments
Labels
bug Something isn't working

Comments

@claire-fletcher
Copy link

Checklist:

  • I've searched in the docs and FAQ for my answer: https://bit.ly/argocd-faq.
  • I've included steps to reproduce the bug.
  • I've pasted the output of argocd version.

Describe the bug

When an endpointslice k8s object is created with no endpoint conditions, the live manifest contains an empty conditions block conditions{}. When performing the diff of live and desired manifests, this empty block is not included in the desired. With autosync and self-heal on, ArgoCD then attempts to remove this block from the live manifest but it is not possible as it is required to be there. Hence, ArgoCD then begins to continuously sync but cannot put the endpointslice into a synced state.

To Reproduce

  1. Create a k8s endpointslice with no conditions defined in the K8s YAML under the endpoints
  2. Deploy this as part of an ArgoCD application
  3. Turn auto-syncing on with self-healing true
  4. Object is out-of-sync and ArgoCD continuously tries to self-heal

example:

---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
  name: redirect-google
  labels:
    kubernetes.io/service-name: endpoint-redirect-service
addressType: IPv4
ports:
  - port: 80
endpoints:
  - addresses:
      - "142.250.189.174" #google

Expected behavior

I expect to deploy the endpoint slice and it be considered as synced by ArgoCD when it is successfully deployed and there is no conditions block defined in the manifest I deploy.

Screenshots

image
Example of the issue with an endpoint slice using the google ip address for the example.

Version

v2.8.3+77556d9
@claire-fletcher claire-fletcher added the bug Something isn't working label Sep 19, 2023
@avijitsarkar123
Copy link

We are also having the same issue with EndpointSlice - can it be prioritized for a fix? We tried adding below to see if that makes any difference but still having the same diff causing out of sync

ignoreDifferences:
        - group: "v1"
          kind: "EndpointSlice"
          jsonPointers:
          - /endpoints

@claire-fletcher
Copy link
Author

claire-fletcher commented Nov 16, 2023

One way to fix this is by adding in an empty conditions: {} to the endpoint slice YAML but that is only a quick fix and shouldn't really be necessary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants