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]

Reply via email to