Copilot commented on code in PR #649:
URL: https://github.com/apache/solr-operator/pull/649#discussion_r2891035706


##########
controllers/util/solr_util.go:
##########
@@ -757,6 +757,7 @@ func generateSolrSetupInitContainers(solrCloud 
*solr.SolrCloud, solrCloudStatus
                        Requests: volumePrepResources,
                        Limits:   volumePrepResources,
                },
+               SecurityContext: solrCloud.Spec.BusyBoxSecurityContext.ToSC(),
        }

Review Comment:
   Setting a non-root SecurityContext on the `cp-solr-xml` init container can 
break the existing backup-repository prep logic in this same container: when 
`BackupRepositories` include volume mounts, `setupCommands` may include 
`addgroup`/`adduser`/`su` and `chown`, which typically require root (or extra 
capabilities) and will fail when running as UID/GID 65534. Consider either (a) 
skipping/reworking the user-creation + chown path when `BusyBoxSecurityContext` 
enforces non-root (e.g., rely on FSGroup and only do a write-test with a clear 
error), or (b) splitting the permission-fixup into a separate, optionally-root 
init container so `cp-solr-xml` can remain non-root for `runAsNonRoot: true` 
pods.



##########
api/v1beta1/solrcloud_types.go:
##########
@@ -204,6 +210,12 @@ func (spec *SolrCloudSpec) withDefaults(logger 
logr.Logger) (changed bool) {
        }
        changed = spec.BusyBoxImage.withDefaults(DefaultBusyBoxImageRepo, 
DefaultBusyBoxImageVersion, DefaultPullPolicy) || changed
 
+       if spec.BusyBoxSecurityContext == nil {
+               c := ContainerSecurityContext{}
+               spec.BusyBoxSecurityContext = &c
+       }
+       changed = 
spec.BusyBoxSecurityContext.withDefaults(DefaultBusyBoxUserId, 
DefaultBusyBoxGroupId, DefaultBusyBoxRunAsNonRoot) || changed

Review Comment:
   New defaulting for `BusyBoxSecurityContext` introduces user-visible behavior 
(init container securityContext defaults to UID/GID 65534 and `runAsNonRoot: 
true`), but there doesn’t appear to be controller/unit test coverage asserting 
the generated StatefulSet’s `cp-solr-xml` init container gets this 
securityContext (and that overrides work). Adding assertions in the existing 
controller tests that inspect init containers would help prevent regressions, 
especially given the interaction with `PodSecurityContext`/FSGroup and 
backup-repo prep.



-- 
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