No openshift 4.x, você tem uma API para a project
qual parece ser totalmente semelhante namespace
no sentido de que quando você cria um projeto é criado um namespace e vice-versa. Eu sei que namespace
é um objeto padrão no kubernetes e o projeto é específico do Openshift. Então o que project
traz?
# list projects
oc get projects
NAME DISPLAY NAME STATUS
default Active
kube-node-lease Active
kube-public Active
kube-system Active
local-storage Active
openshift Active
openshift-apiserver Active
# list namespaces
$ oc get ns
NAME STATUS AGE
default Active 17d
kube-node-lease Active 17d
kube-public Active 17d
kube-system Active 17d
local-storage Active 16d
openshift Active 17d
openshift-apiserver Active 17d
openshift-apiserver-operator Active 17d
A lista é a mesma, exceto colunas diferentes
oc get project foo
Error from server (NotFound): namespaces "foo" not found
oc get ns foo
Error from server (NotFound): namespaces "foo" not found
15:30 $ oc new-project foo
Now using project "foo" on server "https://api.goo.tadadidou.bo:6443".
...
$ oc get project foo
NAME DISPLAY NAME STATUS
foo Active
$ oc get ns foo
NAME STATUS AGE
foo Active 70s
Até a saída yaml é semelhante, exceto o valor do campo Kind:
que é Project
ou Namespace
.
Um projeto é essencialmente o mesmo que um namespace, mas o OpenShift fornece controles administrativos adicionais para projetos.
Se você estiver implantando software no OpenShift, basicamente usará o projeto exatamente da mesma maneira que um namespace do Kubernetes, exceto que um usuário normal pode ser impedido de criar seus próprios projetos, exigindo que um administrador de cluster faça isso. (Parece que seu cluster permite que você crie seus próprios projetos ou você está usando um cluster pessoal, como CodeReady Containers ou seu predecessor Minishift.)
Dos documentos :