constellation/hack/build-manifest/azure/options.go

50 lines
1.2 KiB
Go
Raw Normal View History

/*
Copyright (c) Edgeless Systems GmbH
SPDX-License-Identifier: AGPL-3.0-only
*/
package azure
import (
"fmt"
"github.com/google/uuid"
)
const (
// DefaultResourceGroupName to find Constellation images in.
DefaultResourceGroupName = "CONSTELLATION-IMAGES"
// DefaultGalleryName to find Constellation images in.
DefaultGalleryName = "Constellation_CVM"
// DefaultImageDefinition to find Constellation images in.
DefaultImageDefinition = "constellation"
)
// Options for Azure Client to download image references.
type Options struct {
SubscriptionID string
ResourceGroupName string
GalleryName string
ImageDefinition string
}
// DefaultOptions creates an Options object with good defaults.
func DefaultOptions() Options {
return Options{
SubscriptionID: "",
ResourceGroupName: DefaultResourceGroupName,
GalleryName: DefaultGalleryName,
ImageDefinition: DefaultImageDefinition,
}
}
// SetSubscription sets subscription from string. It expects a UUID conform value.
func (o *Options) SetSubscription(sub string) error {
if _, err := uuid.Parse(sub); err != nil {
return fmt.Errorf("unable to set subscription: %w", err)
}
o.SubscriptionID = sub
return nil
}