Tipo de compilación: Google Builder

En esta página se explica la definición del tipo de compilación SLSA V1.0 para Google Builder.

Parámetros externos

En la siguiente tabla se muestran los tipos de parámetros externos que se pueden usar en una definición de Workflow PipelineRun y Workflow TaskRun. A menos que se indique lo contrario, todos los parámetros son obligatorios.

Campo Tipo Detalles

runSpec

objeto

La especificación completa de PipelineRun.

buildConfigSource

objeto

La especificación completa de buildConfigSource.

Especificación de PipelineRun

Campo Tipo Detalles

pipelineRef/taskRef

objeto

De dónde se ha leído pipelineSpec o taskSpec.

Este campo solo se rellena si se ha hecho referencia a pipelineSpec desde una fuente remota.

Predeterminado: null

pipelineSpec/taskSpec

objeto

Especificación de flujo de trabajo o tarea insertada, no obtenida de una fuente remota mediante pipelineRef o taskRef.

[Opcional].

params

[object]

Mapa de nombres y valores de parámetros proporcionados a Pipeline. Los valores pueden ser de tipo cadena, array u objeto.

Predeterminado: null

Nota: En el caso de los flujos de trabajo activados, este campo también contendrá algunos parámetros proporcionados por el sistema de activación de Cloud Build, además de los parámetros configurados por el usuario en la definición del flujo de trabajo.

espacios de trabajo

[object]

Workspaces contiene un conjunto de enlaces de espacio de trabajo que deben coincidir con los nombres declarados en la canalización.

Predeterminado: null

tiempos de espera/tiempo de espera

objeto

Tiempo tras el que se agota el tiempo de espera de la canalización. Los tiempos de espera se pueden definir para Pipeline, Tasks y Finally. Se relacionan mediante la fórmula Timeouts.pipeline Timeouts.tasks + Timeouts.finally.

Especificación de buildConfigSource

Campo Tipo Detalles

ref

objeto

Se puede definir lo siguiente:

  • La referencia de Git. Por ejemplo, el SHA de la confirmación: sha1:563f0...
  • El resumen de la imagen. Por ejemplo: sha256:91fbe...

repositorio

cadena

El URI del repositorio de Git o el URI del repositorio de imágenes

ruta

cadena

La ruta del repositorio de Git o el nombre del recurso en el paquete de imágenes.

Parámetros internos

El compilador proporciona los parámetros internos para el proceso de compilación.

Campo Tipo Detalles
tekton-pipelines-feature-flags objeto Marcas de funciones de configuración de Tekton que se usan en la compilación. El compilador las configura y son útiles para la reproducibilidad.
systemParameters objeto Lista de pares de nombre y valor de las sustituciones predeterminadas del sistema proporcionadas por GCB.

Dependencias resueltas

El campo resolvedDependencies debe contener entradas que identifiquen la referencia resuelta correspondiente a externalParameters.configRef. Es la referencia a la canalización, en caso de que se trate de una especificación de PipelineRun, o la referencia a la tarea, en caso de que se trate de una especificación de TaskRun.

Las dependencias resueltas pueden contener artefactos adicionales que se usen como entradas para la compilación. Para indicar el tipo de artefacto, se usa el campo name:

  • En el caso de las canalizaciones remotas, usa name: pipeline.
  • Para las tareas remotas, usa name: pipelineTask.
  • En el caso de una referencia resuelta a un paso o a una imagen de contenedor auxiliar, el campo name es opcional. En el caso del campo digest, aunque se haga referencia a la imagen mediante una etiqueta, se debe incluir el digest de la imagen.
  • Para otros artefactos de entrada que se usen en la compilación, como el código fuente, usa name: inputs/result. La sugerencia de tipo se usa para los resultados de la tarea.

El siguiente ejemplo contiene información sobre todos los tipos de dependencias resueltas:

"resolvedDependencies": [
  {
    "name": "pipeline",
    "uri": "git+https://github.com/octocat/hello-world.git",
    "digest": {"sha1": "7fd1a60b01f91b314f59955a4e4d4e80d8edf11d"},
  },
  {
  "name": "pipelineTask",
  "uri": "git+https://github.com/octocat/hello-world.git",
  "digest": {"sha1": "7fd1a60b01f91b314f59955a4e4d4e80d8edf11d"},
  },
  {
  "uri": "gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init",
  "digest": {
    "sha256": "28ff94e63e4058afc3f15b4c11c08cf3b54fa91faa646a4bbac90380cd7158df"},
  },
  {
  "name": "inputs/result",
  "uri": "git+https://github.com/octocat/hello-world.git",
  "digest": {"sha1": "7fd1a60b01f91b314f59955a4e4d4e80d8edf11d"},
  }
]

RunDetails

Campo Detalles
compilador Contiene un subcampo id que identifica la plataforma de compilación que ejecutó la operación y rellenó esta procedencia. También contiene el nivel de SLSA. El valor de id esperado es uno de los siguientes:
  • https://cloudbuild.googleapis.com/GoogleBuilder. Este ID de compilador indica una compilación SLSA L2.
  • https://cloudbuild.googleapis.com/GoogleIsolatedBuilder. Este ID de compilación indica una compilación SLSA L3.
metadata Metadatos adicionales sobre esta ejecución concreta de la compilación. El invocationId muestra la URL de la compilación, como https://cloudbuild.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/pipelineRuns/BUILD_ID.
Los campos startedOn y finishedOn contienen las marcas de tiempo de cuándo se inició y se completó la compilación.
subproductos Objeto results.
Contiene los TaskRunResults generados por el PipelineRun. El contenido está codificado en Base64.