Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ COPY --from=cli-artifacts /usr/share/openshift/linux_$TARGETARCH/{{ .oc_binary_n
COPY must-gather/bin/* /usr/bin/
COPY LICENSE /licenses/

RUN microdnf install -y rsync tar
RUN dnf install -y rsync tar

ENV LOGS_DIR="/must-gather"
RUN mkdir -p $LOGS_DIR && \
Expand Down
24 changes: 16 additions & 8 deletions pkg/dockerfilegen/generator.go
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,7 @@ func generateDockerfile(params Params, mainPackagesPaths sets.Set[string]) error
}

rhelVersion := RHEL9
templateFilePattern := "dockerfile-templates/rhel-9/*.tmpl"
var soVersion string
projectTag := metadata.Project.Tag
if projectTag == "main" || metadata.Project.Tag == "" {
Expand All @@ -185,6 +186,7 @@ func generateDockerfile(params Params, mainPackagesPaths sets.Set[string]) error
}
if minorVersion < 17 {
rhelVersion = RHEL8
templateFilePattern = "dockerfile-templates/*.tmpl"
}
semverSoVersion := soversion.FromUpstreamVersion(strings.Replace(projectTag, "knative-v", "", 1))
soVersion = fmt.Sprintf("%v.%v", semverSoVersion.Major, semverSoVersion.Minor)
Expand All @@ -199,6 +201,7 @@ func generateDockerfile(params Params, mainPackagesPaths sets.Set[string]) error
if semVer != nil {
if semVer.Minor < 37 {
rhelVersion = RHEL8
templateFilePattern = "dockerfile-templates/*.tmpl"
}
}
soVersion = fmt.Sprintf("%v.%v", semVer.Major, semVer.Minor)
Expand All @@ -220,11 +223,11 @@ func generateDockerfile(params Params, mainPackagesPaths sets.Set[string]) error
d := map[string]interface{}{
"builder": builderImage,
}
if _, err = saveDockerfile(d, DockerfileBuildImageTemplate, params.Output, params.DockerfilesBuildDir); err != nil {
if _, err = saveDockerfile(d, DockerfileBuildImageTemplate, templateFilePattern, params.Output, params.DockerfilesBuildDir); err != nil {
return err
}

if _, err = saveDockerfile(d, DockerfileSourceImageTemplate, params.Output, params.DockerfilesSourceDir); err != nil {
if _, err = saveDockerfile(d, DockerfileSourceImageTemplate, templateFilePattern, params.Output, params.DockerfilesSourceDir); err != nil {
return err
}

Expand Down Expand Up @@ -316,7 +319,7 @@ func generateDockerfile(params Params, mainPackagesPaths sets.Set[string]) error
ErrBadConf, params.TemplateName)
}
templateFiles := "dockerfile-templates/*.tmpl"
if rhelVersion == "rhel-9" {
if rhelVersion == RHEL9 {
templateFiles = "dockerfile-templates/rhel-9/*.tmpl"
}
t, err := template.ParseFS(dockerfileTemplate, templateFiles)
Expand All @@ -338,7 +341,7 @@ func generateDockerfile(params Params, mainPackagesPaths sets.Set[string]) error
out = filepath.Join(params.Output, params.DockerfilesTestDir, filepath.Base(p))
}

dockerfilePath, err := saveDockerfile(d, dockerfileTemplate, out, "")
dockerfilePath, err := saveDockerfile(d, dockerfileTemplate, templateFiles, out, "")
if err != nil {
return err
}
Expand Down Expand Up @@ -417,8 +420,13 @@ func generateMustGatherDockerfile(params Params) error {
return fmt.Errorf("%w: Could not read metadata file: %w",
ErrBadConf, errors.WithStack(err))
}

ocClientArtifactsImage := fmt.Sprintf(ocClientArtifactsBaseImage, metadata.Requirements.OcpVersion.Min)
if metadata.Project.Version != "" {
// explicit override OCP min version due to RHEL 9 images since 1.37
if semver.New(metadata.Project.Version).Minor >= 37 && metadata.Requirements.OcpVersion.Min == "4.14" {
ocClientArtifactsImage = fmt.Sprintf(ocClientArtifactsBaseImage, "4.15")
}
}
projectName := mustGatherDockerfileTemplateName
projectDashCaseWithSep := projectName + "-"

Expand Down Expand Up @@ -474,7 +482,7 @@ func generateMustGatherDockerfile(params Params) error {
}

out := filepath.Join(params.Output, params.DockerfilesDir, filepath.Base(projectName))
if _, err = saveDockerfile(d, DockerfileMustGatherTemplate, out, ""); err != nil {
if _, err = saveDockerfile(d, DockerfileMustGatherTemplate, templateFile, out, ""); err != nil {
return err
}
if err = writeRPMLockFile(rpmsLockTemplate, params.RootDir); err != nil {
Expand Down Expand Up @@ -593,8 +601,8 @@ func downloadImagesFrom(r string, branch string, urlFmt string) (map[string]stri
return images, nil
}

func saveDockerfile(d map[string]interface{}, imageTemplate embed.FS, output string, dir string) (string, error) {
bt, err := template.ParseFS(imageTemplate, "dockerfile-templates/*.tmpl")
func saveDockerfile(d map[string]interface{}, imageTemplate embed.FS, templatePattern, output string, dir string) (string, error) {
bt, err := template.ParseFS(imageTemplate, templatePattern)
if err != nil {
return "", fmt.Errorf("%w: Failed creating template: %w",
ErrBadTemplate, errors.WithStack(err))
Expand Down
10 changes: 5 additions & 5 deletions pkg/dockerfilegen/templates.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@ package dockerfilegen

import "embed"

//go:embed dockerfile-templates/Default.dockerfile.tmpl dockerfile-templates/rhel-9/*
//go:embed dockerfile-templates/Default.dockerfile.tmpl dockerfile-templates/rhel-9/Default.dockerfile.tmpl
var DockerfileDefaultTemplate embed.FS

//go:embed dockerfile-templates/FuncUtil.dockerfile.tmpl dockerfile-templates/rhel-9/*
//go:embed dockerfile-templates/FuncUtil.dockerfile.tmpl dockerfile-templates/rhel-9/FuncUtil.dockerfile.tmpl
var DockerfileFuncUtilTemplate embed.FS

//go:embed dockerfile-templates/BuildImage.dockerfile.tmpl dockerfile-templates/rhel-9/*
//go:embed dockerfile-templates/BuildImage.dockerfile.tmpl dockerfile-templates/rhel-9/BuildImage.dockerfile.tmpl
var DockerfileBuildImageTemplate embed.FS

//go:embed dockerfile-templates/SourceImage.dockerfile.tmpl dockerfile-templates/rhel-9/*
//go:embed dockerfile-templates/SourceImage.dockerfile.tmpl dockerfile-templates/rhel-9/SourceImage.dockerfile.tmpl
var DockerfileSourceImageTemplate embed.FS

//go:embed dockerfile-templates/MustGather.dockerfile.tmpl dockerfile-templates/rhel-9/*
//go:embed dockerfile-templates/MustGather.dockerfile.tmpl dockerfile-templates/rhel-9/MustGather.dockerfile.tmpl
var DockerfileMustGatherTemplate embed.FS

//go:embed ubi8.rpms.lock.yaml
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# DO NOT EDIT! Generated Dockerfile.

FROM registry.ci.openshift.org/ocp/4.17:cli-artifacts as tools
FROM registry.ci.openshift.org/ocp/4.19:cli-artifacts as tools

# Dockerfile to bootstrap build and test in openshift-ci
FROM registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.22-openshift-4.17 as builder

ARG TARGETARCH

COPY --from=tools /usr/share/openshift/linux_$TARGETARCH/oc.rhel8 /usr/bin/oc
COPY --from=tools /usr/share/openshift/linux_$TARGETARCH/oc.rhel9 /usr/bin/oc

RUN ln -s /usr/bin/oc /usr/bin/kubectl

RUN yum install -y httpd-tools
RUN dnf install -y httpd-tools

RUN wget https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 && \
chmod 700 ./get-helm-3
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# DO NOT EDIT! Generated Dockerfile for cmd/discover.
ARG GO_BUILDER=registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.22-openshift-4.17
ARG GO_RUNTIME=registry.access.redhat.com/ubi8/ubi-minimal
ARG GO_RUNTIME=registry.access.redhat.com/ubi9/ubi-minimal

FROM $GO_BUILDER as builder

Expand Down
Loading