|
| 1 | +// Module included in the following assemblies: |
| 2 | +// |
| 3 | +// * cli_reference/openshift_cli/managing-cli-profiles.adoc |
| 4 | + |
| 5 | +:_content-type: CONCEPT |
| 6 | +[id="about-switches-between-cli-profiles_{context}"] |
| 7 | += About switches between CLI profiles |
| 8 | + |
| 9 | +Contexts allow you to easily switch between multiple users across multiple {product-title} servers, or clusters, when using CLI operations. Nicknames make managing CLI configurations easier by providing short-hand references to contexts, user credentials, and cluster details. |
| 10 | +After logging in with the CLI for the first time, {product-title} creates a `~/.kube/config` file if one does not already exist. As more authentication and connection details are provided to the CLI, either automatically during an `oc login` operation or by manually configuring CLI profiles, the updated information is stored in the configuration file: |
| 11 | + |
| 12 | +.CLI config file |
| 13 | + |
| 14 | +[source,yaml] |
| 15 | +---- |
| 16 | +apiVersion: v1 |
| 17 | +clusters: <1> |
| 18 | +- cluster: |
| 19 | + insecure-skip-tls-verify: true |
| 20 | + server: https://openshift1.example.com:8443 |
| 21 | + name: openshift1.example.com:8443 |
| 22 | +- cluster: |
| 23 | + insecure-skip-tls-verify: true |
| 24 | + server: https://openshift2.example.com:8443 |
| 25 | + name: openshift2.example.com:8443 |
| 26 | +contexts: <2> |
| 27 | +- context: |
| 28 | + cluster: openshift1.example.com:8443 |
| 29 | + namespace: alice-project |
| 30 | + user: alice/openshift1.example.com:8443 |
| 31 | + name: alice-project/openshift1.example.com:8443/alice |
| 32 | +- context: |
| 33 | + cluster: openshift1.example.com:8443 |
| 34 | + namespace: joe-project |
| 35 | + user: alice/openshift1.example.com:8443 |
| 36 | + name: joe-project/openshift1/alice |
| 37 | +current-context: joe-project/openshift1.example.com:8443/alice <3> |
| 38 | +kind: Config |
| 39 | +preferences: {} |
| 40 | +users: <4> |
| 41 | +- name: alice/openshift1.example.com:8443 |
| 42 | + user: |
| 43 | + token: xZHd2piv5_9vQrg-SKXRJ2Dsl9SceNJdhNTljEKTb8k |
| 44 | +---- |
| 45 | + |
| 46 | +<1> The `clusters` section defines connection details for {product-title} clusters, including the address for their master server. In this example, one cluster is nicknamed `openshift1.example.com:8443` and another is nicknamed `openshift2.example.com:8443`. |
| 47 | +<2> This `contexts` section defines two contexts: one nicknamed `alice-project/openshift1.example.com:8443/alice`, using the `alice-project` project, `openshift1.example.com:8443` cluster, and `alice` user, and another nicknamed `joe-project/openshift1.example.com:8443/alice`, using the `joe-project` project, `openshift1.example.com:8443` cluster and `alice` user. |
| 48 | +<3> The `current-context` parameter shows that the `joe-project/openshift1.example.com:8443/alice` context is currently in use, allowing the `alice` user to work in the `joe-project` project on the `openshift1.example.com:8443` cluster. |
| 49 | +<4> The `users` section defines user credentials. In this example, the user nickname `alice/openshift1.example.com:8443` uses an access token. |
| 50 | + |
| 51 | +The CLI can support multiple configuration files which are loaded at runtime and merged together along with any override options specified from the command line. After you are logged in, you can use the `oc status` or `oc project` command to verify your current working environment: |
| 52 | + |
| 53 | +.Verify the current working environment |
| 54 | + |
| 55 | +[source,terminal,options="nowrap"] |
| 56 | +---- |
| 57 | +$ oc status |
| 58 | +---- |
| 59 | + |
| 60 | +.Example output |
| 61 | +[source,terminal] |
| 62 | +---- |
| 63 | +oc status |
| 64 | +In project Joe's Project (joe-project) |
| 65 | +
|
| 66 | +service database (172.30.43.12:5434 -> 3306) |
| 67 | + database deploys docker.io/openshift/mysql-55-centos7:latest |
| 68 | + #1 deployed 25 minutes ago - 1 pod |
| 69 | +
|
| 70 | +service frontend (172.30.159.137:5432 -> 8080) |
| 71 | + frontend deploys origin-ruby-sample:latest <- |
| 72 | + builds https://github.com/openshift/ruby-hello-world with joe-project/ruby-20-centos7:latest |
| 73 | + #1 deployed 22 minutes ago - 2 pods |
| 74 | +
|
| 75 | +To see more information about a service or deployment, use 'oc describe service <name>' or 'oc describe dc <name>'. |
| 76 | +You can use 'oc get all' to see lists of each of the types described in this example. |
| 77 | +---- |
| 78 | + |
| 79 | +.List the current project |
| 80 | +[source,terminal,options="nowrap"] |
| 81 | +---- |
| 82 | +$ oc project |
| 83 | +---- |
| 84 | + |
| 85 | +.Example output |
| 86 | +[source,terminal] |
| 87 | +---- |
| 88 | +Using project "joe-project" from context named "joe-project/openshift1.example.com:8443/alice" on server "https://openshift1.example.com:8443". |
| 89 | +---- |
| 90 | + |
| 91 | +You can run the `oc login` command again and supply the required information during the interactive process, to log in using any other combination of user credentials and cluster details. A context is constructed based on the supplied information if one does not already exist. If you are already logged in and want to switch to another project the current user already has access to, use the `oc project` command and enter the name of the project: |
| 92 | + |
| 93 | +[source,terminal,options="nowrap"] |
| 94 | +---- |
| 95 | +$ oc project alice-project |
| 96 | +---- |
| 97 | + |
| 98 | +.Example output |
| 99 | +[source,terminal] |
| 100 | +---- |
| 101 | +Now using project "alice-project" on server "https://openshift1.example.com:8443". |
| 102 | +---- |
| 103 | + |
| 104 | +At any time, you can use the `oc config view` command to view your current CLI configuration, as seen in the output. Additional CLI configuration commands are also available for more advanced usage. |
| 105 | + |
| 106 | +[NOTE] |
| 107 | +==== |
| 108 | +If you have access to administrator credentials but are no longer logged in as the default system user `system:admin`, you can log back in as this user at any time as long as the credentials are still present in your CLI config file. The following command logs in and switches to the default project: |
| 109 | +
|
| 110 | +[source,terminal] |
| 111 | +---- |
| 112 | +$ oc login -u system:admin -n default |
| 113 | +---- |
| 114 | +==== |
0 commit comments