[
https://issues.apache.org/jira/browse/CAMEL-26241?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18138180#comment-18138180
]
Claus Ibsen commented on CAMEL-26241:
-------------------------------------
Fixed on main via https://github.com/apache/camel/pull/29101 (fix version
4.24.0).
_Claude Code on behalf of davsclaus_
> camel-kubernetes - openshift-deploymentconfigs get and list ignore the
> namespace header, and openshift listBuilds and listBuildConfigs always list
> all namespaces
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-26241
> URL: https://issues.apache.org/jira/browse/CAMEL-26241
> Project: Camel
> Issue Type: Bug
> Components: camel-kubernetes
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Major
> Fix For: 4.24.0
>
>
> Found while adding the catalog body types of the openshift components of
> camel-kubernetes (CAMEL-24961, PR #28400). The kubernetes-* components are in
> a separate issue.
> h4. 1. openshift-deploymentconfigs: get, list and listByLabels ignore the
> namespace
> {{OpenshiftDeploymentConfigsProducer}} doList (main 2a465aa4814c, line 96),
> doListDeploymentConfigsByLabels (line 105) and doGetDeploymentConfig (line
> 117) do not read {{CamelKubernetesNamespaceName}}, while create, update,
> delete and scale do. A deployment config created in namespace "other" is not
> found by get. Checked on 4.24.0-SNAPSHOT with the fabric8 Kubernetes mock
> server in CRUD mode.
> Proposed: use {{inNamespace(namespace)}} when the header (or the option) is
> set, as the other operations do.
> h4. 2. openshift-builds and openshift-build-configs: list always lists all
> namespaces
> {{OpenshiftBuildsProducer.doList}} (line 73) and
> {{OpenshiftBuildConfigsProducer.doList}} (line 74) call {{inAnyNamespace()}}
> and ignore the namespace header; their ByLabels variants honour it. Checked
> on 4.24.0-SNAPSHOT with the fabric8 Kubernetes mock server in CRUD mode.
> Proposed: use the namespace when it is set, as the ByLabels variants do.
> h4. 3. ByLabels without labels: NullPointerException
> {{OpenshiftBuildConfigsProducer.doListBuildConfigsByLabels}} (lines 79-87)
> passes a missing labels header to {{withLabels(null)}}, which fails with a
> NullPointerException '"m" is null' (seen).
> {{OpenshiftBuildsProducer.doListBuildByLabels}} (lines 78-86) and
> {{OpenshiftDeploymentConfigsProducer.doListDeploymentConfigsByLabels}} (line
> 105) have the same code (read in the code). Checked on 4.24.0-SNAPSHOT with
> the fabric8 Kubernetes mock server in CRUD mode.
> Proposed: fail with a message that the labels header is required (or list all
> when it is missing).
> h4. 4. openshift-deploymentconfigs scale fails when there is no status yet
> {{doScaleDeploymentConfig}} (line 204) returns {{getStatus().getReplicas()}}:
> a NullPointerException when the returned config has no status yet, and
> otherwise the current count, which may lag behind the requested one. Checked
> on 4.24.0-SNAPSHOT with the fabric8 Kubernetes mock server in CRUD mode.
> Proposed: return the requested replicas (or {{getSpec().getReplicas()}}) and
> guard against a null status.
> h4. 5. The namespace URI option is not used by the producers
> The three openshift producers read the namespace only from
> {{CamelKubernetesNamespaceName}}; the {{namespace}} endpoint option is used
> by the consumers only. Checked on 4.24.0-SNAPSHOT with the fabric8 Kubernetes
> mock server in CRUD mode.
> Proposed: fall back to the {{namespace}} option when the header is not set.
> _Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)