AGENT-1193: Add --mirror-path flag to support pre-mirrored images#634
AGENT-1193: Add --mirror-path flag to support pre-mirrored images#634rwsu wants to merge 1 commit intoopenshift:masterfrom
Conversation
be9a81e to
c10ba39
Compare
|
@rwsu: This pull request references AGENT-1193 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.22.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
@rwsu: This pull request references AGENT-1193 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.22.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
@rwsu: This pull request references AGENT-1193 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.22.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
@rwsu: This pull request references AGENT-1193 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.22.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/cc @danielerez |
pkg/asset/config/appliance_config.go
Outdated
| } | ||
| releaseVersion = strings.Trim(releaseVersion, "'") | ||
| logrus.Debugf("Release version: %s", releaseVersion) | ||
| logrus.Debugf("Got release version: '%s'", releaseVersion) |
There was a problem hiding this comment.
not directly to change, and not sure this convention is cleaner:)
| } | ||
| releaseDigest = strings.Trim(releaseDigest, "'") | ||
| releaseImage = fmt.Sprintf("%s@%s", strings.Split(releaseImage, ":")[0], releaseDigest) | ||
| releaseImage = fmt.Sprintf("%s@%s", releaseImage, releaseDigest) |
There was a problem hiding this comment.
Yes, it was to handle this error:
FATAL failed to fetch Appliance live ISO: failed to fetch dependency of "Appliance live ISO": failed to generate asset "Base ISO (CoreOS)": Failed to execute cmd (/usr/local/bin/oc adm release info --image-for=machine-os-images --insecure=true virthost.ostest.test.metalkube.org@sha256:dc120ba1d210d398da3bcd712c9a7bccf0086c1b7fde42fca8b186d7d16f3fa8): error: unable to connect to image repository : invalid reference format
The problem is the custom release image has a url of virthost.ostest.test.metalkube.org:5000/localimages/local-release-image:latest which contains two colons. The original code takes the first part losing the port number.
There was a problem hiding this comment.
Hmm, so maybe do this change only when using a custom release image?
I mean to avoid breaking the flow for other images without port...
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: rwsu The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
bcd041f to
9e775e7
Compare
Add support for using pre-mirrored images from oc-mirror workspace by specifying the mirror path in appliance-config.yaml. When mirrorPath is configured, the appliance skips running oc-mirror and uses the pre-mirrored registry data directly. Changes: - Add MirrorPath field to top level of ApplianceConfig in types - Update appliance-config.yaml template to document the new field - Update code to read mirrorPath from ApplianceConfig.Config.MirrorPath - Add validateMirrorPath() to ApplianceConfig with comprehensive validation - Use pre-mirrored images when mirrorPath is provided - Update documentation to describe mirrorPath parameter and usage The mirror-path can be specified in appliance-config.yaml as: mirrorPath: /path/to/oc-mirror/workspace Assisted-by: Claude Sonnet 4.5 <noreply@anthropic.com>
|
@rwsu: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
| } | ||
| releaseDigest = strings.Trim(releaseDigest, "'") | ||
| releaseImage = fmt.Sprintf("%s@%s", strings.Split(releaseImage, ":")[0], releaseDigest) | ||
| releaseImage = fmt.Sprintf("%s@%s", releaseImage, releaseDigest) |
There was a problem hiding this comment.
Hmm, so maybe do this change only when using a custom release image?
I mean to avoid breaking the flow for other images without port...
| logrus.Infof("Using pre-mirrored images from: %s", mirrorPath) | ||
| tempDir = mirrorPath | ||
| } else { | ||
| // Normal mirroring flow - run oc-mirror |
There was a problem hiding this comment.
can you swap the condition? just for keeping convention.
i.e. check mirrorPath == "" (normal flow first)
| imageGen := genisoimage.NewGenIsoImage(nil) | ||
| if err = imageGen.GenerateImage(envConfig.CacheDir, dataIsoName, filepath.Join(envConfig.TempDir, dataDir), dataVolumeName); err != nil { | ||
|
|
||
| // When mirror-path is provided, copy the Docker registry data from mirror-path/data |
There was a problem hiding this comment.
this Generate func is getting a bit too long:)
can you extract the new logic to another func?
Adds support for using pre-mirrored OCP release images instead of running
oc-mirror during the build process. This is useful when images have already
been mirrored in a separate step, avoiding redundant mirroring operations.
Changes:
When using custom registries instead of official OpenShift release images,
oc commands need authentication credentials to pull images. This adds the
--registry-config flag to all oc commands and --authfile to skopeo.
store instance and reusing it throughout the command execution, we ensure
EnvConfig is only generated once with the correct values and not overwritten.
Assisted-by: Claude Sonnet 4.5 noreply@anthropic.com