mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-05-04 14:37:25 +00:00
runtime: unify generated config
We don't need to maintain two generated config.go and even have duplicates between them. Signed-off-by: Peng Tao <bergwolf@hyper.sh>
This commit is contained in:
parent
4f7cc18622
commit
e7c42fbc76
@ -559,17 +559,12 @@ define MAKE_KERNEL_VIRTIOFS_NAME
|
|||||||
$(if $(findstring uncompressed,$1),vmlinux-virtiofs.container,vmlinuz-virtiofs.container)
|
$(if $(findstring uncompressed,$1),vmlinux-virtiofs.container,vmlinuz-virtiofs.container)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
GENERATED_CONFIG = $(abspath $(CLI_DIR)/config-generated.go)
|
|
||||||
|
|
||||||
GENERATED_FILES += $(GENERATED_CONFIG)
|
|
||||||
GENERATED_FILES += pkg/katautils/config-settings.go
|
GENERATED_FILES += pkg/katautils/config-settings.go
|
||||||
|
|
||||||
$(RUNTIME_OUTPUT): $(SOURCES) $(GENERATED_FILES) $(MAKEFILE_LIST) | show-summary
|
$(RUNTIME_OUTPUT): $(SOURCES) $(GENERATED_FILES) $(MAKEFILE_LIST) | show-summary
|
||||||
$(QUIET_BUILD)(cd $(RUNTIME_DIR)/ && ln -fs $(GENERATED_CONFIG))
|
|
||||||
$(QUIET_BUILD)(cd $(RUNTIME_DIR) && go build $(KATA_LDFLAGS) $(BUILDFLAGS) -o $@ .)
|
$(QUIET_BUILD)(cd $(RUNTIME_DIR) && go build $(KATA_LDFLAGS) $(BUILDFLAGS) -o $@ .)
|
||||||
|
|
||||||
$(SHIMV2_OUTPUT): $(SOURCES) $(GENERATED_FILES) $(MAKEFILE_LIST)
|
$(SHIMV2_OUTPUT): $(SOURCES) $(GENERATED_FILES) $(MAKEFILE_LIST)
|
||||||
$(QUIET_BUILD)(cd $(SHIMV2_DIR)/ && ln -fs $(GENERATED_CONFIG))
|
|
||||||
$(QUIET_BUILD)(cd $(SHIMV2_DIR)/ && go build $(KATA_LDFLAGS) $(BUILDFLAGS) -o $@ .)
|
$(QUIET_BUILD)(cd $(SHIMV2_DIR)/ && go build $(KATA_LDFLAGS) $(BUILDFLAGS) -o $@ .)
|
||||||
|
|
||||||
$(MONITOR_OUTPUT): $(SOURCES) $(GENERATED_FILES) $(MAKEFILE_LIST) .git-commit
|
$(MONITOR_OUTPUT): $(SOURCES) $(GENERATED_FILES) $(MAKEFILE_LIST) .git-commit
|
||||||
@ -612,7 +607,6 @@ ifeq ($(shell id -u), 0)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
go-test: $(GENERATED_FILES)
|
go-test: $(GENERATED_FILES)
|
||||||
$(QUIET_BUILD)(cd $(SHIMV2_DIR)/ && ln -fs $(GENERATED_CONFIG))
|
|
||||||
go clean -testcache
|
go clean -testcache
|
||||||
go test -v -mod=vendor ./...
|
go test -v -mod=vendor ./...
|
||||||
|
|
||||||
@ -621,7 +615,6 @@ check-go-static:
|
|||||||
$(QUIET_CHECK)../../ci/go-no-os-exit.sh ./virtcontainers
|
$(QUIET_CHECK)../../ci/go-no-os-exit.sh ./virtcontainers
|
||||||
|
|
||||||
coverage:
|
coverage:
|
||||||
$(QUIET_BUILD)(cd $(SHIMV2_DIR)/ && ln -fs $(GENERATED_CONFIG))
|
|
||||||
go test -v -mod=vendor -covermode=atomic -coverprofile=coverage.txt ./...
|
go test -v -mod=vendor -covermode=atomic -coverprofile=coverage.txt ./...
|
||||||
go tool cover -html=coverage.txt -o coverage.html
|
go tool cover -html=coverage.txt -o coverage.html
|
||||||
|
|
||||||
@ -668,7 +661,6 @@ clean:
|
|||||||
$(NETMON_TARGET) \
|
$(NETMON_TARGET) \
|
||||||
$(MONITOR) \
|
$(MONITOR) \
|
||||||
$(SHIMV2) \
|
$(SHIMV2) \
|
||||||
$(SHIMV2_DIR)/$(notdir $(GENERATED_CONFIG)) \
|
|
||||||
$(TARGET) \
|
$(TARGET) \
|
||||||
.git-commit .git-commit.tmp
|
.git-commit .git-commit.tmp
|
||||||
|
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
//
|
|
||||||
// Copyright (c) 2018-2019 Intel Corporation
|
|
||||||
//
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
//
|
|
||||||
// WARNING: This file is auto-generated - DO NOT EDIT!
|
|
||||||
//
|
|
||||||
// Note that some variables are "var" to allow them to be modified
|
|
||||||
// by the tests.
|
|
||||||
package main
|
|
||||||
|
|
||||||
// name is the name of the runtime
|
|
||||||
const name = "@RUNTIME_NAME@"
|
|
||||||
|
|
||||||
// name of the project
|
|
||||||
const project = "@PROJECT_NAME@"
|
|
||||||
|
|
||||||
// prefix used to denote non-standard CLI commands and options.
|
|
||||||
const projectPrefix = "@PROJECT_TYPE@"
|
|
||||||
|
|
||||||
// original URL for this project
|
|
||||||
const projectURL = "@PROJECT_URL@"
|
|
||||||
|
|
||||||
// Project URL's organisation name
|
|
||||||
const projectORG = "@PROJECT_ORG@"
|
|
||||||
|
|
||||||
const defaultRootDirectory = "@PKGRUNDIR@"
|
|
||||||
|
|
||||||
// commit is the git commit the runtime is compiled from.
|
|
||||||
var commit = "@COMMIT@"
|
|
||||||
|
|
||||||
// version is the runtime version.
|
|
||||||
var version = "@VERSION@"
|
|
||||||
|
|
||||||
// Default config file used by stateless systems.
|
|
||||||
var defaultRuntimeConfiguration = "@CONFIG_PATH@"
|
|
||||||
|
|
||||||
// Alternate config file that takes precedence over
|
|
||||||
// defaultRuntimeConfiguration.
|
|
||||||
var defaultSysConfRuntimeConfiguration = "@SYSCONFIG@"
|
|
@ -12,6 +12,7 @@ import (
|
|||||||
shimapi "github.com/containerd/containerd/runtime/v2/shim"
|
shimapi "github.com/containerd/containerd/runtime/v2/shim"
|
||||||
|
|
||||||
shim "github.com/kata-containers/kata-containers/src/runtime/pkg/containerd-shim-v2"
|
shim "github.com/kata-containers/kata-containers/src/runtime/pkg/containerd-shim-v2"
|
||||||
|
"github.com/kata-containers/kata-containers/src/runtime/pkg/katautils"
|
||||||
"github.com/kata-containers/kata-containers/src/runtime/pkg/types"
|
"github.com/kata-containers/kata-containers/src/runtime/pkg/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -23,7 +24,7 @@ func shimConfig(config *shimapi.Config) {
|
|||||||
func main() {
|
func main() {
|
||||||
|
|
||||||
if len(os.Args) == 2 && os.Args[1] == "--version" {
|
if len(os.Args) == 2 && os.Args[1] == "--version" {
|
||||||
fmt.Printf("%s containerd shim: id: %q, version: %s, commit: %v\n", project, types.DefaultKataRuntimeName, version, commit)
|
fmt.Printf("%s containerd shim: id: %q, version: %s, commit: %v\n", katautils.PROJECT, types.DefaultKataRuntimeName, katautils.VERSION, katautils.COMMIT)
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,9 +61,9 @@ type vmContainerCapableDetails struct {
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
moduleParamDir = "parameters"
|
moduleParamDir = "parameters"
|
||||||
successMessageCapable = "System is capable of running " + project
|
successMessageCapable = "System is capable of running " + katautils.PROJECT
|
||||||
successMessageCreate = "System can currently create " + project
|
successMessageCreate = "System can currently create " + katautils.PROJECT
|
||||||
failMessage = "System is not capable of running " + project
|
failMessage = "System is not capable of running " + katautils.PROJECT
|
||||||
kernelPropertyCorrect = "Kernel property value correct"
|
kernelPropertyCorrect = "Kernel property value correct"
|
||||||
|
|
||||||
// these refer to fields in the procCPUINFO file
|
// these refer to fields in the procCPUINFO file
|
||||||
@ -313,7 +313,7 @@ func genericHostIsVMContainerCapable(details vmContainerCapableDetails) error {
|
|||||||
var kataCheckCLICommand = cli.Command{
|
var kataCheckCLICommand = cli.Command{
|
||||||
Name: "check",
|
Name: "check",
|
||||||
Aliases: []string{"kata-check"},
|
Aliases: []string{"kata-check"},
|
||||||
Usage: "tests if system can run " + project,
|
Usage: "tests if system can run " + katautils.PROJECT,
|
||||||
Flags: []cli.Flag{
|
Flags: []cli.Flag{
|
||||||
cli.BoolFlag{
|
cli.BoolFlag{
|
||||||
Name: "check-version-only",
|
Name: "check-version-only",
|
||||||
@ -372,14 +372,14 @@ EXAMPLES:
|
|||||||
|
|
||||||
$ %s check --only-list-releases --include-all-releases
|
$ %s check --only-list-releases --include-all-releases
|
||||||
`,
|
`,
|
||||||
project,
|
katautils.PROJECT,
|
||||||
noNetworkEnvVar,
|
noNetworkEnvVar,
|
||||||
name,
|
katautils.NAME,
|
||||||
name,
|
katautils.NAME,
|
||||||
name,
|
katautils.NAME,
|
||||||
name,
|
katautils.NAME,
|
||||||
name,
|
katautils.NAME,
|
||||||
name,
|
katautils.NAME,
|
||||||
),
|
),
|
||||||
|
|
||||||
Action: func(context *cli.Context) error {
|
Action: func(context *cli.Context) error {
|
||||||
@ -398,7 +398,7 @@ EXAMPLES:
|
|||||||
if os.Geteuid() == 0 {
|
if os.Geteuid() == 0 {
|
||||||
kataLog.Warn("Not running network checks as super user")
|
kataLog.Warn("Not running network checks as super user")
|
||||||
} else {
|
} else {
|
||||||
err := HandleReleaseVersions(cmd, version, context.Bool("include-all-releases"))
|
err := HandleReleaseVersions(cmd, katautils.VERSION, context.Bool("include-all-releases"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -13,14 +13,16 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/BurntSushi/toml"
|
"github.com/BurntSushi/toml"
|
||||||
|
specs "github.com/opencontainers/runtime-spec/specs-go"
|
||||||
|
"github.com/prometheus/procfs"
|
||||||
|
"github.com/urfave/cli"
|
||||||
|
|
||||||
|
"github.com/kata-containers/kata-containers/src/runtime/pkg/katautils"
|
||||||
"github.com/kata-containers/kata-containers/src/runtime/pkg/utils"
|
"github.com/kata-containers/kata-containers/src/runtime/pkg/utils"
|
||||||
vc "github.com/kata-containers/kata-containers/src/runtime/virtcontainers"
|
vc "github.com/kata-containers/kata-containers/src/runtime/virtcontainers"
|
||||||
exp "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/experimental"
|
exp "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/experimental"
|
||||||
"github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/oci"
|
"github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/oci"
|
||||||
vcUtils "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils"
|
vcUtils "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/utils"
|
||||||
specs "github.com/opencontainers/runtime-spec/specs-go"
|
|
||||||
"github.com/prometheus/procfs"
|
|
||||||
"github.com/urfave/cli"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// Semantic version for the output of the command.
|
// Semantic version for the output of the command.
|
||||||
@ -169,8 +171,8 @@ func getMetaInfo() MetaInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getRuntimeInfo(configFile string, config oci.RuntimeConfig) RuntimeInfo {
|
func getRuntimeInfo(configFile string, config oci.RuntimeConfig) RuntimeInfo {
|
||||||
runtimeVersionInfo := constructVersionInfo(version)
|
runtimeVersionInfo := constructVersionInfo(katautils.VERSION)
|
||||||
runtimeVersionInfo.Commit = commit
|
runtimeVersionInfo.Commit = katautils.COMMIT
|
||||||
|
|
||||||
runtimeVersion := RuntimeVersionInfo{
|
runtimeVersion := RuntimeVersionInfo{
|
||||||
Version: runtimeVersionInfo,
|
Version: runtimeVersionInfo,
|
||||||
|
@ -314,8 +314,8 @@ func getExpectedKernel(config oci.RuntimeConfig) KernelInfo {
|
|||||||
func getExpectedRuntimeDetails(config oci.RuntimeConfig, configFile string) RuntimeInfo {
|
func getExpectedRuntimeDetails(config oci.RuntimeConfig, configFile string) RuntimeInfo {
|
||||||
runtimePath, _ := os.Executable()
|
runtimePath, _ := os.Executable()
|
||||||
|
|
||||||
runtimeVersionInfo := constructVersionInfo(version)
|
runtimeVersionInfo := constructVersionInfo(katautils.VERSION)
|
||||||
runtimeVersionInfo.Commit = commit
|
runtimeVersionInfo.Commit = katautils.COMMIT
|
||||||
return RuntimeInfo{
|
return RuntimeInfo{
|
||||||
Version: RuntimeVersionInfo{
|
Version: RuntimeVersionInfo{
|
||||||
Version: runtimeVersionInfo,
|
Version: runtimeVersionInfo,
|
||||||
|
@ -39,18 +39,18 @@ const arch = goruntime.GOARCH
|
|||||||
var usage = fmt.Sprintf(`%s runtime
|
var usage = fmt.Sprintf(`%s runtime
|
||||||
|
|
||||||
%s is a command line program for running applications packaged
|
%s is a command line program for running applications packaged
|
||||||
according to the Open Container Initiative (OCI).`, name, name)
|
according to the Open Container Initiative (OCI).`, katautils.NAME, katautils.NAME)
|
||||||
|
|
||||||
var notes = fmt.Sprintf(`
|
var notes = fmt.Sprintf(`
|
||||||
NOTES:
|
NOTES:
|
||||||
|
|
||||||
- Commands starting "%s-" and options starting "--%s-" are `+project+` extensions.
|
- Commands starting "%s-" and options starting "--%s-" are `+katautils.PROJECT+` extensions.
|
||||||
|
|
||||||
URL:
|
URL:
|
||||||
|
|
||||||
The canonical URL for this project is: %s
|
The canonical URL for this project is: %s
|
||||||
|
|
||||||
`, projectPrefix, projectPrefix, projectURL)
|
`, katautils.PROJECTPREFIX, katautils.PROJECTPREFIX, katautils.PROJECTURL)
|
||||||
|
|
||||||
// kataLog is the logger used to record all messages
|
// kataLog is the logger used to record all messages
|
||||||
var kataLog *logrus.Entry
|
var kataLog *logrus.Entry
|
||||||
@ -82,7 +82,7 @@ var defaultErrorFile = os.Stderr
|
|||||||
var runtimeFlags = []cli.Flag{
|
var runtimeFlags = []cli.Flag{
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "config, kata-config",
|
Name: "config, kata-config",
|
||||||
Usage: project + " config file path",
|
Usage: katautils.PROJECT + " config file path",
|
||||||
},
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "log",
|
Name: "log",
|
||||||
@ -96,7 +96,7 @@ var runtimeFlags = []cli.Flag{
|
|||||||
},
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "root",
|
Name: "root",
|
||||||
Value: defaultRootDirectory,
|
Value: katautils.DEFAULTROOTDIRECTORY,
|
||||||
Usage: "root directory for storage of container state (this should be located in tmpfs)",
|
Usage: "root directory for storage of container state (this should be located in tmpfs)",
|
||||||
},
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
@ -145,7 +145,7 @@ var savedCLIErrWriter = cli.ErrWriter
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
kataLog = logrus.WithFields(logrus.Fields{
|
kataLog = logrus.WithFields(logrus.Fields{
|
||||||
"name": name,
|
"name": katautils.NAME,
|
||||||
"source": "runtime",
|
"source": "runtime",
|
||||||
"arch": arch,
|
"arch": arch,
|
||||||
"pid": os.Getpid(),
|
"pid": os.Getpid(),
|
||||||
@ -222,7 +222,7 @@ func beforeSubcommands(c *cli.Context) error {
|
|||||||
var runtimeConfig oci.RuntimeConfig
|
var runtimeConfig oci.RuntimeConfig
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
katautils.SetConfigOptions(name, defaultRuntimeConfiguration, defaultSysConfRuntimeConfiguration)
|
katautils.SetConfigOptions(katautils.NAME, katautils.DEFAULTRUNTIMECONFIGURATION, katautils.DEFAULTSYSCONFRUNTIMECONFIGURATION)
|
||||||
|
|
||||||
handleShowConfig(c)
|
handleShowConfig(c)
|
||||||
|
|
||||||
@ -302,8 +302,8 @@ func beforeSubcommands(c *cli.Context) error {
|
|||||||
args := strings.Join(c.Args(), " ")
|
args := strings.Join(c.Args(), " ")
|
||||||
|
|
||||||
fields := logrus.Fields{
|
fields := logrus.Fields{
|
||||||
"version": version,
|
"version": katautils.VERSION,
|
||||||
"commit": commit,
|
"commit": katautils.COMMIT,
|
||||||
"arguments": `"` + args + `"`,
|
"arguments": `"` + args + `"`,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -365,14 +365,14 @@ func commandNotFound(c *cli.Context, command string) {
|
|||||||
func makeVersionString() string {
|
func makeVersionString() string {
|
||||||
v := make([]string, 0, 3)
|
v := make([]string, 0, 3)
|
||||||
|
|
||||||
versionStr := version
|
versionStr := katautils.VERSION
|
||||||
if versionStr == "" {
|
if versionStr == "" {
|
||||||
versionStr = unknown
|
versionStr = unknown
|
||||||
}
|
}
|
||||||
|
|
||||||
v = append(v, name+" : "+versionStr)
|
v = append(v, katautils.NAME+" : "+versionStr)
|
||||||
|
|
||||||
commitStr := commit
|
commitStr := katautils.COMMIT
|
||||||
if commitStr == "" {
|
if commitStr == "" {
|
||||||
commitStr = unknown
|
commitStr = unknown
|
||||||
}
|
}
|
||||||
@ -411,7 +411,7 @@ func setCLIGlobals() {
|
|||||||
func createRuntimeApp(ctx context.Context, args []string) error {
|
func createRuntimeApp(ctx context.Context, args []string) error {
|
||||||
app := cli.NewApp()
|
app := cli.NewApp()
|
||||||
|
|
||||||
app.Name = name
|
app.Name = katautils.NAME
|
||||||
app.Writer = defaultOutputFile
|
app.Writer = defaultOutputFile
|
||||||
app.Usage = usage
|
app.Usage = usage
|
||||||
app.CommandNotFound = runtimeCommandNotFound
|
app.CommandNotFound = runtimeCommandNotFound
|
||||||
|
@ -57,19 +57,19 @@ var (
|
|||||||
var testingImpl = &vcmock.VCMock{}
|
var testingImpl = &vcmock.VCMock{}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
if version == "" {
|
if katautils.VERSION == "" {
|
||||||
panic("ERROR: invalid build: version not set")
|
panic("ERROR: invalid build: version not set")
|
||||||
}
|
}
|
||||||
|
|
||||||
if commit == "" {
|
if katautils.COMMIT == "" {
|
||||||
panic("ERROR: invalid build: commit not set")
|
panic("ERROR: invalid build: commit not set")
|
||||||
}
|
}
|
||||||
|
|
||||||
if defaultSysConfRuntimeConfiguration == "" {
|
if katautils.DEFAULTSYSCONFRUNTIMECONFIGURATION == "" {
|
||||||
panic("ERROR: invalid build: defaultSysConfRuntimeConfiguration not set")
|
panic("ERROR: invalid build: defaultSysConfRuntimeConfiguration not set")
|
||||||
}
|
}
|
||||||
|
|
||||||
if defaultRuntimeConfiguration == "" {
|
if katautils.DEFAULTRUNTIMECONFIGURATION == "" {
|
||||||
panic("ERROR: invalid build: defaultRuntimeConfiguration not set")
|
panic("ERROR: invalid build: defaultRuntimeConfiguration not set")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,7 +82,7 @@ func init() {
|
|||||||
var err error
|
var err error
|
||||||
|
|
||||||
fmt.Printf("INFO: creating test directory\n")
|
fmt.Printf("INFO: creating test directory\n")
|
||||||
testDir, err = ioutil.TempDir("", fmt.Sprintf("%s-", name))
|
testDir, err = ioutil.TempDir("", fmt.Sprintf("%s-", katautils.NAME))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Sprintf("ERROR: failed to create test directory: %v", err))
|
panic(fmt.Sprintf("ERROR: failed to create test directory: %v", err))
|
||||||
}
|
}
|
||||||
@ -153,8 +153,8 @@ func runUnitTests(m *testing.M) {
|
|||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
// If the test binary name is kata-runtime.coverage, we've are being asked to
|
// If the test binary name is kata-runtime.coverage, we've are being asked to
|
||||||
// run the coverage-instrumented kata-runtime.
|
// run the coverage-instrumented kata-runtime.
|
||||||
if path.Base(os.Args[0]) == name+".coverage" ||
|
if path.Base(os.Args[0]) == katautils.NAME+".coverage" ||
|
||||||
path.Base(os.Args[0]) == name {
|
path.Base(os.Args[0]) == katautils.NAME {
|
||||||
main()
|
main()
|
||||||
exit(0)
|
exit(0)
|
||||||
}
|
}
|
||||||
@ -666,9 +666,9 @@ func TestMainBeforeSubCommandsShowCCConfigPaths(t *testing.T) {
|
|||||||
for i, line := range lines {
|
for i, line := range lines {
|
||||||
switch i {
|
switch i {
|
||||||
case 0:
|
case 0:
|
||||||
assert.Equal(line, defaultSysConfRuntimeConfiguration)
|
assert.Equal(line, katautils.DEFAULTSYSCONFRUNTIMECONFIGURATION)
|
||||||
case 1:
|
case 1:
|
||||||
assert.Equal(line, defaultRuntimeConfiguration)
|
assert.Equal(line, katautils.DEFAULTRUNTIMECONFIGURATION)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -715,7 +715,7 @@ func testVersionString(assert *assert.Assertions, versionString, expectedVersion
|
|||||||
foundCommit := false
|
foundCommit := false
|
||||||
foundOCIVersion := false
|
foundOCIVersion := false
|
||||||
|
|
||||||
versionRE := regexp.MustCompile(fmt.Sprintf(`%s\s*:\s*%v`, name, expectedVersion))
|
versionRE := regexp.MustCompile(fmt.Sprintf(`%s\s*:\s*%v`, katautils.NAME, expectedVersion))
|
||||||
commitRE := regexp.MustCompile(fmt.Sprintf(`%s\s*:\s*%v`, "commit", expectedCommit))
|
commitRE := regexp.MustCompile(fmt.Sprintf(`%s\s*:\s*%v`, "commit", expectedCommit))
|
||||||
|
|
||||||
ociRE := regexp.MustCompile(fmt.Sprintf(`%s\s*:\s*%v`, "OCI specs", expectedOCIVersion))
|
ociRE := regexp.MustCompile(fmt.Sprintf(`%s\s*:\s*%v`, "OCI specs", expectedOCIVersion))
|
||||||
@ -753,37 +753,37 @@ func TestMainMakeVersionString(t *testing.T) {
|
|||||||
|
|
||||||
v := makeVersionString()
|
v := makeVersionString()
|
||||||
|
|
||||||
testVersionString(assert, v, version, commit, specs.Version)
|
testVersionString(assert, v, katautils.VERSION, katautils.COMMIT, specs.Version)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMainMakeVersionStringNoVersion(t *testing.T) {
|
func TestMainMakeVersionStringNoVersion(t *testing.T) {
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
|
|
||||||
savedVersion := version
|
savedVersion := katautils.VERSION
|
||||||
version = ""
|
katautils.VERSION = ""
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
version = savedVersion
|
katautils.VERSION = savedVersion
|
||||||
}()
|
}()
|
||||||
|
|
||||||
v := makeVersionString()
|
v := makeVersionString()
|
||||||
|
|
||||||
testVersionString(assert, v, unknown, commit, specs.Version)
|
testVersionString(assert, v, unknown, katautils.COMMIT, specs.Version)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMainMakeVersionStringNoCommit(t *testing.T) {
|
func TestMainMakeVersionStringNoCommit(t *testing.T) {
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
|
|
||||||
savedCommit := commit
|
savedCommit := katautils.COMMIT
|
||||||
commit = ""
|
katautils.COMMIT = ""
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
commit = savedCommit
|
katautils.COMMIT = savedCommit
|
||||||
}()
|
}()
|
||||||
|
|
||||||
v := makeVersionString()
|
v := makeVersionString()
|
||||||
|
|
||||||
testVersionString(assert, v, version, unknown, specs.Version)
|
testVersionString(assert, v, katautils.VERSION, unknown, specs.Version)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMainMakeVersionStringNoOCIVersion(t *testing.T) {
|
func TestMainMakeVersionStringNoOCIVersion(t *testing.T) {
|
||||||
@ -798,7 +798,7 @@ func TestMainMakeVersionStringNoOCIVersion(t *testing.T) {
|
|||||||
|
|
||||||
v := makeVersionString()
|
v := makeVersionString()
|
||||||
|
|
||||||
testVersionString(assert, v, version, commit, unknown)
|
testVersionString(assert, v, katautils.VERSION, katautils.COMMIT, unknown)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMainCreateRuntimeApp(t *testing.T) {
|
func TestMainCreateRuntimeApp(t *testing.T) {
|
||||||
@ -824,7 +824,7 @@ func TestMainCreateRuntimeApp(t *testing.T) {
|
|||||||
defaultOutputFile = savedOutputFile
|
defaultOutputFile = savedOutputFile
|
||||||
}()
|
}()
|
||||||
|
|
||||||
args := []string{name}
|
args := []string{katautils.NAME}
|
||||||
|
|
||||||
err = createRuntimeApp(context.Background(), args)
|
err = createRuntimeApp(context.Background(), args)
|
||||||
assert.NoError(err, "%v", args)
|
assert.NoError(err, "%v", args)
|
||||||
@ -849,7 +849,7 @@ func TestMainCreateRuntimeAppInvalidSubCommand(t *testing.T) {
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
// calls fatal() so no return
|
// calls fatal() so no return
|
||||||
_ = createRuntimeApp(context.Background(), []string{name, "i-am-an-invalid-sub-command"})
|
_ = createRuntimeApp(context.Background(), []string{katautils.NAME, "i-am-an-invalid-sub-command"})
|
||||||
|
|
||||||
assert.NotEqual(exitStatus, 0)
|
assert.NotEqual(exitStatus, 0)
|
||||||
}
|
}
|
||||||
@ -869,7 +869,7 @@ func TestMainCreateRuntime(t *testing.T) {
|
|||||||
savedBefore := runtimeBeforeSubcommands
|
savedBefore := runtimeBeforeSubcommands
|
||||||
savedCommands := runtimeCommands
|
savedCommands := runtimeCommands
|
||||||
|
|
||||||
os.Args = []string{name, cmd}
|
os.Args = []string{katautils.NAME, cmd}
|
||||||
exitFunc = func(status int) { exitStatus = status }
|
exitFunc = func(status int) { exitStatus = status }
|
||||||
|
|
||||||
// disable
|
// disable
|
||||||
@ -920,10 +920,10 @@ func TestMainVersionPrinter(t *testing.T) {
|
|||||||
|
|
||||||
setCLIGlobals()
|
setCLIGlobals()
|
||||||
|
|
||||||
err = createRuntimeApp(context.Background(), []string{name, "--version"})
|
err = createRuntimeApp(context.Background(), []string{katautils.NAME, "--version"})
|
||||||
assert.NoError(err)
|
assert.NoError(err)
|
||||||
|
|
||||||
err = grep(fmt.Sprintf(`%s\s*:\s*%s`, name, version), output)
|
err = grep(fmt.Sprintf(`%s\s*:\s*%s`, katautils.NAME, katautils.VERSION), output)
|
||||||
assert.NoError(err)
|
assert.NoError(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -968,7 +968,7 @@ func TestMainFatalWriter(t *testing.T) {
|
|||||||
|
|
||||||
setCLIGlobals()
|
setCLIGlobals()
|
||||||
|
|
||||||
err := createRuntimeApp(context.Background(), []string{name, cmd})
|
err := createRuntimeApp(context.Background(), []string{katautils.NAME, cmd})
|
||||||
assert.Error(err)
|
assert.Error(err)
|
||||||
|
|
||||||
re := regexp.MustCompile(
|
re := regexp.MustCompile(
|
||||||
|
@ -16,6 +16,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/blang/semver"
|
"github.com/blang/semver"
|
||||||
|
|
||||||
|
"github.com/kata-containers/kata-containers/src/runtime/pkg/katautils"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ReleaseCmd int
|
type ReleaseCmd int
|
||||||
@ -29,7 +31,7 @@ type releaseDetails struct {
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
// A release URL is expected to be prefixed with this value
|
// A release URL is expected to be prefixed with this value
|
||||||
projectAPIURL = "https://api.github.com/repos/" + projectORG
|
projectAPIURL = "https://api.github.com/repos/" + katautils.PROJECTORG
|
||||||
|
|
||||||
releasesSuffix = "/releases"
|
releasesSuffix = "/releases"
|
||||||
downloadsSuffix = releasesSuffix + "/download"
|
downloadsSuffix = releasesSuffix + "/download"
|
||||||
@ -37,12 +39,12 @@ const (
|
|||||||
// Kata 1.x
|
// Kata 1.x
|
||||||
kata1xRepo = "runtime"
|
kata1xRepo = "runtime"
|
||||||
kataLegacyReleaseURL = projectAPIURL + "/" + kata1xRepo + releasesSuffix
|
kataLegacyReleaseURL = projectAPIURL + "/" + kata1xRepo + releasesSuffix
|
||||||
kataLegacyDownloadURL = projectURL + "/" + kata1xRepo + downloadsSuffix
|
kataLegacyDownloadURL = katautils.PROJECTURL + "/" + kata1xRepo + downloadsSuffix
|
||||||
|
|
||||||
// Kata 2.x or newer
|
// Kata 2.x or newer
|
||||||
kata2xRepo = "kata-containers"
|
kata2xRepo = "kata-containers"
|
||||||
kataReleaseURL = projectAPIURL + "/" + kata2xRepo + releasesSuffix
|
kataReleaseURL = projectAPIURL + "/" + kata2xRepo + releasesSuffix
|
||||||
kataDownloadURL = projectURL + "/" + kata2xRepo + downloadsSuffix
|
kataDownloadURL = katautils.PROJECTURL + "/" + kata2xRepo + downloadsSuffix
|
||||||
|
|
||||||
// Environment variable that can be used to override a release URL
|
// Environment variable that can be used to override a release URL
|
||||||
ReleaseURLEnvVar = "KATA_RELEASE_URL"
|
ReleaseURLEnvVar = "KATA_RELEASE_URL"
|
||||||
@ -377,7 +379,7 @@ func HandleReleaseVersions(cmd ReleaseCmd, currentVersion string, includeAll boo
|
|||||||
|
|
||||||
currentSemver, err := semver.Make(currentVersion)
|
currentSemver, err := semver.Make(currentVersion)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("BUG: Current version of %s (%s) has invalid SemVer version: %v", name, currentVersion, err)
|
return fmt.Errorf("BUG: Current version of %s (%s) has invalid SemVer version: %v", katautils.NAME, currentVersion, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
releaseURL, err := getReleaseURL(currentSemver)
|
releaseURL, err := getReleaseURL(currentSemver)
|
||||||
|
@ -12,6 +12,7 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/blang/semver"
|
"github.com/blang/semver"
|
||||||
|
"github.com/kata-containers/kata-containers/src/runtime/pkg/katautils"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -20,7 +21,7 @@ var expectedReleasesURL string
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
var err error
|
var err error
|
||||||
currentSemver, err = semver.Make(version)
|
currentSemver, err = semver.Make(katautils.VERSION)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Sprintf("failed to create semver for testing: %v", err))
|
panic(fmt.Sprintf("failed to create semver for testing: %v", err))
|
||||||
@ -307,7 +308,7 @@ func TestDownloadURLIsValid(t *testing.T) {
|
|||||||
{"foo", true},
|
{"foo", true},
|
||||||
{"foo bar", true},
|
{"foo bar", true},
|
||||||
{"https://google.com", true},
|
{"https://google.com", true},
|
||||||
{projectURL, true},
|
{katautils.PROJECTURL, true},
|
||||||
{validKata1xDownload, false},
|
{validKata1xDownload, false},
|
||||||
{validKata2xDownload, false},
|
{validKata2xDownload, false},
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
// Copyright (c) 2018 Intel Corporation
|
// Copyright (c) 2018 Intel Corporation
|
||||||
// Copyright (c) 2018 HyperHQ Inc.
|
// Copyright (c) 2018 HyperHQ Inc.
|
||||||
|
// Copyright (c) 2021 Ant Group
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
//
|
//
|
||||||
@ -8,6 +9,35 @@
|
|||||||
|
|
||||||
package katautils
|
package katautils
|
||||||
|
|
||||||
|
// name is the name of the runtime
|
||||||
|
var NAME = "@RUNTIME_NAME@"
|
||||||
|
|
||||||
|
// name of the project
|
||||||
|
const PROJECT = "@PROJECT_NAME@"
|
||||||
|
|
||||||
|
// prefix used to denote non-standard CLI commands and options.
|
||||||
|
const PROJECTPREFIX = "@PROJECT_TYPE@"
|
||||||
|
|
||||||
|
// original URL for this project
|
||||||
|
const PROJECTURL = "@PROJECT_URL@"
|
||||||
|
|
||||||
|
// Project URL's organisation name
|
||||||
|
const PROJECTORG = "@PROJECT_ORG@"
|
||||||
|
|
||||||
|
const DEFAULTROOTDIRECTORY = "@PKGRUNDIR@"
|
||||||
|
|
||||||
|
// commit is the git commit the runtime is compiled from.
|
||||||
|
var COMMIT = "@COMMIT@"
|
||||||
|
|
||||||
|
// version is the runtime version.
|
||||||
|
var VERSION = "@VERSION@"
|
||||||
|
|
||||||
|
// Default config file used by stateless systems.
|
||||||
|
var DEFAULTRUNTIMECONFIGURATION = "@CONFIG_PATH@"
|
||||||
|
|
||||||
|
// Alternate config file that takes precedence over
|
||||||
|
// defaultRuntimeConfiguration.
|
||||||
|
var DEFAULTSYSCONFRUNTIMECONFIGURATION = "@SYSCONFIG@"
|
||||||
var defaultHypervisorPath = "/usr/bin/qemu-system-x86_64"
|
var defaultHypervisorPath = "/usr/bin/qemu-system-x86_64"
|
||||||
var defaultHypervisorCtlPath = "/usr/bin/acrnctl"
|
var defaultHypervisorCtlPath = "/usr/bin/acrnctl"
|
||||||
var defaultJailerPath = "/usr/bin/jailer"
|
var defaultJailerPath = "/usr/bin/jailer"
|
||||||
@ -65,9 +95,4 @@ const defaultVMCacheEndpoint string = "/var/run/kata-containers/cache.sock"
|
|||||||
// Default config file used by stateless systems.
|
// Default config file used by stateless systems.
|
||||||
var defaultRuntimeConfiguration = "@CONFIG_PATH@"
|
var defaultRuntimeConfiguration = "@CONFIG_PATH@"
|
||||||
|
|
||||||
// Alternate config file that takes precedence over
|
|
||||||
// defaultRuntimeConfiguration.
|
|
||||||
var defaultSysConfRuntimeConfiguration = "@SYSCONFIG@"
|
|
||||||
|
|
||||||
var name = "kata"
|
|
||||||
var defaultNetmonPath = "/usr/libexec/kata-containers/kata-netmon"
|
var defaultNetmonPath = "/usr/libexec/kata-containers/kata-netmon"
|
||||||
|
@ -1343,7 +1343,7 @@ func checkHypervisorConfig(config vc.HypervisorConfig) error {
|
|||||||
func GetDefaultConfigFilePaths() []string {
|
func GetDefaultConfigFilePaths() []string {
|
||||||
return []string{
|
return []string{
|
||||||
// normally below "/etc"
|
// normally below "/etc"
|
||||||
defaultSysConfRuntimeConfiguration,
|
DEFAULTSYSCONFRUNTIMECONFIGURATION,
|
||||||
|
|
||||||
// normally below "/usr/share"
|
// normally below "/usr/share"
|
||||||
defaultRuntimeConfiguration,
|
defaultRuntimeConfiguration,
|
||||||
@ -1371,7 +1371,7 @@ func getDefaultConfigFile() (string, error) {
|
|||||||
// SetConfigOptions will override some of the defaults settings.
|
// SetConfigOptions will override some of the defaults settings.
|
||||||
func SetConfigOptions(n, runtimeConfig, sysRuntimeConfig string) {
|
func SetConfigOptions(n, runtimeConfig, sysRuntimeConfig string) {
|
||||||
if n != "" {
|
if n != "" {
|
||||||
name = n
|
NAME = n
|
||||||
}
|
}
|
||||||
|
|
||||||
if runtimeConfig != "" {
|
if runtimeConfig != "" {
|
||||||
@ -1379,6 +1379,6 @@ func SetConfigOptions(n, runtimeConfig, sysRuntimeConfig string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if sysRuntimeConfig != "" {
|
if sysRuntimeConfig != "" {
|
||||||
defaultSysConfRuntimeConfiguration = sysRuntimeConfig
|
DEFAULTSYSCONFRUNTIMECONFIGURATION = sysRuntimeConfig
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -250,7 +250,7 @@ func testLoadConfiguration(t *testing.T, dir string,
|
|||||||
|
|
||||||
// override
|
// override
|
||||||
defaultRuntimeConfiguration = testConfig.ConfigPath
|
defaultRuntimeConfiguration = testConfig.ConfigPath
|
||||||
defaultSysConfRuntimeConfiguration = ""
|
DEFAULTSYSCONFRUNTIMECONFIGURATION = ""
|
||||||
|
|
||||||
for _, file := range configFiles {
|
for _, file := range configFiles {
|
||||||
var err error
|
var err error
|
||||||
@ -1193,24 +1193,24 @@ func TestGetDefaultConfigFile(t *testing.T) {
|
|||||||
assert.NoError(err)
|
assert.NoError(err)
|
||||||
|
|
||||||
savedConf := defaultRuntimeConfiguration
|
savedConf := defaultRuntimeConfiguration
|
||||||
savedSysConf := defaultSysConfRuntimeConfiguration
|
savedSysConf := DEFAULTSYSCONFRUNTIMECONFIGURATION
|
||||||
|
|
||||||
defaultRuntimeConfiguration = confDirConfig.ConfigPath
|
defaultRuntimeConfiguration = confDirConfig.ConfigPath
|
||||||
defaultSysConfRuntimeConfiguration = sysConfDirConfig.ConfigPath
|
DEFAULTSYSCONFRUNTIMECONFIGURATION = sysConfDirConfig.ConfigPath
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
defaultRuntimeConfiguration = savedConf
|
defaultRuntimeConfiguration = savedConf
|
||||||
defaultSysConfRuntimeConfiguration = savedSysConf
|
DEFAULTSYSCONFRUNTIMECONFIGURATION = savedSysConf
|
||||||
|
|
||||||
}()
|
}()
|
||||||
|
|
||||||
got, err := getDefaultConfigFile()
|
got, err := getDefaultConfigFile()
|
||||||
assert.NoError(err)
|
assert.NoError(err)
|
||||||
// defaultSysConfRuntimeConfiguration has priority over defaultRuntimeConfiguration
|
// DEFAULTSYSCONFRUNTIMECONFIGURATION has priority over defaultRuntimeConfiguration
|
||||||
assert.Equal(got, defaultSysConfRuntimeConfiguration)
|
assert.Equal(got, DEFAULTSYSCONFRUNTIMECONFIGURATION)
|
||||||
|
|
||||||
// force defaultRuntimeConfiguration to be returned
|
// force defaultRuntimeConfiguration to be returned
|
||||||
os.Remove(defaultSysConfRuntimeConfiguration)
|
os.Remove(DEFAULTSYSCONFRUNTIMECONFIGURATION)
|
||||||
|
|
||||||
got, err = getDefaultConfigFile()
|
got, err = getDefaultConfigFile()
|
||||||
assert.NoError(err)
|
assert.NoError(err)
|
||||||
|
@ -161,7 +161,7 @@ func findLastParam(key string, params []vc.Param) (string, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return "", fmt.Errorf("no param called %q found", name)
|
return "", fmt.Errorf("no param called %q found", NAME)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSetEphemeralStorageType(t *testing.T) {
|
func TestSetEphemeralStorageType(t *testing.T) {
|
||||||
|
@ -61,7 +61,7 @@ func (h *sysLogHook) Fire(e *logrus.Entry) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func newSystemLogHook(network, raddr string) (*sysLogHook, error) {
|
func newSystemLogHook(network, raddr string) (*sysLogHook, error) {
|
||||||
hook, err := lSyslog.NewSyslogHook(network, raddr, syslog.LOG_INFO, name)
|
hook, err := lSyslog.NewSyslogHook(network, raddr, syslog.LOG_INFO, NAME)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -45,7 +45,7 @@ func init() {
|
|||||||
var err error
|
var err error
|
||||||
|
|
||||||
fmt.Printf("INFO: creating test directory\n")
|
fmt.Printf("INFO: creating test directory\n")
|
||||||
testDir, err = ioutil.TempDir("", fmt.Sprintf("%s-", name))
|
testDir, err = ioutil.TempDir("", fmt.Sprintf("%s-", NAME))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Sprintf("ERROR: failed to create test directory: %v", err))
|
panic(fmt.Sprintf("ERROR: failed to create test directory: %v", err))
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user