{"record":{"id":"d3d849af393f921a","repo":"apache/druid","slug":"invalid-pod-adapter-s-only-pod-adapter-s-ca","errorCode":null,"errorMessage":"Invalid pod adapter [%s], only pod adapter [%s] can be specified when sidecarSupport is enabled","messagePattern":"Invalid pod adapter \\[(.+?)\\], only pod adapter \\[(.+?)\\] can be specified when sidecarSupport is enabled","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"extensions-core/kubernetes-overlord-extensions/src/main/java/org/apache/druid/k8s/overlord/KubernetesOverlordModule.java","lineNumber":312,"sourceCode":"      TaskConfig taskConfig,\n      StartupLoggingConfig startupLoggingConfig,\n      @Self DruidNode druidNode,\n      @Smile ObjectMapper smileMapper,\n      TaskLogs taskLogs,\n      Supplier<KubernetesTaskRunnerDynamicConfig> dynamicConfigRef\n  )\n  {\n    String adapter = properties.getProperty(String.format(\n        Locale.ROOT,\n        \"%s.%s.adapter.type\",\n        IndexingServiceModuleHelper.INDEXER_RUNNER_PROPERTY_PREFIX,\n        \"k8s\"\n    ));\n\n    if (adapter != null\n        && !MultiContainerTaskAdapter.TYPE.equals(adapter)\n        && kubernetesTaskRunnerConfig.isSidecarSupport()) {\n      throw new IAE(\n          \"Invalid pod adapter [%s], only pod adapter [%s] can be specified when sidecarSupport is enabled\",\n          adapter,\n          MultiContainerTaskAdapter.TYPE\n      );\n    }\n\n    if (MultiContainerTaskAdapter.TYPE.equals(adapter) || kubernetesTaskRunnerConfig.isSidecarSupport()) {\n      return new MultiContainerTaskAdapter(\n          client,\n          kubernetesTaskRunnerConfig,\n          taskConfig,\n          startupLoggingConfig,\n          druidNode,\n          smileMapper,\n          taskLogs\n      );\n    } else if (PodTemplateTaskAdapter.TYPE.equals(adapter)) {\n      return new PodTemplateTaskAdapter(","sourceCodeStart":294,"sourceCodeEnd":330,"githubUrl":"https://github.com/apache/druid/blob/9b90983fd291f26935af934383ce360473179e4d/extensions-core/kubernetes-overlord-extensions/src/main/java/org/apache/druid/k8s/overlord/KubernetesOverlordModule.java#L294-L330","documentation":"KubernetesOverlordModule.provideTaskAdapter() rejects a configured pod adapter type that is incompatible with sidecar support. When druid.indexer.runner.k8s.sidecarSupport=true the only valid adapter is MultiContainerTaskAdapter (type 'multi-container'), because sidecars require multi-container pod manipulation.","triggerScenarios":"Configuring druid.indexer.runner.k8s.peonAdapter (or equivalent adapter property) to a single-container adapter type like 'overlord' or 'k8s' while sidecarSupport is enabled.","commonSituations":"Upgrading to sidecar support and leaving the old adapter setting in place; copy-pasting task-runner config between clusters; docs/examples showing adapter=k8s then enabling sidecars separately.","solutions":["Set the adapter to 'multi-container' (MultiContainerTaskAdapter.TYPE) when sidecarSupport is enabled","Or set sidecarSupport=false if single-container adapters must stay","Remove the explicit adapter property so the module default for sidecar mode applies","Restart the Overlord after correcting the runtime.properties config"],"exampleFix":"// before\ndruid.indexer.runner.k8s.sidecarSupport=true\ndruid.indexer.runner.k8s.peonAdapter=k8s\n// after\ndruid.indexer.runner.k8s.sidecarSupport=true\ndruid.indexer.runner.k8s.peonAdapter=multi-container","handlingStrategy":"validation","validationCode":"boolean sidecar = runnerConfig.isSidecarSupport();\nString adapter = props.getProperty(\"druid.indexer.runner.k8s.peonAdapter\");\nif (sidecar && adapter != null && !\"multi-container\".equals(adapter)) {\n  throw new IllegalArgumentException(\"adapter must be multi-container when sidecarSupport is enabled\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Audit runtime.properties whenever toggling sidecarSupport","Prefer omitting the adapter property and letting the module choose the default","Document adapter/sidecar compatibility in your cluster config repo"],"tags":["configuration","kubernetes","overlord","sidecar","validation"],"backgroundTag":"invalid-config-value","analyzedSha":"9b90983fd291f26935af934383ce360473179e4d","analyzedAt":"2026-09-07T13:32:30.957Z","contentChangedAt":"2026-09-07T13:32:30.957Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}