Propriedades e recursos ambientais das tubulações da Tekton
As informações e recursos a seguir estão disponíveis por padrão para um IBM Cloud® Continuous Delivery Tekton PipelineRun.
Anotações do PipelineRun
A Tabela 1 descreve as anotações que estão incluídas em um Tekton PipelineRun.
| Anotação de execução | Descrição |
|---|---|
devops.cloud.ibm.com/build-number |
O número da construção do pipeline. Esse número é o total acumulativo de execuções de pipeline de todos os acionadores. |
devops.cloud.ibm.com/listener |
O eventlistener do Tekton mapeado ao gatilho que iniciou esta execução do pipeline. |
devops.cloud.ibm.com/pipeline-id |
O ID exclusivo do pipeline que é usado para essa execução. |
devops.cloud.ibm.com/trigger-name |
O nome do acionador que iniciou essa execução de pipeline. |
devops.cloud.ibm.com/trigger-type |
O tipo do acionador que iniciou essa execução de pipeline. O tipo pode ser manual, timer, scm ou generic. |
devops.cloud.ibm.com/triggered-by |
O usuário que iniciou o acionador. Esse valor corresponde ao IBMId do usuário que clicou em “Executar” para gatilhos do tipo “ manual ”, do usuário que salvou o gatilho pela última vez para gatilhos do tipo
“ timer ” ou do usuário que executou a ação “ Git ” para gatilhos do tipo “ scm ”. Esse valor é vazio para os acionadores generic. |
devops.cloud.ibm.com/pipeline-run-url |
A URL da página de detalhes para essa execução de pipeline. |
devops.cloud.ibm.com/tekton-pipeline |
O ID exclusivo dessa execução de pipeline. |
Acessando as anotações
É possível acessar as anotações por meio das tarefas dentro de seu arquivo yaml de definição de pipeline. O exemplo a seguir mostra como acessar a anotação devops.cloud.ibm.com/build-number. Para definir essa anotação como uma
variável de ambiente, substitua-a por uma das anotações de execução da Tabela 1. Anotações PipelineRun.
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: simple-task
spec:
steps:
- name: simple-step
image: icr.io/continuous-delivery/pipeline/pipeline-base-image:2.69
env:
- name: BUILD_NUMBER
valueFrom:
fieldRef:
fieldPath: metadata.annotations['devops.cloud.ibm.com/build-number']
command: ["bash", "-c"]
args:
- echo $BUILD_NUMBER;
echo "COMPLETED"
ConfigMap e Secret do PipelineRun
O recurso Tekton “ Continuous Delivery ” PipelineRun cria objetos específicos ConfigMap e Secret que estão disponíveis para suas tarefas. A tabela a seguir descreve cada objeto.
| Object | Tipo | Descrição |
|---|---|---|
environment-properties |
ConfigMap |
Contém todas as propriedades do pipeline não seguras. As chaves são os nomes das propriedades, conforme definidos na página “Propriedades” do pipeline de entrega. |
secure-properties |
Secret |
Contém todas as propriedades seguras do pipeline, incluindo quaisquer propriedades do tipo “ Tool integration ” (de tipo “ ”) para as quais o campo selecionado contenha um valor seguro. As chaves são os nomes das propriedades,
conforme definidos na página “Propriedades” do pipeline de entrega. |
event-parameters |
ConfigMap |
Contém os dados do evento desencadeador para os tipos de gatilh scm e generic. A chave eventHeader contém os cabeçalhos HTTP do evento recebido, e a chave eventBody contém o corpo da carga útil do evento. Este ConfigMap é opcional e não está presente nos gatilhos manual ou timer. |
toolchain |
ConfigMap |
Contém os arquivos de definição da cadeia de ferramentas que descrevem a cadeia de ferramentas e suas integrações. |
Ao acessar um ConfigMap ou Secret, certifique-se de localizar as referências e o nome do objeto corretos para que o seu pipeline possa ser concluído com sucesso.
Acessando os valores individuais
É possível acessar chaves/valores individuais dentro de uma Task. O trecho de código a seguir utiliza o nome de propriedade de exemplo “ apikey ” (com propriedades seguras) e o nome de propriedade “ environment ” (com propriedades de texto). Esses nomes de propriedades são definidos na página “Propriedades ” do pipeline de entrega.
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: cm-echo-props
spec:
steps:
- name: cm-show-props
image: icr.io/continuous-delivery/pipeline/pipeline-base-image:2.69
env:
- name: SECURE_VALUE
valueFrom:
secretKeyRef:
name: secure-properties
key: apikey
- name: ENVIRONMENT
valueFrom:
configMapKeyRef:
name: environment-properties
key: environment
command: ["/bin/bash", "-c"]
args:
- echo -e "environment from ConfigMap is >>";
echo $ENVIRONMENT;
echo "";
echo -e "apikey from Secrets is >>";
echo $SECURE_VALUE
Acessando todos os valores
Você pode adicionar todos os pares chave-valor das páginas ConfigMap e Secret ao seu ambiente Task. O exemplo a seguir também monta o event-parameters ConfigMap como um volume para acessar o cabeçalho e o corpo do evento de acionamento. Como event-parameters só está presente nos gatilhos scm e generic , o volume é
marcado como opcional para que a tarefa não falhe em execuções acionadas por manual ou timer .
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: cm-secrets-props
spec:
steps:
- name: cm-show-full-env
image: icr.io/continuous-delivery/pipeline/pipeline-base-image:2.69
envFrom:
- configMapRef:
name: environment-properties
- secretRef:
name: secure-properties
volumeMounts:
- mountPath: /event-parameters
name: event-parameters
command: ["/bin/bash", "-c"]
args:
- echo -e "The environment for this Step is ";
env;
echo "";
echo -e "Event header is >>";
cat /event-parameters/eventHeader || echo "No event header available";
echo "";
echo -e "Event body is >>";
cat /event-parameters/eventBody || echo "No event body available"
volumes:
- name: event-parameters
configMap:
name: event-parameters
optional: true
Dimensionamento da máquina virtual do trabalhador gerenciado
Ao executar um pipeline usando o pool de trabalhadores gerenciados do IBM, é alocado um objeto VM com uma memória padrão específica. Embora a maioria dos trabalhos possa ser executada com êxito com a memória fornecida, determinados
pipelines exigem memória adicional para tarefas intensivas.
Os usuários podem especificar um rótulo em suas tarefas para indicar se uma tarefa requer mais (ou menos) memória para uma tarefa específica. Essa capacidade de identificar a quantia específica de recursos que são necessários beneficia o uso de recursos e eventual economia de custo.
Para indicar qual perfil de VM deve ser aplicado a uma tarefa específica dentro de um pipeline do Tekton, adicione a etiqueta runtimeClassName à tarefa com um dos seguintes valores de VM. Se nenhum rótulo for fornecido, será utilizado
o perfil padrão do VM.
small: 2Gimedium: 4Gi (padrão)large: 8Gi
Por exemplo:
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: task1
labels:
runtimeClassName: medium
and so on.
Também é possível especificar a mesma configuração no PipelineRun como parte do TriggerTemplate Ao especificar o runtimeClassName no PipelineRun, os usuários podem selecionar o perfil VM que
desejam usar sem alterar as definições das tarefas.
Por exemplo:
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
generateName: pipeline-run-
spec:
pipelineRef:
name: pipeline
taskRunSpecs:
- pipelineTaskName: task1
taskPodTemplate:
runtimeClassName: medium
Formato do log
Esta seção descreve os recursos e a funcionalidade do visualizador de logs fornecido na página de detalhes PipelineRun e o formato de log suportado para aproveitar esses recursos.
Funcionalidade básica
O visualizador de registros é compatível com códigos de cores ANSI e estilos de texto, e detecta automaticamente URLs no conteúdo do registro e os renderiza como links clicáveis que abrem em uma nova janela.
Barra de ferramentas
A barra de ferramentas exibida no visualizador de registros inclui vários recursos adicionais, como
- maximizar: aumentar a área disponível para o visualizador de registros ocultando a lista de tarefas e o cabeçalho de execução. Isso permite que o usuário elimine as distrações de outras partes do aplicativo e se concentre no conteúdo do registro.
- preferências do usuário: essas preferências são mantidas localmente no navegador e aplicadas a todos os registros no aplicativo. Consulte as seções a seguir para obter mais detalhes.
Data e Hora
IBM-os trabalhadores gerenciados e os trabalhadores privados com a versão do agente 0.20.5 ou posterior produzem linhas de registro prefixadas com carimbos de data/hora por padrão. O usuário pode mostrar ou ocultar esses carimbos de data e hora no visualizador de registros alternando a opção no menu de configurações na barra de ferramentas do visualizador de registros.
Os carimbos de data e hora exibidos são localizados com base nas configurações do navegador do usuário, com o valor bruto do carimbo de data e hora recebido do trabalhador fornecido como uma dica de ferramenta ao passar o mouse.
Níveis de Registro
O visualizador de logs analisa as linhas de log para detectar o nível de log associado e decorá-las adequadamente para ajudar no consumo de logs. O formato compatível é o seguinte.
<timestamp> ::<level>::<message>
timestampé fornecido pelo trabalhadorlevelé um doserror,warning,notice,infodebug,,tracedebugetraceos registros ficam ocultos por padrão- qualquer linha de log sem um
levelexplícito é considerada comoinfo, mas não exibirá o emblema de nível de log para evitar redundância na interface do usuário quando os usuários não estiverem usando o formato de log compatível
messageé qualquer outro conteúdo da linha e pode conter códigos ANSI para formatação, etc.
Por exemplo, o seguinte snippet produziria uma linha de registro no nível warning:
echo '::warning::Something that may require attention but is non-blocking…'
Os níveis de registro exibidos podem ser alterados por meio do menu de configurações na barra de ferramentas do visualizador de registros.
Grupos de registros
Além dos níveis de registro, o visualizador de registros também oferece suporte a grupos recolhíveis nos registros. O formato compatível é o seguinte.
<timestamp> ::group::<message>
…
<timestamp> ::endgroup::
Um comando group marca o início do grupo. O conteúdo de message é exibido como o título/resumo do grupo, juntamente com um indicador do estado atual do grupo (ou seja, expandido ou recolhido). Clicar no resumo alternará
o estado do grupo.
Os grupos são renderizados no estado recolhido por padrão, a menos que a etapa ainda esteja em andamento quando os registros forem visualizados. O usuário pode expandir ou recolher grupos conforme desejar e seu estado será mantido até que o usuário navegue para uma visualização diferente.
Os grupos de registro não podem ser misturados com níveis de registro na mesma linha; os comandos group, endgroup e nível de registro são mutuamente exclusivos. No entanto, os registros contidos em um grupo podem
usar os níveis de registro normalmente.
O aninhamento de grupos não é compatível. Um comando group encerrará implicitamente qualquer grupo anterior não encerrado.
Por exemplo, o seguinte snippet produziria um grupo de registros com o resumo "Additional config" (Configuração adicional) contendo várias mensagens no nível info:
echo '::group::Additional config'
echo 'This extends the base config'
echo '::info:: More info about the config…'
echo '::endgroup::'
Saiba mais sobre os pipelines de entrega do Tekton
Para saber mais sobre o Tekton e o Continuous Delivery, consulte Tekton: uma abordagem moderna para Continuous Delivery.