mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-05-02 06:16:08 -04:00
terraform: Azure Marketplace image support (#2651)
* terraform: add Azure marketplace variable Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com> * config: add Azure marketplace variable Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com> * cli: use Terraform variables from config Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com> * terraform: pass down marketplace variable * image: pad Azure images to 1GiB * terraform: add version attribute to marketplace image * semver: allow versions to be exported without prefix * cli: boolean var to use marketplace images * config: remove dive key * dev-docs: add instructions on how to use marketplace images * terraform: fix unit test * terraform: only fetch image for non-marketplace images * mpimage: refactor image selection Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com> * [remove] increase minor version for image build Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com> * terraform: ignore changes to source_image_reference on upgrade * operator: add support for parsing Azure marketplace images Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com> * upgrade: fix imagefetcher call * docs: add info about azure marketplace * image: ensure more than 1GiB in size * image: test to pad to 2GiB * version: change back to v2.14.0-pre * image: GPT-conformant image size padding * [remove] increase version * mpimage: inline prefix func Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com> * ci: add marketplace image e2e test Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com> * [remove] register workflow * ci: fix workflow name * ci: only allow azure test * cli: add marketplace image input to interface * cli: fix argument passing * version: roll back to v2.14.0 * ci: add force-flag support * Update docs/docs/overview/license.md * Update dev-docs/workflows/marketplace-images.md Co-authored-by: Moritz Eckert <m1gh7ym0@gmail.com> --------- Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com> Co-authored-by: Moritz Eckert <m1gh7ym0@gmail.com> Co-authored-by: Thomas Tendyck <51411342+thomasten@users.noreply.github.com>
This commit is contained in:
parent
e113253262
commit
c15e4efef6
40 changed files with 607 additions and 34 deletions
|
@ -209,6 +209,8 @@ type AzureClusterVariables struct {
|
|||
CustomEndpoint string `hcl:"custom_endpoint" cty:"custom_endpoint"`
|
||||
// InternalLoadBalancer is true if an internal load balancer should be created.
|
||||
InternalLoadBalancer bool `hcl:"internal_load_balancer" cty:"internal_load_balancer"`
|
||||
// MarketplaceImage is the (optional) Azure Marketplace image to use.
|
||||
MarketplaceImage AzureMarketplaceImageVariables `hcl:"marketplace_image" cty:"marketplace_image"`
|
||||
}
|
||||
|
||||
// GetCreateMAA gets the CreateMAA variable.
|
||||
|
@ -250,6 +252,18 @@ type AzureIAMVariables struct {
|
|||
ResourceGroup string `hcl:"resource_group_name" cty:"resource_group_name"`
|
||||
}
|
||||
|
||||
// AzureMarketplaceImageVariables is a configuration for specifying an Azure Marketplace image.
|
||||
type AzureMarketplaceImageVariables struct {
|
||||
// Publisher is the publisher ID of the image.
|
||||
Publisher string `hcl:"publisher" cty:"publisher"`
|
||||
// Product is the product ID of the image.
|
||||
Product string `hcl:"product" cty:"product"`
|
||||
// Name is the name of the image.
|
||||
Name string `hcl:"name" cty:"name"`
|
||||
// Version is the version of the image.
|
||||
Version string `hcl:"version" cty:"version"`
|
||||
}
|
||||
|
||||
// String returns a string representation of the IAM-specific variables, formatted as Terraform variables.
|
||||
func (v *AzureIAMVariables) String() string {
|
||||
f := hclwrite.NewEmptyFile()
|
||||
|
|
|
@ -193,6 +193,12 @@ func TestAzureClusterVariables(t *testing.T) {
|
|||
Debug: to.Ptr(true),
|
||||
Location: "eu-central-1",
|
||||
CustomEndpoint: "example.com",
|
||||
MarketplaceImage: AzureMarketplaceImageVariables{
|
||||
Publisher: "edgelesssys",
|
||||
Product: "constellation",
|
||||
Name: "constellation",
|
||||
Version: "2.13.0",
|
||||
},
|
||||
}
|
||||
|
||||
// test that the variables are correctly rendered
|
||||
|
@ -216,6 +222,12 @@ node_groups = {
|
|||
}
|
||||
custom_endpoint = "example.com"
|
||||
internal_load_balancer = false
|
||||
marketplace_image = {
|
||||
name = "constellation"
|
||||
product = "constellation"
|
||||
publisher = "edgelesssys"
|
||||
version = "2.13.0"
|
||||
}
|
||||
`
|
||||
got := vars.String()
|
||||
assert.Equal(t, want, got)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue