Início
Trocando de perfil
Configurando perfil manualmente
Carregando regras e mesclando
Início
O arquivo de configuração da CLI permite que você configure diferentes perfis, ou contextos, para usar com a CLI do Openshift. Um contexto consiste na autenticação do usuário e informações do servidor associada com aquele usuário.
Trocando de perfil
Contextos permitem que você troque facilmente de perfis entre múltiplos usuários de vários servidores ou clusters, quando estiver executando comandos na CLI. Apelidos tornam mais fácil gerenciar a configuração da CLI fornecendo uma curta referencia para contextos, credenciais de usuários e detalhes do cluster.
Depois de fazer login na CLI pela primeira vez, o OpenShift gera um arquivo ~/.kube/config se o mesmo não existir.
Quanto mais detalhes de autenticação forem passados para a CLI, as informações serão gravadas no arquivo de configuração durante a execução do comando oc login ou escolhendo perfil explicitamente.
Exemplo 1. Arquivo de configuração CLI
apiVersion: v1
clusters:
- cluster:
server: https://portal.getupcloud.com:443
name: portal-getupcloud-com:443
contexts:
- context:
cluster: portal-getupcloud-com:443
namespace: vander-project
user: vander/portal-getupcloud-com:443
name: vander-project/portal-getupcloud-com:443/vander
- context:
cluster: portal-getupcloud-com:443
namespace: docker-project
user: vander/portal-getupcloud-com:443
name: docker-project/portal-getupcloud-com:443/vander
current-context: docker-project/portal-getupcloud-com:443/vander
kind: Config
preferences: {}
users:
- name: vander/portal-getupcloud-com:443
user:
token: mpDs4piv5_9vQrg-SKXRJ2Dsl9SceNJdhNTljoS1fz4
A seção clusters define os detalhes de conexão aos clusters do OpenShift, incluindo o endereço para o servidor master. Neste exemplo, o cluster tem o nickname de portal.getupcloud.com:443.
A seção contexts define dois contextos: um chamado vander-project/portal-getupcloud.com:443/vander, usando o projeto vander-project, o cluster portal.getupcloud.com:443 e o usuário vander, e o outro é o docker-project/portal.getupcloud.com:443/vander, usando o projeto docker-project, o cluster portal.getupcloud.com:443 e o usuário vander.
O parametro current-context exibe o contexto em uso docker-project/portal-getupcloud-com:443/vander, permitindo o usuário vander a trabalhar no projeto docker-project no cluster portal.getupcloud.com:443.
A seção users define as credenciais de usuários. Neste exemplo, o nickname vander/portal.getupcloud.com:443 utiliza um token de acesso.
A CLI suporta múltiplos arquivos de configuração; eles são carregados e mesclados no momento da execução com qualquer opção especificada na linha de comando.
Depois que você estiver logado no sistema, você pode usar o comando oc status ou oc project para verificar seu ambiente de trabalho atual.
Exemplo 2. Verificando o ambiente de trabalho atual
$ oc status
In project docker's Project (docker-project)
service database (172.30.43.12:5434 -> 3306)
database deploys docker.io/openshift/mysql-55-centos7:latest
#1 deployed 25 minutes ago - 1 pod
service frontend (172.30.159.137:5432 -> 8080)
frontend deploys origin-ruby-sample:latest <-
builds git://github.com/openshift/ruby-hello-world.git with docker-project/ruby-20-centos7:latest
#1 deployed 22 minutes ago - 2 pods
To see more information about a service or deployment, use 'oc describe service <name>' or 'oc describe dc <name>'.
You can use 'oc get all' to see lists of each of the types described above.
$ oc project
Using project "docker-project" from context named "docker-project/portal-getupcloud-com:443/vander" on server "https://portal.getupcloud.com:443".
Para logar usando credenciais de outro usuário, execute o comando oc login novamente e forneça as informações durante o processo interativo. Um contexto é construído com base nas informações passadas durante o login caso não exista.
Se você já esta logando e quer trocar para outro projeto que o usuário atual tem acesso, use o comando oc project e forneça o nome do projeto como parâmetro.
$ oc project vander-project
Now using project "vander-project" on server "https://portal.getupcloud.com:443".
Em qualquer momento, você pode usar o comando oc config view para visualizar toda configuração da sua CLI, como visto no Exemplo 1.
Comandos adicionais para configuração da CLI estão disponíveis para usuários mais experientes.
Configurando perfil manualmente
![]() |
Esta seção cobre o uso mais avançado de configurações na CLI. Na maioria das situações, você pode simplesmente usar o comando oc login e oc project para logar e trocar de contexto e projetos |
Para alterar o arquivo de configurar da CLI manualmente, você pode usar o comando oc config em vez de modificar o arquivo. O comando oc config inclui diversos subcomandos para este proposito.
Tabela 1. Subcomandos CLI
Subcomando | Uso |
set-credentials |
Define uma entrada no arquivo de configuração da CLI para um usuário. Se o usuário informado já existir, a informação especificada vai ser mesclada. $ oc config set-credentials <user_nickname> [--client-certificate=<path/to/certfile>] [--client-key=<path/to/keyfile>]
[--token=<bearer_token>] [--username=<basic_user>] [--password=<basic_password>]
|
set-cluster |
Define uma entrada no arquivo de configuração da CLI para um cluster. Se o nickname para o cluster já existir, a informação especificada vai ser mesclada. $ oc config set-cluster <cluster_nickname> [--server=<master_ip_or_fqdn>] [--certificate-authority=<path/to/certificate/authority>] [--api-version=<apiversion>] [--insecure-skip-tls-verify=true] |
set-context |
Define uma entrada no arquivo de configuração da CLI para um contexto. Se o contexto já existir, a informação especificada vai ser mesclada. $ oc config set-context <context_nickname> [--cluster=<cluster_nickname>]
[--user=<user_nickname>] [--namespace=<namespace>]
|
use-context |
Define o contexto atual usando o nickname do contexto especificado. $ oc config use-context <context_nickname>
|
set |
Define um valor individual no arquivo de configuração da CLI. $ oc config set <property_name> <property_value>
O <property_name> é um nome delimitado por ponto em que cada símbolo representa ou um nome de atributo ou uma map key. O <property_value> é o novo valor a ser definido. |
unset |
Remove um valor individual no arquivo de configuração da CLI. $ oc config unset <property_name>
O <property_name> é um nome delimitado por ponto em que cada símbolo representa ou um nome de atributo ou uma map key. |
view |
Exibe o valor mesclado da configuração atual da CLI. $ oc config view
Exibe o resultado do arquivo de configuração da CLI especificado. $ oc config view --config=<specific_filename>
|
Exemplo
Considere a seguinte configuração. Primeiro, setar as credenciais para o usuário vander e usar o token de acesso:
$ oc config set-credentials vander --token=NDM2N2MwODgtNjI1Yy10N3VhLTg1YmItYzI4NDEzZDUyYzVi
Define um cluster chamado getupcloud:
$ oc config set-cluster getupcloud --server=https://portal.getupcloud.com
Define o nome do contexto como vander que vai usar o usuário vander e o cluster getupcloud:
$ oc config set-context vander --cluster=getupcloud --user=vander
Agora que o contexto vander foi criado, troque o contexto para ele:
$ oc config use-context vander
Define o namespace vanderproject para o contexto vander:
$ oc config set contexts.vander.namespace vanderproject
Agora você pode visualizar a configuração que foi criada:
$ oc config view
apiVersion: v1
clusters:
- cluster:
server: https://portal.getupcloud.com
name: getupcloud
contexts:
- context:
cluster: getupcloud
namespace: vanderproject
user: vander
name: vander
current-context: vander
kind: Config
preferences: {}
users:
- name: vander
user:
token: NDM2N2MwODgtNjI1Yy10N3VhLTg1YmItYzI4NDEzZDUyYzVi
O contexto atual esta setado para vander.
Todos os comandos subsequentes na CLI irão utilizar o contexto vander, a menos que especificado por meio de parâmetro na CLI ou que tenha trocado de contexto.
Carregando regras e mesclando
Quando estiver rodando comandos na CLI, o carregamento e fusão das configurações seguem estas regras:
- Os arquivos de configuração da CLI são carregados a partir da sua worsktation, utilizando a seguinte hierarquia para mesclar regras:
- Se a opção --config estiver setada, então apenas o arquivo é carregado, esta opção só é setada uma vez e nenhum arquivo é mesclado.
- Se a variável de ambiente $KUBECONFIG for setada, então ela vai ser usada. A variável pode ser uma lista de paths e se for, os paths são mesclados. Quando um valor é criado, ele é criado no primeiro arquivo que existir. Se nenhum arquivo existir na lista, então ele cria um arquivo.
- Caso contrário, o arquivo ~/.kube/config é usado e nada é mesclado.
- O contexto a ser usado é definido baseado no primeiro match na seguinte ordem:
- O valor da opção --context.
- O valor de current-context do arquivo de configuração da CLI.
- Um campo vazio é permitido nessa fase.
- O usuário e cluster a ser usado já foram definidos. Nessa fase, você pode ou não ter um contexto; eles são criados com base no primeiro match da seguinte lista, que é executada uma vez para o usuário e outro para o cluster:
- O valor da opção --user para definir usuário e --cluster para o nome do cluster.
- Se a opção --context estiver presente, então vai ser usado o valor do contexto.
- Um campo vazio é permitido nessa fase.
- A informação atual do cluster a ser utilizado é determinado. Nessa fase, você pode ou não ter informações do cluster. Cada pedaço de informação do cluster é criada com base no primeiro match da seguinte lista:
- O valor de qualquer das seguintes opções:
- --server,
- --api-version
- --certificate-authority
- --insecure-skip-tls-verify
- Se a informação do cluster e o valor do atributo estiver presente, então ele sera usado.
- Se você não tem um servidor, então vai dar erro.
- A informação do atual usuário é determinada. Nessa fase, usuários são criados usando as mesmas regras, exceto que você pode ter apenas um modo de autenticação por usuário; conflito de modos de autenticação irão fazer a conexão falhar. As opções de linha de comando irão sempre preceder as configurações de arquivos. Opções validas são:
- --auth-path
- --client-certificate
- --client-key
- --token
- Os valores default são usados e perguntas serão feitas para informações adicionais caso alguma opção esteja em branco.
Comentários
0 comentário
Por favor, entre para comentar.