Eigenschaften und Ressourcen der Tekton-Pipelines-Umgebung
Die folgenden Informationen und Ressourcen sind standardmäßig für IBM Cloud® Continuous Delivery Tekton PipelineRun verfügbar.
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 |
Die Tekton eventlistener, die dem Auslöser zugeordnet ist, der diesen Pipelinelauf initiiert 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 manual Auslösern auf " run" gedrückt hat, des Benutzers, der den Auslöser bei timer Auslösern zuletzt gespeichert hat, oder des Benutzers, der die Aktion Git bei scm Auslösern durchgefü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 Laufanmerkungen aus Tabelle 1. PipelineRun annotations.
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 Ressource Continuous Delivery Tekton PipelineRun erstellt eine spezifische ConfigMap und Secret für Umgebungseigenschaften. Sichere Eigenschaften sind im geheimen Kubernetes-Schlüssel (secure-properties)
Secret verfügbar, einschließlich aller Tool integration-Eigenschaften, für die das ausgewählte Feld einen sicheren Wert enthält. Nicht sichere Eigenschaften sind unter environment-properties Kubernetes
ConfigMap zu finden. Die Schlüssel sind die Namen der Felder, die in der Pipeline-Authoring-Benutzeroberfläche bereitgestellt werden.
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. Das folgende Codeschnipsel verwendet das Beispiel apikey property name (mit sicheren Eigenschaften) und environment property name (mit
Texteigenschaften). Diese Eigenschaftsnamen werden auf der Seite Eigenschaften der Lieferpipeline 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önne alle Schlüssel-Wert-Paare aus ConfigMap und Secret zu Ihrer Task-Umgebung hinzufügen:
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
Größenbestimmung für virtuelle Maschinen von Managed Workern
Wenn Sie eine Pipeline mithilfe des IBM Managed Worker-Pools ausführen, wird eine VM mit einem bestimmten Standardspeicher zugeordnet. 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 Task in einer Tekton-Pipeline angewendet werden soll, fügen Sie der Task die Bezeichnung runtimeClassName mit einem der folgenden VM-Werte hinzu. Wenn keine Bezeichnung angegeben
wird, wird das VM-Standardprofil 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 Angabe von runtimeClassName im PipelineRun können Benutzer das VM-Profil auswählen, das sie
verwenden möchten, ohne die Taskdefinitionen zu ändern.
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. Die folgenden Formate werden unterstützt.
<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. Die folgenden Formate werden unterstützt.
<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.