Spring Boot with Kubernetes Java Client API - Edit Namespace

Here is the EditNamespaceRequest shown below

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class EditNamespaceRequest {
    private String name;
}

Here is the updateNamespace method of my Service


public V1Namespace updateNamespace(String currentName, EditNamespaceRequest editNamespaceRequest) throws ApiException {

try {
            // Retrieve the existing namespace
            V1Namespace existingNamespace = coreV1Api.readNamespace(currentName, null);

            // Update the existing namespace with the new values
            existingNamespace.metadata(new V1ObjectMeta().name(editNamespaceRequest.getName()));

            // Perform the update
            coreV1Api.replaceNamespace(currentName, existingNamespace, null, null, null,null);

            return existingNamespace;
        } catch (ApiException e) {
            // Handle API exception (e.g., namespace not found, permission issues, etc.)
            throw new RuntimeException("Failed to update namespace: " + e.getResponseBody(), e);
        }

    }

I have a problem to update Namespace by name through Kubernetes Java Client API.

this error message is shown below when I run

 {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"the name of the object (namespace-update) does not match the name on the URL (namespace-new)","reason":"BadRequest","code":400}

How can I fix it?

Hi,

https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#replace-namespace-v1-core
There is a http PUT request sent to the /api/v1/namespaces/namespace-new endpoint.
However there is another name in request payload namespace-update.
I am not sure you can just rename a namespace. I guess its name is immutable.