Un proyecto en OpenShift v4 es una agrupamiento lógico de recursos. En realidad es muy parecido al recurso namespace de Kubernetes pero puede guardar información adicional. Si eliminamos un proyecto se eliminarán todos los recursos que hemos creado en él.

Vamos a seguir trabajando con el usuario developer, que hemos usado para acceder al clúster de OpenShift:

oc login -u developer -p developer https://api.crc.testing:6443

Login successful.

You don't have any projects. You can try to create a new project, by running

    oc new-project <projectname>

Por lo tanto lo primero que vamos a hacer es crear un nuevo proyecto que utilizará este usuario:

oc new-project developer
Now using project "developer" on server "https://api.crc.testing:6443".

You can add applications to this project with the 'new-app' command. For example, try:

    oc new-app rails-postgresql-example

to build a new example application in Ruby. Or use kubectl to deploy a simple Kubernetes application:

    kubectl create deployment hello-node --image=k8s.gcr.io/e2e-test-images/agnhost:2.33 -- /agnhost serve-hostname

Vemos que ahora está usando el proyecto developer. Para obtener la lista de proyectos disponibles:

oc get projects
NAME       DISPLAY NAME   STATUS
developer                  Active

Y para ver los detalles del proyecto, ejecutamos:

oc describe project developer

Si creamos un nuevo proyecto:

oc new-project developer2

oc get projects
NAME       DISPLAY NAME   STATUS
developer                  Active
developer2                 Active

Nos podemos posicionar en uno de ellos, ejecutando:

oc project developer

Proyectos y namespaces

Como hemos comentado un objeto project es en realidad un namespace que puede guardar más información. De hecho, cada vez que creamos un proyecto se creará un namespace. Sin embargo el usuario developer no tiene permiso para acceder a los namespaces:

oc get ns
Error from server (Forbidden): namespaces is forbidden: User "developer" cannot list resource "namespaces" in API group "" at the cluster scope

Vamos a conectarnos como administrador para poder acceder a los namespaces:

oc login -u kubeadmin https://api.crc.testing:6443
Login successful.

You have access to 68 projects, the list has been suppressed. You can list all projects with 'oc projects'

Using project "developer2".

El administrador tiene acceso a 68 proyectos, por defecto, está usando el último que se ha creado. Podemos ver todos los proyectos, ejecutando:

oc get projects

Ahora si podemos acceder a los namespaces, ejecutando:

oc get ns

Y podemos comprobar que se han creado el namespace developer y developer2 correspondientes a los proyectos creados anteriormente. Finalmente, si queremos trabajar en un proyecto en concreto, por ejemplo en el default, ejecutaremos:

oc project default
Now using project "default" on server "https://api.crc.testing:6443".

Finalmente para borrar un proyecto, ejecutamos:

oc delete project developer2

Updated: