-
Notifications
You must be signed in to change notification settings - Fork 231
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
ArgoCD - ConfigConnector conflict over DNSRecordSets? #837
Comments
It looks like this is caused by an update to
Basically the idea is to try specifying all defaulted annotation values explicitly in the YAML to prove the theory in 1. You can do a |
Thank you very much for your help! Solution number 2 doesn't seem to help. Number 1 however seems to have worked. The resource now syncs correctly. However I am still baffled. After a quick inspection it looks like a good chunk of them set these exact |
There shouldn't be a difference between these different CRDs, at least the behavior on How did you solve the problem? Did you add all the default annotations into your YAML before applying through ArgoCD and then it syncs? |
I added the following three annotations:
I still think there must be something odd going on with this resource type, since the other config connector resources don't have these default annotations specified and they sync just fine. Also, on a successful ArgoCD sync other resources are marked as
While these
But the |
Checklist
Bug Description
ArgoCD will create, but then fail to sync DNSRecordSet resources. It claims that it can't apply changes due to an immutable field even though there have been no changes to the resource so there should be nothing to apply.
I am uncertain whether the issue lies with ArgoCD or Config Connector.
These DNSRecordSets aren't being changed. We don't change them. Argocd sees them as synced and green. There is nothing in the diff. If I force replace the resource, there are no differences between the old and new resource except for a few computed fields (
metadata.creationTimestamp
,metadata.resourceVersion
,metadata.uid
). Yet they keep failing to sync.Additional Diagnostic Information
I am using ArgoCD (2.7.6) to deploy Config Connector resources on a GKE cluster. I've had problems with the DNSRecordSet resource for a couple of years now through many different GKE/Argo/CC versions.
Based on the error message (see below) I thought it could because CC and ArgoCD are fighting over the resource, even though I see no difference in the resource manifests ie. no sign of any unspecified but added fields.
https://cloud.google.com/config-connector/docs/concepts/ignore-unspecified-fields#resolve_fighting_between_config_management_tools_and
However setting the
state-into-spec
annotation toabsent
doesn't solve the problem, though it changes the error message (see below.)I also raised an issue on the ArgoCD side as well, but I was advised on Slack that there is a good chance that it could be a Config Connector problem.
argoproj/argo-cd#14426
Kubernetes Cluster Version
Client Version: v1.27.2 Kustomize Version: v5.0.1 Server Version: v1.25.10-gke.1200
Config Connector Version
1.96.0
Config Connector Mode
namespaced mode (default)
Log Output
with
state-into-spec
set toabsent
:Steps to reproduce the issue
DNSRecordSet
resource using the template below (usingrrdatasRefs
instead ofrrdatas
makes no difference)Using the
cnrm.cloud.google.com/state-into-spec: absent
annotation on the resource changes the error message to:YAML snippets
The text was updated successfully, but these errors were encountered: