Trabalhando com segredos

Saiba como trabalhar com segredos no Code Engine. Em Code Engine, você pode armazenar suas informações como pares de valores-chave em segredos que podem ser consumidos por sua função, trabalho ou aplicativo usando variáveis de ambiente.

O que são segredos e por que eu os usaria?

No Code Engine, segredos (e configmaps) são uma coleta de pares de valores de chave. Quando mapeados para variáveis de ambiente, os relacionamentos NAME=VALUE são configurados de tal forma que o nome da variável de ambiente corresponde à "key" de cada entrada nesses mapas, e o valor da variável de ambiente é o "value" dessa chave.

Um segredo fornece um método para incluir informações de configuração sensíveis, como senhas ou chaves SSH, para a sua implementação. Ao fazer referência a valores do seu segredo, você pode desacoplar informações confidenciais da sua implantação para manter seu aplicativo, função ou trabalho portátil. Qualquer pessoa que estiver autorizada para o seu projeto também pode visualizar os seus segredos; certifique-se de saber que as informações secretas podem ser compartilhadas com esses usuários. Os segredos contêm informações em pares chave-valor.

Como os segredos e os configmaps são entidades semelhantes (exceto que os segredos são armazenados de forma mais segura), a maneira como você interage e trabalha com os segredos e os configmaps também é semelhante. Para saber mais sobre os configmaps, consulte Trabalhando com configmaps.

Que tipo de segredos posso criar no Code Engine?

O Code Engine suporta vários segredos e fornece opções para criar e trabalhar com segredos.

A tabela a seguir resume os segredos suportados no Code Engine.

Segredos em Code Engine
Nome Descrição
Autenticação básica Um segredo que contém uma chave username and password.
Use segredos básicos de autenticação quando acessar um serviço que exija autenticação básica HTTP.
Genérico Um segredo que armazena pares chave-valor simples e Code Engine não faz suposições sobre os pares chave-valor definidos nem sobre o uso pretendido do segredo.
Use segredos genéricos quando desejar definir seus próprios pares chave-valor para acessar um serviço.
HMAC Um segredo que contém uma chave access_key_id e uma secret_access_key.
Use as credenciais HMAC para usar as ferramentas e bibliotecas do S3-compatible que exigem autenticação, mas não são compatíveis com as chaves de API do IBM Cloud® Identity and Access Management.
Registro Um segredo que armazena credenciais para acessar um registro de contêiner.
Use segredos de registro ao trabalhar com apps ou tarefas do Code Engine para acessar uma imagem de contêiner. Ou você usa Code Engine para construir uma imagem de contêiner e o segredo de registro é usado pelo Code Engine para acessar o registro para armazenar a imagem de contêiner construída.
Esse segredo também é referido como um Registry access secret na CLI.
Acesso ao serviço Um segredo que armazena credenciais para acessar uma instância de serviço do IBM Cloud.
Use segredos de acesso a serviços ao trabalhar com associações de serviços em Code Engine. Code Engine pode gerar esse segredo automaticamente ou você pode criar seu próprio segredo de acesso a serviços personalizado.
SSH Um segredo que armazena credenciais para autenticar em um serviço com uma chave SSH, como autenticar em um repositório Git, como GitHub ou GitLab.
Use segredos SSH quando desejar que o Code Engine construa uma imagem de contêiner para você. Code Engine usa esse segredo para acessar seu código-fonte em um repositório de código. Por exemplo, use esse segredo com execuções de construção para acessar seu código-fonte em um repositório, como GitHub ou GitLab.
Esse segredo também é usado como um Git repository access secret na CLI e Code repo access no console.
Segurança da Camada de Transporte (TLS) Um segredo que contém um certificado TLS assinado, incluindo todos os seus certificados intermediários e sua chave privada correspondente de uma autoridade de certificação (CA).
Use os segredos TLS ao trabalhar com mapeamentos de domínio customizados em Code Engine.

Criando segredos

Use segredos para fornecer informações confidenciais a seus aplicativos, trabalhos ou funções. Os segredos são definidos em pares chave-valor e os dados que são armazenados em segredos são codificados.

Criando um segredo por meio do console

Saiba como criar segredos por meio do console do Code Engine.

Saiba como criar os seguintes tipos de segredos por meio do console.

Criação de um segredo genérico no console

Saiba como criar segredos genéricos no console Code Engine que podem ser consumidos por funções, trabalhos ou aplicativos como variáveis de ambiente.

Antes de iniciar, crie um projeto.

  1. Depois que o projeto estiver no status Ativo, clique no nome do projeto na página Code Engine Projects.
  2. Na página Componentes, clique em Segredos e configmaps.
  3. Na página Segredos e configmaps, clique em Criar para criar seu segredo.
  4. Na página Criar segredo ou configmap, conclua as etapas a seguir:
    1. Selecione Segredo genérico e clique em Avançar.
    2. Forneça um nome; por exemplo, mysecret-generic.
    3. Clique em Incluir par chave-valor. Especifique um ou mais pares chave-valor para este segredo. Por exemplo, especifique uma chave como secret1 com o valor de mysecret1 e especifique outra chave como secret2 com o valor de target-secret. O nome que você escolher para sua chave não precisa ser o mesmo nome da sua variável de ambiente. Observe que o valor para a chave está oculto, mas ele pode ser visualizado, se necessário.
    4. Clique em Criar para criar o segredo.

Agora que o seu segredo foi criado no console, acesse a página Secrets and configmaps (Segredos e mapas de configuração) para visualizar uma lista de segredos e mapas de configuração definidos. É possível aplicar filtros para customizar a lista para atender às suas necessidades

Criação de um segredo HMAC no console

Saiba como criar segredos HMAC no console Code Engine que podem ser consumidos por funções, trabalhos ou aplicativos como variáveis de ambiente. Elas são usadas com as ferramentas e bibliotecas do S3-compatible que exigem autenticação, mas não são compatíveis com as chaves de API do IBM Cloud® Identity and Access Management.

Antes de iniciar, crie um projeto.

  1. Depois que o projeto estiver no status Ativo, clique no nome do projeto na página Code Engine Projects.
  2. Na página Componentes, clique em Segredos e configmaps.
  3. Na página Segredos e configmaps, clique em Criar para criar seu segredo.
  4. Na página Criar segredo ou configmap, conclua as etapas a seguir:
    1. Selecione HMAC secret e clique em Next.
    2. Forneça um nome; por exemplo, mysecret-hmac.
    3. Especifique o ID da chave de acesso.
    4. Especifique a chave de acesso secreta. Observe que o valor para a chave está oculto, mas ele pode ser visualizado, se necessário.
    5. Clique em Criar para criar o segredo.

Agora que o seu segredo foi criado no console, acesse a página Secrets and configmaps (Segredos e mapas de configuração) para visualizar uma lista de segredos e mapas de configuração definidos. É possível aplicar filtros para customizar a lista para atender às suas necessidades

Para obter mais informações sobre segredos HMAC, consulte IBM Cloud Object Storage- API Key vs HMAC.

Criação de um segredo de registro a partir do console

Saiba como criar segredos de registro por meio do console do Code Engine que pode ser consumido por funções, tarefas, apps ou construções para acesso para puxar ou enviar por push uma imagem de contêiner

Antes de iniciar, crie um projeto.

  1. Depois que o projeto estiver no status Ativo, clique no nome do projeto na página Code Engine Projects.
  2. Na página Componentes, clique em Segredos e configmaps.
  3. Na página Segredos e configmaps, clique em Criar para criar seu segredo.
  4. Na página Criar segredo ou configmap, conclua as etapas a seguir:
    1. Selecione Segredo de registro e clique em Avançar.
    2. Forneça um nome; por exemplo, mysecret-registry.
    3. Especifique o registro de destino para esse segredo, como IBM Cloud Container Registry ou Docker Hub.
    4. Especifique o local do registro
    5. Especifique um nome do usuário. Se esse segredo for para IBM Cloud Container Registry, o nome do usuário será iamapikey. Se esse segredo for para o Docker Hub, ele será seu ID Docker.
    6. Insira as credenciais para o nome do usuário Para IBM Cloud Container Registry, use sua chave de API do IAM. Para o Docker Hub, é possível usar a senha do Docker Hub ou um token de acesso. Para outros registros de destino, especifique a senha ou a chave de API para o nome do usuário
    7. Clique em Criar para criar o segredo.

Agora que o seu segredo foi criado no console, acesse a página Secrets and configmaps (Segredos e mapas de configuração) para visualizar uma lista de segredos e mapas de configuração definidos. É possível aplicar filtros para customizar a lista para atender às suas necessidades

Para obter mais informações sobre como trabalhar com registros de imagem, consulte Acessando registros de contêiner.

Criando um segredo SSH por meio do console

Saiba como criar um segredo SSH por meio do console que pode ser consumido por construções para acessar repositórios de código-fonte privados. Um segredo SSH armazena credenciais para autenticar em um serviço com uma chave SSH, como autenticar em um repositório Git, como GitHub ou GitLab.

Antes de iniciar, crie um projeto.

  1. Depois que o projeto estiver no status Ativo, clique no nome do projeto na página Code Engine Projects.
  2. Na página Componentes, clique em Segredos e configmaps.
  3. Na página Segredos e configmaps, clique em Criar para criar seu segredo.
  4. Na página Criar segredo ou configmap, conclua as etapas a seguir:
    1. Selecione SSH secret e clique em Avançar.
    2. Forneça um nome; por exemplo, mysecret-ssh.
    3. Inclua a chave privada SSH para esse segredo..
    4. Clique em Criar para criar o segredo.

Agora que o seu segredo foi criado no console, acesse a página Secrets and configmaps (Segredos e mapas de configuração) para visualizar uma lista de segredos e mapas de configuração definidos. É possível aplicar filtros para customizar a lista para atender às suas necessidades

Use seu segredo SSH ao trabalhar com repositórios de código privado, como repositórios Git. Consulte Acessando repositórios de código privado.

Criação de um segredo TLS no console

Aprenda como criar um segredo do TLS por meio do console que pode ser consumido por apps quando você trabalha com mapeamentos de domínio customizados no Code Engine. Um segredo do Transport Layer Security (TLS) contém um certificado TLS assinado, incluindo todos os seus certificados intermediários e sua chave privada correspondente de uma autoridade de certificação (CA).

Antes de iniciar, crie um projeto.

  1. Depois que o projeto estiver no status Ativo, clique no nome do projeto na página Code Engine Projects.
  2. Na página Componentes, clique em Segredos e configmaps.
  3. Na página Segredos e configmaps, clique em Criar para criar seu segredo.
  4. Na página Criar segredo ou configmap, conclua as etapas a seguir:
    1. Selecione Segredo do TLS e clique em Avançar.
    2. Forneça um nome; por exemplo, mysecret-tls.
    3. Inclua a cadeia de certificados e a sua chave privada Observe que é possível concatenar os certificados iniciando cada um em uma nova linha. É possível fornecer essas informações em um arquivo
    4. Clique em Criar para criar o segredo.

Agora que o seu segredo foi criado no console, acesse a página Secrets and configmaps (Segredos e mapas de configuração) para visualizar uma lista de segredos e mapas de configuração definidos. É possível aplicar filtros para customizar a lista para atender às suas necessidades

Use seu segredo do TLS ao trabalhar com mapeamentos de domínio customizados em Code Engine.

Criação de segredos com a CLI

Saiba como criar segredos com a CLI do Code Engine que podem ser consumidos por aplicativos, trabalhos ou funções como variáveis de ambiente.

Antes de Iniciar

A partir da versão da CLI 1.42.0, a definição e o trabalho com segredos na CLI são unificados no grupo de comandos secret grupo de comandos. Consulte os comandos ibmcloud ce secret Use a opção --format para especificar a categoria do segredo, como basic_auth, generic, hmac, ssh, tls, ou registry. O valor padrão da opção --format é generic.

Usando o comando secret create, é possível criar e gerenciar vários formatos de segredo Para obter descrições dos vários formatos secretos, consulte Que tipo de segredos posso criar no Code Engine?

Saiba como criar os tipos de segredos a seguir com a CLI,

Criação de um segredo de autenticação básica com a CLI

Um segredo de autenticação básico contém uma chave de nome de usuário e senha e é usado para acessar um serviço que requer autenticação básica HTTP. O exemplo a seguir cria um segredo de autenticação básica com credenciais para myusername e a senha associada é fornecida em um arquivo na área de trabalho local

ibmcloud ce secret create --name mysecret-basicauth --format basic_auth --username myusername --password-from-file ./password.txt

Para exibir os detalhes deste segredo,

ibmcloud ce secret get --name mysecret-basicauth

Saída de exemplo

Getting secret 'mysecret-basicauth'...
OK

Name:          mysecret-basicauth
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format:        basic_auth
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           66s
Created:       2021-03-10T18:44:18-05:00

Data:    
---
password: REDACTED
username: bXl1c2VybmFtZQ==

Observe que o valor da chave username para esse segredo de autenticação básica é codificado e que o valor de password é editado. Para exibir os dados de segredo como decodificados, use a opção --decode com o comando secret get.

Criação de um segredo genérico com a CLI

Um segredo genérico armazena pares chave-valor simples e Code Engine não faz suposições sobre os pares chave-valor definidos nem sobre o uso pretendido do segredo.

Você pode criar um segredo genérico com o comando secret create de uma das seguintes maneiras. Por padrão, um segredo genérico é criado quando a opção --format não é especificada

  • Crie um segredo diretamente da linha de comando usando a opção --from-literal no formato KEY=VALUE. Por exemplo,

    ibmcloud ce secret create --name myliteralsecret --from-literal "TARGET=My literal secret"
    
  • Crie um segredo usando a opção --from-file para apontar para um arquivo. Ao utilizar esta opção, todo o conteúdo do arquivo se torna o valor para o par chave-valor. Para este exemplo, use um arquivo denominado secrets.txt, que contém my little secret1.

    • O exemplo a seguir usa o formato --from-file KEY=FILE com o comando secret create:

      ibmcloud ce secret create --name mysecretmsg1 --from-file TARGET=secrets.txt
      
    • O comando de exemplo a seguir usa o formato --from-file FILE com o comando secret create. Neste exemplo, TARGET (sem extensão) é o nome do arquivo, que é o mesmo que o nome da variável de ambiente que é conhecido para a tarefa.

      ibmcloud ce secret create --name mysecretmsg2  --from-file TARGET
      
  • Crie um segredo usando a opção --from-env-file para apontar para um arquivo que contenha uma ou mais linhas que correspondem ao formato KEY=VALUE. Cada linha do arquivo especificado é incluída como um par chave-valor. Quaisquer linhas no arquivo especificado que estejam vazias ou começam com # serão ignoradas. Para este exemplo, use um arquivo denominado secrets_multi.txt, que contém os pares chave-valor: sec1=mysec1, sec2=mysec2 e sec3=mysec3.

    ibmcloud ce secret create --name mysecretmulti --from-env-file secrets_multi.txt
    

Se desejar criar (ou atualizar) um segredo genérico de um arquivo, use a opção --from-file com um dos seguintes formatos: --from-file FILE ou --from-file KEY=FILE Em Code Engine, ao usar a opção --from-file para especificar valores secretos, todos os conteúdos dentro do arquivo são o valor para o par chave-valor. Quando você usa o formato de opção --from-file KEY=FILE, KEY é o nome da variável de ambiente que é conhecida pelo seu trabalho, função ou aplicativo. Quando você usa o formato de opção --from-file FILE, FILE é o nome da variável de ambiente que é conhecida pelo seu trabalho, função ou aplicativo. Se o seu arquivo contiver um ou mais pares chave-valor, use a opção --from-env-file para incluir uma variável de ambiente para cada par chave-valor no arquivo especificado. Todas as linhas do arquivo especificado que estiverem vazias ou começarem com # serão ignoradas.

Para exibir os detalhes do segredo genérico, myliteralsecret,

ibmcloud ce secret get --name myliteralsecret

Saída de exemplo

Getting secret 'myliteralsecret'...
OK

Name:          myliteralsecret
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format:        generic
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           66s
Created:       2023-03-07 21:06:34 +0000 UTC  

Data:    
---
TARGET: TXkgbGl0ZXJhbCBzZWNyZXQ=

Observe que o valor da chave TARGET para esse segredo genérico está codificado. Para exibir os dados de segredo como decodificados, use a opção --decode com o comando secret get.

Criação de um segredo HMAC com a CLI

Um segredo HMAC contém uma chave access_key_id e uma secret_access_key e é usado com ferramentas e bibliotecas S3-compatible que exigem autenticação, mas não oferecem suporte a chaves de API IBM Cloud® Identity and Access Management. Consulte IBM Cloud Object Storage- Chave de API vs HMAC quando usar chaves de API IBM Cloud® Identity and Access Management ou credenciais HMAC. O exemplo a seguir cria um segredo HMAC com credenciais de amostra, a serem fornecidas quando solicitadas.

ibmcloud ce secret create --name mysecret-hmac --format hmac --access-key-id-prompt --secret-access-key-prompt

Para exibir os detalhes deste segredo,

ibmcloud ce secret get --name mysecret-hmac

Saída de exemplo

Getting secret 'mysecret-hmac'...
OK

Name:          mysecret-hmac
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format:        hmac_auth
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           86s
Created:       2025-05-15T12:41:15-05:00

Data:
---
access_key_id: MWEyYjNjNGQ1ZTZmMWEyYjNjNGQ1ZTZmMWEyYjNjNGQK
secret_access_key: REDACTED

Observe que o valor da chave access_key_id para esse segredo HMAC é codificado, e o valor de secret_access_key é redigido. Para exibir os dados de segredo como decodificados, use a opção --decode com o comando secret get.

Criação de um segredo de registro com a CLI

Um segredo de registro armazena as credenciais para acessar um registro de contêiner

O exemplo a seguir cria um segredo de registro denominado mysecret-registry para acessar uma instância do IBM Cloud Container Registry que está no servidor de registro us.icr.io e especifica credenciais para username e password.

ibmcloud ce secret create --name mysecret-registry --format registry --server us.icr.io --username iamapikey --password API_KEY

Para exibir os detalhes deste segredo,

ibmcloud ce secret get --name mysecret-registry

Saída de exemplo

Getting secret 'mysecret-registry'...
OK

Name:          mysecret-registry
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format:        registry
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           66s
Created:       2023-03-07 20:00:45 +0000 UTC  

Data:    
---
email: ""
password: REDACTED
server: dXMuaWNyLmlv
username: aWFtYXBpa2V5

Observe que o valor das chaves username e server para esse segredo de registro é codificado e o valor de password é editado.. Para exibir os dados de segredo como decodificados, use a opção --decode com o comando secret get.

Criando um segredo SSH com a CLI

Um segredo SSH armazena credenciais para autenticar em um serviço com uma chave SSH; por exemplo, autenticando em um repositório Git, como GitHub ou GitLab.

O exemplo a seguir cria um segredo SSH que é denominado mysecret-ssh para acessar um host que está incluído no arquivo known_hosts autenticando com um arquivo de chave privada SSH não criptografado que está localizado em /<filepath>/.ssh/<key_name>, em que <filepath> é o caminho em sua Estação de Trabalho local. Esse comando requer um nome e um caminho de chave e também permite outros argumentos opcionais como o caminho para o arquivo de hosts conhecidos.

ibmcloud ce secret create --name mysecret-ssh --format ssh --key-path ~/.ssh/<key_name> --known-hosts-path  ~/.ssh/known_hosts

Para exibir os detalhes deste segredo,

ibmcloud ce secret get --name mysecret-ssh

Saída de exemplo

Getting secret 'mysecret-ssh'...
OK

Name:          mysecret-ssh'
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format:        ssh
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           66s
Created:       2023-03-07 19:19:59 +0000 UTC  

Data:    
---
known_hosts: fDF8bGh0ekpiSFVXdXRxZWg1NUlrWTk4RjdOdjJZPXxsUmhZd0txVmIwd3dSV2xzcjEySFdoWURUTG89IHNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQUJJd0FBQVFFQXEyQTdoUkdtZG5tOXRVRGJPOUlEU3dCSzZUYlFhK1BYWVBDUHk2cmJUclR0dzdQSGtjY0tycHAweVZocDVIZEVJY0tyNnBMbFZEQmZPTFg5UVVzeUNPVjB3emZqSUpObEdFWXNkbExKaXpIaGJuMm1VanZTQUhRcVpFVFlQODFlRnpMUU5uUEh0NEVWVlVoN1ZmREVTVTg0S2V6bUQ1UWxXcFhMbXZVMzEveU1mK1NlOHhoSFR2S1NDWklGSW1Xd29HNm1iVW9XZjluenBJb2FTakIrd2VxcVVVbXBhYWFzWFZhbDcySitVWDJCKzJSUFczUmNUMGVPelFncWxKTDNSS3JUSnZkc2pFM0pFQXZHcTNsR0hTWlh5MjhHM3NrdWEyU21WaS93NHlDRTZnYk9EcW5UV2xnNyt3QzYwNHlkR1hBOFZKaVM1YXA0M0pYaVVGRkFhUT09CnwxfEpUSjI4MCt0RkFSMGcxZ3VrZW56U3ZBYm5sQT18RDlSUWppenZlR3UxS0FnNjhNeisrUHM3RmZrPSBlY2RzYS1zaGEyLW5pc3RwMjU2IEFBQUFFMlZqWkhOaExYTm9ZVEl0Ym1semRIQXlOVFlBQUFBSWJtbHpkSEF5TlRZQUFBQkJCRW1LU0VOalFFZXpPbXhrWk15N29wS2d3RkI5bmt0NVlScllNak51RzVOODd1UmdnNkNMcmJvNXdBZFQveTZ2MG1LVjBVMncwV1oyWUIvKytUcG9ja2c9CnwxfDhIOXpNb0VORklZVDNPeVZYWlQrY25wb0srND18dVdhVThFV1FPc0ttSDMzREVVd0xnNUtiUk44PSBzc2gtZWQyNTUxOSBBQUFBQzNOemFDMWxaREkxTlRFNUFBQUFJT01xcW5rVnpybTBTZEc2VU9vcUtMc2FiZ0g1Qzlva1dpMGRoMmw5R0tKbAo=
ssh-privatekey: REDACTED

Observe que o valor da chave known_hosts para esse segredo SSH é codificado e o valor de ssh-privatekey é editado. Para exibir os dados de segredo como decodificados, use a opção --decode com o comando secret get.

Criação de um segredo TLS com a CLI

Um segredo do Transport Layer Security (TLS) contém um certificado TLS assinado, incluindo todos os seus certificados intermediários e sua chave privada correspondente de uma autoridade de certificação (CA). Use os segredos TLS ao trabalhar com mapeamentos de domínio customizados.

O exemplo a seguir cria um segredo do TLS denominado mysecret-tls. A cadeia de certificados que corresponde ao domínio customizado está contida no arquivo certificate.txt e o arquivo de chave privada correspondente está contido no arquivo privatekey.txt Neste exemplo, ambos os arquivos estão localizados no diretório raiz da estação de trabalho local.

ibmcloud ce secret create --name mysecret-tls  --format tls  --cert-chain-file certificate.txt --private-key-file privatekey.txt

Para exibir os detalhes deste segredo,

ibmcloud ce secret get --name mysecret-tls

Saída de exemplo

Getting secret 'mysecret-tls'...
OK

Name:          mysecret-tls'
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format:        tls
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           66s
Created:       2023-03-07 16:14:46 +0000 UTC  

Data:    
---
tls.crt: REDACTED
tls.key: REDACTED

Listando segredos com a CLI

Depois que os segredos forem criados, use o comando secret list para listar todos os segredos em seu projeto Por exemplo,

ibmcloud ce secret list

Saída de exemplo

Listing secrets...
OK

Name                          Format          Data  Age  
ce-auto-icr-private-us-south  registry        4     333d  
ce-auto-private-icr-us-south  registry        4     335d  
myregistry-seccmd             registry        4     3h31m  
mysecret-basicauth            basic_auth      2     7m37s  
mysecret-generic              generic         1     7m7s  
mysecret-genericfromfile      generic         2     2m29s  
mysecret-hmac                 hmac_auth       2     21m
mysecret-registry             registry        4     111s  
mysecret-ssh                  ssh_auth        2     42m  
mysecret-tls                  tls             2     3h47m

Atualizando segredos

É possível mudar os pares chave-valor para os segredos existentes.

Atualizando segredos por meio do console

É possível atualizar os pares chave-valor para seus segredos definidos por meio do console.

  1. É possível atualizar os pares chave-valor para seus segredos definidos por meio do console de uma das maneiras a seguir.

    • Acesse a página Segredos e configmaps para seu projeto e localize o segredo que deseja atualizar. Clique no nome do segredo que deseja atualizar para abri-lo.
    • Se o seu segredo for referenciado por um aplicativo, trabalho ou função, use os links na tabela de variáveis de ambiente na guia Variáveis de ambiente do seu aplicativo, trabalho ou função. Esses links levam você diretamente ao seu segredo. Como alternativa, também é possível acessar a página Segredos e configmaps para seu projeto e localizar o segredo que deseja atualizar. Clique no nome do segredo que deseja atualizar para abri-lo.
  2. Clique em Editar e faça as atualizações para seu segredo.

  3. Clique em Salvar para salvar as mudanças em seu segredo.

Se o segredo atualizado for referenciado por um trabalho, função ou aplicativo, o trabalho, função ou aplicativo deverá ser reiniciado para que os novos dados entrem em vigor.

  • Apps - Na página para o seu app, clique em Nova revisão e, em seguida, em Salvar e implementar. Como alternativa, é possível esperar que seu app escale para zero e, quando a escala dele for aumentada, ele usará o segredo atualizado.
  • Tarefas - Na página para a sua tarefa, clique em Enviar tarefa para executar a sua tarefa ou você pode executar uma tarefa novamente. Esta nova execução da tarefa usa o segredo atualizado.
  • Funções-na página para sua função, clique em Função de Teste... Se você tiver um navegador aberto para a função URL, atualize o navegador.

Atualizando segredos com a CLI

É possível atualizar um segredo existente e seus pares chave-valor com a CLI.

  1. Para mudar o valor de um par chave-valor em um segredo definido, use o comando secret update. Vamos atualizar o segredo do mysecret-registry para usar um servidor diferente

    ibmcloud ce secret update --name mysecret-registry --format registry --server <new_server> --username <new_username> --password <password>
    
  2. Agora que seu segredo está atualizado, use o comando secret get para exibir detalhes sobre um segredo específico. Se necessário, use a opção --decode para exibir os dados secretos, conforme decodificado Por exemplo,

    ibmcloud ce secret get --name mysecret-registry --decode
    

    Saída de exemplo

    Getting generic secret 'mysecret-registry'...
    OK
    
    Name:          mysecret-registry
    ID:            abcdefgh-abcd-abcd-abcd-c88e2775388e
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           21m
    Created:       2023-03-07 20:00:45 +0000 UTC  
    
    Data:    
    ---
    email: ""
    password: REDACTED
    server: newserver
    username: newuser
    

Referenciando segredos

Seu trabalho, função ou aplicativo pode consumir e usar as informações armazenadas em um segredo usando variáveis de ambiente.

Referenciando segredos por meio do console

Você pode usar o console para criar variáveis de ambiente para seus aplicativos, trabalhos e funções que fazem referência total a um segredo ou a chaves individuais em um segredo.

Para poder referenciar um segredo, ele deverá existir. Consulte Criar um segredo. Para este exemplo, crie um segredo que é denominado target-secret com o par chave-valor de TARGET=Sunshine.

  1. Para referenciar um segredo definido de seus apps, tarefas e funções, crie uma variável de ambiente. A variável de ambiente pode referenciar totalmente um segredo existente ou referenciar uma chave individual em um segredo existente. Ao referenciar totalmente um segredo (ou configmap), é possível opcionalmente especificar um prefix. Por exemplo, se você referenciar totalmente o segredo do mysecret por meio do aplicativo myapp e usar o prefixo mysecret_, cada chave no segredo será prefixada com mysecret_.

  2. Depois de criar variáveis de ambiente, você deve reiniciar seus aplicativos, trabalhos e funções para que as alterações tenham efeito. Para apps, salve e implemente seu app para atualizá-lo com as variáveis de ambiente que você definiu. Para tarefas, envie sua tarefa para atualizá-la com as variáveis de ambiente que você definiu.

  3. Após o status de apps, tarefas e funções mudar para Pronto, é possível testar o aplicativo ou a função ou executar a tarefa. Para um app, clique em Testar aplicativo e, em seguida, clique em Enviar solicitação na área de janela Testar aplicativo. Para abrir o aplicativo em uma página da web, clique em URL do aplicativo. No exemplo myapp, como um prefixo foi especificado para o segredo mysecret totalmente referenciado, todas as chaves desse segredo são referenciadas como variáveis de ambiente e são prefixadas com mysecret_. Por exemplo, essas variáveis de ambiente são exibidas como mysecret_secret1=mysecret1 e mysecret_secret2=mysecret2.

Para atualizar uma variável de ambiente que faça referência a um segredo, consulte atualizações de variáveis de ambiente e considerações sobre atualização de variáveis de ambiente.

Para remover uma variável de ambiente que referencia um segredo, consulte Excluindo variáveis de ambiente.

Por exemplo, vamos usar o segredo mysecret que você definiu anteriormente no console com uma tarefa e referencie totalmente este segredo com uma variável de ambiente.

  1. Crie e execute uma tarefa. Para este exemplo, crie uma tarefa do Code Engine que use a imagem icr.io/codeengine/codeengine e, em seguida, execute a tarefa. Quando uma solicitação é enviada a esse exemplo de trabalho, o trabalho lê a variável de ambiente TARGET, imprime Hello ${TARGET} from Code Engine e imprime uma lista de variáveis de ambiente. Se a variável de ambiente TARGET estiver vazia, Hello World from Code Engine será retornado.

    A partir da página Tarefas,

    1. Crie uma tarefa; por exemplo, myjob.
    2. Especifique icr.io/codeengine/codeengine como a referência de imagem.
    3. Clique em Criar para criar a tarefa.

    Se a carga de trabalho que você deseja usar com o segredo já estiver definida em Code Engine, vá para a página Aplicativos, trabalhos ou funções e clique no nome do aplicativo, trabalho ou função para abrir o componente.

  2. Quando a tarefa for criada, na página Tarefas, clique no nome da sua tarefa para abri-la.

  3. Atualize a tarefa para incluir um segredo como uma variável de ambiente. Clique em Variáveis de ambiente para abrir a guia e clique em Incluir para incluir sua variável de ambiente.

  4. Na página Incluir variável de ambiente,

    1. Para usar o segredo definido anteriormente, selecione Referenciar segredo integral.
    2. No menu, selecione o nome do segredo que deseja; por exemplo, target-secret.
    3. Clique em Incluir para incluir a variável de ambiente.
    4. Clique em Salvar para salvar as mudanças em sua tarefa.
  5. Para executar a tarefa com a variável de ambiente que referencia um segredo, clique em Enviar tarefa. Para este exemplo, os logs da execução da tarefa myjob exibem Hello Sunshine from Code Engine e imprimem as variáveis de ambiente, incluindo quaisquer valores dos segredos que são referenciados com variáveis de ambiente.

Referenciando segredos com a CLI

Para usar segredos com aplicativos, trabalhos e funções, você pode definir variáveis de ambiente que fazem referência completa a um segredo ou a chaves individuais em um segredo com a CLI.

Referência a segredos existentes na CLI

Os exemplos a seguir fazem referência a um segredo genérico, que é o segredo padrão quando a opção --format não é especificada.. Use a opção --format para especificar a categoria de segredo, como basic_auth, generic, ssh tls ou registry.

Para usar um segredo com uma carga de trabalho com a CLI, especifique a opção --env-from-secret nos comandos a seguir:

O exemplo a seguir descreve como fazer referência a um segredo genérico existente com um trabalho usando a CLI.

  1. Use o comando secret create para criar os dois segredos genéricos a seguir para esse cenário. Por padrão, um segredo genérico é criado quando a opção --format não é especificada

    ibmcloud ce secret create --name myliteralsecret --from-literal "TARGET=My big literal secret"
    
    ibmcloud ce secret create --name myliteralsecret2 --from-literal "TARGET=My little literal secret"
    
  2. Crie uma tarefa e faça referencia ao segredo myliteralsecret. Para este exemplo, crie uma tarefa do Code Engine que use a imagem icr.io/codeengine/codeengine e, em seguida, execute a tarefa. Quando uma solicitação é enviada a esse exemplo de trabalho, o trabalho lê a variável de ambiente TARGET, imprime Hello ${TARGET} from Code Engine e imprime uma lista de variáveis de ambiente. Se a variável de ambiente TARGET estiver vazia, Hello World from Code Engine será retornado.

    ibmcloud ce job create --name myjob --image icr.io/codeengine/codeengine --array-indices 2-3 --env-from-secret myliteralsecret
    
  3. Execute a tarefa myjob.

    ibmcloud ce jobrun submit --name myjobrun --job myjob
    
  4. Use o comando jobrun get para exibir detalhes da execução da tarefa, incluindo as instâncias dela.

    ibmcloud ce jobrun get --name myjobrun
    

    Saída de exemplo

    Getting jobrun 'myjobrun'...
    Getting instances of jobrun 'myjobrun'...
    Getting events of jobrun 'myjobrun'...
    Run 'ibmcloud ce jobrun events -n myjobrun' to get the system events of the job run instances.
    Run 'ibmcloud ce jobrun logs -f -n myjobrun' to follow the logs of the job run instances.
    OK
    
    Name:               myjobrun
    [...]
    Job Ref:                myjob
    Environment Variables:
        Type                   Name          Value
        Secret full reference  myliteralsecret
    Image:                  icr.io/codeengine/codeengine
    Resource Allocation:
        CPU:                1
        Ephemeral Storage:  4G
        Memory:             4G
    
    Runtime:
        Mode:                  task
        Array Indices:         2-3
        Array Size:            2
        JOP_ARRAY_SIZE Value:  2
        Max Execution Time:    7200
        Retry Limit:           3
    
    Status:
        Completed:          9s
        Instance Statuses:
            Succeeded:  2
        Conditions:
            Type      Status  Last Probe  Last Transition
            Pending   True    13s         13s
            Running   True    9s          9s
            Complete  True    9s          9s
    
    Events:
        Type    Reason     Age                Source                Messages
        Normal  Updated    10s (x4 over 14s)  batch-job-controller  Updated JobRun "myjobrun"
        Normal  Completed  10s                batch-job-controller  JobRun completed successfully
    
    Instances:
        Name          Running  Status     Restarts  Age
        myjobrun-2-0  0/1      Succeeded  0         14s
        myjobrun-3-0  0/1      Succeeded  0         14s
    
  5. Exibir os logs da execução da tarefa myjobrun. É possível exibir logs de todas as instâncias de uma execução de tarefa ou exibir logs de uma instância específica de uma execução de tarefa. Desta vez, exiba os logs das todas as instâncias da execução da tarefa. O log exibirá Hello my big literal secret!, que foi especificado usando uma variável de ambiente com um segredo. Note que, para esta tarefa que é definida com a imagem icr.io/codeengine/codeengine, a saída da execução de tarefa imprime as variáveis de ambiente, incluindo quaisquer valores de segredos referenciados com variáveis de ambiente.

    ibmcloud ce jobrun logs --jobrun myjobrun
    

    Saída de exemplo

    Getting logs for all instances of job run 'myjobrun'...
    Getting jobrun 'myjobrun'...
    Getting instances of jobrun 'myjobrun'...
    OK
    
    myjobrun-2-0/myjob:
    Hello from helloworld! I'm a batch job! Index: 2
    
    Hello My big literal secret from:
    . ___  __  ____  ____
    ./ __)/  \(    \(  __)
    ( (__(  O )) D ( ) _)
    .\___)\__/(____/(____)
    .____  __ _   ___  __  __ _  ____
    (  __)(  ( \ / __)(  )(  ( \(  __)
    .) _) /    /( (_ \ )( /    / ) _)
    (____)\_)__) \___/(__)\_)__)(____)
    
    Some Env Vars:
    --------------
    HOME=/root
    HOSTNAME=myjobrun-2-0
    JOB_INDEX=2
    KUBERNETES_PORT=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1
    KUBERNETES_PORT_443_TCP_PORT=443
    KUBERNETES_PORT_443_TCP_PROTO=tcp
    KUBERNETES_SERVICE_HOST=172.21.0.1
    KUBERNETES_SERVICE_PORT=443
    KUBERNETES_SERVICE_PORT_HTTPS=443
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    PWD=/
    SHLVL=1
    TARGET=My big literal secret
    
    myjobrun-3-0/myjob:
    Hello from helloworld! I'm a batch job! Index: 3
    
    Hello My big literal secret from:
    . ___  __  ____  ____
    ./ __)/  \(    \(  __)
    ( (__(  O )) D ( ) _)
    .\___)\__/(____/(____)
    .____  __ _   ___  __  __ _  ____
    (  __)(  ( \ / __)(  )(  ( \(  __)
    .) _) /    /( (_ \ )( /    / ) _)
    (____)\_)__) \___/(__)\_)__)(____)
    
    Some Env Vars:
    --------------
    HOME=/root
    HOSTNAME=myjobrun-3-0
    JOB_INDEX=3
    KUBERNETES_PORT=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1
    KUBERNETES_PORT_443_TCP_PORT=443
    KUBERNETES_PORT_443_TCP_PROTO=tcp
    KUBERNETES_SERVICE_HOST=172.21.0.1
    KUBERNETES_SERVICE_PORT=443
    KUBERNETES_SERVICE_PORT_HTTPS=443
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    PWD=/
    SHLVL=1
    TARGET=My big literal secret
    
  6. Reenvie a execução de tarefa e especifique para usar o segredo myliteralsecret2 para esta execução de tarefa.

    ibmcloud ce jobrun resubmit  --jobrun myjobrun  --name myjobrunresubmit  --env-from-secret myliteralsecret2
    

    Quando você atualiza um trabalho, aplicativo ou função com uma variável de ambiente que faz referência completa a um segredo para fazer referência completa a um segredo diferente, as referências completas substituem outras referências completas na ordem em que são definidas (o último conjunto referenciado substitui o primeiro conjunto).

  7. Use o comando jobrun get para exibir detalhes da execução da tarefa, incluindo as instâncias dela. Observe que a execução de tarefa faz referência aos segredos myliteralsecret e myliteralsecret2 .

    ibmcloud ce jobrun get --name myjobrunresubmit
    

    Saída de exemplo

    Getting jobrun 'myjobrunresubmit'...
    Getting instances of jobrun 'myjobrunresubmit'...
    Getting events of jobrun 'myjobrunresubmit'...
    [...]
    
    Name:          myjobrunresubmit
    ID:            79f01367-932b-4a76-be18-b1e68790a85b
    Project Name:  myproject
    Project ID:    841f0f38-420d-4388-b5d8-f230657d7dc6
    Age:           14s
    Created:       2021-06-15T21:15:37-04:00
    
    Job Ref:                myjob
        Environment Variables:
        Type                   Name              Value
        Secret full reference  myliteralsecret
        Secret full reference  myliteralsecret2
    Image:                  icr.io/codeengine/codeengine
        Resource Allocation:
        CPU:                1
        Ephemeral Storage:  4G
        Memory:             4G
    
    Runtime:
        Mode:                  task
        Array Indices:         2-3
        Array Size:            2
        JOP_ARRAY_SIZE Value:  2
        Max Execution Time:    7200
        Retry Limit:           3
    
    Status:
        Completed:          11s
        Instance Statuses:
            Succeeded:  2
        Conditions:
            Type      Status  Last Probe  Last Transition
            Pending   True    14s         14s
            Running   True    12s         12s
            Complete  True    11s         11s
    
    Events:
        Type    Reason     Age                Source                Messages
        Normal  Updated    13s (x4 over 16s)  batch-job-controller  Updated JobRun "myjobrunresubmit"
        Normal  Completed  13s                batch-job-controller  JobRun completed successfully
    
    Instances:
        Name                  Running  Status     Restarts  Age
        myjobrunresubmit-2-0  0/1      Succeeded  0         16s
        myjobrunresubmit-3-0  0/1      Succeeded  0         16s
    
  8. Exiba os logs de execução de tarefa de uma instância de execução de tarefa myjobrunresubmit. Desta vez, exiba os logs da instância myjobrunresubmit-3-0. O log exibe Hello My little literal secret!, que é o valor especificado no segredo myliteralsecret2. Use o comando jobrun get para exibir os detalhes da execução da tarefa, incluindo as instâncias em execução da execução da tarefa.

    ibmcloud ce jobrun logs --instance myjobrunresubmit-3-0
    

    Saída de exemplo

    Getting logs for job run instance 'myjobrunresubmit-3-0'...
    OK
    
    myjobrunresubmit-3-0/myjob:
    Hello from helloworld! I'm a batch job! Index: 3
    
    Hello My little literal secret from:
    . ___  __  ____  ____
    ./ __)/  \(    \(  __)
    ( (__(  O )) D ( ) _)
    .\___)\__/(____/(____)
    .____  __ _   ___  __  __ _  ____
    (  __)(  ( \ / __)(  )(  ( \(  __)
    .) _) /    /( (_ \ )( /    / ) _)
    (____)\_)__) \___/(__)\_)__)(____)
    
    Some Env Vars:
    --------------
    HOME=/root
    HOSTNAME=myjobrunresubmit-3-0
    JOB_INDEX=3
    KUBERNETES_PORT=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1
    KUBERNETES_PORT_443_TCP_PORT=443
    KUBERNETES_PORT_443_TCP_PROTO=tcp
    KUBERNETES_SERVICE_HOST=172.21.0.1
    KUBERNETES_SERVICE_PORT=443
    KUBERNETES_SERVICE_PORT_HTTPS=443
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    PWD=/
    SHLVL=1
    TARGET=My little literal secret
    
  9. Para mudar o valor do par chave-valor em um segredo, use o comando secret update. Vamos atualizar o segredo myliteralsecret para alterar o valor da chave TARGET de My big literal secret para My new big literal secret.

    ibmcloud ce secret update --name myliteralsecret --from-literal "TARGET=My new big literal secret"
    
  10. Para que os novos dados entrem em vigor, execute sua tarefa novamente. Reenvie a execução da tarefa novamente e especifique para usar o segredo myliteralsecret para essa execução da tarefa.

ibmcloud ce jobrun resubmit  --jobrun myjobrun  --name myjobrunresubmit2 --env-from-secret myliteralsecret
  1. Exibir os logs da execução da tarefa myjobrunresubmit2. Desta vez, o log de tarefas exibe Hello My new big literal secret!, que é o valor do segredo atualizado myliteralsecret. É possível usar o comando jobrun get para exibir os detalhes da execução da tarefa, incluindo as instâncias em execução da execução da tarefa. Exiba os logs de qualquer instância em execução da execução da tarefa.
ibmcloud ce jobrun logs --instance myjobrunresubmit2-2-0

Saída de exemplo

Getting logs for job run instance 'myjobrunresubmit2-2-0'...
OK

myjobrunresubmit2-2-0/myjob:
Hello from helloworld! I'm a batch job! Index: 2

Hello My new big literal secret from:
. ___  __  ____  ____
./ __)/  \(    \(  __)
( (__(  O )) D ( ) _)
.\___)\__/(____/(____)
.____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
.) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)

Some Env Vars:
--------------
HOME=/root
HOSTNAME=myjobrunresubmit2-2-0
JOB_INDEX=2
KUBERNETES_PORT=tcp://172.21.0.1:443
KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443
KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_SERVICE_HOST=172.21.0.1
KUBERNETES_SERVICE_PORT=443
KUBERNETES_SERVICE_PORT_HTTPS=443
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
SHLVL=1
TARGET=My new big literal secret

Em resumo, você concluiu cenários básicos para demonstrar como usar segredos em uma tarefa fazendo referência a um segredo completo existente e atualizando chaves dentro de um segredo.

Como fazer referência a segredos que ainda não estão definidos na CLI

Se um segredo não existir antes de ser referenciado, um aplicativo não será implantado com êxito e um trabalho ou função não será executado com êxito até que o segredo referenciado seja criado.

Se estiver trabalhando com um aplicativo, trabalho ou função e o segredo referenciado ainda não estiver definido, use a opção --force para evitar a verificação da existência do segredo referenciado. A opção --force pode ser usada com os comandos a seguir:

Quando você usa a opção --force com esses comandos, a ação para criar, atualizar ou executar o aplicativo, o trabalho ou a função é concluída. No entanto, o aplicativo, trabalho ou função não será executado com êxito até que o segredo referenciado exista. Se você adicionar a opção --no-wait além da opção --force ao comando, o sistema concluirá a ação e não aguardará que o aplicativo, o trabalho ou a função seja executado com êxito.

O exemplo a seguir descreve como fazer referência a um segredo que ainda não está definido com uma tarefa usando a CLI.

  1. Crie uma tarefa. Para este exemplo, crie uma tarefa do Code Engine que use a imagem icr.io/codeengine/codeengine e, em seguida, execute a tarefa. Quando uma solicitação é enviada a esse exemplo de trabalho, o trabalho lê a variável de ambiente TARGET, imprime Hello ${TARGET} from Code Engine e imprime uma lista de variáveis de ambiente. Se a variável de ambiente TARGET estiver vazia, Hello World from Code Engine será retornado.

    ibmcloud ce job create --name myjob --image icr.io/codeengine/codeengine
    
  2. Use o comando jobrun submit para executar a tarefa myjob. Observe que mynewliteralsecret não existe. Ao usar a opção --no-wait com o comando jobrun submit, a execução da tarefa será enviada e não esperará que as instâncias desta tarefa sejam executadas para serem concluídas.

    ibmcloud ce jobrun submit --name myjobrun1 --job myjob --env-from-secret mynewliteralsecret --force --no-wait
    
  3. Use o comando jobrun get para exibir detalhes da execução da tarefa, incluindo as informações da variável de ambiente. Observe que a execução da tarefa está com status pending.

    ibmcloud ce jobrun get --name myjobrun1
    

    Saída de exemplo

    Getting jobrun 'myjobrun1'...
    Getting instances of jobrun 'myjobrun1'...
    Getting events of jobrun 'myjobrun1'...
    [...]
    
    Name:          myjobrun1
    [...]
    
    Job Ref:                myjob
    Environment Variables:
        Type                   Name                Value
        Secret full reference  mynewliteralsecret
    Image:                  icr.io/codeengine/codeengine
    Resource Allocation:
        CPU:                1
        Ephemeral Storage:  400M
        Memory:             4G
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        JOP_ARRAY_SIZE Value:  1
        Max Execution Time:    7200
        Retry Limit:           3
    
    Status:
        Instance Statuses:
            Pending:  1
        Conditions:
            Type     Status  Last Probe  Last Transition
            Pending  True    100s        100s
    
    Events:
        Type    Reason   Age                   Source                Messages
        Normal  Updated  108s (x5 over 2m29s)  batch-job-controller  Updated JobRun "myjobrun1"
    
    Instances:
        Name           Running  Status   Restarts  Age
        myjobrun1-0-0  0/1      Pending  0         2m29s
    
  4. Crie o segredo.

    ibmcloud ce secret create --name mynewliteralsecret --from-literal "TARGET=Fun secret"
    
  5. Execute a execução da tarefa myjobrun1 novamente.

    ibmcloud ce jobrun resubmit --jobrun myjobrun1 --name myjobrunresubmit1
    

    Execute o comando ibmcloud ce jobrun get -n myjobrunresubmit1 para verificar o status desta execução da tarefa.

  6. Exibir os logs da execução da tarefa myjobrunresubmit1. Os logs exibem Hello Fun secret from Code Engine, que confirma que a execução da tarefa fez referência ao segredo myliteralsecret.

    ibmcloud ce jobrun logs --jobrun myjobrunresubmit1
    

    Saída de exemplo

    Getting logs for all instances of job run 'myjobrunresubmit1'...
    Getting jobrun 'myjobrunresubmit1'...
    Getting instances of jobrun 'myjobrunresubmit1'...
    OK
    
    myjobrunresubmit1-0-0/myjob:
    Hello from helloworld! I'm a batch job! Index: 0
    
    Hello Fun secret from:
    . ___  __  ____  ____
    ./ __)/  \(    \(  __)
    ( (__(  O )) D ( ) _)
    .\___)\__/(____/(____)
    .____  __ _   ___  __  __ _  ____
    (  __)(  ( \ / __)(  )(  ( \(  __)
    .) _) /    /( (_ \ )( /    / ) _)
    (____)\_)__) \___/(__)\_)__)(____)
    
    Some Env Vars:
    --------------
    HOME=/root
    HOSTNAME=myjobrunresubmit1-0-0
    JOB_INDEX=0
    KUBERNETES_PORT=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1
    KUBERNETES_PORT_443_TCP_PORT=443
    KUBERNETES_PORT_443_TCP_PROTO=tcp
    KUBERNETES_SERVICE_HOST=172.21.0.1
    KUBERNETES_SERVICE_PORT=443
    KUBERNETES_SERVICE_PORT_HTTPS=443
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    PWD=/
    SHLVL=1
    TARGET=Fun secret
    

Para obter cenários mais detalhados sobre referenciar segredos e mapas de configuração integrais como variáveis de ambiente, substituição de referências e remoção de referências na CLI, consulte Referenciando segredos e mapas de configuração.

Excluindo segredos

Quando não precisar mais de um segredo, você poderá excluí-lo.

Exclusão de segredos do console

  1. Para excluir um segredo do console,
    1. Acesse a página Secrets and configmaps em sua página Code Engine Projects.
    2. Clique no segredo que você deseja excluir para abrir sua página.
    3. Na página do segredo específico, clique em Ações> Excluir segredo.
  2. Para excluir um par de valores-chave de um segredo específico do console,
    1. Acesse a página Secrets and configmaps em sua página Code Engine Projects.
    2. Clique no segredo que você deseja alterar para abrir sua página.
    3. Na página do segredo específico, exclua o par de valores-chave que você deseja remover.

Também é possível excluir variáveis de ambiente definidas que referenciam segredos e configmaps. Para excluir uma variável de ambiente definida, na guia Variáveis de ambiente do seu aplicativo, trabalho ou função, exclua a variável de ambiente que deseja excluir. Depois de excluir uma variável de ambiente definida, certifique-se de clicar em Save (Salvar ) para salvar as alterações em seu aplicativo, trabalho ou função. Para obter mais informações, consulte Excluir uma variável de ambiente.

Exclusão de segredos com a CLI

Para excluir um segredo com a CLI, use o comando secret delete; por exemplo,

ibmcloud ce secret delete --name myliteralsecret -f

Saída de exemplo

Deleting secret myliteralsecret...
OK

Também é possível excluir variáveis de ambiente que referenciam segredos e configmaps da CLI.