Skip to content

Add images verify cmd #18

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

Merged
merged 14 commits into from
Apr 21, 2022
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
cluster-up/
bin/
.idea
results.json
68 changes: 68 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
---
run:
concurrency: 6
deadline: 5m
skip-dirs-use-default: true
skip-dirs:
- contrib
- dependencies
skip-files:
- swagger.go
modules-download-mode: readonly
linters:
enable-all: true
disable:
# All these break for one reason or another
- nolintlint # some linter must be disabled (see `nolint` in the code)
- tagliatelle # too many JSON keys cannot be changed due to compat
- gocognit
- testpackage
- goerr113
- exhaustivestruct
- errorlint
- wrapcheck
- paralleltest
- wsl
- godox
- tparallel
- gomnd
- nlreturn
- noctx
- nestif
- predeclared
- thelper
- ifshort
- staticcheck
- forbidigo
- exhaustive
- unparam
- gofumpt
- gci
- godot
- dupl
- funlen
- gochecknoglobals
- gochecknoinits
- goconst
- gocyclo
- lll
- unconvert
- errcheck
- gocritic
- gosec
- maligned
- gomoddirectives
- revive
- containedctx
- contextcheck
- cyclop
- errname
- forcetypeassert
- ireturn
- varnamelen
- maintidx
- nilnil
linters-settings:
errcheck:
check-blank: false
ignore: encoding/json:^Unmarshal,fmt:.*
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,12 @@ medius:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/medius kubevirt.io/containerdisks/cmd/medius

fmt:
go mod tidy
go mod tidy -compat=1.17
gofmt -s -w .

lint:
CGO_ENABLED=0 golangci-lint run

.PHONY: cluster-up
cluster-up:
hack/kubevirtci.sh up
Expand Down
29 changes: 25 additions & 4 deletions artifacts/centos/centos.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@ import (
"sort"
"strings"

v1 "kubevirt.io/api/core/v1"
"kubevirt.io/containerdisks/pkg/api"
"kubevirt.io/containerdisks/pkg/docs"
"kubevirt.io/containerdisks/pkg/hashsum"
"kubevirt.io/containerdisks/pkg/http"
"kubevirt.io/containerdisks/pkg/tests"
)

var description = `<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/CentOS_Graphical_Symbol.svg/64px-CentOS_Graphical_Symbol.svg.png" alt="drawing" height="15"/> Centos Generic Cloud images for KubeVirt.
Expand All @@ -26,10 +28,10 @@ type centos struct {

func (c *centos) Metadata() *api.Metadata {
return &api.Metadata{
Name: "centos",
Version: c.Version,
Description: description,
ExampleCloudInitPayload: docs.CloudInit(),
Name: "centos",
Version: c.Version,
Description: description,
ExampleUserDataPayload: c.UserData(&docs.UserData{}),
}
}

Expand Down Expand Up @@ -97,7 +99,26 @@ func (c *centos) Inspect() (*api.ArtifactDetails, error) {
}, nil
}
return nil, fmt.Errorf("file %q does not exist in the sha256sum file: %v", c.Variant, err)
}

func (c *centos) VM(name, imgRef, userData string) *v1.VirtualMachine {
return docs.NewVM(
name,
imgRef,
docs.WithRng(),
docs.WithCloudInitNoCloud(userData),
)
}

func (c *centos) UserData(data *docs.UserData) string {
return docs.CloudInit(data)
}

func (c *centos) Tests() []api.ArtifactTest {
return []api.ArtifactTest{
tests.GuestOsInfo,
tests.SSH,
}
}

// New accepts CentOS 7 and 8 versions. Example patterns are 7-2111, 7-2009, 8.3, 8.4, ...
Expand Down
32 changes: 16 additions & 16 deletions artifacts/centos/centos_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@ func Test_Inspect(t *testing.T) {
AdditionalUniqueTags: []string{"8.4.2105-20210603.0", "8.4.2105"},
},
metadata: &api.Metadata{
Name: "centos",
Version: "8.4",
ExampleCloudInitPayload: docs.CloudInit(),
Description: description,
Name: "centos",
Version: "8.4",
Description: description,
ExampleUserDataPayload: docs.CloudInit(&docs.UserData{}),
},
},
wantErr: false,
Expand All @@ -55,10 +55,10 @@ func Test_Inspect(t *testing.T) {
AdditionalUniqueTags: []string{"8.3.2011-20201204.2", "8.3.2011"},
},
metadata: &api.Metadata{
Name: "centos",
Version: "8.3",
ExampleCloudInitPayload: docs.CloudInit(),
Description: description,
Name: "centos",
Version: "8.3",
Description: description,
ExampleUserDataPayload: docs.CloudInit(&docs.UserData{}),
},
},
wantErr: false,
Expand All @@ -73,10 +73,10 @@ func Test_Inspect(t *testing.T) {
Compression: "",
},
metadata: &api.Metadata{
Name: "centos",
Version: "7-2009",
ExampleCloudInitPayload: docs.CloudInit(),
Description: description,
Name: "centos",
Version: "7-2009",
Description: description,
ExampleUserDataPayload: docs.CloudInit(&docs.UserData{}),
},
},
wantErr: false,
Expand All @@ -91,10 +91,10 @@ func Test_Inspect(t *testing.T) {
Compression: "",
},
metadata: &api.Metadata{
Name: "centos",
Version: "7-1809",
ExampleCloudInitPayload: docs.CloudInit(),
Description: description,
Name: "centos",
Version: "7-1809",
Description: description,
ExampleUserDataPayload: docs.CloudInit(&docs.UserData{}),
},
},
wantErr: false,
Expand Down
33 changes: 25 additions & 8 deletions artifacts/centosstream/centos-stream.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@ import (
"sort"
"strings"

v1 "kubevirt.io/api/core/v1"
"kubevirt.io/containerdisks/pkg/api"
"kubevirt.io/containerdisks/pkg/docs"
"kubevirt.io/containerdisks/pkg/hashsum"
"kubevirt.io/containerdisks/pkg/http"
"kubevirt.io/containerdisks/pkg/tests"
)

var description = `<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/CentOS_Graphical_Symbol.svg/64px-CentOS_Graphical_Symbol.svg.png" alt="drawing" height="15"/> Centos Stream Generic Cloud images for KubeVirt.
Expand All @@ -26,10 +28,10 @@ type centos struct {

func (c *centos) Metadata() *api.Metadata {
return &api.Metadata{
Name: "centos-stream",
Version: c.Version,
Description: description,
ExampleCloudInitPayload: docs.CloudInit(),
Name: "centos-stream",
Version: c.Version,
Description: description,
ExampleUserDataPayload: c.UserData(&docs.UserData{}),
}
}

Expand Down Expand Up @@ -71,10 +73,6 @@ func (c *centos) Inspect() (*api.ArtifactDetails, error) {
var additionalTags []string
additionalTag := strings.TrimSuffix(strings.TrimPrefix(candidate, fmt.Sprintf("CentOS-Stream-%s-", c.Variant)), ".x86_64.qcow2")
additionalTags = append(additionalTags, additionalTag)
split := strings.Split(additionalTag, "-")
if len(split) == 2 {
additionalTags = append(additionalTags, split[0])
}

if checksum, exists := checksums[candidate]; exists {
return &api.ArtifactDetails{
Expand All @@ -85,7 +83,26 @@ func (c *centos) Inspect() (*api.ArtifactDetails, error) {
}

return nil, fmt.Errorf("file %q does not exist in the sha256sum file: %v", c.Variant, err)
}

func (c *centos) VM(name, imgRef, userData string) *v1.VirtualMachine {
return docs.NewVM(
name,
imgRef,
docs.WithRng(),
docs.WithCloudInitNoCloud(userData),
)
}

func (c *centos) UserData(data *docs.UserData) string {
return docs.CloudInit(data)
}

func (c *centos) Tests() []api.ArtifactTest {
return []api.ArtifactTest{
tests.GuestOsInfo,
tests.SSH,
}
}

// New accepts CentOS Stream 8 and 9 versions.
Expand Down
20 changes: 10 additions & 10 deletions artifacts/centosstream/centos-stream_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ func Test_Inspect(t *testing.T) {
SHA256Sum: "8e22e67687b81e38c7212fc30c47cb24cbc4935c0f2459ed139f498397d1e7cd",
DownloadURL: "https://cloud.centos.org/centos/8-stream/x86_64/images/CentOS-Stream-GenericCloud-8-20210603.0.x86_64.qcow2",
Compression: "",
AdditionalUniqueTags: []string{"8-20210603.0", "8"},
AdditionalUniqueTags: []string{"8-20210603.0"},
},
metadata: &api.Metadata{
Name: "centos-stream",
Version: "8",
ExampleCloudInitPayload: docs.CloudInit(),
Description: description,
Name: "centos-stream",
Version: "8",
Description: description,
ExampleUserDataPayload: docs.CloudInit(&docs.UserData{}),
},
},
wantErr: false,
Expand All @@ -52,13 +52,13 @@ func Test_Inspect(t *testing.T) {
SHA256Sum: "bcebdc00511d6e18782732570056cfbc7cba318302748bfc8f66be9c0db68142",
DownloadURL: "https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-20211222.0.x86_64.qcow2",
Compression: "",
AdditionalUniqueTags: []string{"9-20211222.0", "9"},
AdditionalUniqueTags: []string{"9-20211222.0"},
},
metadata: &api.Metadata{
Name: "centos-stream",
Version: "9",
ExampleCloudInitPayload: docs.CloudInit(),
Description: description,
Name: "centos-stream",
Version: "9",
Description: description,
ExampleUserDataPayload: docs.CloudInit(&docs.UserData{}),
},
},
wantErr: false,
Expand Down
31 changes: 27 additions & 4 deletions artifacts/fedora/fedora.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@ import (
"fmt"
"strings"

v1 "kubevirt.io/api/core/v1"
"kubevirt.io/containerdisks/pkg/api"
"kubevirt.io/containerdisks/pkg/docs"
"kubevirt.io/containerdisks/pkg/http"
"kubevirt.io/containerdisks/pkg/tests"
)

type Releases []Release
Expand Down Expand Up @@ -36,10 +38,10 @@ Visit [getfedora.org](https://getfedora.org/) to learn more about the Fedora pro

func (f *fedora) Metadata() *api.Metadata {
return &api.Metadata{
Name: "fedora",
Version: f.Version,
Description: description,
ExampleCloudInitPayload: docs.CloudInit(),
Name: "fedora",
Version: f.Version,
Description: description,
ExampleUserDataPayload: f.UserData(&docs.UserData{}),
}
}

Expand Down Expand Up @@ -68,6 +70,27 @@ func (f *fedora) Inspect() (*api.ArtifactDetails, error) {
return nil, fmt.Errorf("no release information in releases.json for fedora:%q found", f.Version)
}

func (f *fedora) VM(name, imgRef, userData string) *v1.VirtualMachine {
return docs.NewVM(
name,
imgRef,
docs.WithRng(),
docs.WithCloudInitNoCloud(userData),
docs.WithSecureBoot(),
)
}

func (f *fedora) UserData(data *docs.UserData) string {
return docs.CloudInit(data)
}

func (f *fedora) Tests() []api.ArtifactTest {
return []api.ArtifactTest{
tests.GuestOsInfo,
tests.SSH,
}
}

func (f *fedora) releaseMatches(release *Release) bool {
return release.Version == f.Version &&
release.Arch == f.Arch &&
Expand Down
16 changes: 8 additions & 8 deletions artifacts/fedora/fedora_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@ func Test_Inspect(t *testing.T) {
AdditionalUniqueTags: []string{"35-1.2"},
},
metadata: &api.Metadata{
Name: "fedora",
Version: "35",
ExampleCloudInitPayload: docs.CloudInit(),
Description: description,
Name: "fedora",
Version: "35",
Description: description,
ExampleUserDataPayload: docs.CloudInit(&docs.UserData{}),
},
},
wantErr: false,
Expand All @@ -55,10 +55,10 @@ func Test_Inspect(t *testing.T) {
AdditionalUniqueTags: []string{"34-1.2"},
},
metadata: &api.Metadata{
Name: "fedora",
Version: "34",
ExampleCloudInitPayload: docs.CloudInit(),
Description: description,
Name: "fedora",
Version: "34",
Description: description,
ExampleUserDataPayload: docs.CloudInit(&docs.UserData{}),
},
},
wantErr: false,
Expand Down
Loading