Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[fcos] support xz-encoded images #3008

Merged
merged 1 commit into from
Feb 3, 2020

Conversation

vrutkovs
Copy link
Member

Some FCOS images are xz-compressed, however RHCOS is gzipped

@vrutkovs
Copy link
Member Author

/cc @LorbusChris

@openshift-ci-robot openshift-ci-robot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Jan 28, 2020
@vrutkovs
Copy link
Member Author

/hold

Needs openshift/machine-config-operator#1415

@openshift-ci-robot openshift-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jan 28, 2020
@vrutkovs
Copy link
Member Author

/hold cancel
/retest

@openshift-ci-robot openshift-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jan 29, 2020
@vrutkovs
Copy link
Member Author

/override ci/prow/vsphere

Known issues, skipping

@vrutkovs
Copy link
Member Author

/override ci/prow/e2e-vsphere

@openshift-ci-robot
Copy link
Contributor

@vrutkovs: Overrode contexts on behalf of vrutkovs: ci/prow/e2e-vsphere

In response to this:

/override ci/prow/e2e-vsphere

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 kubernetes/test-infra repository.

@openshift-ci-robot
Copy link
Contributor

@vrutkovs: /override requires a failed status context to operate on.
The following unknown contexts were given:

  • ci/prow/vsphere

Only the following contexts were expected:

  • ci/prow/e2e-aws
  • ci/prow/e2e-vsphere
  • ci/prow/gofmt
  • ci/prow/golint
  • ci/prow/govet
  • ci/prow/images
  • ci/prow/shellcheck
  • ci/prow/tf-fmt
  • ci/prow/tf-lint
  • ci/prow/unit
  • ci/prow/verify-vendor
  • ci/prow/yaml-lint
  • tide

In response to this:

/override ci/prow/vsphere

Known issues, skipping

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 kubernetes/test-infra repository.

@@ -31,7 +32,11 @@ func QEMU(ctx context.Context, arch types.Architecture) (string, error) {
// Attach sha256 checksum to the URL. Always provide the
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment is not accurate anymore.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, fixed

}

// decompressFile decompresses data in the cache
func decompressFile(src, dest string) error {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

decompressor func is detected from compressorMap and called (see below)

@LorbusChris
Copy link
Member

Trying to keep the delta between master and fcos small: Can we get this into master already as well?
@mandre @abhinavdahiya

/retest
/lgtm

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Jan 29, 2020
}
defer xzfile.Close()

reader, err := xz.NewReader(xzfile)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tangentially see coreos/mantle@c7b6994

Of course the mantle codebase has a lot of stuff around this area, including now signature checking...maybe at some point we could try to make it a shared library.

@cgwalters
Copy link
Member

/approve

@mandre
Copy link
Member

mandre commented Jan 30, 2020

/hold

It's still not clear to me what calls decompressFile. IIUC, it's still going to use the old code path to decompress the file, and it's going to fail because you're now verifying against a different sha.

@openshift-ci-robot openshift-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jan 30, 2020
@vrutkovs
Copy link
Member Author

/retest

@jomeier
Copy link
Contributor

jomeier commented Jan 31, 2020

@vrutkovs:
I think a different problem is that Terraform will still try to download the xz image from the internet and upload that instead of your decompressed file to an Azure Blob.

The decompression code must be called in pkg/tfvars/azure/azure.go I think.

Also the type of blob storage must be page instead of block. Terraform will complain about that later.

Currently I prepare a PR for that including that the decompression code will be called.

@jomeier
Copy link
Contributor

jomeier commented Jan 31, 2020

@vrutkovs @LorbusChris
Could you check this one? This should work. At least if you have a better Internet connection than me :-)

#3033

The proof that in principle the upload should work:
https://pasteboard.co/ISwEn7E.png

This screenshot tells you that Microsoft recommends to use page blobs for VHD files:
https://pasteboard.co/ISwESU9.png

For the conversion of the VHD file into an Azure image it seems to be necessary that the VHD file is in fixed size. The fcos image provided by the core os team seems to be in dynamic size which breaks Terraform during the creation of the image.

@jomeier
Copy link
Contributor

jomeier commented Jan 31, 2020

Uses github.com/ulikunitz/xz to uncompress artifacts, identified
by application/octet-stream
@openshift-ci-robot openshift-ci-robot removed lgtm Indicates that a PR is ready to be merged. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Feb 2, 2020
@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Feb 3, 2020
@mandre
Copy link
Member

mandre commented Feb 3, 2020

/hold cancel

@openshift-ci-robot openshift-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Feb 3, 2020
@openshift-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: cgwalters, LorbusChris

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci-robot openshift-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Feb 3, 2020
@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

1 similar comment
@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@sdodson sdodson added the bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. label Feb 3, 2020
@vrutkovs
Copy link
Member Author

vrutkovs commented Feb 3, 2020

/override ci/prow/e2e-vsphere

known bootstrap issue

@openshift-ci-robot
Copy link
Contributor

@vrutkovs: Overrode contexts on behalf of vrutkovs: ci/prow/e2e-vsphere

In response to this:

/override ci/prow/e2e-vsphere

known bootstrap issue

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 kubernetes/test-infra repository.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

10 similar comments
@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@vrutkovs
Copy link
Member Author

vrutkovs commented Feb 3, 2020

/override ci/prow/e2e-vsphere

known bootstrap issue

@openshift-ci-robot
Copy link
Contributor

@vrutkovs: Overrode contexts on behalf of vrutkovs: ci/prow/e2e-vsphere

In response to this:

/override ci/prow/e2e-vsphere

known bootstrap issue

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 kubernetes/test-infra repository.

@openshift-merge-robot openshift-merge-robot merged commit 9fd1159 into openshift:fcos Feb 3, 2020
@openshift-ci-robot
Copy link
Contributor

@vrutkovs: The following test failed, say /retest to rerun all failed tests:

Test name Commit Details Rerun command
ci/prow/e2e-vsphere 187f5a1 link /test e2e-vsphere

Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR.

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 kubernetes/test-infra repository. I understand the commands that are listed here.

@LorbusChris
Copy link
Member

/cherry-pick master

@openshift-cherrypick-robot

@LorbusChris: #3008 failed to apply on top of branch "master":

error: Failed to merge in the changes.
Using index info to reconstruct a base tree...
M	go.mod
Falling back to patching base and 3-way merge...
Auto-merging go.mod
CONFLICT (content): Merge conflict in go.mod
Patch failed at 0001 cache: support artifacts compressed with xz

In response to this:

/cherry-pick master

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 kubernetes/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. lgtm Indicates that a PR is ready to be merged. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants