{"record":{"id":"0d0b8d8e6e9e7bec","repo":"quarkusio/quarkus","slug":"a-kubernetes-deployment-was-requested-but-no-exten","errorCode":null,"errorMessage":"A Kubernetes deployment was requested but no extension was found to build a container image. Consider adding one of following extensions: ","messagePattern":"A Kubernetes deployment was requested but no extension was found to build a container image\\. Consider adding one of following extensions: ","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesDeployer.java","lineNumber":133,"sourceCode":"            KubernetesOutputDirectoryBuildItem outputDirectoryBuildItem,\n            OpenShiftConfig openshiftConfig,\n            ContainerImageConfig containerImageConfig,\n            ApplicationInfoBuildItem applicationInfo,\n            List<KubernetesOptionalResourceDefinitionBuildItem> optionalResourceDefinitions,\n            BuildProducer<DeploymentResultBuildItem> deploymentResult,\n            // needed to ensure that this step runs after the container image has been built\n            @SuppressWarnings(\"unused\") List<ArtifactResultBuildItem> artifactResults) {\n\n        if (!KubernetesDeploy.INSTANCE.check(kubernetesClientBuilder)) {\n            return;\n        }\n\n        if (selectedDeploymentTarget.isEmpty()) {\n\n            if (!containerImageConfig.isBuildExplicitlyDisabled() &&\n                    !containerImageConfig.isPushExplicitlyDisabled() &&\n                    ContainerImageCapabilitiesUtil.getActiveContainerImageCapability(capabilities).isEmpty()) {\n                throw new RuntimeException(\n                        \"A Kubernetes deployment was requested but no extension was found to build a container image. Consider adding one of following extensions: \"\n                                + CONTAINER_IMAGE_EXTENSIONS_STR + \".\");\n            }\n\n            return;\n        }\n\n        try (final KubernetesClient client = kubernetesClientBuilder.buildClient()) {\n            deploymentResult\n                    .produce(deploy(selectedDeploymentTarget.get().getEntry(), client,\n                            outputDirectoryBuildItem.getOutputDirectory(),\n                            openshiftConfig, applicationInfo, optionalResourceDefinitions));\n        }\n    }\n\n    /**\n     * Determine a single deployment target out of the possible options.\n     *","sourceCodeStart":115,"sourceCodeEnd":151,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/kubernetes/vanilla/deployment/src/main/java/io/quarkus/kubernetes/deployment/KubernetesDeployer.java#L115-L151","documentation":"KubernetesDeployer.deploy aborts when a Kubernetes deployment was requested but no active container-image extension capability is present to build the image, and neither build nor push was explicitly disabled. It throws RuntimeException listing the container-image extensions that could be added.","triggerScenarios":"quarkus.kubernetes.deploy=true (or -Dquarkus.kubernetes.deploy=true) while no container-image extension (container-image-docker, container-image-jib, container-image-s2i, container-image-buildpack) is on the classpath and image build/push is not explicitly disabled.","commonSituations":"Fresh project where the user added quarkus-kubernetes but no image builder; CI passing -Dquarkus.kubernetes.deploy=true without the image extension dependency; capability detection failing after removing a container-image extension.","solutions":["Add a container image extension, e.g. mvn quarkus:add-extension -Dextensions='container-image-jib' (or docker/s2i/buildpack)","If you only want manifests without image build, set quarkus.container-image.build=false and/or quarkus.container-image.push=false explicitly","Verify capabilities with the build output — ensure the container-image extension is in the dependency list of the application"],"exampleFix":"// before (pom.xml: only quarkus-kubernetes)\n<artifactId>quarkus-kubernetes</artifactId>\n// after\n<artifactId>quarkus-kubernetes</artifactId>\n<dependency><artifactId>quarkus-container-image-jib</artifactId></dependency>","handlingStrategy":"validation","validationCode":"boolean hasImageExt = dependencies.stream().anyMatch(d ->\n    d.getArtifactId().startsWith(\"quarkus-container-image-\"));\nif (deployRequested && !hasImageExt) throw new IllegalStateException(\"Add quarkus-container-image-jib (or docker/s2i/buildpack)\");","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Add a container-image extension whenever quarkus-kubernetes is used","Don't set quarkus.kubernetes.deploy=true unless an image builder is present","Or explicitly set quarkus.container-image.build=false when only manifests are needed"],"tags":["kubernetes","container-image","missing-extension"],"backgroundTag":"missing-container-image-extension","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}