Umgebungsparameter und Ressourcen von Tekton-Pipelines
Die folgenden Informationen und Ressourcen stehen einem IBM Cloud® Continuous Delivery von Tekton standardmäßig zur Verfügung PipelineRun.
PipelineRun Anmerkungen
In Tabelle 1 werden die Annotationen beschrieben, die in einem Tekton PipelineRun enthalten sind.
| Ausführungsannotation | Beschreibung |
|---|---|
devops.cloud.ibm.com/build-number |
Die Buildnummer für die Pipeline. Diese Nummer stellt die kumulative Gesamtzahl der Pipelineausführungen aller Auslöser dar. |
devops.cloud.ibm.com/listener |
Das Tekton, das eventlistener dem Trigger zugeordnet ist, der diesen Pipeline-Lauf ausgelöst hat. |
devops.cloud.ibm.com/pipeline-id |
Die eindeutige ID der Pipeline, die für diese Ausführung verwendet wird. |
devops.cloud.ibm.com/trigger-name |
Der Name des Auslösers, der diese Pipelineausführung initiiert hat. |
devops.cloud.ibm.com/trigger-type |
Der Typ des Auslösers, der diese Pipelineausführung initiiert hat. Mögliche Typen: manual, timer, scm oder generic. |
devops.cloud.ibm.com/triggered-by |
Der Benutzer, der den Auslöser initiiert hat. Dieser Wert ist die IBMId entweder des Benutzers, der bei Triggern manual auf Ausführen geklickt hat, des Benutzers, der den Trigger zuletzt gespeichert hat, oder
des Benutzers, der bei timer Triggern scm die Aktion Git ausgeführt hat. Bei Auslösern des Typs generic ist dieser Wert leer. |
devops.cloud.ibm.com/pipeline-run-url |
Die URL der Detailseite für diese Pipelineausführung. |
devops.cloud.ibm.com/tekton-pipeline |
Die eindeutige ID dieser Pipelineausführung. |
Annotationen aufrufen
Sie können Annotationen über die Tasks in der YAML-Datei Ihrer Pipelinedefinition aufrufen. Das folgende Beispiel veranschaulicht das Aufrufen der Annotation devops.cloud.ibm.com/build-number. Um diese Anmerkung als Umgebungsvariable
bereitzustellen, ersetzen Sie sie durch eine der Ausführungsanmerkungen aus Tabelle 1. Anmerkungen 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"
Konfigurationszuordnung (ConfigMap) und geheimer Schlüssel (Secret) für Pipelineausführungen
Die Tekton-Ressource PipelineRun Continuous Delivery erstellt bestimmte Objekte ConfigMap``Secret, die Ihren Aufgaben zur Verfügung stehen. In der folgenden Tabelle werden die einzelnen Objekte beschrieben.
| Object | Art | Beschreibung |
|---|---|---|
environment-properties |
ConfigMap |
Enthält alle nicht sicheren Pipeline-Eigenschaften. Die Schlüssel sind die Eigenschaftsnamen, wie sie auf der Seite Eigenschaften der Bereitstellungspipeline definiert sind. |
secure-properties |
Secret |
Enthält alle Eigenschaften der Secure Pipeline, einschließlich aller Eigenschaften Tool integration, für die das ausgewählte Feld einen Secure-Wert enthält. Die Schlüssel sind die Eigenschaftsnamen, wie sie auf der Seite Eigenschaften der Bereitstellungspipeline definiert sind. |
event-parameters |
ConfigMap |
Enthält die Daten zu Triggerereignissen für die Triggertypen generic und scm. Der Schlüssel eventHeader enthält die HTTP-Header des eingehenden Ereignisses, und der Schlüssel eventBody enthält den Hauptteil der Ereignisdaten. Dies ConfigMap ist optional und fehlt bei manual oder Triggern timer. |
toolchain |
ConfigMap |
Enthält die Toolchain-Definitionsdateien, die die Toolchain und ihre Integrationen beschreiben. |
Stellen Sie beim Aufrufen einer Konfigurationszuordnung (ConfigMap) oder eines geheimen Schlüssels (Secret) sicher, dass Sie den korrekten Objektnamen und die entsprechenden Referenzen verwenden, damit die Pipeline
erfolgreich ausgeführt werden kann.
Einzelne Werte aufrufen
Sie können einzelne Schlüsselwerte innerhalb einer Task aufrufen. Der folgende Codeausschnitt verwendet den Beispieldatennamen property apikey name (mit sicheren Eigenschaften) und den Beispieldatennamen property
environment name (mit Texteigenschaften). Diese Eigenschaftsnamen werden auf der Seite Eigenschaften der Bereitstellungspipeline festgelegt.
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
Alle Werte aufrufen
Sie können alle Schlüssel-Wert-Paare aus der ConfigMap und der Secret zu Ihrer Task Umgebung hinzufügen. Im folgenden Beispiel wird das ebenfalls als event-parameters``ConfigMap Volume eingebunden,
um auf den Header und den Body des Trigger-Ereignisses zugreifen zu können. Da nur bei und scm generic Triggern vorhanden event-parameters ist, wird das Volumen als optional markiert, damit die Aufgabe
bei durch oder manual ausgelösten timer Durchläufen nicht fehlschlägt.
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
Größenbestimmung für virtuelle Maschinen von Managed Workern
Wenn Sie eine Pipeline mithilfe des IBM Managed Worker-Pools ausführen, wird ein VM mit einem bestimmten Standard-Arbeitsspeicher zugewiesen. Obwohl die meisten Aufträge mit dem zur Verfügung stehenden Speicher erfolgreich ausgeführt werden können, benötigen bestimmte Pipelines für intensive Aufgaben zusätzlichen Speicher.
Benutzer können eine Bezeichnung für ihre Tasks angeben, um anzugeben, ob eine Task mehr (oder weniger) Speicher für eine bestimmte Task benötigt. Mit dieser Funktion können Sie die bestimmte Menge an Ressourcen ermitteln, die für die Ressourcennutzung und eventuelle Kosteneinsparungen erforderlich sind.
Um anzugeben, welches VM-Profil auf eine bestimmte Aufgabe innerhalb einer Tekton-Pipeline angewendet werden soll, fügen Sie der Aufgabe das Label runtimeClassName mit einem der folgenden Werte für VM hinzu. Wenn keine Bezeichnung
angegeben ist, wird das Standardprofil VM verwendet.
small: 2Gimedium: 4Gi (Standardwert)large: 8Gi
Zum Beispiel:
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: task1
labels:
runtimeClassName: medium
and so on.
Sie können dieselbe Konfiguration auch im PipelineRun als Teil von TriggerTemplate angeben. Durch die Angabe des runtimeClassName im können Benutzer das gewünschte VM-Profil auswählen PipelineRun,
ohne die Aufgabendefinitionen ändern zu müssen.
Zum Beispiel:
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
generateName: pipeline-run-
spec:
pipelineRef:
name: pipeline
taskRunSpecs:
- pipelineTaskName: task1
taskPodTemplate:
runtimeClassName: medium
Protokollformat
In diesem Abschnitt werden die Merkmale und Funktionen des Protokoll-Viewers beschrieben, der auf der Detailseite PipelineRun zur Verfügung steht, sowie das unterstützte Protokollformat, um diese Merkmale zu nutzen.
Grundlegende Funktionen
Der Protokoll-Viewer unterstützt ANSI-Farbcodes und Textstile und erkennt automatisch URLs im Protokollinhalt und stellt sie als anklickbare Links dar, die sich in einem neuen Fenster öffnen.
Symbolleiste
Die im Protokoll-Viewer angezeigte Symbolleiste enthält eine Reihe zusätzlicher Funktionen, darunter:
- maximierung: Vergrößerung des für die Protokollanzeige verfügbaren Bereichs durch Ausblenden des Aufgabenplans und des Laufkopfs. So kann der Benutzer Ablenkungen durch andere Teile der App ausschalten und sich auf den Inhalt des Protokolls konzentrieren.
- benutzereinstellungen: Diese werden lokal im Browser gespeichert und auf alle Protokolle in der Anwendung angewendet. Weitere Details finden Sie in den folgenden Abschnitten.
Zeitmarken
IBM-verwaltete Worker und private Worker mit der Agentenversion 0.20.5 oder höher erzeugen standardmäßig Protokollzeilen mit vorangestelltem Zeitstempel. Der Benutzer kann diese Zeitstempel in der Protokollanzeige ein- oder ausblenden, indem er die Option im Einstellungsmenü in der Symbolleiste der Protokollanzeige umschaltet.
Die angezeigten Zeitstempel werden auf der Grundlage der Browsereinstellungen des Benutzers lokalisiert, wobei der vom Worker empfangene Rohwert des Zeitstempels als Tooltip beim Hovern angezeigt wird.
Protokollebenen
Der Protokoll-Viewer analysiert die Protokollzeilen, um die zugehörige Protokollstufe zu erkennen, und dekoriert sie entsprechend, um den Protokollverbrauch zu erleichtern. Das unterstützte Format lautet wie folgt.
<timestamp> ::<level>::<message>
timestampwird vom Arbeitnehmer bereitgestelltlevelist einer vonerror,warning,notice,info,debug,tracedebugundtraceProtokolle sind standardmäßig ausgeblendet- jede Protokollzeile ohne explizites
levelwird alsinfobetrachtet, zeigt aber nicht den Loglevel-Badge an, um Redundanz in der Benutzeroberfläche zu vermeiden, wenn die Benutzer nicht das unterstützte Protokollformat verwenden
messageist jeder andere Inhalt in der Zeile und kann ANSI-Codes für die Formatierung usw. enthalten.
Der folgende Ausschnitt würde zum Beispiel eine Protokollzeile auf der Ebene warning ausgeben:
echo '::warning::Something that may require attention but is non-blocking…'
Die angezeigten Protokollebenen können über das Einstellungsmenü in der Symbolleiste des Protokoll-Viewers geändert werden.
Log-Gruppen
Zusätzlich zu den Protokollebenen unterstützt der Protokoll-Viewer auch klappbare Gruppen innerhalb der Protokolle. Das unterstützte Format lautet wie folgt.
<timestamp> ::group::<message>
…
<timestamp> ::endgroup::
Der Befehl group markiert den Beginn der Gruppe. Der Inhalt von message wird als Titel/Zusammenfassung der Gruppe zusammen mit einem Indikator für den aktuellen Zustand der Gruppe (d.h. erweitert oder reduziert) angezeigt.
Wenn Sie auf die Zusammenfassung klicken, wird der Status der Gruppe umgeschaltet.
Gruppen werden standardmäßig im zusammengeklappten Zustand dargestellt, es sei denn, der Schritt ist noch im Gange, wenn die Protokolle angezeigt werden. Der Benutzer kann die Gruppen nach Belieben erweitern oder reduzieren, und ihr Zustand wird beibehalten, bis der Benutzer zu einer anderen Ansicht navigiert.
Log-Gruppen können nicht mit Log-Levels in derselben Zeile gemischt werden, die Befehle group, endgroup und Log-Levels schließen sich gegenseitig aus. Die in einer Gruppe enthaltenen Protokolle können jedoch wie üblich
die Protokollebenen verwenden.
Die Verschachtelung von Gruppen wird nicht unterstützt. Ein group-Befehl beendet implizit jede zuvor nicht beendete Gruppe.
Der folgende Ausschnitt würde zum Beispiel eine Protokollgruppe mit der Zusammenfassung "Additional config" ausgeben, die eine Reihe von Meldungen auf der Ebene info enthält:
echo '::group::Additional config'
echo 'This extends the base config'
echo '::info:: More info about the config…'
echo '::endgroup::'
Weitere Informationen zu Tekton-Delivery Pipelines
Weitere Informationen zu Tekton und Continuous Deliveryfinden Sie unter Tekton: A Modern Approach to Continuous Delivery.