cli: use Bazel container images

This commit is contained in:
Malte Poll 2023-04-03 18:09:03 +02:00 committed by Malte Poll
parent bd889bd6a7
commit 9dfad32e33
19 changed files with 376 additions and 26 deletions

View file

@ -0,0 +1,41 @@
# gazelle:ignore
load("@io_bazel_rules_go//go:def.bzl", "go_library")
load("//bazel/oci:containers.bzl", "helm_containers")
load("//bazel/oci:pin.bzl", "oci_go_source")
GENERATED_SRCS = [
":" + container["name"]
for container in helm_containers()
]
go_library(
name = "imageversion",
srcs = ["imageversion.go"] + GENERATED_SRCS, # keep
importpath = "github.com/edgelesssys/constellation/v2/cli/internal/helm/imageversion",
visibility = ["//cli:__subpackages__"],
deps = ["//internal/containerimage"],
)
[
oci_go_source(
name = container["name"],
identifier = container["identifier"],
image_name = container["image_name"],
oci = container["oci"],
package = "imageversion",
prefix = container["prefix"],
registry = container["registry"],
tag_file = container["tag_file"],
visibility = ["//cli:__subpackages__"],
)
for container in helm_containers()
]
# TODO(malt3): add missing third-party images
# - logstash
# - filebeat
# - konnectivity-agent
# - konnectivity-server
# - node-maintenance-operator
# - gcp-guest-agent

View file

@ -0,0 +1,67 @@
/*
Copyright (c) Edgeless Systems GmbH
SPDX-License-Identifier: AGPL-3.0-only
*/
// Package imageversion contains the pinned container images for the helm charts.
package imageversion
import "github.com/edgelesssys/constellation/v2/internal/containerimage"
// TODO(malt3): Migrate third-party images from versions.go.
// JoinService is the image of the join service.
// registry and prefix can be optionally set to use a different source.
func JoinService(registry, prefix string) string {
return containerimage.NewBuilder(defaultJoinService, registry, prefix).Build().String()
}
// KeyService is the image of the key service.
// registry and prefix can be optionally set to use a different source.
func KeyService(registry, prefix string) string {
return containerimage.NewBuilder(defaultKeyService, registry, prefix).Build().String()
}
// VerificationService is the image of the verification service.
// registry and prefix can be optionally set to use a different source.
func VerificationService(registry, prefix string) string {
return containerimage.NewBuilder(defaultVerificationService, registry, prefix).Build().String()
}
// ConstellationNodeOperator is the image of the constellation node operator.
// registry and prefix can be optionally set to use a different source.
func ConstellationNodeOperator(registry, prefix string) string {
return containerimage.NewBuilder(defaultNodeOperator, registry, prefix).Build().String()
}
var (
defaultJoinService = containerimage.Image{
Registry: joinServiceRegistry,
Prefix: joinServicePrefix,
Name: joinServiceName,
Tag: joinServiceTag,
Digest: joinServiceDigest,
}
defaultKeyService = containerimage.Image{
Registry: keyServiceRegistry,
Prefix: keyServicePrefix,
Name: keyServiceName,
Tag: keyServiceTag,
Digest: keyServiceDigest,
}
defaultVerificationService = containerimage.Image{
Registry: verificationServiceRegistry,
Prefix: verificationServicePrefix,
Name: verificationServiceName,
Tag: verificationServiceTag,
Digest: verificationServiceDigest,
}
defaultNodeOperator = containerimage.Image{
Registry: constellationNodeOperatorRegistry,
Prefix: constellationNodeOperatorPrefix,
Name: constellationNodeOperatorName,
Tag: constellationNodeOperatorTag,
Digest: constellationNodeOperatorDigest,
}
)

View file

@ -0,0 +1,36 @@
/*
Copyright (c) Edgeless Systems GmbH
SPDX-License-Identifier: AGPL-3.0-only
*/
package imageversion
// This file is only used if `go build` is used instead of Bazel.
// It contains placeholder values for the container images so that everything
// still compiles.
const (
joinServiceRegistry = "placeholder"
joinServicePrefix = "placeholder"
joinServiceName = "placeholder"
joinServiceDigest = "placeholder"
joinServiceTag = "placeholder"
keyServiceRegistry = "placeholder"
keyServicePrefix = "placeholder"
keyServiceName = "placeholder"
keyServiceDigest = "placeholder"
keyServiceTag = "placeholder"
verificationServiceRegistry = "placeholder"
verificationServicePrefix = "placeholder"
verificationServiceName = "placeholder"
verificationServiceDigest = "placeholder"
verificationServiceTag = "placeholder"
constellationNodeOperatorRegistry = "placeholder"
constellationNodeOperatorPrefix = "placeholder"
constellationNodeOperatorName = "placeholder"
constellationNodeOperatorDigest = "placeholder"
constellationNodeOperatorTag = "placeholder"
)