To create a service account, with a session token which does not expire, for use with scripted access, use the oc create sa
command, and pass the name to give the service account.
$ oc create sa robot
serviceaccount "robot" created
To view details of the service account created, run oc describe
on the service account resource.
$ oc describe sa robot
Name: robot
Namespace: cookbook
Labels: <none>
Annotations: <none>
Image pull secrets: robot-dockercfg-vl9qn
Mountable secrets: robot-token-mhf9x
robot-dockercfg-vl9qn
Tokens: robot-token-4nkdw
robot-token-mhf9x
Secrets for two access tokens will be created.
One is mounted into any containers which are run as this service account to allow an application running in the container to access the REST API if required.
The second is referenced in the separate secret for the docker configuration used when pulling images from the internal docker registry.
Of the two tokens, the first token, which would normally be used from within containers running with this service account to access the REST API, also be used when accessing the REST API from outside of the cluster.
To view the access token, run oc describe
on the secret.
$ oc describe secret robot-token-mhf9x
Name: robot-token-mhf9x
Namespace: cookbook
Labels: <none>
Annotations: kubernetes.io/service-account.name=robot
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1070 bytes
namespace: 8 bytes
service-ca.crt: 2186 bytes
token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
The token will not expire. If you need to revoke the access token you can delete the secret for the access token using oc delete
and a new secret will be created.
$ oc delete secret robot-token-mhf9x
secret "robot-token-mhf9x" deleted
The service account, along with any secrets associated with it, can be deleted by running oc delete
against the service account.
$ oc delete sa robot
serviceaccount "robot" deleted
Note that the service account will by default have no access to do anything within the project via the REST API. You will need to grant appropriate roles to the service account to enable it to view or make changes to any resource objects.
For further information on creating and using service accounts see: