mirror of
https://gitlab.com/fedora/bootc/base-images.git
synced 2026-08-29 20:40:44 +00:00
Compare commits
6 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 80535614c8 | |||
|
|
d04ebc90b1 | ||
|
|
e968082085 | ||
|
|
53fcaa9169 | ||
|
|
0a3e4e6c4b | ||
|
|
6164af490f |
143 changed files with 422 additions and 4792 deletions
|
|
@ -1,60 +1,12 @@
|
||||||
---
|
---
|
||||||
# CI for fedora-bootc base images.
|
include:
|
||||||
#
|
- remote: https://gitlab.com/platform-engineering-org/gitlab-ci/-/raw/main/templates/build-image.gitlab-ci.yml
|
||||||
# All build and test logic lives in the Justfile so that CI flows
|
|
||||||
# are easily replicable locally: just install `just` and run the
|
build-image:
|
||||||
# same targets that CI does.
|
extends: .build-image
|
||||||
workflow:
|
variables:
|
||||||
|
EXTRA_ARGS: "--security-opt=label=disable --cap-add=all"
|
||||||
rules:
|
rules:
|
||||||
# Skip CI if only non-build files changed
|
- if: $CI_PROJECT_NAMESPACE != "fedora/bootc"
|
||||||
- changes:
|
|
||||||
- renovate.json
|
|
||||||
- README.md
|
|
||||||
- LICENSE
|
|
||||||
- .tekton/*
|
|
||||||
when: never
|
when: never
|
||||||
- when: always
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||||
|
|
||||||
stages:
|
|
||||||
- build
|
|
||||||
|
|
||||||
variables:
|
|
||||||
BUILDER: buildah
|
|
||||||
JUST_VERSION: "1.49.0"
|
|
||||||
|
|
||||||
.build-image:
|
|
||||||
stage: build
|
|
||||||
image: quay.io/buildah/stable:v1.42.2
|
|
||||||
needs: []
|
|
||||||
before_script:
|
|
||||||
# just is not packaged in the buildah image; grab a pinned static binary
|
|
||||||
- curl -sSfL -o /tmp/just.tar.gz "https://github.com/casey/just/releases/download/${JUST_VERSION}/just-${JUST_VERSION}-x86_64-unknown-linux-musl.tar.gz"
|
|
||||||
- tar -xzf /tmp/just.tar.gz -C /usr/local/bin just
|
|
||||||
|
|
||||||
basic-checks:
|
|
||||||
stage: build
|
|
||||||
image: quay.io/fedora/fedora:latest
|
|
||||||
needs: []
|
|
||||||
script: |
|
|
||||||
set -xeuo pipefail
|
|
||||||
dnf install -y file jq python3-yaml ShellCheck just
|
|
||||||
just validate
|
|
||||||
|
|
||||||
# Test each tier against rawhide and the latest stable release
|
|
||||||
build-and-test:
|
|
||||||
extends: .build-image
|
|
||||||
parallel:
|
|
||||||
matrix:
|
|
||||||
- FEDORA_VERSION: [rawhide, "44"]
|
|
||||||
TIER: [minimal, minimal-plus, standard]
|
|
||||||
script:
|
|
||||||
- just test
|
|
||||||
|
|
||||||
# Smoke-test older Fedora versions (standard tier, build only)
|
|
||||||
build-fedora-version:
|
|
||||||
extends: .build-image
|
|
||||||
parallel:
|
|
||||||
matrix:
|
|
||||||
- FEDORA_VERSION: ["43"]
|
|
||||||
script:
|
|
||||||
- just build
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
repos:
|
repos:
|
||||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
rev: v6.0.0
|
rev: v5.0.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: end-of-file-fixer
|
- id: end-of-file-fixer
|
||||||
- id: trailing-whitespace
|
- id: trailing-whitespace
|
||||||
|
|
@ -22,6 +22,6 @@ repos:
|
||||||
- id: check-json
|
- id: check-json
|
||||||
- id: check-yaml
|
- id: check-yaml
|
||||||
- repo: https://github.com/markdownlint/markdownlint
|
- repo: https://github.com/markdownlint/markdownlint
|
||||||
rev: v0.15.0
|
rev: v0.13.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: markdownlint
|
- id: markdownlint
|
||||||
|
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/pull_request_number: '{{pull_request_number}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "pull_request" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-43-iot-pull-request.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"iot.yaml".pathChanged() ||
|
|
||||||
"iot/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-43
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-43-iot
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-43-iot-on-pull-request
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-43-compose:Fedora-43-updates-20260727.0@sha256:af8e3cce0623d775670a68562f69e1050805cdd5ba8799c05088e9acf3f372c0
|
|
||||||
- MANIFEST=fedora-iot
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-43-iot:on-pr-{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=43
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:8ff57394418faad7722c144f77494cf654007d60f63526357c007700bfc34edd
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-43-iot
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "false"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-43-iot-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"iot.yaml".pathChanged() ||
|
|
||||||
"iot/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-43
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-43-iot
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-43-iot-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-43-compose:Fedora-43-updates-20260727.0@sha256:af8e3cce0623d775670a68562f69e1050805cdd5ba8799c05088e9acf3f372c0
|
|
||||||
- MANIFEST=fedora-iot
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-43-iot:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=43
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:8ff57394418faad7722c144f77494cf654007d60f63526357c007700bfc34edd
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-43-iot
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch.startsWith("renovate/"))
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-43-iot-renovate-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"iot.yaml".pathChanged() ||
|
|
||||||
"iot/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-43
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-43-iot
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
release.appstudio.openshift.io/auto-release: "false"
|
|
||||||
name: fedora-bootc-43-iot-renovate-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-43-compose:Fedora-43-updates-20260727.0@sha256:af8e3cce0623d775670a68562f69e1050805cdd5ba8799c05088e9acf3f372c0
|
|
||||||
- MANIFEST=fedora-iot
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-43-iot:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=43
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:8ff57394418faad7722c144f77494cf654007d60f63526357c007700bfc34edd
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-43-iot
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/pull_request_number: '{{pull_request_number}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "pull_request" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-43-minimal-plus-pull-request.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-43
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-43-minimal-plus
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-43-minimal-plus-on-pull-request
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-43-compose:Fedora-43-updates-20260727.0@sha256:af8e3cce0623d775670a68562f69e1050805cdd5ba8799c05088e9acf3f372c0
|
|
||||||
- MANIFEST=fedora-minimal-plus
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-43-minimal-plus:on-pr-{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=43
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:8ff57394418faad7722c144f77494cf654007d60f63526357c007700bfc34edd
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-43-minimal-plus
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "false"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-43-minimal-plus-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-43
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-43-minimal-plus
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-43-minimal-plus-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-43-compose:Fedora-43-updates-20260727.0@sha256:af8e3cce0623d775670a68562f69e1050805cdd5ba8799c05088e9acf3f372c0
|
|
||||||
- MANIFEST=fedora-minimal-plus
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-43-minimal-plus:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=43
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:8ff57394418faad7722c144f77494cf654007d60f63526357c007700bfc34edd
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-43-minimal-plus
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/pull_request_number: '{{pull_request_number}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "pull_request" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-43-minimal-pull-request.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-43
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-43-minimal
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-43-minimal-on-pull-request
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-43-compose:Fedora-43-updates-20260727.0@sha256:af8e3cce0623d775670a68562f69e1050805cdd5ba8799c05088e9acf3f372c0
|
|
||||||
- MANIFEST=fedora-minimal
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-43-minimal:on-pr-{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=43
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:8ff57394418faad7722c144f77494cf654007d60f63526357c007700bfc34edd
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-43-minimal
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "false"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-43-minimal-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-43
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-43-minimal
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-43-minimal-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-43-compose:Fedora-43-updates-20260727.0@sha256:af8e3cce0623d775670a68562f69e1050805cdd5ba8799c05088e9acf3f372c0
|
|
||||||
- MANIFEST=fedora-minimal
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-43-minimal:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=43
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:8ff57394418faad7722c144f77494cf654007d60f63526357c007700bfc34edd
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-43-minimal
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/pull_request_number: '{{pull_request_number}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "pull_request" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-43-standard-pull-request.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"standard.yaml".pathChanged() ||
|
|
||||||
"standard/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-43
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-43-standard
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-43-standard-on-pull-request
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-43-compose:Fedora-43-updates-20260727.0@sha256:af8e3cce0623d775670a68562f69e1050805cdd5ba8799c05088e9acf3f372c0
|
|
||||||
- MANIFEST=fedora-standard
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-43-standard:on-pr-{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=43
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:8ff57394418faad7722c144f77494cf654007d60f63526357c007700bfc34edd
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-43-standard
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "false"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-43-standard-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"standard.yaml".pathChanged() ||
|
|
||||||
"standard/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-43
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-43-standard
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-43-standard-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-43-compose:Fedora-43-updates-20260727.0@sha256:af8e3cce0623d775670a68562f69e1050805cdd5ba8799c05088e9acf3f372c0
|
|
||||||
- MANIFEST=fedora-standard
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-43-standard:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=43
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:8ff57394418faad7722c144f77494cf654007d60f63526357c007700bfc34edd
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-43-standard
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/pull_request_number: '{{pull_request_number}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "pull_request" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-44-iot-pull-request.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"iot.yaml".pathChanged() ||
|
|
||||||
"iot/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-44
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-44-iot
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-44-iot-on-pull-request
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-44-compose:Fedora-44-20260209.n.0@sha256:c947e0988e3f00078d3ff59eaff5ee18fe1d6fd39dc1fd15d268de0d074df45f
|
|
||||||
- MANIFEST=fedora-iot
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-44-iot:on-pr-{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=44
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:44d0e8034a19a1ced7817c117c9c15230def1f3e7941666a72a3e47919951f51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-44-iot
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "false"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-44-iot-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"iot.yaml".pathChanged() ||
|
|
||||||
"iot/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-44
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-44-iot
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-44-iot-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-44-compose:Fedora-44-20260209.n.0@sha256:c947e0988e3f00078d3ff59eaff5ee18fe1d6fd39dc1fd15d268de0d074df45f
|
|
||||||
- MANIFEST=fedora-iot
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-44-iot:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=44
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:44d0e8034a19a1ced7817c117c9c15230def1f3e7941666a72a3e47919951f51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-44-iot
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/pull_request_number: '{{pull_request_number}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "pull_request" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-44-minimal-plus-pull-request.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-44
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-44-minimal-plus
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-44-minimal-plus-on-pull-request
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-44-compose:Fedora-44-updates-20260827.0@sha256:2f39b27325602d36383d0a320edad60de595e0bafd8983f0a2aeeeb87d7e3b9d
|
|
||||||
- MANIFEST=fedora-minimal-plus
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-44-minimal-plus:on-pr-{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=44
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:9eb1decf91e0d678a613f7d4767091c05b37bec8a02163087254328f1e848c51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-44-minimal-plus
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "false"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-44-minimal-plus-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-44
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-44-minimal-plus
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-44-minimal-plus-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-44-compose:Fedora-44-updates-20260827.0@sha256:2f39b27325602d36383d0a320edad60de595e0bafd8983f0a2aeeeb87d7e3b9d
|
|
||||||
- MANIFEST=fedora-minimal-plus
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-44-minimal-plus:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=44
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:9eb1decf91e0d678a613f7d4767091c05b37bec8a02163087254328f1e848c51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-44-minimal-plus
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/pull_request_number: '{{pull_request_number}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "pull_request" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-44-minimal-pull-request.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-44
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-44-minimal
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-44-minimal-on-pull-request
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-44-compose:Fedora-44-updates-20260827.0@sha256:2f39b27325602d36383d0a320edad60de595e0bafd8983f0a2aeeeb87d7e3b9d
|
|
||||||
- MANIFEST=fedora-minimal
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-44-minimal:on-pr-{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=44
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:9eb1decf91e0d678a613f7d4767091c05b37bec8a02163087254328f1e848c51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-44-minimal
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "false"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-44-minimal-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-44
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-44-minimal
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-44-minimal-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-44-compose:Fedora-44-updates-20260827.0@sha256:2f39b27325602d36383d0a320edad60de595e0bafd8983f0a2aeeeb87d7e3b9d
|
|
||||||
- MANIFEST=fedora-minimal
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-44-minimal:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=44
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:9eb1decf91e0d678a613f7d4767091c05b37bec8a02163087254328f1e848c51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-44-minimal
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/pull_request_number: '{{pull_request_number}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "pull_request" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-44-standard-pull-request.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"standard.yaml".pathChanged() ||
|
|
||||||
"standard/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-44
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-44-standard
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-44-standard-on-pull-request
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-44-compose:Fedora-44-updates-20260827.0@sha256:2f39b27325602d36383d0a320edad60de595e0bafd8983f0a2aeeeb87d7e3b9d
|
|
||||||
- MANIFEST=fedora-standard
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-44-standard:on-pr-{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=44
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:9eb1decf91e0d678a613f7d4767091c05b37bec8a02163087254328f1e848c51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-44-standard
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "false"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-44-standard-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"standard.yaml".pathChanged() ||
|
|
||||||
"standard/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-44
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-44-standard
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-44-standard-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-44-compose:Fedora-44-updates-20260827.0@sha256:2f39b27325602d36383d0a320edad60de595e0bafd8983f0a2aeeeb87d7e3b9d
|
|
||||||
- MANIFEST=fedora-standard
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-44-standard:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=44
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:9eb1decf91e0d678a613f7d4767091c05b37bec8a02163087254328f1e848c51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-44-standard
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/pull_request_number: '{{pull_request_number}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "pull_request" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-45-iot-pull-request.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"iot.yaml".pathChanged() ||
|
|
||||||
"iot/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-45
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-45-iot
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-45-iot-on-pull-request
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-45-compose:Fedora-45-20260821.n.0@sha256:55b3460339b8c7aa0a2511e33c623310e17b16118764011059b2e8f35c5bedaf
|
|
||||||
- MANIFEST=fedora-iot
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-45-iot:on-pr-{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=45
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:44d0e8034a19a1ced7817c117c9c15230def1f3e7941666a72a3e47919951f51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-45-iot
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "false"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-45-iot-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"iot.yaml".pathChanged() ||
|
|
||||||
"iot/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-45
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-45-iot
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-45-iot-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-45-compose:Fedora-45-20260821.n.0@sha256:55b3460339b8c7aa0a2511e33c623310e17b16118764011059b2e8f35c5bedaf
|
|
||||||
- MANIFEST=fedora-iot
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-45-iot:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=45
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:44d0e8034a19a1ced7817c117c9c15230def1f3e7941666a72a3e47919951f51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-45-iot
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/pull_request_number: '{{pull_request_number}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "pull_request" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-45-minimal-plus-pull-request.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-45
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-45-minimal-plus
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-45-minimal-plus-on-pull-request
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-45-compose:Fedora-45-20260826.n.0@sha256:ae4bedc5740a4e3f984f879c66ca026aa94ce8aec641a804f4ede0bc4ddd2c19
|
|
||||||
- MANIFEST=fedora-minimal-plus
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-45-minimal-plus:on-pr-{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=45
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:9eb1decf91e0d678a613f7d4767091c05b37bec8a02163087254328f1e848c51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-45-minimal-plus
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "false"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-45-minimal-plus-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-45
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-45-minimal-plus
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-45-minimal-plus-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-45-compose:Fedora-45-20260826.n.0@sha256:ae4bedc5740a4e3f984f879c66ca026aa94ce8aec641a804f4ede0bc4ddd2c19
|
|
||||||
- MANIFEST=fedora-minimal-plus
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-45-minimal-plus:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=45
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:9eb1decf91e0d678a613f7d4767091c05b37bec8a02163087254328f1e848c51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-45-minimal-plus
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/pull_request_number: '{{pull_request_number}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "pull_request" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-45-minimal-pull-request.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-45
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-45-minimal
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-45-minimal-on-pull-request
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-45-compose:Fedora-45-20260826.n.0@sha256:ae4bedc5740a4e3f984f879c66ca026aa94ce8aec641a804f4ede0bc4ddd2c19
|
|
||||||
- MANIFEST=fedora-minimal
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-45-minimal:on-pr-{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=45
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:9eb1decf91e0d678a613f7d4767091c05b37bec8a02163087254328f1e848c51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-45-minimal
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "false"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-45-minimal-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-45
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-45-minimal
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-45-minimal-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-45-compose:Fedora-45-20260826.n.0@sha256:ae4bedc5740a4e3f984f879c66ca026aa94ce8aec641a804f4ede0bc4ddd2c19
|
|
||||||
- MANIFEST=fedora-minimal
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-45-minimal:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=45
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:9eb1decf91e0d678a613f7d4767091c05b37bec8a02163087254328f1e848c51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-45-minimal
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/pull_request_number: '{{pull_request_number}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "pull_request" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-45-standard-pull-request.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"standard.yaml".pathChanged() ||
|
|
||||||
"standard/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-45
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-45-standard
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-45-standard-on-pull-request
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-45-compose:Fedora-45-20260826.n.0@sha256:ae4bedc5740a4e3f984f879c66ca026aa94ce8aec641a804f4ede0bc4ddd2c19
|
|
||||||
- MANIFEST=fedora-standard
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-45-standard:on-pr-{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=45
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:9eb1decf91e0d678a613f7d4767091c05b37bec8a02163087254328f1e848c51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-45-standard
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "false"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-45-standard-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"standard.yaml".pathChanged() ||
|
|
||||||
"standard/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-45
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-45-standard
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-45-standard-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-45-compose:Fedora-45-20260826.n.0@sha256:ae4bedc5740a4e3f984f879c66ca026aa94ce8aec641a804f4ede0bc4ddd2c19
|
|
||||||
- MANIFEST=fedora-standard
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-45-standard:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=45
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:9eb1decf91e0d678a613f7d4767091c05b37bec8a02163087254328f1e848c51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-45-standard
|
|
||||||
|
|
@ -1,77 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/pull_request_number: '{{pull_request_number}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "pull_request" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-eln-standard-pull-request.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/eln.yaml".pathChanged() ||
|
|
||||||
"fedora-eln.yaml".pathChanged() ||
|
|
||||||
"eln/***".pathChanged() ||
|
|
||||||
"standard.yaml".pathChanged() ||
|
|
||||||
"standard/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-eln
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-eln-standard
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-eln-standard-on-pull-request
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-eln-compose:Fedora-eln-20260802.n.0@sha256:12f9b31a07ea270b65d5869a904fd1509c56b470df6c8f2586492fc0f006f213
|
|
||||||
- MANIFEST=fedora-eln
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-eln-standard:on-pr-{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=eln
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:c587d9400c89e21225fee03a080dcb0816919d39770b6af0cd6f990c7f8404b8
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-eln-standard
|
|
||||||
|
|
@ -1,74 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "false"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-eln-standard-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/eln.yaml".pathChanged() ||
|
|
||||||
"fedora-eln.yaml".pathChanged() ||
|
|
||||||
"eln/***".pathChanged() ||
|
|
||||||
"standard.yaml".pathChanged() ||
|
|
||||||
"standard/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-eln
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-eln-standard
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-eln-standard-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-eln-compose:Fedora-eln-20260802.n.0@sha256:12f9b31a07ea270b65d5869a904fd1509c56b470df6c8f2586492fc0f006f213
|
|
||||||
- MANIFEST=fedora-eln
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-eln-standard:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=eln
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:c587d9400c89e21225fee03a080dcb0816919d39770b6af0cd6f990c7f8404b8
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-eln-standard
|
|
||||||
|
|
@ -1,77 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch.startsWith("renovate/"))
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-eln-standard-renovate-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/eln.yaml".pathChanged() ||
|
|
||||||
"fedora-eln.yaml".pathChanged() ||
|
|
||||||
"eln/***".pathChanged() ||
|
|
||||||
"standard.yaml".pathChanged() ||
|
|
||||||
"standard/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged()
|
|
||||||
) && true == false
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-eln
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-eln-standard
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
release.appstudio.openshift.io/auto-release: "false"
|
|
||||||
name: fedora-bootc-eln-standard-renovate-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-eln-compose:Fedora-eln-20260802.n.0@sha256:12f9b31a07ea270b65d5869a904fd1509c56b470df6c8f2586492fc0f006f213
|
|
||||||
- MANIFEST=fedora-eln
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-eln-standard:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=eln
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:c587d9400c89e21225fee03a080dcb0816919d39770b6af0cd6f990c7f8404b8
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-eln-standard
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/pull_request_number: '{{pull_request_number}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "pull_request" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-rawhide-iot-pull-request.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"iot.yaml".pathChanged() ||
|
|
||||||
"iot/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-rawhide
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-rawhide-iot
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-rawhide-iot-on-pull-request
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-rawhide-compose:Fedora-Rawhide-20260209.n.0@sha256:a46fca7ce98fd36b5edb6ef96867de573479af69c645801cdc8c53ad6708114c
|
|
||||||
- MANIFEST=fedora-iot
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-rawhide-iot:on-pr-{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=46
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:44d0e8034a19a1ced7817c117c9c15230def1f3e7941666a72a3e47919951f51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-rawhide-iot
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "false"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-rawhide-iot-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"iot.yaml".pathChanged() ||
|
|
||||||
"iot/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-rawhide
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-rawhide-iot
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-rawhide-iot-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-rawhide-compose:Fedora-Rawhide-20260209.n.0@sha256:a46fca7ce98fd36b5edb6ef96867de573479af69c645801cdc8c53ad6708114c
|
|
||||||
- MANIFEST=fedora-iot
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-rawhide-iot:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=46
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:44d0e8034a19a1ced7817c117c9c15230def1f3e7941666a72a3e47919951f51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-rawhide-iot
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/pull_request_number: '{{pull_request_number}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "pull_request" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-rawhide-minimal-plus-pull-request.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-rawhide
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-rawhide-minimal-plus
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-rawhide-minimal-plus-on-pull-request
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-rawhide-compose:Fedora-Rawhide-20260827.n.0@sha256:fcfd7db08ce2a2bf993fb11a15d21490b06017d879ece5d62e5d797107e3f9ab
|
|
||||||
- MANIFEST=fedora-minimal-plus
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-rawhide-minimal-plus:on-pr-{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=46
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:9eb1decf91e0d678a613f7d4767091c05b37bec8a02163087254328f1e848c51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-rawhide-minimal-plus
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "false"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-rawhide-minimal-plus-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-rawhide
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-rawhide-minimal-plus
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-rawhide-minimal-plus-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-rawhide-compose:Fedora-Rawhide-20260827.n.0@sha256:fcfd7db08ce2a2bf993fb11a15d21490b06017d879ece5d62e5d797107e3f9ab
|
|
||||||
- MANIFEST=fedora-minimal-plus
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-rawhide-minimal-plus:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=46
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:9eb1decf91e0d678a613f7d4767091c05b37bec8a02163087254328f1e848c51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-rawhide-minimal-plus
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/pull_request_number: '{{pull_request_number}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "pull_request" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-rawhide-minimal-pull-request.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-rawhide
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-rawhide-minimal
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-rawhide-minimal-on-pull-request
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-rawhide-compose:Fedora-Rawhide-20260827.n.0@sha256:fcfd7db08ce2a2bf993fb11a15d21490b06017d879ece5d62e5d797107e3f9ab
|
|
||||||
- MANIFEST=fedora-minimal
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-rawhide-minimal:on-pr-{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=46
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:9eb1decf91e0d678a613f7d4767091c05b37bec8a02163087254328f1e848c51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-rawhide-minimal
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "false"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-rawhide-minimal-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-rawhide
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-rawhide-minimal
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-rawhide-minimal-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-rawhide-compose:Fedora-Rawhide-20260827.n.0@sha256:fcfd7db08ce2a2bf993fb11a15d21490b06017d879ece5d62e5d797107e3f9ab
|
|
||||||
- MANIFEST=fedora-minimal
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-rawhide-minimal:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=46
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:9eb1decf91e0d678a613f7d4767091c05b37bec8a02163087254328f1e848c51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-rawhide-minimal
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/pull_request_number: '{{pull_request_number}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "true"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "pull_request" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-rawhide-standard-pull-request.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"standard.yaml".pathChanged() ||
|
|
||||||
"standard/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-rawhide
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-rawhide-standard
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-rawhide-standard-on-pull-request
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-rawhide-compose:Fedora-Rawhide-20260827.n.0@sha256:fcfd7db08ce2a2bf993fb11a15d21490b06017d879ece5d62e5d797107e3f9ab
|
|
||||||
- MANIFEST=fedora-standard
|
|
||||||
- name: image-expires-after
|
|
||||||
value: 5d
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-rawhide-standard:on-pr-{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=46
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:9eb1decf91e0d678a613f7d4767091c05b37bec8a02163087254328f1e848c51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-rawhide-standard
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
apiVersion: tekton.dev/v1
|
|
||||||
kind: PipelineRun
|
|
||||||
metadata:
|
|
||||||
annotations:
|
|
||||||
build.appstudio.openshift.io/repo: https://gitlab.com/fedora/bootc/base-images/-/tree/{{revision}}
|
|
||||||
build.appstudio.redhat.com/commit_sha: '{{revision}}'
|
|
||||||
build.appstudio.redhat.com/target_branch: '{{target_branch}}'
|
|
||||||
pipelinesascode.tekton.dev/cancel-in-progress: "false"
|
|
||||||
pipelinesascode.tekton.dev/max-keep-runs: "3"
|
|
||||||
pipelinesascode.tekton.dev/on-cel-expression: |
|
|
||||||
(
|
|
||||||
(event == "push" && target_branch == "main")
|
|
||||||
) && (
|
|
||||||
".tekton/fedora-bootc-rawhide-standard-push.yaml".pathChanged() ||
|
|
||||||
"Containerfile".pathChanged() ||
|
|
||||||
"bootc-base-imagectl".pathChanged() ||
|
|
||||||
"install-manifests".pathChanged() ||
|
|
||||||
"fedora-includes/generic.yaml".pathChanged() ||
|
|
||||||
"minimal.yaml".pathChanged() ||
|
|
||||||
"minimal/***".pathChanged() ||
|
|
||||||
"minimal-plus.hidden.yaml".pathChanged() ||
|
|
||||||
"minimal-plus/***".pathChanged() ||
|
|
||||||
"standard.yaml".pathChanged() ||
|
|
||||||
"standard/***".pathChanged()
|
|
||||||
)
|
|
||||||
test.appstudio.openshift.io/comment_strategy: "disable_all"
|
|
||||||
creationTimestamp: null
|
|
||||||
labels:
|
|
||||||
appstudio.openshift.io/application: fedora-bootc-rawhide
|
|
||||||
appstudio.openshift.io/component: fedora-bootc-rawhide-standard
|
|
||||||
pipelines.appstudio.openshift.io/type: build
|
|
||||||
name: fedora-bootc-rawhide-standard-on-push
|
|
||||||
spec:
|
|
||||||
params:
|
|
||||||
- name: git-url
|
|
||||||
value: '{{source_url}}'
|
|
||||||
- name: revision
|
|
||||||
value: '{{revision}}'
|
|
||||||
- name: build-platforms
|
|
||||||
value:
|
|
||||||
- linux/amd64
|
|
||||||
- linux/arm64
|
|
||||||
- linux/ppc64le
|
|
||||||
- linux/s390x
|
|
||||||
- name: dockerfile
|
|
||||||
value: Containerfile
|
|
||||||
- name: path-context
|
|
||||||
value: .
|
|
||||||
- name: privileged-nested
|
|
||||||
value: true
|
|
||||||
- name: build-args
|
|
||||||
value:
|
|
||||||
- REPOS_IMAGE=quay.io/bootc-devel/fedora-bootc-rawhide-compose:Fedora-Rawhide-20260827.n.0@sha256:fcfd7db08ce2a2bf993fb11a15d21490b06017d879ece5d62e5d797107e3f9ab
|
|
||||||
- MANIFEST=fedora-standard
|
|
||||||
- name: output-image
|
|
||||||
value: quay.io/konflux-fedora/bootc-tenant/fedora-bootc-rawhide-standard:{{revision}}
|
|
||||||
- name: labels
|
|
||||||
value:
|
|
||||||
- org.opencontainers.image.version=46
|
|
||||||
pipelineRef:
|
|
||||||
params:
|
|
||||||
- name: bundle
|
|
||||||
value: quay.io/bootc-devel/tekton-catalog/pipeline-buildah-build-bootc-multi-platform-oci-ta@sha256:9eb1decf91e0d678a613f7d4767091c05b37bec8a02163087254328f1e848c51
|
|
||||||
- name: name
|
|
||||||
value: buildah-build-bootc-multi-platform-oci-ta
|
|
||||||
- name: kind
|
|
||||||
value: pipeline
|
|
||||||
resolver: bundles
|
|
||||||
timeouts:
|
|
||||||
pipeline: 6h
|
|
||||||
taskRunTemplate:
|
|
||||||
serviceAccountName: build-pipeline-fedora-bootc-rawhide-standard
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
# Contributing to fedora-bootc base images
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
|
|
||||||
Everything revolves around our Containerfile, but there's
|
|
||||||
a high level wrapper in `Justfile` which you should use.
|
|
||||||
So installing `podman` (or `buildah`) and `just` are strongly recommended.
|
|
||||||
|
|
||||||
## Building and testing
|
|
||||||
|
|
||||||
Run `just --list` to see available targets and `just show-config` to
|
|
||||||
see current settings. The Justfile is also what CI invokes, so anything
|
|
||||||
you run locally is the same as what runs in the pipeline.
|
|
||||||
|
|
||||||
Configuration is via environment variables — see the comments at the
|
|
||||||
top of the `Justfile` for the full list. For example:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
just build # defaults
|
|
||||||
TIER=minimal just build # different tier
|
|
||||||
FEDORA_VERSION=43 just test # different Fedora version
|
|
||||||
BUILDER=podman just build # use podman instead of buildah
|
|
||||||
just ci # full CI run (validate + test all tiers)
|
|
||||||
```
|
|
||||||
|
|
||||||
## Building a split image
|
|
||||||
|
|
||||||
The Containerfile supports building a split (content-based layered)
|
|
||||||
image using [chunkah](https://github.com/coreos/chunkah) via the
|
|
||||||
`chunked` build target:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
just build --chunkah
|
|
||||||
```
|
|
||||||
|
|
||||||
Extra arguments can be passed to chunkah via the `CHUNKAH_ARGS` build
|
|
||||||
arg (e.g. `BUILDER_EXTRA='--build-arg CHUNKAH_ARGS="--max-layers 128"' just build --chunkah`).
|
|
||||||
109
Containerfile
109
Containerfile
|
|
@ -1,83 +1,46 @@
|
||||||
# In order to make a base image as part of a Dockerfile, this container build uses
|
# This container build uses some special features of podman that allow
|
||||||
# nested containerization, so you must build with e.g.
|
# a process executing as part of a container build to generate a new container
|
||||||
# podman build --security-opt=label=disable --cap-add=all --device /dev/fuse <...>
|
# image "from scratch".
|
||||||
|
|
||||||
# NOTE: This container build will output a single giant layer. You can either
|
|
||||||
# run the "rechunker" on the output of this build (see bootc-base-imagectl.md),
|
|
||||||
# or build the split version directly with `just build --chunkah`
|
|
||||||
# (or if using podman/buildah directly, add `--build-arg FINAL=chunked
|
|
||||||
# --skip-unused-stages=false -v $PWD:/run/src`).
|
|
||||||
|
|
||||||
# Override this repos container to control the base image package versions. For
|
|
||||||
# example, podman build --from=quay.io/fedora/fedora:41 will get you a system
|
|
||||||
# that uses Fedora 41 packages. Or inject arbitrary yum repos (COPR, etc) here.
|
|
||||||
#
|
#
|
||||||
# Note we also support --build-arg REPOS_IMAGE=quay.io/fedora/fedora:41 here
|
# This container build uses nested containerization, so you must build with e.g.
|
||||||
# since konflux doesn't yet support --from.
|
# podman build --security-opt=label=disable --cap-add=all --device /dev/fuse <...>
|
||||||
ARG REPOS_IMAGE=quay.io/fedora/fedora:rawhide
|
#
|
||||||
ARG BUILDER_IMAGE=quay.io/fedora/fedora:rawhide
|
# # Why are we doing this?
|
||||||
# Either 'unchunked' or 'chunked'. Determines whether we take the chunkah path.
|
#
|
||||||
ARG FINAL=unchunked
|
# Today this base image build process uses rpm-ostree. There is a lot of things that
|
||||||
|
# rpm-ostree does when generating a container image...but important parts include:
|
||||||
|
#
|
||||||
|
# - auto-updating labels in the container metadata
|
||||||
|
# - Generating "chunked" content-addressed reproducible image layers (notice
|
||||||
|
# how there are ~60 layers in the generated image)
|
||||||
|
#
|
||||||
|
# The latter bit in particular is currently impossible to do from Containerfile.
|
||||||
|
# A future goal is adding some support for this in a way that can be honored by
|
||||||
|
# buildah (xref https://github.com/containers/podman/discussions/12605)
|
||||||
|
#
|
||||||
|
# # Why does this build process require additional privileges?
|
||||||
|
#
|
||||||
|
# Because it's generating a base image and uses containerbuildcontextization features itself.
|
||||||
|
# In the future some of this can be lifted.
|
||||||
|
|
||||||
FROM $REPOS_IMAGE as repos
|
FROM quay.io/fedora/fedora:40 as repos
|
||||||
# BOOTSTRAPPING: This can be any image that has rpm-ostree, selinux-policy-targeted
|
|
||||||
# and python3 (for bootc-base-imagectl).
|
FROM quay.io/centos-bootc/bootc-image-builder:latest as builder
|
||||||
FROM $BUILDER_IMAGE as builder
|
ARG MANIFEST=fedora-bootc.yaml
|
||||||
RUN dnf -y install rpm-ostree selinux-policy-targeted python3
|
COPY --from=repos /etc/dnf/vars /etc/dnf/vars
|
||||||
ARG MANIFEST=fedora-standard
|
COPY --from=repos /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-* /etc/pki/rpm-gpg
|
||||||
# The input git repository has .repo files committed to git rpm-ostree has historically
|
# The input git repository has .repo files committed to git rpm-ostree has historically
|
||||||
# emphasized that. But here, we are fetching the repos from the container base image.
|
# emphasized that. But here, we are fetching the repos from the container base image.
|
||||||
# So copy the source, and delete the hardcoded ones in git, and use the container base
|
# So copy the source, and delete the hardcoded ones in git, and use the container base
|
||||||
# image ones. We can drop the ones commited to git when we hard switch to Containerfile.
|
# image ones. We can drop the ones commited to git when we hard switch to Containerfile.
|
||||||
COPY . /src
|
COPY . /src
|
||||||
# Avoid umask/permission leakage from the outer environment; ref e.g.
|
|
||||||
# - https://github.com/coreos/coreos-assembler/pull/4277
|
|
||||||
# - https://gitlab.com/fedora/bootc/base-images/-/merge_requests/254
|
|
||||||
# This invocation preserves only the executable bit, and specifically we want to remove:
|
|
||||||
# - setuid/setgid
|
|
||||||
# - world writability
|
|
||||||
# NOTE: This adds world-readability, which is what we intend here as all the content
|
|
||||||
# is public; there's no secrets in our container build.
|
|
||||||
RUN chmod -R a=rX,u+w /src
|
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
RUN rm -vf /src/*.repo
|
RUN rm -vf /src/*.repo
|
||||||
RUN --mount=type=cache,rw,id=bootc-base-image-cache,target=/cache \
|
COPY --from=repos /etc/yum.repos.d/*.repo /src
|
||||||
--mount=type=bind,rw,from=repos,src=/,dst=/repos <<EORUN
|
RUN --mount=type=cache,target=/workdir --mount=type=bind,rw=true,src=.,dst=/buildcontext,bind-propagation=shared rpm-ostree compose image \
|
||||||
set -xeuo pipefail
|
--image-config fedora-bootc-config.json --cachedir=/workdir --format=ociarchive --initialize ${MANIFEST} /buildcontext/out.ociarchive
|
||||||
# Put our manifests into the builder image in the same location they'll be in the
|
|
||||||
# final image.
|
|
||||||
./install-manifests
|
|
||||||
# And embed the rebuild script
|
|
||||||
install -m 0755 -t /usr/libexec ./bootc-base-imagectl
|
|
||||||
# Verify that listing works
|
|
||||||
/usr/libexec/bootc-base-imagectl list >/dev/null
|
|
||||||
# Run the build script in the same way we expect custom images to do, and also
|
|
||||||
# "re-inject" the manifests into the target, so secondary container builds can use it.
|
|
||||||
/usr/libexec/bootc-base-imagectl build-rootfs \
|
|
||||||
--cachedir=/cache --reinject --manifest=${MANIFEST} /repos /target-rootfs
|
|
||||||
EORUN
|
|
||||||
|
|
||||||
# This pulls in the rootfs generated in the previous step
|
FROM oci-archive:./out.ociarchive
|
||||||
FROM scratch AS unchunked
|
# Need to reference builder here to force ordering. But since we have to run
|
||||||
COPY --from=builder /target-rootfs/ /
|
# something anyway, we might as well cleanup after ourselves.
|
||||||
|
RUN --mount=type=bind,from=builder,src=.,target=/var/tmp --mount=type=bind,rw=true,src=.,dst=/buildcontext,bind-propagation=shared rm /buildcontext/out.ociarchive
|
||||||
FROM builder AS rechunker
|
|
||||||
RUN dnf -y install chunkah
|
|
||||||
ARG CHUNKAH_ARGS=""
|
|
||||||
RUN --mount=from=unchunked,src=/,target=/chunkah,ro \
|
|
||||||
--mount=type=bind,target=/run/src,rw \
|
|
||||||
/usr/libexec/bootc-base-imagectl rechunk --chunkah ${CHUNKAH_ARGS} \
|
|
||||||
> /run/src/out.ociarchive
|
|
||||||
FROM oci-archive:out.ociarchive AS chunked
|
|
||||||
|
|
||||||
FROM $FINAL
|
|
||||||
LABEL containers.bootc 1
|
|
||||||
# This is an ad-hoc way for us to reference bootc-image-builder in
|
|
||||||
# a way that in theory client tooling can inspect and find. Today
|
|
||||||
# it isn't widely used.
|
|
||||||
LABEL bootc.diskimage-builder quay.io/centos-bootc/bootc-image-builder
|
|
||||||
# https://pagure.io/fedora-kiwi-descriptions/pull-request/52
|
|
||||||
ENV container=oci
|
|
||||||
# Make systemd the default
|
|
||||||
STOPSIGNAL SIGRTMIN+3
|
|
||||||
CMD ["/sbin/init"]
|
|
||||||
|
|
|
||||||
91
Justfile
91
Justfile
|
|
@ -1,91 +0,0 @@
|
||||||
# Development entry point for fedora-bootc base images.
|
|
||||||
# Run `just --list` to see available targets.
|
|
||||||
# See CONTRIBUTING.md for more information.
|
|
||||||
# --------------------------------------------------------------------
|
|
||||||
|
|
||||||
# Content tier: standard (default), minimal, minimal-plus, iot
|
|
||||||
tier := env("TIER", "standard")
|
|
||||||
# Fedora version: rawhide (default), 43, 44, etc.
|
|
||||||
fedora_version := env("FEDORA_VERSION", "rawhide")
|
|
||||||
# Container build tool
|
|
||||||
builder := env("BUILDER", "buildah")
|
|
||||||
# Extra arguments for the builder
|
|
||||||
builder_extra := env("BUILDER_EXTRA", "")
|
|
||||||
# Output image name
|
|
||||||
image := "localhost/fedora-bootc"
|
|
||||||
|
|
||||||
# These are required for the nested containerization used by rpm-ostree
|
|
||||||
# inside the Containerfile.
|
|
||||||
priv_args := "--security-opt=label=disable --cap-add=all --device /dev/fuse"
|
|
||||||
|
|
||||||
# Internal
|
|
||||||
_build_cmd := builder + " build"
|
|
||||||
_tag := image + if tier == "standard" { "" } else { ":" + tier }
|
|
||||||
_base_image := "quay.io/fedora/fedora:" + fedora_version
|
|
||||||
_version_args := if fedora_version == "rawhide" { "" } else { "--build-arg=REPOS_IMAGE=" + _base_image + " --build-arg=BUILDER_IMAGE=" + _base_image }
|
|
||||||
_chunkah_args := "--build-arg FINAL=chunked --skip-unused-stages=false -v " + justfile_directory() + ":/run/src"
|
|
||||||
|
|
||||||
# ============================================================================
|
|
||||||
# Core targets
|
|
||||||
# ============================================================================
|
|
||||||
|
|
||||||
# Build the container image
|
|
||||||
[group('core')]
|
|
||||||
[arg("chunkah", long, value="true")]
|
|
||||||
build chunkah="": _check-tier
|
|
||||||
{{_build_cmd}} -f Containerfile --no-cache \
|
|
||||||
-t {{_tag}} {{priv_args}} \
|
|
||||||
{{_version_args}} {{builder_extra}} \
|
|
||||||
{{if chunkah != "" { _chunkah_args } else { "" }}} \
|
|
||||||
--build-arg=MANIFEST=fedora-{{tier}} .
|
|
||||||
|
|
||||||
# Build and test
|
|
||||||
[group('core')]
|
|
||||||
test: build
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -xeuo pipefail
|
|
||||||
{{_build_cmd}} -f tests/rootfs/Dockerfile -t localhost/test --from {{_tag}} tests/rootfs
|
|
||||||
# The derive and sysusers tests only apply to the standard tier
|
|
||||||
if [ "{{tier}}" = "standard" ]; then
|
|
||||||
{{_build_cmd}} -f tests/Containerfile.test-derive --no-cache \
|
|
||||||
-t localhost/fedora-bootc-derived {{priv_args}} {{builder_extra}} tests
|
|
||||||
{{_build_cmd}} -f tests/Containerfile.test-sysusers --no-cache \
|
|
||||||
-t localhost/fedora-bootc-derived {{priv_args}} {{builder_extra}} tests
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Run validation checks (whitespace, shellcheck, YAML)
|
|
||||||
[group('core')]
|
|
||||||
validate:
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -xeuo pipefail
|
|
||||||
./ci/find-whitespace
|
|
||||||
./ci/shellcheck
|
|
||||||
./ci/validate
|
|
||||||
|
|
||||||
# Show current configuration
|
|
||||||
[group('core')]
|
|
||||||
show-config:
|
|
||||||
@echo "TIER={{tier}}"
|
|
||||||
@echo "FEDORA_VERSION={{fedora_version}}"
|
|
||||||
@echo "BUILDER={{builder}}"
|
|
||||||
@echo "image tag={{_tag}}"
|
|
||||||
@echo "base image={{_base_image}}"
|
|
||||||
|
|
||||||
# ============================================================================
|
|
||||||
# CI targets (used by .gitlab-ci.yml)
|
|
||||||
# ============================================================================
|
|
||||||
|
|
||||||
# Run all CI checks: validate + build and test all tiers
|
|
||||||
[group('ci')]
|
|
||||||
ci: validate
|
|
||||||
just tier=minimal test
|
|
||||||
just tier=minimal-plus test
|
|
||||||
just tier=standard test
|
|
||||||
|
|
||||||
# ============================================================================
|
|
||||||
# Internal
|
|
||||||
# ============================================================================
|
|
||||||
|
|
||||||
[private]
|
|
||||||
_check-tier:
|
|
||||||
@test -f fedora-{{tier}}.yaml || { echo "error: unknown tier '{{tier}}' (valid: standard, minimal, minimal-plus, iot)"; exit 1; }
|
|
||||||
59
README.md
59
README.md
|
|
@ -9,57 +9,24 @@ been extremely successful. This project aims to apply the same technique for
|
||||||
bootable host systems - using standard OCI/Docker containers as a transport and
|
bootable host systems - using standard OCI/Docker containers as a transport and
|
||||||
delivery format for base operating system updates.
|
delivery format for base operating system updates.
|
||||||
|
|
||||||
## Building images
|
## Building
|
||||||
|
|
||||||
The current default user experience is to build *layered* images on top of the official
|
First, the expectation is that most users will want to build *layered* images
|
||||||
binary base images produced and tested by this project. See the documentation[5] for more info.
|
on top of the official base images. See the documentation[5] for more info.
|
||||||
|
|
||||||
If you want total control over the image, you don't need to fork this repository.
|
Building the images in this repo can be done with `podman build` as with any
|
||||||
Instead, you can use the existing container as a "builder" to make new images.
|
other application image (note that building with `docker` is not currently
|
||||||
For more information, see the documentation[6].
|
supported). You need to enable some privileges for technical reasons.
|
||||||
|
|
||||||
## Contributing
|
```
|
||||||
|
podman build --security-opt=label=disable --cap-add=all \
|
||||||
See [CONTRIBUTING.md](CONTRIBUTING.md) for the full development workflow.
|
--device /dev/fuse -t localhost/fedora-bootc .
|
||||||
|
|
||||||
## Fedora versions
|
|
||||||
|
|
||||||
By default, the base images are built for Fedora rawhide. To build against a
|
|
||||||
different Fedora version:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
FEDORA_VERSION=43 just build
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Content sets/tiers
|
See the `Containerfile` for more details.
|
||||||
|
|
||||||
Documentation above referenced the scratch[6] flow,
|
You are of course also free to fork, customize, and build base images yourself.
|
||||||
but there is also a `minimal-plus` that is not exposed as a stable
|
See this page[6] of the documentation for more information.
|
||||||
interface, but may be used by other images in Fedora.
|
|
||||||
|
|
||||||
- **standard**: This image is the default, what is published as
|
|
||||||
<https://quay.io/repository/fedora/fedora-bootc>
|
|
||||||
- **minimal**: This content set is more of a convenient centralization point for CI
|
|
||||||
and curation around a package set that is intended as a starting point for
|
|
||||||
a container base image.
|
|
||||||
- **minimal-plus**: This content set is intended to be the shared base used by all image-based
|
|
||||||
Fedora variants (IoT, Atomic Desktops, and CoreOS).
|
|
||||||
|
|
||||||
**standard** inherits from **minimal-plus** and **minimal-plus** in turn inherit from **minimal**.
|
|
||||||
|
|
||||||
- **eln** (manifest `fedora-eln`): Standard base image for Enterprise Linux Next (ELN). Uses distro `fedora` and inherits from standard; built with ELN repos. The image produced by this manifest is published as **fedora-eln**.
|
|
||||||
|
|
||||||
All non-trivial changes to **minimal** and **minimal-plus** should be ACKed by at least
|
|
||||||
one stakeholder of each Fedora variant WGs.
|
|
||||||
|
|
||||||
### Available Tiers + Versions
|
|
||||||
|
|
||||||
> **NOTE:** The location and naming of these images is subject to change.
|
|
||||||
|
|
||||||
| Version | standard | minimal | minimal-plus |
|
|
||||||
| ------- | -------- | ------- | ------------ |
|
|
||||||
| Rawhide | quay.io/bootc-devel/fedora-bootc-rawhide-standard | quay.io/bootc-devel/fedora-bootc-rawhide-minimal | quay.io/bootc-devel/fedora-bootc-rawhide-minimal-plus |
|
|
||||||
| Fedora 43 | quay.io/bootc-devel/fedora-bootc-43-standard | quay.io/bootc-devel/fedora-bootc-43-minimal | quay.io/bootc-devel/fedora-bootc-43-minimal-plus |
|
|
||||||
|
|
||||||
## More information
|
## More information
|
||||||
|
|
||||||
|
|
@ -77,4 +44,4 @@ Documentation: <https://docs.fedoraproject.org/en-US/bootc/>
|
||||||
[3]: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit
|
[3]: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit
|
||||||
[4]: https://pre-commit.com/
|
[4]: https://pre-commit.com/
|
||||||
[5]: https://docs.fedoraproject.org/en-US/bootc/building-containers/
|
[5]: https://docs.fedoraproject.org/en-US/bootc/building-containers/
|
||||||
[6]: https://docs.fedoraproject.org/en-US/bootc/building-from-scratch/
|
[6]: https://docs.fedoraproject.org/en-US/bootc/building-custom-base/
|
||||||
|
|
|
||||||
306
RELEASE.md
306
RELEASE.md
|
|
@ -1,306 +0,0 @@
|
||||||
# Fedora Base Bootc Container Publishing
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
The `fedora-base-bootc` image is published via **two parallel mechanisms**:
|
|
||||||
|
|
||||||
1. **Pungi-IoT + cloud-image-uploader** → `quay.io/fedora/fedora-bootc` (Production)
|
|
||||||
2. **Konflux** → `quay.io/bootc-devel/fedora-bootc-*` (Development)
|
|
||||||
|
|
||||||
The goal is to move to Konflux and deprecate the Pungi-IoT mechanism.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Part 1: Production Flow (Pungi-IoT)
|
|
||||||
|
|
||||||
### Repositories
|
|
||||||
|
|
||||||
| Repository | URL | Purpose |
|
|
||||||
|------------|-----|---------|
|
|
||||||
| base-images | https://pagure.io/fedora-iot/base-images | Image definition (treefiles, packages) |
|
|
||||||
| pungi-iot | https://pagure.io/fedora-iot/pungi-iot | Compose configuration |
|
|
||||||
| cloud-image-uploader | https://pagure.io/cloud-image-uploader | Uploads images to registries |
|
|
||||||
| ansible | https://pagure.io/fedora-infra/ansible | Infrastructure deployment |
|
|
||||||
|
|
||||||
### Compose Cadence
|
|
||||||
|
|
||||||
| Compose | Schedule | Host |
|
|
||||||
|---------|----------|------|
|
|
||||||
| IoT Rawhide | **Nightly** | compose-iot01.rdu3.fedoraproject.org |
|
|
||||||
|
|
||||||
### Flow
|
|
||||||
|
|
||||||
```
|
|
||||||
┌──────────────────────────────────────────────────────────────────┐
|
|
||||||
│ 1. IoT COMPOSE (compose-iot01.rdu3.fedoraproject.org) │
|
|
||||||
│ Trigger: Daily cron │
|
|
||||||
│ Script: pungi-iot/nightly.sh │
|
|
||||||
│ Config: pungi-iot/fedora-iot.conf │
|
|
||||||
│ Treefile: base-images/fedora-rawhide.yaml │
|
|
||||||
│ │
|
|
||||||
│ Output: /mnt/koji/compose/iot/<compose-id>/compose/ │
|
|
||||||
│ └── <arch>/images/Fedora-base-bootc-<ver>.ociarchive │
|
|
||||||
└──────────────────────────────────────────────────────────────────┘
|
|
||||||
│
|
|
||||||
▼ (fedora-messaging)
|
|
||||||
┌──────────────────────────────────────────────────────────────────┐
|
|
||||||
│ 2. CLOUD-IMAGE-UPLOADER (OpenShift) │
|
|
||||||
│ │
|
|
||||||
│ Listens: org.fedoraproject.prod.pungi.compose.status.change │
|
|
||||||
│ Maps: subvariant "base" → repository "fedora-bootc" │
|
|
||||||
│ Pushes via skopeo to configured registries │
|
|
||||||
└──────────────────────────────────────────────────────────────────┘
|
|
||||||
│
|
|
||||||
▼
|
|
||||||
┌──────────────────────────────────────────────────────────────────┐
|
|
||||||
│ 3. CONTAINER REGISTRIES │
|
|
||||||
│ │
|
|
||||||
│ - quay.io/fedora/fedora-bootc │
|
|
||||||
│ - registry.fedoraproject.org/fedora-bootc │
|
|
||||||
└──────────────────────────────────────────────────────────────────┘
|
|
||||||
```
|
|
||||||
|
|
||||||
### Key Configuration Files
|
|
||||||
|
|
||||||
#### 1. Compose: Image Build Definition
|
|
||||||
|
|
||||||
**File:** `pungi-iot/fedora-iot.conf` (lines 276-300)
|
|
||||||
|
|
||||||
```python
|
|
||||||
ostree_container = {
|
|
||||||
"^IoT$": [
|
|
||||||
{
|
|
||||||
"config_url": "https://pagure.io/fedora-iot/base-images",
|
|
||||||
"config_branch": "main",
|
|
||||||
"treefile": "fedora-rawhide.yaml",
|
|
||||||
"arches": ["x86_64", "aarch64", "ppc64le", "s390x"],
|
|
||||||
"subvariant": "base", # <-- Used for mapping
|
|
||||||
"name": "Fedora-base-bootc",
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 2. Uploader: Subvariant to Repository Mapping
|
|
||||||
|
|
||||||
**File:** `ansible/roles/openshift-apps/cloud-image-uploader/templates/config.toml`
|
|
||||||
|
|
||||||
```toml
|
|
||||||
[consumer_config.container.repos]
|
|
||||||
base = "fedora-bootc" # subvariant "base" → repo "fedora-bootc"
|
|
||||||
IoT = "fedora-iot"
|
|
||||||
```
|
|
||||||
|
|
||||||
#### 3. Uploader: Target Registries
|
|
||||||
|
|
||||||
**File:** `ansible/roles/openshift-apps/cloud-image-uploader/templates/config.toml`
|
|
||||||
|
|
||||||
```toml
|
|
||||||
[[consumer_config.container.registries]]
|
|
||||||
url = "registry.fedoraproject.org"
|
|
||||||
|
|
||||||
[[consumer_config.container.registries]]
|
|
||||||
url = "quay.io/fedora"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Tags Applied
|
|
||||||
|
|
||||||
| Compose Type | Tags |
|
|
||||||
|--------------|------|
|
|
||||||
| Rawhide | `<version>`, `rawhide` |
|
|
||||||
| Current Stable | `<version>`, `latest` |
|
|
||||||
| Branched | `<version>` |
|
|
||||||
|
|
||||||
### Common Changes (Production)
|
|
||||||
|
|
||||||
| Task | Where to Change |
|
|
||||||
|------|-----------------|
|
|
||||||
| Add/remove packages from image | `base-images/` repo (manifest YAML files) |
|
|
||||||
| Change architectures | `pungi-iot/fedora-iot.conf` → `ostree_container.arches` |
|
|
||||||
| Add new registry | `ansible/.../cloud-image-uploader/templates/config.toml` → `registries` |
|
|
||||||
| Change repository name | `ansible/.../cloud-image-uploader/templates/config.toml` → `repos` mapping |
|
|
||||||
| Change tagging logic | `cloud-image-uploader/.../handler.py` |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Part 2: Development Flow (Konflux)
|
|
||||||
|
|
||||||
### Repositories
|
|
||||||
|
|
||||||
| Repository | URL | Purpose |
|
|
||||||
|------------|-----|---------|
|
|
||||||
| compose-images | https://gitlab.com/fedora/bootc/compose-images | Generates images containing RPMs used by base-images |
|
|
||||||
| base-images | https://gitlab.com/fedora/bootc/base-images | Image definitions + Tekton build pipelines |
|
|
||||||
| tekton-catalog | https://gitlab.com/fedora/bootc/tekton-catalog | Release pipeline definitions |
|
|
||||||
| tenants-config | https://gitlab.com/fedora/infrastructure/konflux/tenants-config | Konflux tenant configuration |
|
|
||||||
|
|
||||||
### Flow
|
|
||||||
|
|
||||||
```
|
|
||||||
┌──────────────────────────────────────────────────────────────────────┐
|
|
||||||
│ 0. COMPOSE IMAGES │
|
|
||||||
│ │
|
|
||||||
│ Source: gitlab.com/fedora/bootc/compose-images │
|
|
||||||
│ Output: quay.io/bootc-devel/fedora-bootc-<version>-compose │
|
|
||||||
│ │
|
|
||||||
│ These images contain the RPM repositories used by base-images. │
|
|
||||||
└──────────────────────────────────────────────────────────────────────┘
|
|
||||||
│
|
|
||||||
▼
|
|
||||||
┌──────────────────────────────────────────────────────────────────────┐
|
|
||||||
│ 1. BUILD (triggered by git push or Renovate) │
|
|
||||||
│ │
|
|
||||||
│ Source: gitlab.com/fedora/bootc/base-images │
|
|
||||||
│ Pipeline: .tekton/fedora-bootc-*-push.yaml │
|
|
||||||
│ Input: REPOS_IMAGE from compose-images │
|
|
||||||
│ │
|
|
||||||
│ Output: quay.io/konflux-fedora/bootc-tenant/ │
|
|
||||||
│ fedora-bootc-<version>-<tier>:{{revision}} │
|
|
||||||
└──────────────────────────────────────────────────────────────────────┘
|
|
||||||
│
|
|
||||||
▼ (Konflux creates Snapshot)
|
|
||||||
┌──────────────────────────────────────────────────────────────────────┐
|
|
||||||
│ 2. RELEASE (auto-triggered by ReleasePlan) │
|
|
||||||
│ │
|
|
||||||
│ ReleasePlan: release-fedora-bootc-to-quay-io │
|
|
||||||
│ Pipeline: push-to-external-registry │
|
|
||||||
└──────────────────────────────────────────────────────────────────────┘
|
|
||||||
│
|
|
||||||
▼
|
|
||||||
┌──────────────────────────────────────────────────────────────────────┐
|
|
||||||
│ 3. OUTPUT │
|
|
||||||
│ │
|
|
||||||
│ quay.io/bootc-devel/fedora-bootc-<version>-standard │
|
|
||||||
│ quay.io/bootc-devel/fedora-bootc-<version>-minimal │
|
|
||||||
│ quay.io/bootc-devel/fedora-bootc-<version>-minimal-plus │
|
|
||||||
│ quay.io/bootc-devel/fedora-bootc-<version>-iot │
|
|
||||||
└──────────────────────────────────────────────────────────────────────┘
|
|
||||||
```
|
|
||||||
|
|
||||||
### Image Tiers
|
|
||||||
|
|
||||||
See the [README](README.md) for details on the different image tiers (minimal, minimal-plus, standard, iot).
|
|
||||||
|
|
||||||
### Renovate Automation
|
|
||||||
|
|
||||||
Renovate automatically updates dependencies. See the description comments in [renovate.json](renovate.json) for scheduling and configuration details.
|
|
||||||
|
|
||||||
### Common Changes (Development)
|
|
||||||
|
|
||||||
| Task | Where to Change |
|
|
||||||
|------|-----------------|
|
|
||||||
| Add new component | `tenants-config/.../components/` |
|
|
||||||
| Change destination registry | `tenants-config/.../releaseplans/release-to-quay-io/` |
|
|
||||||
| Modify release pipeline | `tekton-catalog/pipelines/push-to-external-registry/` |
|
|
||||||
| Add new Fedora version | See [Adding a New Fedora Version](#adding-a-new-fedora-version-to-konflux) |
|
|
||||||
| Remove EOL Fedora version | See [Removing an EOL Fedora Version](#removing-an-eol-fedora-version-from-konflux) |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Part 3: Managing Fedora Versions in Konflux
|
|
||||||
|
|
||||||
This section describes how to add a new Fedora version or remove an EOL version from Konflux.
|
|
||||||
|
|
||||||
**Example scenario:** Fedora 42 is going EOL and needs to be removed. Rawhide (F45) is branching, so we need to add Fedora 44 as the new branched release.
|
|
||||||
|
|
||||||
### Adding a New Fedora Version to Konflux
|
|
||||||
|
|
||||||
#### Step 1: Add Release to compose-images Repo
|
|
||||||
|
|
||||||
**Repository:** https://gitlab.com/fedora/bootc/compose-images
|
|
||||||
|
|
||||||
Add the new release definition so that compose images are generated for the new version. This must be done first as base-images depends on these compose images.
|
|
||||||
|
|
||||||
1. Create new Tekton pipelines in `.tekton/` for the new version (copy from existing version)
|
|
||||||
2. Update `RELEASEVER`, `COMPOSE_BRANCHED`, and labels in the new pipelines
|
|
||||||
3. Add a package rule for the new version in `renovate.json`
|
|
||||||
|
|
||||||
See [MR !187](https://gitlab.com/fedora/bootc/compose-images/-/merge_requests/187) for reference (F44 addition).
|
|
||||||
|
|
||||||
#### Step 2: Create Tekton Pipelines (base-images repo)
|
|
||||||
|
|
||||||
**Repository:** https://gitlab.com/fedora/bootc/base-images
|
|
||||||
|
|
||||||
Copy the current release pipelines to the new version and update rawhide for the next version.
|
|
||||||
|
|
||||||
See the code snippets used for F44 in [MR !363 comment](https://gitlab.com/fedora/bootc/base-images/-/merge_requests/363#note_3071603283) for reference.
|
|
||||||
|
|
||||||
#### Step 3: Update Renovate Configuration (base-images repo)
|
|
||||||
|
|
||||||
Add package rules for the new version in `renovate.json`. See the existing rules for other versions as a template.
|
|
||||||
|
|
||||||
#### Step 4: Create Tenant Configuration (tenants-config repo)
|
|
||||||
|
|
||||||
**Repository:** https://gitlab.com/fedora/infrastructure/konflux/tenants-config
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd clusters/kflux-fedora-01/tenants/bootc-tenant/applications/fedora-bootc/
|
|
||||||
NEW_RELEASE=44
|
|
||||||
|
|
||||||
# Copy from rawhide
|
|
||||||
cp -r rawhide $NEW_RELEASE
|
|
||||||
|
|
||||||
# Update version references
|
|
||||||
sed -i "s/compose-rawhide-id/compose-branched-id/" $NEW_RELEASE/releaseplans/release-to-quay-io/kustomization.yaml
|
|
||||||
find "${NEW_RELEASE}/" -type f | xargs sed -i "s/rawhide/$NEW_RELEASE/g"
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
Add the new version to `fedora-bootc/kustomization.yaml`:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
resources:
|
|
||||||
- "rawhide"
|
|
||||||
- "44" # <-- Add new version
|
|
||||||
- "43"
|
|
||||||
- "42"
|
|
||||||
```
|
|
||||||
|
|
||||||
See [MR !237](https://gitlab.com/fedora/infrastructure/konflux/tenants-config/-/merge_requests/237) for reference (F45 addition).
|
|
||||||
|
|
||||||
### Removing an EOL Fedora Version from Konflux
|
|
||||||
|
|
||||||
When a Fedora version reaches EOL (e.g., F42), follow these steps:
|
|
||||||
|
|
||||||
#### Step 1: Remove Tekton Pipelines (base-images repo)
|
|
||||||
|
|
||||||
**Repository:** https://gitlab.com/fedora/bootc/base-images
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd .tekton/
|
|
||||||
git rm fedora-bootc-42-*.yaml
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Step 2: Remove Renovate Rules (base-images repo)
|
|
||||||
|
|
||||||
Remove the package rules for F42 from `renovate.json` (the two blocks matching `fedora-bootc-42-*`).
|
|
||||||
|
|
||||||
#### Step 3: Remove Tenant Configuration (tenants-config repo)
|
|
||||||
|
|
||||||
**Repository:** https://gitlab.com/fedora/infrastructure/konflux/tenants-config
|
|
||||||
|
|
||||||
Remove the version from `fedora-bootc/kustomization.yaml` and delete the directory:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd cluster/kfluxfedorap01/bootc-tenant/applications/fedora-bootc/
|
|
||||||
|
|
||||||
# Edit kustomization.yaml to remove "42" from resources
|
|
||||||
|
|
||||||
# Delete the version directory
|
|
||||||
rm -rf 42/
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Step 4: Remove from compose-images Repo
|
|
||||||
|
|
||||||
**Repository:** https://gitlab.com/fedora/bootc/compose-images
|
|
||||||
|
|
||||||
Remove the EOL release pipelines and renovate rules:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd .tekton/
|
|
||||||
git rm fedora-bootc-42-compose-*.yaml
|
|
||||||
```
|
|
||||||
|
|
||||||
Also remove the package rule for F42 from `renovate.json` (the block matching `fedora-42-.*-compose`).
|
|
||||||
|
|
@ -1,237 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import json
|
|
||||||
import os
|
|
||||||
import os.path as path
|
|
||||||
import shlex
|
|
||||||
import shutil
|
|
||||||
import stat
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
import tempfile
|
|
||||||
|
|
||||||
ARCH = os.uname().machine
|
|
||||||
MANIFESTDIR = 'usr/share/doc/bootc-base-imagectl/manifests'
|
|
||||||
|
|
||||||
def run_build_rootfs(args):
|
|
||||||
"""
|
|
||||||
Regenerates a base image using a build configuration.
|
|
||||||
"""
|
|
||||||
target = args.target
|
|
||||||
for fn in [f'{args.manifest}.yaml', f'{args.manifest}.hidden.yaml']:
|
|
||||||
manifest_path = f'/{MANIFESTDIR}/{fn}'
|
|
||||||
if os.path.exists(manifest_path):
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
raise Exception(f"manifest not found: {args.manifest}")
|
|
||||||
|
|
||||||
# A fix for https://issues.redhat.com/browse/RHEL-108989
|
|
||||||
subprocess.check_call(['dnf', 'repolist'], stdout=subprocess.DEVNULL)
|
|
||||||
|
|
||||||
rpmostree_argv = ['rpm-ostree', 'compose', 'rootfs']
|
|
||||||
|
|
||||||
override_manifest = {}
|
|
||||||
tmp_ostree_repo = None
|
|
||||||
if args.install:
|
|
||||||
additional_pkgs = [shlex.quote(p) for p in set(args.install)]
|
|
||||||
if len(additional_pkgs) > 0:
|
|
||||||
override_manifest['packages'] = list(additional_pkgs)
|
|
||||||
if args.exclude:
|
|
||||||
exclude_pkgs = [shlex.quote(p) for p in set(args.exclude)]
|
|
||||||
if len(exclude_pkgs) > 0:
|
|
||||||
override_manifest['exclude-packages'] = list(exclude_pkgs)
|
|
||||||
if args.add_dir:
|
|
||||||
tmp_ostree_repo = tempfile.mkdtemp(dir='/var/tmp')
|
|
||||||
subprocess.check_call(['ostree', 'init', '--repo', tmp_ostree_repo, '--mode=bare'])
|
|
||||||
rpmostree_argv.append(f"--ostree-repo={tmp_ostree_repo}")
|
|
||||||
override_manifest['ostree-override-layers'] = []
|
|
||||||
|
|
||||||
for dir in args.add_dir:
|
|
||||||
print(f"Processing --add-dir for {dir}")
|
|
||||||
base = os.path.basename(dir)
|
|
||||||
abs = os.path.realpath(dir)
|
|
||||||
if not os.path.exists(abs):
|
|
||||||
raise Exception(f"add dir directory not found: {abs}")
|
|
||||||
# capture output to hide commit digest printed
|
|
||||||
subprocess.check_output(['ostree', 'commit', '--repo', tmp_ostree_repo, '-b', f'overlay/{base}', abs,
|
|
||||||
'--owner-uid=0', '--owner-gid=0', '--no-xattrs', '--mode-ro-executables'])
|
|
||||||
override_manifest['ostree-override-layers'].append(f'overlay/{base}')
|
|
||||||
if args.no_docs:
|
|
||||||
override_manifest['documentation'] = False
|
|
||||||
if args.recommends:
|
|
||||||
override_manifest['recommends'] = True
|
|
||||||
if args.no_initramfs:
|
|
||||||
override_manifest['no-initramfs'] = True
|
|
||||||
if args.sysusers:
|
|
||||||
override_manifest['sysusers'] = 'compose-forced'
|
|
||||||
passwd_mode = 'nobody' if args.nobody_99 else 'none'
|
|
||||||
override_manifest['variables'] = {'passwd_mode': passwd_mode}
|
|
||||||
if args.repo:
|
|
||||||
override_manifest['repos'] = args.repo
|
|
||||||
|
|
||||||
tmp_manifest = None
|
|
||||||
if override_manifest:
|
|
||||||
override_manifest['include'] = manifest_path
|
|
||||||
tmp_manifest = tempfile.NamedTemporaryFile(mode='w', encoding='utf-8', suffix='.json', delete=False)
|
|
||||||
json.dump(override_manifest, tmp_manifest)
|
|
||||||
tmp_manifest.close()
|
|
||||||
manifest_path = tmp_manifest.name
|
|
||||||
|
|
||||||
tmp_lockfile = None
|
|
||||||
if args.lock:
|
|
||||||
lockfile = {'packages': {}}
|
|
||||||
for nevra in args.lock:
|
|
||||||
# we support passing either a NEVRA or a NEVR
|
|
||||||
name, ev, r_or_ra = nevra.rsplit('-', 2)
|
|
||||||
evr_or_evra = f'{ev}-{r_or_ra}'
|
|
||||||
field = 'evra' if r_or_ra.endswith(('.noarch', f'.{ARCH}')) else 'evr'
|
|
||||||
lockfile['packages'][name] = {field: evr_or_evra}
|
|
||||||
|
|
||||||
tmp_lockfile = tempfile.NamedTemporaryFile(mode='w', encoding='utf-8', suffix='.json', delete=False)
|
|
||||||
json.dump(lockfile, tmp_lockfile)
|
|
||||||
tmp_lockfile.close()
|
|
||||||
rpmostree_argv.append(f"--lockfile={tmp_lockfile.name}")
|
|
||||||
|
|
||||||
try:
|
|
||||||
if args.cachedir != "":
|
|
||||||
rpmostree_argv.append(f"--cachedir={args.cachedir}")
|
|
||||||
# Assume we can mutate alternative roots
|
|
||||||
if args.source_root != '/':
|
|
||||||
rpmostree_argv.append(f'--source-root-rw={args.source_root}')
|
|
||||||
else:
|
|
||||||
# But we shouldn't need to mutate the default root
|
|
||||||
rpmostree_argv.append('--source-root=/')
|
|
||||||
rpmostree_argv.extend([manifest_path, target])
|
|
||||||
# Perform the build
|
|
||||||
subprocess.run(rpmostree_argv, check=True)
|
|
||||||
# Work around https://github.com/coreos/rpm-ostree/pull/5322
|
|
||||||
root_mode = os.lstat(target).st_mode
|
|
||||||
if (root_mode & stat.S_IXOTH) == 0:
|
|
||||||
print("Updating rootfs mode")
|
|
||||||
os.chmod(target, root_mode | (0o555))
|
|
||||||
# And run the bootc linter for good measure
|
|
||||||
subprocess.run([
|
|
||||||
'bootc',
|
|
||||||
'container',
|
|
||||||
'lint',
|
|
||||||
f'--rootfs={target}',
|
|
||||||
], check=True)
|
|
||||||
except subprocess.CalledProcessError as e:
|
|
||||||
print(f"Error executing command: {e}")
|
|
||||||
sys.exit(1)
|
|
||||||
finally:
|
|
||||||
if tmp_lockfile is not None:
|
|
||||||
os.unlink(tmp_lockfile.name)
|
|
||||||
if tmp_manifest is not None:
|
|
||||||
os.unlink(tmp_manifest.name)
|
|
||||||
if tmp_ostree_repo:
|
|
||||||
shutil.rmtree(tmp_ostree_repo)
|
|
||||||
|
|
||||||
# Copy our own build configuration into the target if configured;
|
|
||||||
# this is used for the first stage build. But by default *secondary*
|
|
||||||
# builds don't get this.
|
|
||||||
if args.reinject:
|
|
||||||
for d in [MANIFESTDIR]:
|
|
||||||
dst = path.join(target, d)
|
|
||||||
print(f"Copying /{d} to {dst}")
|
|
||||||
shutil.copytree('/' + d, dst, symlinks=True)
|
|
||||||
for f in ['usr/libexec/bootc-base-imagectl']:
|
|
||||||
dst = path.join(target, f)
|
|
||||||
print(f"Copying /{f} to {dst}")
|
|
||||||
shutil.copy('/' + f, dst)
|
|
||||||
|
|
||||||
def run_rechunk(args):
|
|
||||||
if args.chunkah:
|
|
||||||
argv = ['chunkah', 'build', '--rootfs=/chunkah']
|
|
||||||
if args.max_layers is not None:
|
|
||||||
argv.append(f"--max-layers={args.max_layers}")
|
|
||||||
# Strip OSTree data and labels for bootc compatibility; see
|
|
||||||
# https://github.com/coreos/chunkah#compatibility-with-bootable-bootc-images
|
|
||||||
argv.extend(['--prune', '/sysroot/',
|
|
||||||
'--label', 'ostree.commit-',
|
|
||||||
'--label', 'ostree.final-diffid-'])
|
|
||||||
try:
|
|
||||||
subprocess.run(argv, check=True)
|
|
||||||
except subprocess.CalledProcessError as e:
|
|
||||||
print(f"Error executing command: {e}", file=sys.stderr)
|
|
||||||
sys.exit(1)
|
|
||||||
else:
|
|
||||||
if not args.from_image or not args.to_image:
|
|
||||||
print("Error: from_image and to_image are required when not using --chunkah", file=sys.stderr)
|
|
||||||
sys.exit(1)
|
|
||||||
argv = [
|
|
||||||
'rpm-ostree',
|
|
||||||
'experimental',
|
|
||||||
'compose',
|
|
||||||
'build-chunked-oci']
|
|
||||||
if args.max_layers is not None:
|
|
||||||
argv.append(f"--max-layers={args.max_layers}")
|
|
||||||
argv.extend(['--bootc',
|
|
||||||
'--format-version=1',
|
|
||||||
f'--from={args.from_image}',
|
|
||||||
f'--output=containers-storage:{args.to_image}'])
|
|
||||||
try:
|
|
||||||
subprocess.run(argv, check=True)
|
|
||||||
except subprocess.CalledProcessError as e:
|
|
||||||
print(f"Error executing command: {e}")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
def run_list(args):
|
|
||||||
d = '/' + MANIFESTDIR
|
|
||||||
for ent in sorted(os.listdir(d)):
|
|
||||||
name, ext = os.path.splitext(ent)
|
|
||||||
if ext != '.yaml' or name.endswith('.hidden'):
|
|
||||||
continue
|
|
||||||
fullpath = os.path.join(d, ent)
|
|
||||||
if os.path.islink(fullpath):
|
|
||||||
continue
|
|
||||||
o = subprocess.check_output(['rpm-ostree', 'compose', 'tree', '--print-only', fullpath])
|
|
||||||
manifest = json.loads(o)
|
|
||||||
description = manifest['metadata']['summary']
|
|
||||||
print(f"{name}: {description}")
|
|
||||||
print("---")
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
parser = argparse.ArgumentParser(description="Operate on the build configuration for this container")
|
|
||||||
parser.add_argument("--args-file", help="File containing arguments to parse (one argument per line)", metavar='FILE')
|
|
||||||
subparsers = parser.add_subparsers(help='Subcommands', required=True)
|
|
||||||
|
|
||||||
build_rootfs = subparsers.add_parser('build-rootfs', help='Generate a container root filesystem')
|
|
||||||
build_rootfs.add_argument("--reinject", help="Also reinject the build configurations into the target", action='store_true')
|
|
||||||
build_rootfs.add_argument("--manifest", help="Use the specified manifest", action='store', default='default')
|
|
||||||
build_rootfs.add_argument("--install", help="Add a package", action='append', default=[], metavar='PACKAGE')
|
|
||||||
build_rootfs.add_argument("--exclude", help="Exclude a package", action='append', default=[], metavar='PACKAGE')
|
|
||||||
build_rootfs.add_argument("--cachedir", help="Cache repo metadata and RPMs in specified directory", action='store', default='')
|
|
||||||
build_rootfs.add_argument("--add-dir", help='Copy dir contents into the target', action='append', default=[], metavar='DIR')
|
|
||||||
build_rootfs.add_argument("--no-docs", help="Don't install documentation", action='store_true')
|
|
||||||
build_rootfs.add_argument("--recommends", help="Whether to install recommended packages", action='store_true')
|
|
||||||
build_rootfs.add_argument("--no-initramfs", help="Whether to generate an initramfs for the roots", action='store_true')
|
|
||||||
build_rootfs.add_argument("--sysusers", help="Run systemd-sysusers instead of injecting hardcoded passwd/group entries", action='store_true')
|
|
||||||
build_rootfs.add_argument("--nobody-99", help=argparse.SUPPRESS, action='store_true')
|
|
||||||
build_rootfs.add_argument("--repo", help="Enable specific repositories only", action='append', default=[], metavar='REPO')
|
|
||||||
build_rootfs.add_argument("--lock", help="Lock package to specific version; can be NEVRA or NEVR", action='append', default=[], metavar='NEVRA')
|
|
||||||
build_rootfs.add_argument("source_root", help="Path to the source root directory used for dnf configuration (default=/)", nargs='?', default='/')
|
|
||||||
build_rootfs.add_argument("target", help="Path to the target root directory that will be generated.")
|
|
||||||
build_rootfs.set_defaults(func=run_build_rootfs)
|
|
||||||
|
|
||||||
cmd_rechunk = subparsers.add_parser('rechunk', help="Generate a new container image with split, reproducible, chunked layers")
|
|
||||||
cmd_rechunk.add_argument("--chunkah", help="Use chunkah instead of rpm-ostree (reads rootfs from /chunkah, writes OCI archive to stdout)", action='store_true')
|
|
||||||
cmd_rechunk.add_argument("--max-layers", help="Configure the number of output layers")
|
|
||||||
cmd_rechunk.add_argument("from_image", help="Operate on this image in the container storage", nargs='?')
|
|
||||||
cmd_rechunk.add_argument("to_image", help="Output a new image to the container storage", nargs='?')
|
|
||||||
cmd_rechunk.set_defaults(func=run_rechunk)
|
|
||||||
|
|
||||||
cmd_list = subparsers.add_parser('list', help='List available manifests')
|
|
||||||
cmd_list.set_defaults(func=run_list)
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
|
||||||
if args.args_file:
|
|
||||||
add_args = []
|
|
||||||
with open(args.args_file) as f:
|
|
||||||
for line in f:
|
|
||||||
add_args += [line.strip()]
|
|
||||||
args = parser.parse_args(sys.argv[1:] + add_args)
|
|
||||||
|
|
||||||
args.func(args)
|
|
||||||
|
|
||||||
|
|
@ -1,182 +0,0 @@
|
||||||
# bootc-base-imagectl
|
|
||||||
|
|
||||||
A core premise of the bootc model is that rich
|
|
||||||
control over Linux system customization can be accomplished
|
|
||||||
with a "default" container build:
|
|
||||||
|
|
||||||
```
|
|
||||||
FROM <base image>
|
|
||||||
RUN ...
|
|
||||||
```
|
|
||||||
|
|
||||||
As of recently, it is possible to e.g. swap the kernel
|
|
||||||
and other fundamental components as part of default derivation.
|
|
||||||
|
|
||||||
However, some use cases want even more control - for example,
|
|
||||||
as an organization deploying a bootc system, I may want to ensure
|
|
||||||
the base image version carries a set of packages at
|
|
||||||
exactly specific versions (perhaps defined by a lockfile,
|
|
||||||
or an rpm-md repository). There are many tools which
|
|
||||||
manage snapshots of yum (rpm-md) repositories.
|
|
||||||
|
|
||||||
There are currently issues where it won't quite work to e.g.
|
|
||||||
`dnf -y upgrade selinux-policy-targeted`.
|
|
||||||
|
|
||||||
The `/usr/libexec/bootc-base-imagectl` tool which is
|
|
||||||
included in the base image is designed to enable building
|
|
||||||
a root filesystem in ostree-container format from a set
|
|
||||||
of RPMs controlled by the user.
|
|
||||||
|
|
||||||
## Understanding the base image content
|
|
||||||
|
|
||||||
Most, but not all content from the base image comes from RPMs.
|
|
||||||
There is some additional non-RPM content, as well as postprocessing
|
|
||||||
that operates on the filesystem root. At the current time the
|
|
||||||
implementation of the base image build uses `rpm-ostree`,
|
|
||||||
but this is considered an implementation detail subject to change.
|
|
||||||
|
|
||||||
## Using bootc-base-imagectl build-rootfs
|
|
||||||
|
|
||||||
The core operation is `bootc-base-imagectl build-rootfs`.
|
|
||||||
|
|
||||||
This command takes just two arguments:
|
|
||||||
|
|
||||||
- A "source root" which should have an `/etc/yum.repos.d`
|
|
||||||
that defines the input RPM content. This source root is also used
|
|
||||||
to control things like the `$releasever`.
|
|
||||||
- A path to the target root filesystem which will be generated as
|
|
||||||
a directory. The target should not already exist (but its parent must exist).
|
|
||||||
|
|
||||||
### Implementation
|
|
||||||
|
|
||||||
The current implementation uses `rpm-ostree` on a manifest (treefile)
|
|
||||||
embedded in the container image itself. These manifests are not intended
|
|
||||||
to be editable directly.
|
|
||||||
|
|
||||||
To emphasize: the implementation of this command (especially the configuration
|
|
||||||
files that it reads) are subject to change.
|
|
||||||
|
|
||||||
## Using bootc-base-imagectl rechunk
|
|
||||||
|
|
||||||
This operation is strongly related to `build-rootfs` but is also orthogonal;
|
|
||||||
it can be used on a "regular" container build as well.
|
|
||||||
|
|
||||||
This command assumes it will be run as a container image, and defaults
|
|
||||||
to wanting write access to the container storage.
|
|
||||||
|
|
||||||
```
|
|
||||||
podman run --rm --privileged -v /var/lib/containers:/var/lib/containers quay.io/fedora/fedora-bootc:rawhide \
|
|
||||||
bootc-base-imagectl rechunk quay.io/exampleos/exampleos:build quay.io/exampleos/exampleos:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
### Rationale
|
|
||||||
|
|
||||||
When performing a complex container derivation, there are several issues:
|
|
||||||
|
|
||||||
#### Replaced duplicate content
|
|
||||||
|
|
||||||
When e.g. upgrading or replacing the kernel or other large packages
|
|
||||||
as part of a container build (without squashing all layers) then
|
|
||||||
the old replaced content will still be present.
|
|
||||||
|
|
||||||
#### Removed content still present
|
|
||||||
|
|
||||||
Similarly, `RUN dnf -y remove` etc. will still retain that removed
|
|
||||||
content in prior layers.
|
|
||||||
|
|
||||||
#### Timestamp drift
|
|
||||||
|
|
||||||
By default, many tools will use the current timestamp when writing
|
|
||||||
files. `rpm` will do this (unless `SOURCE_DATE_EPOCH` is set), and
|
|
||||||
other tools like `cp` and `curl` will as well.
|
|
||||||
|
|
||||||
This means that every build of the image will produce a new
|
|
||||||
tar stream (with new timestamps) - that will get pushed to a registry
|
|
||||||
and downloaded by clients, even if the content didn't actually change.
|
|
||||||
|
|
||||||
### What rechunk does: split reproducible chunked images
|
|
||||||
|
|
||||||
The `bootc-base-imagectl rechunk` command fixes all of these issues
|
|
||||||
by taking an input container, operates on its final merged filesystem
|
|
||||||
tree (hence removed/overridden files are handled), and then splits it up
|
|
||||||
(currently based on the RPM database) into separate layers (tarballs).
|
|
||||||
|
|
||||||
Further, because bootc uses OSTree today, and OSTree canonializes all timestamps
|
|
||||||
to zero on the client side, this tool does that at build time.
|
|
||||||
|
|
||||||
### Using chunkah instead of rpm-ostree
|
|
||||||
|
|
||||||
The `--chunkah` flag switches rechunk to use [chunkah] instead of
|
|
||||||
rpm-ostree for layer splitting. In this mode, chunkah reads the rootfs
|
|
||||||
from `/chunkah` (its default) and writes an OCI archive to stdout.
|
|
||||||
The `from_image` and `to_image` positional arguments are not used.
|
|
||||||
The `--max-layers` option is respected and passed through to chunkah.
|
|
||||||
|
|
||||||
This mode automatically passes `--prune /sysroot/` to strip OSTree data
|
|
||||||
and `--label ostree.commit-` / `--label ostree.final-diffid-` to remove
|
|
||||||
OSTree-specific labels. In other words, this produces plain OCI bootc images
|
|
||||||
without any OSTree content.
|
|
||||||
|
|
||||||
To rechunk an existing image using chunkah:
|
|
||||||
|
|
||||||
```
|
|
||||||
IMG=quay.io/exampleos/exampleos:latest
|
|
||||||
podman run --rm --mount=type=image,src=$IMG,dest=/chunkah \
|
|
||||||
-e CHUNKAH_CONFIG_STR="$(podman inspect $IMG)" \
|
|
||||||
quay.io/fedora/fedora-bootc:rawhide \
|
|
||||||
/usr/libexec/bootc-base-imagectl rechunk --chunkah | podman load
|
|
||||||
```
|
|
||||||
|
|
||||||
The `CHUNKAH_CONFIG_STR` environment variable passes the original
|
|
||||||
image's metadata (labels, environment, command, etc.) to chunkah so
|
|
||||||
that it is retained in the rechunked output.
|
|
||||||
|
|
||||||
[chunkah]: https://github.com/coreos/chunkah
|
|
||||||
|
|
||||||
### Other options
|
|
||||||
|
|
||||||
`bootc-base-imagectl list` will enumerate available configurations that
|
|
||||||
can be selected by passing `--manifest` to `build-rootfs`.
|
|
||||||
|
|
||||||
### Implementation
|
|
||||||
|
|
||||||
The default rechunking implementation also uses `rpm-ostree`. The `--chunkah`
|
|
||||||
mode uses [chunkah] instead, which is content-agnostic and not tied to
|
|
||||||
rpm-ostree.
|
|
||||||
|
|
||||||
### Cross builds and the builder image
|
|
||||||
|
|
||||||
The build tooling is designed to support "cross builds"; the
|
|
||||||
repository root could e.g. be CentOS Stream 10, while the
|
|
||||||
builder root is Fedora or RHEL, etc.
|
|
||||||
|
|
||||||
In other words, one given base image can be used as a "builder" to produce another
|
|
||||||
using different RPMs.
|
|
||||||
|
|
||||||
### Example: Generate a new image using CentOS Stream 10 content from RHEL
|
|
||||||
|
|
||||||
FROM quay.io/centos/centos:stream10 as repos
|
|
||||||
|
|
||||||
FROM registry.redhat.io/rhel10/rhel-bootc:10 as builder
|
|
||||||
RUN --mount=type=bind,from=repos,src=/,dst=/repos,rw /usr/libexec/bootc-base-imagectl build-rootfs --manifest=minimal /repos /target-rootfs
|
|
||||||
|
|
||||||
# This container image uses the "artifact pattern"; it has some
|
|
||||||
# basic configuration we expect to apply to multiple container images.
|
|
||||||
FROM quay.io/exampleos/baseconfig@sha256:.... as baseconfig
|
|
||||||
|
|
||||||
FROM scratch
|
|
||||||
COPY --from=builder /target-rootfs/ /
|
|
||||||
# Now we make other arbitrary changes. Copy our systemd units and
|
|
||||||
# other tweaks from the baseconfig container image.
|
|
||||||
COPY --from=baseconfig /usr/ /usr/
|
|
||||||
RUN <<EORUN
|
|
||||||
set -xeuo pipefail
|
|
||||||
# Install critical components
|
|
||||||
dnf -y install linux-firmware NetworkManager cloud-init cowsay
|
|
||||||
dnf clean all
|
|
||||||
bootc container lint
|
|
||||||
EORUN
|
|
||||||
LABEL containers.bootc 1
|
|
||||||
ENV container=oci
|
|
||||||
STOPSIGNAL SIGRTMIN+3
|
|
||||||
CMD ["/sbin/init"]
|
|
||||||
|
|
@ -1,65 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
main() {
|
|
||||||
|
|
||||||
local files_with_whitespace=""
|
|
||||||
local files_with_missing_empty_line_at_eof=""
|
|
||||||
|
|
||||||
while IFS= read -r -d '' f; do
|
|
||||||
echo "[+] Checking ${f}"
|
|
||||||
|
|
||||||
# Looking for whitespace at end of line
|
|
||||||
if grep -Eq " +$" "${f}"; then
|
|
||||||
# List of files to ignore
|
|
||||||
if \
|
|
||||||
[[ "${f}" == "./live/isolinux/boot.msg" ]] \
|
|
||||||
; then
|
|
||||||
echo "[+] Checking ${f}: Ignoring whitespace at end of line"
|
|
||||||
else
|
|
||||||
echo "[+] Checking ${f}: Found whitespace at end of line"
|
|
||||||
files_with_whitespace+=" ${f}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Looking for missing empty line at end of file
|
|
||||||
if [[ -n $(tail -c 1 "${f}") ]]; then
|
|
||||||
# List of files to ignore
|
|
||||||
if \
|
|
||||||
[[ "${f}" == "./tests/kola/ignition/resource/authenticated-gs/data/expected/"* ]] ||\
|
|
||||||
[[ "${f}" == "./tests/kola/ignition/resource/authenticated-s3/data/expected/"* ]] ||\
|
|
||||||
[[ "${f}" == "./tests/kola/ignition/resource/remote/data/expected/"* ]] \
|
|
||||||
; then
|
|
||||||
echo "[+] Checking ${f}: Ignoring missing empty line at end of file"
|
|
||||||
else
|
|
||||||
echo "[+] Checking ${f}: Missing empty line at end of file"
|
|
||||||
files_with_missing_empty_line_at_eof+=" ${f}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done< <(find . -path "./.git" -prune -o -type f -print0)
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
if [[ -n "${files_with_whitespace}" ]]; then
|
|
||||||
echo "[+] Found files with whitespace at the end of line"
|
|
||||||
echo "${files_with_whitespace}" | tr ' ' '\n'
|
|
||||||
else
|
|
||||||
echo "[+] No files with whitespace at the end of line"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
if [[ -n "${files_with_missing_empty_line_at_eof}" ]]; then
|
|
||||||
echo "[+] Found files with missing empty line at end of file"
|
|
||||||
echo "${files_with_missing_empty_line_at_eof}" | tr ' ' '\n'
|
|
||||||
else
|
|
||||||
echo "[+] No files with missing empty line at end of file"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n "${files_with_whitespace}" ]] || [[ -n "${files_with_missing_empty_line_at_eof}" ]]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
main "${@}"
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# Template generated by https://github.com/coreos/repo-templates; do not edit downstream
|
|
||||||
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
main() {
|
|
||||||
local found_errors="false"
|
|
||||||
# Let's start with error, then we can do warning, info, style
|
|
||||||
local -r severity="error"
|
|
||||||
|
|
||||||
while IFS= read -r -d '' f; do
|
|
||||||
# Skip non-text files that are very unlikely to be shell scripts
|
|
||||||
if [[ "$(file -b --mime-type "${f}" | sed 's|/.*||')" != "text" ]]; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
shebang="$(head -1 "${f}")"
|
|
||||||
if [[ "${f}" == *.sh ]] || \
|
|
||||||
[[ ${shebang} =~ ^#!/.*/bash.* ]] || \
|
|
||||||
[[ ${shebang} =~ ^#!/.*/env\ bash ]]; then
|
|
||||||
echo "[+] Checking ${f}"
|
|
||||||
shellcheck --external-sources --shell bash --severity="${severity}" "${f}" || found_errors="true"
|
|
||||||
bash -n "${f}" || found_errors="true"
|
|
||||||
fi
|
|
||||||
done< <(find . -path "./.git" -prune -o -path "./vendor" -prune -o -type f -print0)
|
|
||||||
|
|
||||||
if [[ "${found_errors}" != "false" ]]; then
|
|
||||||
echo "[+] Found errors with ShellCheck"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "[+] No error found with ShellCheck"
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
main "${@}"
|
|
||||||
71
ci/validate
71
ci/validate
|
|
@ -1,71 +0,0 @@
|
||||||
#!/usr/bin/python3
|
|
||||||
# Validate basic syntax of shell script and yaml.
|
|
||||||
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
import stat
|
|
||||||
import subprocess
|
|
||||||
import yaml
|
|
||||||
|
|
||||||
INITRD_SERVICES_WITHOUT_BEFORE = {
|
|
||||||
# Depended on by other services
|
|
||||||
'coreos-livepxe-rootfs.service',
|
|
||||||
}
|
|
||||||
|
|
||||||
validated=0
|
|
||||||
|
|
||||||
def openat(dirfd, name, mode='r'):
|
|
||||||
def opener(path, flags):
|
|
||||||
return os.open(path, flags, dir_fd=dirfd)
|
|
||||||
return open(name, mode, opener=opener)
|
|
||||||
|
|
||||||
|
|
||||||
def validate_initrd_service(rootfd, name):
|
|
||||||
with openat(rootfd, name) as fh:
|
|
||||||
if ([l for l in fh.readlines() if l.startswith('Before=')] or
|
|
||||||
name in INITRD_SERVICES_WITHOUT_BEFORE):
|
|
||||||
global validated
|
|
||||||
validated += 1
|
|
||||||
else:
|
|
||||||
raise Exception(
|
|
||||||
f'{name} has no Before= and may race with switch-root'
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
BASH_UNBRACKETED_IF = re.compile(r'\sif\s+"?\$')
|
|
||||||
def validate_shell(rootfd, name):
|
|
||||||
subprocess.check_call(['bash', '-n', name], preexec_fn=lambda: os.fchdir(rootfd))
|
|
||||||
with openat(rootfd, name) as fh:
|
|
||||||
if BASH_UNBRACKETED_IF.search(fh.read()):
|
|
||||||
raise Exception(f'Possible unbracketed conditional in {name}')
|
|
||||||
global validated
|
|
||||||
validated +=1
|
|
||||||
|
|
||||||
|
|
||||||
for root, dirs, files, rootfd in os.fwalk('.'):
|
|
||||||
# Skip .git
|
|
||||||
if '.git' in dirs:
|
|
||||||
dirs.remove('.git')
|
|
||||||
for name in files:
|
|
||||||
print(f"[+] Looking at {name}")
|
|
||||||
if name.endswith(('.yaml', '.yml')):
|
|
||||||
with open(os.open(name, dir_fd=rootfd, flags=os.O_RDONLY)) as f:
|
|
||||||
yaml.safe_load(f)
|
|
||||||
validated +=1
|
|
||||||
continue
|
|
||||||
elif name.endswith('.sh'):
|
|
||||||
validate_shell(rootfd, name)
|
|
||||||
continue
|
|
||||||
elif 'dracut/modules.d' in root and name.endswith('.service'):
|
|
||||||
validate_initrd_service(rootfd, name)
|
|
||||||
stbuf = os.lstat(name, dir_fd=rootfd)
|
|
||||||
if not stat.S_ISREG(stbuf.st_mode):
|
|
||||||
continue
|
|
||||||
if not stbuf.st_mode & stat.S_IXUSR:
|
|
||||||
continue
|
|
||||||
mimetype = subprocess.check_output(['file', '-b', '--mime-type', name], encoding='UTF-8',
|
|
||||||
preexec_fn=lambda: os.fchdir(rootfd)).strip()
|
|
||||||
if mimetype == 'text/x-shellscript':
|
|
||||||
validate_shell(rootfd, name)
|
|
||||||
|
|
||||||
print(f"Validated {validated} files")
|
|
||||||
1
eln.yaml
1
eln.yaml
|
|
@ -1 +0,0 @@
|
||||||
fedora-eln.yaml
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
[install]
|
|
||||||
root-fs-type = "xfs"
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
add-files:
|
|
||||||
- - 20-rhel.toml
|
|
||||||
- /usr/lib/bootc/install/20-rhel.toml
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
metadata:
|
|
||||||
summary: |
|
|
||||||
Standard bootc base image for Enterprise Linux Next (ELN).
|
|
||||||
This manifest is the source for the image published as fedora-eln.
|
|
||||||
ELN is the Fedora package set (rawhide sources, ELN buildroot/compose).
|
|
||||||
|
|
||||||
include:
|
|
||||||
- ../standard/manifest.yaml
|
|
||||||
- bootc-install.yaml
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
# NB: This treefile is used by the legacy pungi path only to build tier-1. It
|
|
||||||
# will be removed in the future.
|
|
||||||
releasever: 41
|
|
||||||
repos:
|
|
||||||
- fedora
|
|
||||||
- fedora-updates
|
|
||||||
include: fedora-bootc.yaml
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
# NB: This treefile is used by the legacy pungi path only to build tier-1. It
|
|
||||||
# will be removed in the future.
|
|
||||||
releasever: 43
|
|
||||||
repos:
|
|
||||||
- fedora
|
|
||||||
- fedora-updates
|
|
||||||
include: fedora-bootc.yaml
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
# NB: This treefile is used by the legacy pungi path only to build tier-1. It
|
|
||||||
# will be removed in the future.
|
|
||||||
releasever: 44
|
|
||||||
repos:
|
|
||||||
- fedora
|
|
||||||
- fedora-updates
|
|
||||||
include: fedora-bootc.yaml
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
# NB: This treefile is used by the legacy pungi path only to build tier-1. It
|
|
||||||
# will be removed in the future.
|
|
||||||
releasever: 45
|
|
||||||
repos:
|
|
||||||
- fedora-devel
|
|
||||||
include: fedora-bootc.yaml
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
"containers.bootc": "1",
|
"containers.bootc": "1",
|
||||||
"bootc.diskimage-builder": "quay.io/centos-bootc/bootc-image-builder",
|
"bootc.diskimage-builder": "quay.io/centos-bootc/bootc-image-builder",
|
||||||
"redhat.id": "fedora",
|
"redhat.id": "fedora",
|
||||||
"redhat.version-id": "rawhide"
|
"redhat.version-id": "40"
|
||||||
},
|
},
|
||||||
"StopSignal": "SIGRTMIN+3",
|
"StopSignal": "SIGRTMIN+3",
|
||||||
"Env": [
|
"Env": [
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
fedora-standard.yaml
|
|
||||||
15
fedora-bootc.yaml
Normal file
15
fedora-bootc.yaml
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
releasever: 40
|
||||||
|
variables:
|
||||||
|
distro: "fedora"
|
||||||
|
|
||||||
|
repos:
|
||||||
|
- fedora
|
||||||
|
- updates
|
||||||
|
|
||||||
|
metadata:
|
||||||
|
name: fedora-boot-tier1
|
||||||
|
summary: Fedora Bootable Tier 1
|
||||||
|
|
||||||
|
include:
|
||||||
|
- tier-1/manifest.yaml
|
||||||
|
- tier-1/kernel.yaml
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
repos:
|
|
||||||
- eln-baseos
|
|
||||||
- eln-appstream
|
|
||||||
include:
|
|
||||||
- fedora-includes/eln.yaml
|
|
||||||
- eln/manifest.yaml
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
# ELN uses the same distro variable as Fedora: ELN is a compose of Fedora
|
|
||||||
# Rawhide sources (see docs.fedoraproject.org/en-US/eln/). Repos come from
|
|
||||||
# REPOS_IMAGE at build time; we do not add fedora-repos-archive here.
|
|
||||||
variables:
|
|
||||||
distro: "fedora"
|
|
||||||
|
|
||||||
packages: []
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
variables:
|
|
||||||
distro: "fedora"
|
|
||||||
|
|
||||||
# Fedora-specific packages here
|
|
||||||
packages:
|
|
||||||
# https://gitlab.com/fedora/bootc/base-images/-/issues/12
|
|
||||||
- fedora-repos-archive
|
|
||||||
# Not in RHEL10
|
|
||||||
- systemd-resolved
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
iot.yaml
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
minimal-plus.hidden.yaml
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
minimal.yaml
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
# NB: This treefile is used by the legacy pungi path only to build tier-1. It
|
|
||||||
# will be removed in the future.
|
|
||||||
releasever: rawhide
|
|
||||||
repos:
|
|
||||||
- fedora-rawhide
|
|
||||||
include: fedora-bootc.yaml
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
standard.yaml
|
|
||||||
15
fedora-tier-0.yaml
Normal file
15
fedora-tier-0.yaml
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
releasever: 40
|
||||||
|
variables:
|
||||||
|
distro: "fedora"
|
||||||
|
|
||||||
|
repos:
|
||||||
|
- fedora-devel
|
||||||
|
- fedora-updates
|
||||||
|
|
||||||
|
metadata:
|
||||||
|
name: fedora-boot-tier0
|
||||||
|
summary: Fedora Bootable Tier 0
|
||||||
|
|
||||||
|
include:
|
||||||
|
- tier-0/manifest.yaml
|
||||||
|
- tier-0/kernel.yaml
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
set -xeuo pipefail
|
|
||||||
|
|
||||||
# This is used in the legacy Pungi path. It won't get run in the
|
|
||||||
# container-native path since install-manifests doesn't copy this script itself
|
|
||||||
# into usr/share/doc.
|
|
||||||
target_rootfs=$(pwd)
|
|
||||||
cd "$RPMOSTREE_WORKDIR"
|
|
||||||
./install-manifests "$target_rootfs"/usr/share/doc/bootc-base-imagectl/manifests
|
|
||||||
install -m 0755 -t "$target_rootfs"/usr/libexec bootc-base-imagectl
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
set -xeuo pipefail
|
|
||||||
# This script copies the manifests from the current directory
|
|
||||||
# into their installed location.
|
|
||||||
manifestdir=${1:-/usr/share/doc/bootc-base-imagectl/manifests}
|
|
||||||
mkdir -p "$manifestdir/"
|
|
||||||
for image in minimal standard minimal-plus iot; do
|
|
||||||
# Embed the generic defaults
|
|
||||||
cp -a $image $manifestdir/
|
|
||||||
# And the top-level Fedora-specific manifests
|
|
||||||
if [ -f $image.hidden.yaml ]; then
|
|
||||||
cp -a $image.hidden.yaml $manifestdir/
|
|
||||||
else
|
|
||||||
cp -a $image.yaml $manifestdir/
|
|
||||||
fi
|
|
||||||
# And the legacy `fedora-` prefixed names
|
|
||||||
cp -a fedora-$image.yaml $manifestdir/
|
|
||||||
done
|
|
||||||
# ELN is rawhide-only and should be removed when stable branches are created
|
|
||||||
# (manually remove eln/ directory and fedora-eln.yaml when branching for new releases)
|
|
||||||
if [ -d eln ]; then
|
|
||||||
cp -a eln $manifestdir/
|
|
||||||
cp -a fedora-eln.yaml $manifestdir/
|
|
||||||
fi
|
|
||||||
# Set the default
|
|
||||||
ln -s fedora-standard.yaml $manifestdir/default.yaml
|
|
||||||
# And install dependency manifests
|
|
||||||
cp -a fedora-includes $manifestdir
|
|
||||||
4
iot.yaml
4
iot.yaml
|
|
@ -1,4 +0,0 @@
|
||||||
include:
|
|
||||||
- iot/manifest.yaml
|
|
||||||
- fedora-minimal-plus.yaml
|
|
||||||
|
|
||||||
|
|
@ -1,59 +0,0 @@
|
||||||
metadata:
|
|
||||||
summary: Fedora IoT bootc image
|
|
||||||
|
|
||||||
variables:
|
|
||||||
distro: "fedora-iot"
|
|
||||||
|
|
||||||
packages:
|
|
||||||
- fedora-release-iot
|
|
||||||
- fedora-iot-config
|
|
||||||
- atheros-firmware
|
|
||||||
- brcmfmac-firmware
|
|
||||||
- chrony
|
|
||||||
- clevis
|
|
||||||
- clevis-dracut
|
|
||||||
- clevis-luks
|
|
||||||
- clevis-pin-tpm2
|
|
||||||
- containernetworking-plugins
|
|
||||||
- dnf5-plugins
|
|
||||||
- dracut-config-generic
|
|
||||||
- dracut-network
|
|
||||||
- fdo-client
|
|
||||||
- fdo-owner-cli
|
|
||||||
- firewalld
|
|
||||||
- fwupd-efi
|
|
||||||
- fwupd-plugin-modem-manager
|
|
||||||
- fwupd-plugin-uefi-capsule-data
|
|
||||||
- greenboot
|
|
||||||
- greenboot-default-health-checks
|
|
||||||
- ignition
|
|
||||||
- ignition-edge
|
|
||||||
- ima-evm-utils
|
|
||||||
- iputils
|
|
||||||
- iwd
|
|
||||||
- iwlwifi-mvm-firmware
|
|
||||||
- libsss_sudo
|
|
||||||
- NetworkManager-wifi
|
|
||||||
- NetworkManager-wwan
|
|
||||||
- openssl
|
|
||||||
- pinentry
|
|
||||||
- procps-ng
|
|
||||||
- realtek-firmware
|
|
||||||
- rootfiles
|
|
||||||
- screen
|
|
||||||
- setools-console
|
|
||||||
- slirp4netns
|
|
||||||
- ssh-key-dir
|
|
||||||
- sssd-client
|
|
||||||
- tmux
|
|
||||||
- tpm2-pkcs11
|
|
||||||
- traceroute
|
|
||||||
- usbguard
|
|
||||||
- wpa_supplicant
|
|
||||||
- wireless-regdb
|
|
||||||
packages-aarch64:
|
|
||||||
- arm-image-installer
|
|
||||||
- bcm283x-firmware
|
|
||||||
- optee_client
|
|
||||||
- uboot-images-armv8
|
|
||||||
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
include:
|
|
||||||
- fedora-includes/generic.yaml
|
|
||||||
- minimal-plus/manifest.yaml
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
metadata:
|
|
||||||
summary: |
|
|
||||||
This content set is intended to be the shared base used by all image-based
|
|
||||||
Fedora variants (IoT, Atomic Desktops, and CoreOS).
|
|
||||||
|
|
||||||
include:
|
|
||||||
- ../minimal/manifest.yaml
|
|
||||||
|
|
||||||
packages:
|
|
||||||
# Used by admins interactively
|
|
||||||
- attr
|
|
||||||
- bash-completion
|
|
||||||
- hostname
|
|
||||||
- iproute
|
|
||||||
- jq
|
|
||||||
- less
|
|
||||||
- vim-minimal
|
|
||||||
# deps of bootc, but let's be explicit. e.g. even if bootc drops the skopeo
|
|
||||||
# dep, we still want it
|
|
||||||
- podman skopeo
|
|
||||||
# crun recommends but doesn't require criu and criu-libs. We want them for
|
|
||||||
# checkpoint/restore. https://github.com/coreos/fedora-coreos-tracker/issues/1370
|
|
||||||
- crun criu criu-libs
|
|
||||||
# storage
|
|
||||||
- cryptsetup
|
|
||||||
- lvm2
|
|
||||||
- tar
|
|
||||||
# zram-generator (but not zram-generator-defaults) for F33 change
|
|
||||||
# https://github.com/coreos/fedora-coreos-tracker/issues/509
|
|
||||||
- zram-generator
|
|
||||||
# networking
|
|
||||||
- iptables-nft
|
|
||||||
- NetworkManager
|
|
||||||
- openssh-clients
|
|
||||||
- openssh-server
|
|
||||||
# linux-firmware now a recommends so let's explicitly include it
|
|
||||||
# https://gitlab.com/cki-project/kernel-ark/-/commit/32271d0cd9bd52d386eb35497c4876a8f041f70b
|
|
||||||
# https://src.fedoraproject.org/rpms/kernel/c/f55c3e9ed8605ff28cb9a922efbab1055947e213?branch=rawhide
|
|
||||||
- linux-firmware
|
|
||||||
# security
|
|
||||||
- polkit
|
|
||||||
- sudo
|
|
||||||
# Allow for configuring different timezones
|
|
||||||
- tzdata
|
|
||||||
# rpm-ostree
|
|
||||||
- rpm-ostree nss-altfiles
|
|
||||||
# firmware updates
|
|
||||||
# If you're using linux-firmware, you probably also want fwupd
|
|
||||||
- fwupd
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
include:
|
|
||||||
- fedora-includes/generic.yaml
|
|
||||||
- minimal/manifest.yaml
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
# The bootc components.
|
|
||||||
packages:
|
|
||||||
# systemd. Also name systemd-pam because it was dropped to a recommends
|
|
||||||
# but we still want it for handling user logins/sessions.
|
|
||||||
# dbus is required per https://bugzilla.redhat.com/show_bug.cgi?id=2507313
|
|
||||||
- systemd systemd-pam dbus
|
|
||||||
# bootc itself.
|
|
||||||
- bootc
|
|
||||||
# Required by bootc install, sgdisk has been replaced by Rust crate
|
|
||||||
# in bootc https://github.com/containers/bootc/pull/775
|
|
||||||
- xfsprogs e2fsprogs dosfstools
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
check-passwd:
|
|
||||||
type: "file"
|
|
||||||
filename: "passwd-nobody"
|
|
||||||
check-groups:
|
|
||||||
type: "file"
|
|
||||||
filename: "group-nobody"
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
check-passwd:
|
|
||||||
type: "file"
|
|
||||||
filename: "passwd"
|
|
||||||
check-groups:
|
|
||||||
type: "file"
|
|
||||||
filename: "group"
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# https://gitlab.com/fedora/bootc/base-images/-/issues/28
|
|
||||||
set -xeuo pipefail
|
|
||||||
ln -s ../run var/run
|
|
||||||
# https://gitlab.com/fedora/bootc/tracker/-/issues/58
|
|
||||||
mkdir -p var/lib/rpm-state
|
|
||||||
test -d var/tmp || mkdir -m 1777 var/tmp
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
# this is used with the --nobody-99 option for backwards compatibility with
|
|
||||||
# systems that had nobody set to 99
|
|
||||||
nobody:x:99:
|
|
||||||
nfsnobody:x:65534:
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
# Configuration for the initramfs
|
|
||||||
postprocess:
|
|
||||||
- |
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -xeuo pipefail
|
|
||||||
mkdir -p /usr/lib/dracut/dracut.conf.d
|
|
||||||
cat > /usr/lib/dracut/dracut.conf.d/20-bootc-base.conf << 'EOF'
|
|
||||||
# We want a generic image; hostonly makes no sense as part of a server side build
|
|
||||||
hostonly=no
|
|
||||||
# Dracut will always fail to set security.selinux xattrs at build time
|
|
||||||
# https://github.com/dracut-ng/dracut-ng/issues/1561
|
|
||||||
export DRACUT_NO_XATTR=1
|
|
||||||
add_dracutmodules+=" kernel-modules dracut-systemd systemd-initrd base ostree bootc "
|
|
||||||
EOF
|
|
||||||
cat > /usr/lib/dracut/dracut.conf.d/22-bootc-generic.conf << 'EOF'
|
|
||||||
# Extra modules that we want by default that are known to exist in the kernel
|
|
||||||
add_dracutmodules+=" virtiofs "
|
|
||||||
EOF
|
|
||||||
cat > /usr/lib/dracut/dracut.conf.d/49-bootc-tpm2-tss.conf << 'EOF'
|
|
||||||
# We want this for systemd-cryptsetup tpm2 locking
|
|
||||||
add_dracutmodules+=" tpm2-tss "
|
|
||||||
EOF
|
|
||||||
cat > /usr/lib/dracut/dracut.conf.d/59-altfiles.conf << 'EOF'
|
|
||||||
# https://issues.redhat.com/browse/RHEL-49590
|
|
||||||
# On image mode systems we use nss-altfiles for passwd and group,
|
|
||||||
# this makes sure dracut uses them which also fixes kdump writing to NFS.
|
|
||||||
install_items+=" /usr/lib/passwd /usr/lib/group "
|
|
||||||
EOF
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
# Configuration to enable kernel-install integration
|
|
||||||
postprocess:
|
|
||||||
- |
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -xeuo pipefail
|
|
||||||
source /usr/lib/os-release
|
|
||||||
mkdir -p /usr/lib/kernel/install.conf.d
|
|
||||||
echo -e "# kernel-install will not try to run dracut and allow rpm-ostree to\n\
|
|
||||||
# take over. Rpm-ostree will use this to know that it is responsible\n\
|
|
||||||
# to run dracut and ensure that there is only one kernel in the image\n\
|
|
||||||
layout=ostree" | tee /usr/lib/kernel/install.conf /usr/lib/kernel/install.conf.d/00-bootc-kernel-layout.conf > /dev/null
|
|
||||||
# By default dnf keeps multiple versions of the kernel, with this
|
|
||||||
# configuration we tell dnf to treat the kernel as everything else.
|
|
||||||
# https://dnf.readthedocs.io/en/latest/conf_ref.html#main-options
|
|
||||||
# Let's add the config to a distribution configuration file if dnf5
|
|
||||||
# is used, we append to /etc/dnf/dnf.conf if not.
|
|
||||||
# Also set protect_running_kernel=False, dnf/yum pre-dates Containers and
|
|
||||||
# uses uname to protect the running kernel even on Container builds.
|
|
||||||
if [ -d "/usr/share/dnf5/libdnf.conf.d/" ]; then
|
|
||||||
echo -e "[main]\ninstallonlypkgs=''" >> /usr/share/dnf5/libdnf.conf.d/20-ostree-installonlypkgs.conf
|
|
||||||
echo -e "[main]\nprotect_running_kernel=False" >> /usr/share/dnf5/libdnf.conf.d/20-ostree-protect_running_kernel.conf
|
|
||||||
else
|
|
||||||
echo "installonlypkgs=''" >> /etc/dnf/dnf.conf
|
|
||||||
echo "protect_running_kernel=False" >> /etc/dnf/dnf.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
# Enable the Linux kernel; see also kernel-rt.
|
|
||||||
packages:
|
|
||||||
- kernel
|
|
||||||
|
|
||||||
exclude-packages:
|
|
||||||
- kernel-debug
|
|
||||||
- kernel-debug-core
|
|
||||||
- kernel-debug-modules
|
|
||||||
- kernel-debug-modules-core
|
|
||||||
- kernel-debug-modules-extra
|
|
||||||
- kernel-debug-uki-virt
|
|
||||||
- kernel-debug-uki-virt-addons
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
||||||
metadata:
|
|
||||||
summary: Effectively just bootc, systemd, kernel, and dnf as a starting point.
|
|
||||||
|
|
||||||
edition: "2024"
|
|
||||||
|
|
||||||
variables:
|
|
||||||
passwd_mode: full
|
|
||||||
|
|
||||||
# Be minimal
|
|
||||||
recommends: false
|
|
||||||
|
|
||||||
# Default to `bash` in our container, the same as other containers we ship.
|
|
||||||
container-cmd:
|
|
||||||
- /sbin/init
|
|
||||||
|
|
||||||
remove-from-packages:
|
|
||||||
# Generally we expect other tools to do this (e.g. Ignition or cloud-init)
|
|
||||||
- [systemd, /usr/lib/systemd/system/sysinit.target.wants/systemd-firstboot.service]
|
|
||||||
|
|
||||||
include:
|
|
||||||
- kernel.yaml
|
|
||||||
- postprocess-conf.yaml
|
|
||||||
- tmpfiles.yaml
|
|
||||||
- bootc.yaml
|
|
||||||
- bootupd.yaml
|
|
||||||
- ostree.yaml
|
|
||||||
- initramfs.yaml
|
|
||||||
- basic-fixes.yaml
|
|
||||||
- kernel-install.yaml
|
|
||||||
- systemd-presets.yaml
|
|
||||||
|
|
||||||
packages:
|
|
||||||
# this is implied by dependencies but let's make it explicit
|
|
||||||
- coreutils
|
|
||||||
# We need dnf for building derived container images. In Fedora, this pulls
|
|
||||||
# in dnf5. In CentOS/RHEL, this pulls in dnf(4). We can simplify this back to
|
|
||||||
# just `dnf` once the `dnf` package is retired from Fedora.
|
|
||||||
- /usr/bin/dnf
|
|
||||||
# Even in minimal, we have this. If you don't want SELinux today, you'll need
|
|
||||||
# to build a custom image.
|
|
||||||
- selinux-policy-targeted
|
|
||||||
# And we want container-selinux because trying to layer it on later currently causes issues.
|
|
||||||
- container-selinux
|
|
||||||
# Needed for tpm2 bound luks
|
|
||||||
- tpm2-tools
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
# this is used with the --nobody-99 option for backwards compatibility with
|
|
||||||
# systems that had nobody set to 99
|
|
||||||
nobody:x:99:99:Kernel Overflow User:/:/usr/sbin/nologin
|
|
||||||
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/usr/sbin/nologin
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
# This file configures things relevant to `rpm-ostree compose postprocess`.
|
|
||||||
|
|
||||||
# We want content lifecycled with the image
|
|
||||||
opt-usrlocal: "root"
|
|
||||||
|
|
||||||
# https://github.com/CentOS/centos-bootc/issues/167
|
|
||||||
machineid-compat: true
|
|
||||||
|
|
||||||
rpmdb: target
|
|
||||||
# We never want rpmdb.sqlite-shm as it's unreproducible
|
|
||||||
rpmdb-normalize: true
|
|
||||||
|
|
||||||
ignore-removed-users:
|
|
||||||
- root
|
|
||||||
ignore-removed-groups:
|
|
||||||
- root
|
|
||||||
# By default users and groups are injected to nss-altfiles
|
|
||||||
# which is immutable. This list moves a selected set
|
|
||||||
# to /etc/group instead, which is mutable per system
|
|
||||||
# and allows local users to become part of these groups.
|
|
||||||
etc-group-members:
|
|
||||||
- wheel
|
|
||||||
- systemd-journal
|
|
||||||
- tss # https://issues.redhat.com/browse/BIFROST-618
|
|
||||||
- kvm # https://issues.redhat.com/browse/RHEL-115278
|
|
||||||
- adm
|
|
||||||
|
|
||||||
conditional-include:
|
|
||||||
- if: passwd_mode == "full"
|
|
||||||
include: check-passwd.yaml
|
|
||||||
- if: passwd_mode == "nobody"
|
|
||||||
include: check-passwd-nobody.yaml
|
|
||||||
- if: passwd_mode == "none"
|
|
||||||
include:
|
|
||||||
check-passwd:
|
|
||||||
type: "none"
|
|
||||||
check-groups:
|
|
||||||
type: "none"
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
# Postprocessing relating to systemd presets on the system.
|
|
||||||
postprocess:
|
|
||||||
- |
|
|
||||||
#!/bin/bash
|
|
||||||
set -xeuo pipefail
|
|
||||||
# Override some of the default presets.
|
|
||||||
cat <<EOF > usr/lib/systemd/system-preset/85-bootc.preset
|
|
||||||
# Disable dnf-makecache.timer on bootc/image mode systems
|
|
||||||
# https://github.com/coreos/fedora-coreos-tracker/issues/1896#issuecomment-2848251507
|
|
||||||
disable dnf-makecache.timer
|
|
||||||
EOF
|
|
||||||
# Enable bootloader-update.service on F43+ and CentOS9+
|
|
||||||
# https://github.com/coreos/fedora-coreos-tracker/issues/1468#issuecomment-2996654547
|
|
||||||
# https://fedoraproject.org/wiki/Changes/AutomaticBootloaderUpdatesBootc
|
|
||||||
- |
|
|
||||||
#!/bin/bash
|
|
||||||
set -xeuo pipefail
|
|
||||||
source /usr/lib/os-release
|
|
||||||
|
|
||||||
preset_file_name=/usr/lib/systemd/system-preset/85-bootc-bootloader-update.preset
|
|
||||||
|
|
||||||
case "$ID" in
|
|
||||||
fedora)
|
|
||||||
if [ "$VERSION_ID" -ge 43 ]; then
|
|
||||||
echo "enable bootloader-update.service" >> "$preset_file_name"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
centos)
|
|
||||||
if [ "$VERSION_ID" -ge 9 ]; then
|
|
||||||
echo "enable bootloader-update.service" >> "$preset_file_name"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*) ;;
|
|
||||||
esac
|
|
||||||
# Undo RPM scripts enabling units; we want the presets to be canonical
|
|
||||||
# https://github.com/projectatomic/rpm-ostree/issues/1803
|
|
||||||
- |
|
|
||||||
#!/bin/bash
|
|
||||||
set -xeuo pipefail
|
|
||||||
rm -rf /etc/systemd/system/*
|
|
||||||
systemctl preset-all
|
|
||||||
rm -rf /etc/systemd/user/*
|
|
||||||
systemctl --user --global preset-all
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
postprocess:
|
|
||||||
- |
|
|
||||||
#!/bin/bash
|
|
||||||
set -xeuo pipefail
|
|
||||||
cat >/usr/lib/tmpfiles.d/bootc-base-rpmstate.conf <<'EOF'
|
|
||||||
# Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=771713
|
|
||||||
d /var/lib/rpm-state 0755 - - -
|
|
||||||
EOF
|
|
||||||
cat > /usr/lib/tmpfiles.d/konflux-buildinfo-contentsets.conf <<'EOF'
|
|
||||||
# Workaround for https://github.com/konflux-ci/build-tasks-dockerfiles/pull/243
|
|
||||||
d /var/roothome/buildinfo 0755 - - -
|
|
||||||
d /var/roothome/buildinfo/content_manifests 0755 - - -
|
|
||||||
# Note we don't actually try to recreate the content; this just makes the linter ignore it
|
|
||||||
f /var/roothome/buildinfo/content_manifests/content-sets.json 0644 - - -
|
|
||||||
f /var/roothome/buildinfo/labels.json 0644 - - -
|
|
||||||
EOF
|
|
||||||
# Workaround for https://issues.redhat.com/browse/RHEL-106203
|
|
||||||
rm -f /usr/lib/tmpfiles.d/home.conf
|
|
||||||
195
renovate.json
195
renovate.json
|
|
@ -1,203 +1,12 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
"description": [
|
|
||||||
"Renovate configuration for bootc-base-image repository.",
|
|
||||||
"",
|
|
||||||
"This configuration separates updates into different PRs per release (e.g., Fedora 44, Rawhide)",
|
|
||||||
"to prevent blocking all releases if tests fail on one.",
|
|
||||||
"",
|
|
||||||
"Update schedules:",
|
|
||||||
"- Fedora 43 bootc-pipeline: 2-5 AM UTC daily",
|
|
||||||
"- Fedora 43 REPOS_IMAGE: at any time",
|
|
||||||
"- Fedora 44 bootc-pipeline: 2-5 AM UTC daily",
|
|
||||||
"- Fedora 44 REPOS_IMAGE: at any time",
|
|
||||||
"- Fedora 45 bootc-pipeline: 2-5 AM UTC daily",
|
|
||||||
"- Fedora 45 REPOS_IMAGE: at any time",
|
|
||||||
"- Rawhide bootc-pipeline: 2-5 AM UTC daily",
|
|
||||||
"- Rawhide REPOS_IMAGE: at any time",
|
|
||||||
"",
|
|
||||||
"Each update type (bootc-pipeline, REPOS_IMAGE) also has its own PR",
|
|
||||||
"for independent review and merge.",
|
|
||||||
"",
|
|
||||||
"rebaseWhen is set to 'never' for REPOS_IMAGE PRs because as different PRs",
|
|
||||||
"for each release are merged to main, automatic rebasing would reset pipelines",
|
|
||||||
"and cause tests to rerun multiple times. The operator can manually rebase if needed.",
|
|
||||||
"",
|
|
||||||
"Automerge is enabled for all PRs - they will be merged automatically when all checks pass."
|
|
||||||
],
|
|
||||||
"extends": [
|
"extends": [
|
||||||
"github>platform-engineering-org/.github"
|
"github>platform-engineering-org/.github"
|
||||||
],
|
],
|
||||||
"dependencyDashboard": true,
|
|
||||||
"automergeType": "pr",
|
|
||||||
"enabledManagers": [
|
|
||||||
"custom.regex",
|
|
||||||
"tekton"
|
|
||||||
],
|
|
||||||
"tekton": {
|
|
||||||
"additionalBranchPrefix": "",
|
|
||||||
"includePaths": [
|
|
||||||
".tekton/**"
|
|
||||||
],
|
|
||||||
"managerFilePatterns": [
|
|
||||||
"/\\.ya?ml$/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"baseBranchPatterns": [
|
|
||||||
"main"
|
|
||||||
],
|
|
||||||
"customManagers": [
|
|
||||||
{
|
|
||||||
"customType": "regex",
|
|
||||||
"description": [
|
|
||||||
"Update 'REPOS_IMAGE' in tekton files"
|
|
||||||
],
|
|
||||||
"managerFilePatterns": [
|
|
||||||
"/.tekton/.*\\.ya?ml$/"
|
|
||||||
],
|
|
||||||
"matchStrings": [
|
|
||||||
"REPOS_IMAGE=(?<depName>.*):(?<currentValue>.*)@(?<currentDigest>.*)\\n"
|
|
||||||
],
|
|
||||||
"versioningTemplate": "regex:(?<compatibility>.*)-(?<patch>\\d{8})(\\.n)?\\.(?<build>\\d)",
|
|
||||||
"datasourceTemplate": "docker"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"packageRules": [
|
"packageRules": [
|
||||||
{
|
{
|
||||||
"description": [
|
"matchPackageNames": ["quay.io/fedora/fedora"],
|
||||||
"Disable REPOS_IMAGE updates for 44-iot, 45-iot and rawhide-iot tekton files",
|
"allowedVersions": "=40"
|
||||||
"until we fix https://gitlab.com/fedora/bootc/base-images/-/issues/74"
|
|
||||||
],
|
|
||||||
"matchManagers": ["custom.regex", "tekton"],
|
|
||||||
"matchFileNames": [".tekton/*-44-iot-*", ".tekton/*-45-iot-*", ".tekton/*-rawhide-iot-*"],
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchManagers": ["tekton"],
|
|
||||||
"matchPackageNames": ["/quay.io/bootc-devel/tekton-catalog/"],
|
|
||||||
"matchFileNames": [".tekton/fedora-bootc-43-*"],
|
|
||||||
"groupName": "Fedora 43 bootc-pipeline",
|
|
||||||
"groupSlug": "fedora-43-bootc-pipeline",
|
|
||||||
"branchPrefix": "renovate/fedora-43/",
|
|
||||||
"commitMessageTopic": "Fedora 43 bootc build pipeline",
|
|
||||||
"schedule": ["after 2am and before 5am"],
|
|
||||||
"timezone": "UTC",
|
|
||||||
"recreateWhen": "always",
|
|
||||||
"rebaseWhen": "always",
|
|
||||||
"additionalBranchPrefix": "",
|
|
||||||
"automerge": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchManagers": ["custom.regex"],
|
|
||||||
"matchPackageNames": ["/quay.io/bootc-devel/fedora-bootc-43-compose/"],
|
|
||||||
"matchFileNames": [".tekton/fedora-bootc-43-*"],
|
|
||||||
"groupName": "Fedora 43 REPOS_IMAGE",
|
|
||||||
"groupSlug": "fedora-43-repos-image",
|
|
||||||
"branchPrefix": "renovate/fedora-43/",
|
|
||||||
"commitMessageTopic": "Fedora 43 REPOS_IMAGE",
|
|
||||||
"schedule": ["at any time"],
|
|
||||||
"recreateWhen": "always",
|
|
||||||
"rebaseWhen": "never",
|
|
||||||
"additionalBranchPrefix": "",
|
|
||||||
"automerge": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchManagers": ["tekton"],
|
|
||||||
"matchPackageNames": ["/quay.io/bootc-devel/tekton-catalog/"],
|
|
||||||
"matchFileNames": [".tekton/fedora-bootc-44-*"],
|
|
||||||
"groupName": "Fedora 44 bootc-pipeline",
|
|
||||||
"groupSlug": "fedora-44-bootc-pipeline",
|
|
||||||
"branchPrefix": "renovate/fedora-44/",
|
|
||||||
"commitMessageTopic": "Fedora 44 bootc build pipeline",
|
|
||||||
"schedule": ["after 2am and before 5am"],
|
|
||||||
"timezone": "UTC",
|
|
||||||
"recreateWhen": "always",
|
|
||||||
"rebaseWhen": "always",
|
|
||||||
"additionalBranchPrefix": "",
|
|
||||||
"automerge": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchManagers": ["custom.regex"],
|
|
||||||
"matchPackageNames": ["/quay.io/bootc-devel/fedora-bootc-44-compose/"],
|
|
||||||
"matchFileNames": [".tekton/fedora-bootc-44-*"],
|
|
||||||
"groupName": "Fedora 44 REPOS_IMAGE",
|
|
||||||
"groupSlug": "fedora-44-repos-image",
|
|
||||||
"branchPrefix": "renovate/fedora-44/",
|
|
||||||
"commitMessageTopic": "Fedora 44 REPOS_IMAGE",
|
|
||||||
"schedule": ["at any time"],
|
|
||||||
"recreateWhen": "always",
|
|
||||||
"rebaseWhen": "never",
|
|
||||||
"additionalBranchPrefix": "",
|
|
||||||
"automerge": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchManagers": ["tekton"],
|
|
||||||
"matchPackageNames": ["/quay.io/bootc-devel/tekton-catalog/"],
|
|
||||||
"matchFileNames": [".tekton/fedora-bootc-45-*"],
|
|
||||||
"groupName": "Fedora 45 bootc-pipeline",
|
|
||||||
"groupSlug": "fedora-45-bootc-pipeline",
|
|
||||||
"branchPrefix": "renovate/fedora-45/",
|
|
||||||
"commitMessageTopic": "Fedora 45 bootc build pipeline",
|
|
||||||
"schedule": ["after 2am and before 5am"],
|
|
||||||
"timezone": "UTC",
|
|
||||||
"recreateWhen": "always",
|
|
||||||
"rebaseWhen": "always",
|
|
||||||
"additionalBranchPrefix": "",
|
|
||||||
"automerge": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchManagers": ["custom.regex"],
|
|
||||||
"matchPackageNames": ["/quay.io/bootc-devel/fedora-bootc-45-compose/"],
|
|
||||||
"matchFileNames": [".tekton/fedora-bootc-45-*"],
|
|
||||||
"groupName": "Fedora 45 REPOS_IMAGE",
|
|
||||||
"groupSlug": "fedora-45-repos-image",
|
|
||||||
"branchPrefix": "renovate/fedora-45/",
|
|
||||||
"commitMessageTopic": "Fedora 45 REPOS_IMAGE",
|
|
||||||
"schedule": ["at any time"],
|
|
||||||
"recreateWhen": "always",
|
|
||||||
"rebaseWhen": "never",
|
|
||||||
"additionalBranchPrefix": "",
|
|
||||||
"automerge": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchManagers": ["tekton"],
|
|
||||||
"matchPackageNames": ["/quay.io/bootc-devel/tekton-catalog/"],
|
|
||||||
"matchFileNames": [".tekton/fedora-bootc-rawhide-*"],
|
|
||||||
"groupName": "Fedora Rawhide bootc-pipeline",
|
|
||||||
"groupSlug": "fedora-rawhide-bootc-pipeline",
|
|
||||||
"branchPrefix": "renovate/fedora-rawhide/",
|
|
||||||
"commitMessageTopic": "Fedora Rawhide bootc build pipeline",
|
|
||||||
"schedule": ["after 2am and before 5am"],
|
|
||||||
"timezone": "UTC",
|
|
||||||
"recreateWhen": "always",
|
|
||||||
"rebaseWhen": "always",
|
|
||||||
"additionalBranchPrefix": "",
|
|
||||||
"automerge": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchManagers": ["custom.regex"],
|
|
||||||
"matchPackageNames": ["/quay.io/bootc-devel/fedora-bootc-rawhide-compose/"],
|
|
||||||
"matchFileNames": [".tekton/fedora-bootc-rawhide-*"],
|
|
||||||
"groupName": "Fedora Rawhide REPOS_IMAGE",
|
|
||||||
"groupSlug": "fedora-rawhide-repos-image",
|
|
||||||
"branchPrefix": "renovate/fedora-rawhide/",
|
|
||||||
"commitMessageTopic": "Fedora Rawhide REPOS_IMAGE",
|
|
||||||
"schedule": ["at any time"],
|
|
||||||
"recreateWhen": "always",
|
|
||||||
"rebaseWhen": "never",
|
|
||||||
"additionalBranchPrefix": "",
|
|
||||||
"automerge": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matchPackageNames": [
|
|
||||||
"/quay.io/bootc-devel/fedora-bootc-eln-compose/"
|
|
||||||
],
|
|
||||||
"groupName": "Fedora ELN compose dependencies",
|
|
||||||
"groupSlug": "fedora-eln-compose-dependencies",
|
|
||||||
"schedule": [
|
|
||||||
"at any time"
|
|
||||||
],
|
|
||||||
"automerge": true
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
include:
|
|
||||||
- fedora-includes/generic.yaml
|
|
||||||
- standard/manifest.yaml
|
|
||||||
|
|
||||||
packages:
|
|
||||||
# Make Ansible "package" builtin work by default
|
|
||||||
- python3-libdnf5
|
|
||||||
# Content-based container layer splitting for rechunking
|
|
||||||
# Note we should be able to move this back to the base standard/manifest.yaml
|
|
||||||
# once chunkah is in CentOS Stream and RHEL.
|
|
||||||
- chunkah
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
# This file was forked/copied from Fedora CoreOS. TODO: resync
|
|
||||||
# once we have a good generic mechanism for sharing.
|
|
||||||
packages:
|
|
||||||
# Additional file compression/decompression
|
|
||||||
- bzip2 zstd
|
|
||||||
# Improved MOTD experience
|
|
||||||
- console-login-helper-messages-issuegen
|
|
||||||
- console-login-helper-messages-profile
|
|
||||||
# kdump support
|
|
||||||
# https://github.com/coreos/fedora-coreos-tracker/issues/622
|
|
||||||
# The makedumpfile and kdump-utils RPMs were broken out in
|
|
||||||
# Fedora and EL10+. To be able to use the same package list
|
|
||||||
# Across EL9 + Fedora + EL10 let's just name paths for now.
|
|
||||||
# We can go back to just specifying the RPM names when we
|
|
||||||
# no longer support EL9.
|
|
||||||
- kexec-tools
|
|
||||||
- /usr/share/makedumpfile # makedumpfile RPM
|
|
||||||
- /usr/bin/kdumpctl # kdump-utils RPM
|
|
||||||
# Container tooling
|
|
||||||
- toolbox
|
|
||||||
# nvme-cli for managing nvme disks
|
|
||||||
- nvme-cli
|
|
||||||
# Used by admins interactively
|
|
||||||
- lsof
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
# Configuration for the initramfs
|
|
||||||
postprocess:
|
|
||||||
- |
|
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -xeuo pipefail
|
|
||||||
mkdir -p /usr/lib/dracut/dracut.conf.d
|
|
||||||
cat > /usr/lib/dracut/dracut.conf.d/30-bootc-standard.conf << 'EOF'
|
|
||||||
add_dracutmodules+=" lvm crypt fips "
|
|
||||||
EOF
|
|
||||||
# Clevis in initramfs for LUKS auto-unlock.
|
|
||||||
# clevis-pin-tpm2 is only on x86_64/aarch64 (TPM2 hardware arches).
|
|
||||||
if test -x /usr/bin/clevis-pin-tpm2; then
|
|
||||||
cat > /usr/lib/dracut/dracut.conf.d/50-bootc-clevis.conf << 'EOF'
|
|
||||||
add_dracutmodules+=" clevis clevis-pin-tpm2 "
|
|
||||||
EOF
|
|
||||||
else
|
|
||||||
cat > /usr/lib/dracut/dracut.conf.d/50-bootc-clevis.conf << 'EOF'
|
|
||||||
add_dracutmodules+=" clevis "
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
# This test case exercises using the fedora-bootc image as a builder to
|
|
||||||
# generate a minimal target image, and then further extends it in a secondary
|
|
||||||
# phase.
|
|
||||||
|
|
||||||
# This is intentionally a locally built image
|
|
||||||
FROM localhost/fedora-bootc as builder
|
|
||||||
RUN <<EORUN
|
|
||||||
echo -e '--install\nltrace' > args.txt
|
|
||||||
/usr/libexec/bootc-base-imagectl --args-file args.txt build-rootfs --manifest=standard/manifest /target-rootfs
|
|
||||||
EORUN
|
|
||||||
|
|
||||||
# This pulls in the rootfs generated in the previous step
|
|
||||||
FROM scratch
|
|
||||||
COPY --from=builder /target-rootfs/ /
|
|
||||||
RUN <<EORUN
|
|
||||||
set -xeuo pipefail
|
|
||||||
. /usr/lib/os-release
|
|
||||||
test "$ID" = fedora
|
|
||||||
|
|
||||||
rpm -q ltrace
|
|
||||||
|
|
||||||
# And install a package
|
|
||||||
dnf -y install strace
|
|
||||||
dnf clean all
|
|
||||||
|
|
||||||
# Cleanup and lint
|
|
||||||
rm -rf /var/log /var/cache/* /var/lib/dnf
|
|
||||||
bootc container lint
|
|
||||||
EORUN
|
|
||||||
LABEL containers.bootc 1
|
|
||||||
ENV container=oci
|
|
||||||
STOPSIGNAL SIGRTMIN+3
|
|
||||||
CMD ["/sbin/init"]
|
|
||||||
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
# This test case exercises --sysusers.
|
|
||||||
|
|
||||||
# This is intentionally a locally built image
|
|
||||||
FROM localhost/fedora-bootc as builder
|
|
||||||
RUN <<EORUN
|
|
||||||
mkdir -p overlay/usr/lib/sysusers.d
|
|
||||||
cat > overlay/usr/lib/sysusers.d/00-chrony.conf <<EOF
|
|
||||||
g chrony 888
|
|
||||||
u chrony 888:888 - - -
|
|
||||||
EOF
|
|
||||||
/usr/libexec/bootc-base-imagectl build-rootfs --manifest=standard/manifest /target-rootfs --sysusers --add-dir overlay
|
|
||||||
EORUN
|
|
||||||
|
|
||||||
# This pulls in the rootfs generated in the previous step
|
|
||||||
FROM scratch
|
|
||||||
COPY --from=builder /target-rootfs/ /
|
|
||||||
RUN <<EORUN
|
|
||||||
set -xeuo pipefail
|
|
||||||
. /usr/lib/os-release
|
|
||||||
test "$ID" = fedora
|
|
||||||
|
|
||||||
# Sanity-check sysusers application
|
|
||||||
getent group chrony | grep :888:
|
|
||||||
getent passwd chrony | grep :888:888:
|
|
||||||
|
|
||||||
# Verify nobody is the modern default
|
|
||||||
getent passwd nobody | grep :65534:65534:
|
|
||||||
|
|
||||||
# Cleanup and lint
|
|
||||||
rm -rf /var/log /var/cache/* /var/lib/dnf
|
|
||||||
bootc container lint
|
|
||||||
EORUN
|
|
||||||
LABEL containers.bootc 1
|
|
||||||
ENV container=oci
|
|
||||||
STOPSIGNAL SIGRTMIN+3
|
|
||||||
CMD ["/sbin/init"]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
# This should always be replaced with podman build --from.
|
|
||||||
FROM localhost/image-to-test
|
|
||||||
COPY . /src
|
|
||||||
RUN /src/run /
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
# rootfs tests
|
|
||||||
|
|
||||||
This is a set of scripts that sanity check the target
|
|
||||||
rootfs in a read-only fashion.
|
|
||||||
|
|
||||||
To run the tests:
|
|
||||||
|
|
||||||
```
|
|
||||||
podman build --from localhost/fedora-bootc:latest -t localhost/test-bootc .
|
|
||||||
podman rmi localhost/test-bootc:latest # Clean up any created images
|
|
||||||
```
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
set -xeuo pipefail
|
|
||||||
# Verify the bootupd EFI has both grub2 and shim components installed.
|
|
||||||
# (Note we don't use jq here because that's not available in minimal.)
|
|
||||||
grep -q 'grub2-.*,shim-' /usr/lib/bootupd/updates/EFI.json
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
set -xeuo pipefail
|
|
||||||
# Verify group members
|
|
||||||
for grp in kvm tss; do
|
|
||||||
# Verify we can find through NSS
|
|
||||||
getent group $grp >/dev/null
|
|
||||||
# and these need to be directly in /etc
|
|
||||||
grep -q $grp /etc/group
|
|
||||||
done
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
set -xeuo pipefail
|
|
||||||
. /usr/lib/os-release
|
|
||||||
case "${ID}" in
|
|
||||||
fedora)
|
|
||||||
# https://gitlab.com/fedora/bootc/base-images/-/merge_requests/172
|
|
||||||
if rpm -q python3 &>/dev/null; then
|
|
||||||
rpm -q python3-libdnf5
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
set -xeuo pipefail
|
|
||||||
output=$(rpm -q iptables-legacy || true)
|
|
||||||
grep "is not installed" <<< "$output"
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue