IBM Cloud Docs
Condotte Tekton ambiente proprietà e risorse

Condotte Tekton ambiente proprietà e risorse

Le seguenti informazioni e risorse sono disponibili per impostazione predefinita su IBM Cloud® Continuous Delivery Tekton PipelineRun.

PipelineRun annotazioni

La Tabella 1 descrive le annotazioni incluse in un PipelineRun Tekton.

Annotazioni PipelineRun
Annotazione di esecuzione Descrizione
devops.cloud.ibm.com/build-number Il numero di build per la pipeline. Questo numero è il totale complessivo delle esecuzioni di pipeline da tutti i trigger.
devops.cloud.ibm.com/listener Il sito Tekton eventlistener mappato al trigger che ha avviato l'esecuzione della pipeline.
devops.cloud.ibm.com/pipeline-id L'ID univoco della pipeline utilizzato per questa esecuzione.
devops.cloud.ibm.com/trigger-name Il nome del trigger che ha avviato questa esecuzione di pipeline.
devops.cloud.ibm.com/trigger-type Il tipo di trigger che ha avviato questa esecuzione di pipeline. Il tipo può essere manual, timer, scm o generic.
devops.cloud.ibm.com/triggered-by L'utente che ha avviato il trigger. Questo valore è l'IBMId dell'utente che ha premuto run per i trigger manual, dell'utente che ha salvato l'ultima volta il trigger per i trigger timer o dell'utente che ha eseguito l'azione Git per i trigger scm. Questo valore è vuoto per i trigger generic.
devops.cloud.ibm.com/pipeline-run-url L'URL della pagina dei dettagli per questa esecuzione di pipeline.
devops.cloud.ibm.com/tekton-pipeline L'ID univoco di questa esecuzione di pipeline.

Accesso alle annotazioni

Puoi accedere alle annotazioni dalle attività all'interno del tuo file yaml di definizione della pipeline. Il seguente esempio mostra come accedere all'annotazione devops.cloud.ibm.com/build-number. Per fornire questa annotazione come variabile d'ambiente, sostituirla con una delle annotazioni di esecuzione della Tabella 1. PipelineRun annotazioni.

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"

Mappa di configurazione (ConfigMap) e segreto (Secret) PipelineRun

La risorsa Continuous Delivery Tekton PipelineRun crea una specifica ConfigMap e Secret per le proprietà dell'ambiente. Le proprietà sicure sono disponibili in secure-properties Kubernetes Secret, incluse tutte le proprietà Tool integration per cui il campo selezionato contiene un valore sicuro. Le proprietà non sicure sono disponibili in environment-properties Kubernetes ConfigMap. Le chiavi sono il nome del campo fornito nell'interfaccia utente di creazione della pipeline.

Quando accedi a una mappa di associazione (ConfigMap) o a un segreto (Secret), assicurati di individuare i riferimenti e il nome oggetto corretti in modo da poter completare correttamente la tua pipeline.

Accesso a valori individuali

Puoi accedere a valori-chiavi individuali all'interno di un'attività (Task). Il seguente frammento di codice utilizza il nome della proprietà apikey di esempio (con proprietà sicure) e il nome della proprietà environment (con proprietà di testo). Questi nomi di proprietà sono impostati nella pagina Proprietà della pipeline di consegna.

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

Accesso a tutti i valori

Puoi aggiungere tutte le coppie chiave-valore dalla mappa di configurazione (ConfigMap) e dal segreto (Secret) al tuo ambiente Task:

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
      command: ["/bin/bash", "-c"]
      args:
        - echo -e "The environment for this Step is ";
          env

Dimensionamento delle macchine virtuali dei lavoratori gestiti

Quando esegui una pipeline utilizzando il pool IBM Managed Worker, viene assegnata una VM con una memoria predefinita specifica. Anche se la maggior parte dei lavori può essere eseguita correttamente con la memoria fornita, alcune pipeline richiedono ulteriore memoria per le attività intensive.

Gli utenti possono specificare un'etichetta sulle proprie attività per indicare se un'attività richiede più (o meno) memoria per una specifica attività. Questa capacità di identificare la specifica quantità di risorse che sono l'utilizzo delle risorse dei benefit richiesti e le eventuali riduzioni dei costi.

Per indicare quale profilo VM applicare a una specifica attività all'interno di una pipeline Tekton, aggiungere l'etichetta runtimeClassName all'attività con uno dei seguenti valori VM. Se non viene fornita alcuna etichetta, viene utilizzato il profilo VM predefinito.

  • small: 2Gi
  • medium: 4Gi (predefinito)
  • large: 8Gi

Ad esempio:

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: task1
  labels:
    runtimeClassName: medium
    and so on.

È anche possibile specificare la stessa configurazione in PipelineRun come parte di TriggerTemplate. Specificando runtimeClassName in PipelineRun, gli utenti possono selezionare il profilo VM che desiderano utilizzare senza modificare le definizioni delle attività.

Ad esempio:

apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
  generateName: pipeline-run-
spec:
  pipelineRef:
    name: pipeline
  taskRunSpecs:
    - pipelineTaskName: task1
      taskPodTemplate:
        runtimeClassName: medium

Formato log

Questa sezione descrive le caratteristiche e le funzionalità del visualizzatore di log fornito nella pagina dei dettagli di PipelineRun e il formato di log supportato per sfruttare queste caratteristiche.

Funzionalità di base

Il visualizzatore di log supporta i codici colore e gli stili di testo ANSI e rileva automaticamente gli URL nel contenuto del log, rendendoli come link cliccabili che si aprono in una nuova finestra.

Barra degli strumenti

La barra degli strumenti visualizzata nel visualizzatore di log include una serie di funzioni aggiuntive, tra cui:

  • massimizzare: aumentare l'area disponibile per la visualizzazione dei registri nascondendo l'elenco delle attività e l'intestazione dell'esecuzione. In questo modo l'utente può eliminare le distrazioni provenienti da altre parti dell'applicazione e concentrarsi sul contenuto del registro.
  • preferenze dell'utente: vengono memorizzate localmente nel browser e applicate a tutti i registri dell'applicazione. Per maggiori dettagli, consultare le sezioni seguenti.

timestamps

IBM-i lavoratori gestiti e i lavoratori privati con la versione dell'agente 0.20.5 o successiva, producono linee di log con prefisso temporale per impostazione predefinita. L'utente può mostrare o nascondere questi timestamp nel visualizzatore di log selezionando l'opzione nel menu delle impostazioni nella barra degli strumenti in cima al visualizzatore di log.

I timestamp visualizzati sono localizzati in base alle impostazioni del browser dell'utente e il valore grezzo del timestamp ricevuto dal lavoratore viene fornito come tooltip al passaggio del mouse.

Livelli di log

Il visualizzatore di log analizza le linee di log per rilevare il livello di log associato e le decora di conseguenza per aiutare a consumare i log. Il formato supportato è descritto di seguito.

<timestamp> ::<level>::<message>
  • timestamp è fornito dal lavoratore
  • level è uno di error, warning, notice, info, debug
    • debug i log sono nascosti per impostazione predefinita
    • qualsiasi riga di log senza un esplicito level è considerata info, ma non visualizzerà il badge del livello di log per evitare ridondanze nell'interfaccia utente quando gli utenti non utilizzano il formato di log supportato
  • message è qualsiasi altro contenuto della riga e può contenere codici ANSI per la formattazione, ecc.

Ad esempio, il seguente snippet produce una riga di log al livello warning :

echo '::warning::Something that may require attention but is non-blocking…'

I livelli di log visualizzati possono essere modificati tramite il menu delle impostazioni nella barra degli strumenti nella parte superiore del visualizzatore di log.

Gruppi di log

Oltre ai livelli di log, il visualizzatore di log supporta anche i gruppi collassabili all'interno dei log. Il formato supportato è descritto di seguito.

<timestamp> ::group::<message>
…
<timestamp> ::endgroup::

Un comando group segna l'inizio del gruppo. Il contenuto di message viene visualizzato come titolo/riassunto del gruppo insieme a un indicatore dello stato attuale del gruppo (ad esempio, espanso o chiuso). Facendo clic sul riepilogo si alterna lo stato del gruppo.

Per impostazione predefinita, i gruppi vengono visualizzati nello stato collassato, a meno che il passo non sia ancora in corso quando vengono visualizzati i registri. L'utente può espandere o chiudere i gruppi come desidera e il loro stato viene mantenuto finché non si passa a una visualizzazione diversa.

I gruppi di log non possono essere mescolati con i livelli di log sulla stessa riga; i comandi group, endgroup, e log level si escludono a vicenda. Tuttavia, i registri contenuti in un gruppo possono utilizzare i livelli di registro come di consueto.

La nidificazione dei gruppi non è supportata. Un comando group termina implicitamente qualsiasi gruppo precedente non terminato.

Ad esempio, il seguente snippet produrrà un gruppo di log con il sommario "Additional config" contenente una serie di messaggi al livello info :

echo '::group::Additional config'
echo 'This extends the base config'
echo '::info:: More info about the config…'
echo '::endgroup::'

Ulteriori informazioni sulle delivery pipeline Tekton

Per ulteriori informazioni su Tekton e Continuous Delivery, vedi Tekton: A Modern Approach to Continuous Delivery.