Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
5ef0d5b
chore(core): improve build and add libswtpm
universal-itengineer May 28, 2025
fe1623b
use ModuleNamePrefix for images
universal-itengineer Jun 9, 2025
33a1f65
use instead include
universal-itengineer Jun 9, 2025
55f642f
add rm git to src-artifact
universal-itengineer Jun 11, 2025
3a1d511
gnutls add rm git, upd submodules
universal-itengineer Jun 11, 2025
35250ec
add src
universal-itengineer Jun 11, 2025
0e25354
fix import images
universal-itengineer Jun 11, 2025
0e86e38
delete helpers template
universal-itengineer Jun 11, 2025
bbc5f04
back versions template
universal-itengineer Jun 11, 2025
f3b235a
glib2 coment git rm
universal-itengineer Jun 11, 2025
122f282
fix libbsd
universal-itengineer Jun 11, 2025
cea77c3
comment rm -rf git folder
universal-itengineer Jun 11, 2025
9a85412
add .ModuleNamePrefix to pkgs
universal-itengineer Jun 11, 2025
ec070de
++ fix typos in image names
diafour Jun 23, 2025
289d125
++ support fallback to global dockercfg if module is included as embe…
diafour Jun 23, 2025
2c2e21f
++ virtualization-artifact: use /src directory for sources instead of…
diafour Jun 26, 2025
0e18ae7
++ dvcr-artifact: add install stage with go mod download
diafour Jun 26, 2025
37d6605
++ edk2: add submodule url rewrite for berkeley-softfloat-3, sort com…
diafour Jun 26, 2025
e743a3d
++ remove GO111MODULE=on (I just need a new commit to debug submodule…
diafour Jun 26, 2025
9b78568
++ forgot ModulePathPrefix
diafour Jun 26, 2025
1d1f40a
++ svace builder: use builder/src to download sources
diafour Jun 27, 2025
fde43d8
++ edk2, qemu, gnutls, libvirt: replace set-url with git -c url.inste…
diafour Jun 30, 2025
67636de
++ sync with main: use svace builder from deckhouse base images
diafour Jul 2, 2025
68859dd
++ fixes to download sources via proxy
diafour Jul 2, 2025
3092e97
++ exclude "build only" non-final images
diafour Jul 4, 2025
8f29ab9
++ defines should not be inside ifs
diafour Jul 4, 2025
feebe0d
++ move all declarations to the top
diafour Jul 4, 2025
5c0275f
++ last fixes
diafour Jul 4, 2025
56eac1a
++ use more recent builder/alt
diafour Jul 4, 2025
9beb087
add findmnt for fix hotplug fo sc like type file
universal-itengineer Jul 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions .werf/defines/image-digest.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{{/*
{{ define "images_digest_image" }}
{{- $context := . -}}

---
image: images-digests
fromImage: builder/alpine
dependencies:
{{- range $imageDigest := $context.ImagesDigestList }}
{{- $ImageNameCamel := $imageDigest | splitList "/" | last | camelcase | untitle }}
- image: {{ $imageDigest }}
before: setup
imports:
- type: ImageDigest
targetEnv: MODULE_IMAGE_DIGEST_{{ $ImageNameCamel }}
{{- end }}
shell:
beforeInstall:
- apk add --no-cache jq
setup:
- |
env | grep MODULE_IMAGE_DIGEST | jq -Rn '
reduce inputs as $i (
{};
. * (
$i | ltrimstr("MODULE_IMAGE_DIGEST_") | sub("=";"_") |
split("_") as [$imageName, $digest] |
{($imageName): $digest}
)
)
' > /images_digests.json
cat images_digests.json
{{ end }}
*/}}
22 changes: 11 additions & 11 deletions .werf/defines/parse-base-images-map.tmpl
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
{{- define "parse_base_images_map" }}
{{- $virtualizationImages := .Files.Get "base-images/virtualization_images.yml" | fromYaml }}
{{- $deckhouseImages := .Files.Get "base-images/deckhouse_images.yml" | fromYaml }}
{{- $virtualizationImages := .Files.Get "base-images/virtualization_images.yml" | fromYaml -}}
{{- $deckhouseImages := .Files.Get "base-images/deckhouse_images.yml" | fromYaml -}}

# virtualizationImages have image format:
# BASE_IMAGE: "<image_name>@sha256abcde12345
{{- range $k, $v := $virtualizationImages }}
{{ $baseImagePath := (printf "%s%s" $virtualizationImages.REGISTRY_PATH (trimSuffix "/" $v)) }}
{{- if ne $k "REGISTRY_PATH" }}
{{- $_ := set $virtualizationImages $k $baseImagePath }}
{{- end }}
{{ $baseImagePath := (printf "%s%s" $virtualizationImages.REGISTRY_PATH (trimSuffix "/" $v)) -}}
{{- if ne $k "REGISTRY_PATH" -}}
{{- $_ := set $virtualizationImages $k $baseImagePath -}}
{{- end -}}
{{- end }}
{{- $_ := unset $virtualizationImages "REGISTRY_PATH" }}

# deckhouse_images has a format
# <prefix>/<name>: "sha256:abcde12345
{{- range $k, $v := $deckhouseImages }}
{{ $baseImagePath := (printf "%s@%s" $deckhouseImages.REGISTRY_PATH (trimSuffix "/" $v)) }}
{{- if ne $k "REGISTRY_PATH" }}
{{- $_ := set $deckhouseImages $k $baseImagePath }}
{{- end }}
{{- range $k, $v := $deckhouseImages -}}
{{ $baseImagePath := (printf "%s@%s" $deckhouseImages.REGISTRY_PATH (trimSuffix "/" $v)) -}}
{{- if ne $k "REGISTRY_PATH" -}}
{{- $_ := set $deckhouseImages $k $baseImagePath -}}
{{- end -}}
{{- end }}
{{- $_ := unset $deckhouseImages "REGISTRY_PATH" }}

Expand Down
52 changes: 52 additions & 0 deletions .werf/defines/process-images.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{{/* # Common dirs */}}
{{- define "module_image_template" }}
{{- tpl .ImageBuildData . | nindent 0 }}
{{- end }}

{{ define "process_images" }}

{{/* # Context inside folder images */}}
{{- $Root := . }}

{{ $ImagesBuildFiles := .Files.Glob "images/*/{Dockerfile,werf.inc.yaml}" }}

{{- range $path, $content := $ImagesBuildFiles }}

{{- $ctx := dict }}
{{- $_ := set $ctx "ImageInstructionType" "Stapel" }}

{{- $ImageData := regexReplaceAll "^images/([0-9a-z-_]+)/(Dockerfile|werf.inc.yaml)$" $path "${1}#${2}" | split "#" }}

{{- $_ := set $ctx "ImageName" $ImageData._0 }}
{{- $_ := set $ctx "ModuleNamePrefix" "" }}
{{- $_ := set $ctx "ModulePathPrefix" "" }}
{{- $_ := set $ctx "ImageBuildData" $content }}
{{- $_ := set $ctx "Files" $Root.Files }}
{{- $_ := set $ctx "SOURCE_REPO" $Root.SOURCE_REPO }}
{{- $_ := set $ctx "SOURCE_REPO_GIT" $Root.SOURCE_REPO_GIT }}
{{- $_ := set $ctx "MODULE_EDITION" $Root.MODULE_EDITION }}
{{- $_ := set $ctx "Version" $Root.Version }}
{{- $_ := set $ctx "Package" $Root.Package }}
{{- $_ := set $ctx "GOPROXY" (env "GOPROXY" "https://proxy.golang.org,direct") }}
{{- $_ := set $ctx "ProjectName" $ctx.ImageName }}
{{- $_ := set $ctx "Commit" $Root.Commit }}
{{- $_ := set $ctx "SVACE_ENABLED" $Root.SVACE_ENABLED }}
{{- $_ := set $ctx "SVACE_ANALYZE_SSH_USER" $Root.SVACE_ANALYZE_SSH_USER }}
{{- $_ := set $ctx "SVACE_ANALYZE_HOST" $Root.SVACE_ANALYZE_HOST }}
{{- $_ := set $ctx "SVACE_IMAGE_SUFFIX" $Root.SVACE_IMAGE_SUFFIX }}


{{- include "module_image_template" $ctx }}

{{- range $ImageYamlMainfest := regexSplit "\n?---[ \t]*\n" (include "module_image_template" $ctx) -1 }}
{{- $ImageManifest := $ImageYamlMainfest | fromYaml }}
{{- if $ImageManifest | dig "final" true }}
{{- if $ImageManifest.image }}
{{- $_ := set $ "ImagesIDList" (append $.ImagesIDList $ImageManifest.image) }}
{{- end }}
{{- end }}
{{- end }}

{{- end }}

{{- end }}
76 changes: 76 additions & 0 deletions .werf/defines/process-packages-images.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
{{/*
# Parse variables for images from their path.
# for example: `packages/binaries/swtpm/werf.inc.yaml` turns into
# ImageType: packages/binaries
# ImageName: swtpm
*/}}

{{ define "process_packages_images" }}
{{- $Root := . }}

{{/*{{- $packageImagePathRegex := "^images/(packages)/([0-9a-z-_]+)/([0-9a-z-_]+)/(werf.inc.yaml)$" }}*/}}
{{- $packageImagePathGlob := "images/packages/*/*/{Dockerfile,werf.inc.yaml}" }}
{{- $packageImagePathRegex := "images/(packages)/([0-9a-z-_]+)/([0-9a-z-_]+)/(werf.inc.yaml)$" }}

{{- if $Root.ModuleName -}}
{{- $modulePath := (printf "%smodules/%s-%s/" $Root.ModulePath $Root.ModulePriority $Root.ModuleName ) }}
{{- $packageImagePathGlob = (printf "%s%s" $modulePath $packageImagePathGlob) -}}
{{- end -}}

{{ $ImagePackages := $Root.Files.Glob $packageImagePathGlob }}

{{- range $path, $content := $ImagePackages }}
{{- $ctx := dict }}
{{- $_ := set $ctx "ImageInstructionType" "Stapel" }}

{{- $ImageData := regexReplaceAll $packageImagePathRegex $path "${1}#${2}#${3}#${4}" | split "#" }}

{{- $_ := set $ctx "PackagePath" (printf "%s/%s" $ImageData._0 $ImageData._1) }}
{{- $_ := set $ctx "ImageName" $ImageData._2 }}
{{- $_ := set $ctx "ModuleNamePrefix" "" }}
{{- $_ := set $ctx "ModulePathPrefix" "" }}
{{- $_ := set $ctx "ImageBuildData" $content }}
{{- $_ := set $ctx "SOURCE_REPO" $Root.SOURCE_REPO }}
{{- $_ := set $ctx "SOURCE_REPO_GIT" $Root.SOURCE_REPO_GIT }}
{{- $_ := set $ctx "MODULE_EDITION" $Root.MODULE_EDITION }}
{{- $_ := set $ctx "PackageVersion" $Root.Package }}
{{- $_ := set $ctx "GOPROXY" (env "GOPROXY" "https://proxy.golang.org,direct") }}

{{- include "module_image_template" $ctx }}

{{- range $ImageYamlMainfest := regexSplit "\n?---[ \t]*\n" (include "module_image_template" $ctx) -1 }}
{{- $ImageManifest := $ImageYamlMainfest | fromYaml }}
{{- if $ImageManifest | dig "final" true }}
{{- if $ImageManifest.image }}
{{- $_ := set $ "ImagesIDList" (append $.ImagesIDList $ImageManifest.image) }}
{{- end }}
{{- end }}
{{- end }}

{{- end }}

{{- end }}


{{ define "Versions" }}

{{- $_ := set . "Version" dict -}}
{{- $_ := set . "Package" dict -}}
{{- $versions_path := "component_versions/version_map.yml" -}}

{{- if .ModuleName -}}
{{- $module_versions_ctx := (printf "%smodules/%s-%s/" .ModulePath .ModulePriority .ModuleName ) }}
{{- $versions_path = (printf "%s%s" $module_versions_ctx $versions_path) -}}
{{- end -}}

{{- $versions_ctx := (.Files.Get $versions_path | fromYaml) -}}

{{- range $k, $v := $versions_ctx.firmware -}}
{{- $_ := set $.Version $k $v -}}
{{- end -}}

{{- range $k, $v := $versions_ctx.package -}}
{{- $_ := set $.Package $k $v -}}
{{- end -}}

{{ end }}
21 changes: 21 additions & 0 deletions .werf/defines/virtualization-src-artifact.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{{/* common/src-artifact */}}

{{ define "image-src-artifact" }}
{{- $ctx := . -}}
{{- $fromImage := "" -}}

{{- if $ctx.ModuleName -}}
{{- $fromImage = "fromImage: common/src-artifact"}}
{{- else -}}
{{- $fromImage = "fromImage: src-artifact"}}
{{- end -}}

image: {{ include "ImageName" (list . "src-artifact") }}
{{ $fromImage }}
final: false
secrets:
- id: SOURCE_REPO
value: {{ $.SOURCE_REPO }}
shell:
beforeInstall:
{{ end }}
61 changes: 1 addition & 60 deletions .werf/images.yaml
Original file line number Diff line number Diff line change
@@ -1,60 +1 @@
# Common dirs
{{- define "module_image_template" }}

{{- if eq .ImageInstructionType "Dockerfile" }}
---
image: images/{{ .ImageName }}
context: images/{{ .ImageName }}
dockerfile: Dockerfile
{{- else }}
{{- tpl .ImageBuildData . | nindent 0 }}
{{- end }}

{{- end }}

# Context inside folder images
{{- $Root := . }}

{{ $ImagesBuildFiles := .Files.Glob "images/*/{Dockerfile,werf.inc.yaml}" }}

{{- range $path, $content := $ImagesBuildFiles }}
{{- $ctx := dict }}

{{- if regexMatch "/werf.inc.yaml$" $path }}
{{- $_ := set $ctx "ImageInstructionType" "Stapel" }}
{{- else }}
{{- $_ := set $ctx "ImageInstructionType" "Dockerfile" }}
{{- end }}

{{- $ImageData := $path | split "/" }}

{{- $_ := set $ctx "ImageName" $ImageData._1 }}
{{- $_ := set $ctx "ImageBuildData" $content }}
{{- $_ := set $ctx "SOURCE_REPO" $Root.SOURCE_REPO }}
{{- $_ := set $ctx "SOURCE_REPO_GIT" $Root.SOURCE_REPO_GIT }}
{{- $_ := set $ctx "MODULE_EDITION" $Root.MODULE_EDITION }}
{{- $_ := set $ctx "Version" $Root.Version }}
{{- $_ := set $ctx "ProjectName" $ctx.ImageName }}
{{- $_ := set $ctx "Commit" $Root.Commit }}
{{- $_ := set $ctx "SVACE_ENABLED" $Root.SVACE_ENABLED }}
{{- $_ := set $ctx "SVACE_ANALYZE_SSH_USER" $Root.SVACE_ANALYZE_SSH_USER }}
{{- $_ := set $ctx "SVACE_ANALYZE_HOST" $Root.SVACE_ANALYZE_HOST }}
{{- $_ := set $ctx "SVACE_IMAGE_SUFFIX" $Root.SVACE_IMAGE_SUFFIX }}


{{- include "module_image_template" $ctx }}

{{- range $ImageYamlMainfest := regexSplit "\n?---[ \t]*\n" (include "module_image_template" $ctx) -1 }}
{{- $ImageManifest := $ImageYamlMainfest | fromYaml }}

{{- if $ImageManifest | dig "final" true }}

{{- if $ImageManifest.image }}
{{- $_ := set $ "ImagesIDList" (append $.ImagesIDList $ImageManifest.image) }}
{{- end }}

{{- end }}

{{- end }}

{{- end }}
{{ include "process_images" . }}
59 changes: 0 additions & 59 deletions .werf/packages.yaml

This file was deleted.

4 changes: 2 additions & 2 deletions base-images/deckhouse_images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ base/python: "sha256:bda80f25bbfb09a9e6793a5fcc3a560ebb058ba6618f413a778056951e6
base/python-v3.12.10: "sha256:bda80f25bbfb09a9e6793a5fcc3a560ebb058ba6618f413a778056951e663461" # fromImage: builder/scratch
builder/alpine: "sha256:286e7fddf397a48ed2529f630881876284ff09c84c6dcfce9d982f4e035648cd" # from: alpine:3.20.6
builder/alpine-3.20: "sha256:286e7fddf397a48ed2529f630881876284ff09c84c6dcfce9d982f4e035648cd" # from: alpine:3.20.6
builder/alt: "sha256:7223768d0f8af786c3621de7761075cf6f8f025b3b4bf7edfdceac21038d5fef" # from: registry.altlinux.org/p11/alt:20250321
builder/alt-2025-04-24: "sha256:7223768d0f8af786c3621de7761075cf6f8f025b3b4bf7edfdceac21038d5fef" # from: registry.altlinux.org/p11/alt:20250321
builder/alt: "sha256:ee2b848c440ecbbe0e941bcbc1e7c75001ae05662742a015594edf470e4c5465" # from: registry.altlinux.org/p11/alt:20250321
builder/alt-2025-05-31: "sha256:ee2b848c440ecbbe0e941bcbc1e7c75001ae05662742a015594edf470e4c5465" # from: registry.altlinux.org/p11/alt:20250321
builder/golang-alpine: "sha256:f6f526535fdfcdf869a9e09831beeb3ed0d0eac3076a18840dfbfcd1b069c895" # from: golang:1.24.2-alpine3.20
builder/golang-alpine-1.23: "sha256:68747b189da26bd5bff8f6ec0a9d614940f4d05adcee91ab50b4ee39e335d1c2" # from: golang:1.23.8-alpine3.20
builder/golang-alpine-1.24: "sha256:f6f526535fdfcdf869a9e09831beeb3ed0d0eac3076a18840dfbfcd1b069c895" # from: golang:1.24.2-alpine3.20
Expand Down
1 change: 1 addition & 0 deletions component_versions/version_map.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,4 @@ package:
dtc: v1.7.2
fuse3: fuse-3.16.2
libgcrypt: libgcrypt-1.10.2
libtpms: 0.10.0
12 changes: 7 additions & 5 deletions images/base-alt-p11-binaries/werf.inc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,16 @@ libraries:

{{ $builderDependencies := include "$name" . | fromYaml }}

image: {{ $.ImageName }}
image: {{ .ModuleNamePrefix }}{{ .ImageName }}
final: false
{{- if not .ModuleName }}
fromImage: BASE_ALT_P11
{{- else }}
fromImage: builder/alt
{{- end }}
git:
- add: /images/{{ $.ImageName }}
to: /
includePaths:
- relocate_binaries.sh
- add: {{ .ModulePathPrefix }}/images/{{ $.ImageName }}/relocate_binaries.sh
to: /relocate_binaries.sh
shell:
install:
{{- include "alt packages proxy" . | nindent 2 }}
Expand Down
Loading
Loading