bergner commented on issue #600: URL: https://github.com/apache/solr-operator/issues/600#issuecomment-1961673239
I ran into the issue of having ArgoCD get into a loop when trying to delete an ArgoCD application that used the Solr helm chart as one of its components, and the only workaround was to manually force delete the SolrCloud CR. ArgoCD has an annotation that can be set on resources ArgoCD should ignore (i.e. resources managed by something else): `argocd.argoproj.io/compare-options: IgnoreExtraneous` Looking at the helm chart configuration options at https://github.com/apache/solr-operator/tree/main/helm/solr I tried setting all the exposed "annotations" options accordingly in the values.yaml file used when deploying the Solr helm chart but this was still not sufficient. ```` image: tag: 8.11 replicas: 1 solrOptions: logLevel: "DEBUG" fullnameOverride: solr zk: provided: replicas: 1 persistence: annotations: argocd.argoproj.io/compare-options: IgnoreExtraneous adminServerService: annotations: argocd.argoproj.io/compare-options: IgnoreExtraneous clientService: annotations: argocd.argoproj.io/compare-options: IgnoreExtraneous headlessService: annotations: argocd.argoproj.io/compare-options: IgnoreExtraneous zookeeperPodPolicy: annotations: argocd.argoproj.io/compare-options: IgnoreExtraneous podOptions: serviceAccountName: solr-service-account annotations: argocd.argoproj.io/compare-options: IgnoreExtraneous podSecurityContext: runAsNonRoot: false seccompProfile: type: RuntimeDefault startupProbe: timeoutSeconds: 30 periodSeconds: 10 statefulSetOptions: annotations: argocd.argoproj.io/compare-options: IgnoreExtraneous commonServiceOptions: annotations: argocd.argoproj.io/compare-options: IgnoreExtraneous headlessServiceOptions: annotations: argocd.argoproj.io/compare-options: IgnoreExtraneous nodeServiceOptions: annotations: argocd.argoproj.io/compare-options: IgnoreExtraneous ingressOptions: annotations: argocd.argoproj.io/compare-options: IgnoreExtraneous configMapOptions: annotations: argocd.argoproj.io/compare-options: IgnoreExtraneous dataStorage: type: persistent capacity: "20Gi" persistent: reclaimPolicy: "Delete" pvc: name: "solr-data" annotations: solrapp: "solr-data" argocd.argoproj.io/compare-options: IgnoreExtraneous labels: solrapp: "solr-data" ```` Looking at the resources underneath the SolrCloud CR I found the following that lacked the IgnoreExtraneous annotation: * ZookeeperCluster CR itself. * ConfigMap solr-solrcloud-zookeeper-config * StatefulSet solr-solrcloud-zookeper * PersistentVolumeClaim data-solr-solrcloud-zookeeper-0 Then there were a few other resources that also lacked it but I think these are ok without it (based on previous experience with ArgoCD and other operators): * PodDisruptionBudget (both for SolrCloud and ZK) * Endpoints and EndpointSlice resources both sit underneath Service resources and the Service does have the annotation I also think the [Bitnami Zookeeper chart](https://artifacthub.io/packages/helm/bitnami/zookeeper) would be a better choice here. I haven't used the Bitnami ZK chart myself but I have had a pretty good experience using some containers and other charts from Bitnami in the past and the Bitnami ZK chart has good options that seemingly makes it easy to set annotations on all resources: > commonAnnotations | Add annotations to all the deployed resources | {} -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
