i wouldn’t go for any other solution except the following code snippet:
kubernetes 1.19 and above (included)
kubectl create namespace <add-namespace-here> --dry-run=client -o yaml | kubectl apply -f -
kubernetes 1.18 and below (included)
kubectl create namespace <add-namespace-here> --dry-run -o yaml | kubectl apply -f -
it creates a namespace in dry-run and outputs it as a yaml. The output will be passed as stdin to kubectl apply -f –
The last hyphen is important while passing kubectl to read from stdin.
Also see the examples in:
kubectl apply --help