{"record":{"id":"cd5e0bc151218a45","repo":"theonedev/onedev","slug":"onedev-running-inside-kubernetes-cluster-does-not","errorCode":null,"errorMessage":"OneDev running inside kubernetes cluster does not support workspaces yet","messagePattern":"OneDev running inside kubernetes cluster does not support workspaces yet","errorType":"exception","errorClass":"ExplicitException","httpStatus":null,"severity":"error","filePath":"server-plugin/server-plugin-provisioner-serverdocker/src/main/java/io/onedev/server/plugin/provisioner/serverdocker/ServerDockerProvisioner.java","lineNumber":258,"sourceCode":"\t}\n\n\tprivate List<RegistryLoginFacade> getRegistryLoginFacades(String token) {\n\t\treturn getRegistryLogins().stream()\n\t\t\t\t.map(it -> it.getFacade(token))\n\t\t\t\t.collect(toList());\n\t}\n\n\tprotected List<RegistryLoginFacade> getAllRegistryLogins(WorkspaceContext context) {\n\t\tvar provisionerRegistryLogins = getRegistryLoginFacades(context.getToken());\n\t\tvar registryLogins = context.getSpec().getRegistryLogins().stream()\n\t\t\t\t.map(it -> new RegistryLoginFacade(it.getRegistryUrl(), it.getUserName(), it.getPassword()))\n\t\t\t\t.collect(toList());\n\t\treturn merge(registryLogins, provisionerRegistryLogins);\n\t}\n\n\tprivate void checkApplicable() {\n\t\tif (OneDev.getK8sService() != null) {\n\t\t\tthrow new ExplicitException(\"OneDev running inside kubernetes cluster does not support workspaces yet\");\n\t\t}\n\t}\n\n\t@Override\n\tpublic void test(TestData testData, TaskLogger jobLogger) {\n\t\tcheckApplicable();\n\t\tvar docker = newDocker();\n\t\tAgentUtils.testDocker(docker, getRegistryLoginFacades(testData.getDockerImage()),\n\t\t\t\ttestData.getDockerImage(), getCpuLimit(), getMemoryLimit(), getRunOptions(),\n\t\t\t\tthis::getHostPath, jobLogger);\n\t}\n\n\t@Editable(name=\"Specify a Docker Image to Test Against\")\n\tpublic static class TestData implements Serializable {\n\n\t\tprivate static final long serialVersionUID = 1L;\n\n\t\tprivate String dockerImage;","sourceCodeStart":240,"sourceCodeEnd":276,"githubUrl":"https://github.com/theonedev/onedev/blob/d44925c47c37992c828ea673a5f9620539bc3ff2/server-plugin/server-plugin-provisioner-serverdocker/src/main/java/io/onedev/server/plugin/provisioner/serverdocker/ServerDockerProvisioner.java#L240-L276","documentation":"ServerDockerProvisioner.checkApplicable throws ExplicitException when OneDev is running inside a Kubernetes cluster (OneDev.getK8sService() != null). The server-docker workspace provisioner only works when OneDev runs on a plain server/host, not in k8s.","triggerScenarios":"Configuring a workspace/CI step to use the Server Docker provisioner while the OneDev instance itself is deployed inside a Kubernetes cluster; calling test() or provision() in that state.","commonSituations":"OneDev deployed via the official k8s Helm/operator setup, then attempting to use server docker workspaces; migrating an existing server-docker config to a k8s deployment.","solutions":["Use the Kubernetes-aware execution mode (k8s executors/pods) instead of server docker workspaces","If workspaces are required, run OneDev outside kubernetes (bare VM/docker host install)","If OneDev is NOT actually in k8s but reports k8sService non-null, verify deployment environment settings"],"exampleFix":"null","handlingStrategy":"validation","validationCode":"if (OneDev.getK8sService() != null) { throw new IllegalStateException('Server docker workspaces require OneDev outside kubernetes'); }","typeGuard":null,"tryCatchPattern":"try { provisioner.test(testData, logger); } catch (ExplicitException e) { if (e.getMessage().contains('kubernetes')) useK8sNativeExecutor(); else throw e; }","preventionTips":["Check deployment mode before choosing provisioner type for workspaces","On k8s deployments use the built-in k8s executors","Document provisioner/platform compatibility for workspace authors"],"tags":["kubernetes","provisioner","unsupported-platform"],"backgroundTag":"unsupported-platform","analyzedSha":"d44925c47c37992c828ea673a5f9620539bc3ff2","analyzedAt":"2026-09-06T07:18:27.995Z","contentChangedAt":"2026-09-06T07:18:27.995Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}