I try to implement a sample example of Kubernetes Java Client Api in Spring Boot example. I already handled with creating , deleting and getting namespace but I couldn't handle with updating namespace by name in my Spring Boot example.
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?
I try to implement a sample example of Kubernetes Java Client Api in Spring Boot example. I already handled with creating , deleting and getting namespace but I couldn't handle with updating namespace by name in my Spring Boot example. How can I fix it?
What you are trying to do here is basiaclly to update the name of the K8S namespace, which is impossible. Thus the cluster does not allow you to modify the namespace and returns 400.