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.
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
: 2Gimedium
: 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 lavoratorelevel
è uno dierror
,warning
,notice
,info
,debug
debug
i log sono nascosti per impostazione predefinita- qualsiasi riga di log senza un esplicito
level
è consideratainfo
, 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.