2023-05-23 06:12:58 -04:00
|
|
|
/*
|
|
|
|
Copyright (c) Edgeless Systems GmbH
|
|
|
|
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
*/
|
|
|
|
|
|
|
|
package cmd
|
|
|
|
|
|
|
|
import (
|
|
|
|
"os"
|
|
|
|
|
|
|
|
"github.com/spf13/cobra"
|
|
|
|
)
|
|
|
|
|
|
|
|
// NewImageCmd creates a new image parent command. Image needs another
|
|
|
|
// verb, and does nothing on its own.
|
|
|
|
func NewImageCmd() *cobra.Command {
|
|
|
|
cmd := &cobra.Command{
|
|
|
|
Use: "image",
|
|
|
|
Short: "Uploads OS images to supported CSPs",
|
|
|
|
Long: "Uploads OS images to supported CSPs.",
|
|
|
|
Args: cobra.ExactArgs(0),
|
|
|
|
}
|
|
|
|
|
|
|
|
cmd.SetOut(os.Stdout)
|
|
|
|
|
|
|
|
cmd.PersistentFlags().String("raw-image", "", "Path to os image in CSP specific format that should be uploaded.")
|
|
|
|
cmd.PersistentFlags().String("pki", "", "Base path to the PKI (secure boot signing) files.")
|
|
|
|
cmd.PersistentFlags().String("attestation-variant", "", "Attestation variant of the image being uploaded.")
|
|
|
|
cmd.PersistentFlags().String("version", "", "Shortname of the os image version.")
|
|
|
|
cmd.PersistentFlags().String("timestamp", "", "Optional timestamp to use for resource names. Uses format 2006-01-02T15:04:05Z07:00.")
|
|
|
|
cmd.PersistentFlags().String("region", "eu-central-1", "AWS region of the archive S3 bucket")
|
|
|
|
cmd.PersistentFlags().String("bucket", "cdn-constellation-backend", "S3 bucket name of the archive")
|
2023-06-02 05:20:01 -04:00
|
|
|
cmd.PersistentFlags().String("distribution-id", "E1H77EZTHC3NE4", "CloudFront distribution ID of the API")
|
2023-05-23 06:12:58 -04:00
|
|
|
cmd.PersistentFlags().String("out", "", "Optional path to write the upload result to. If not set, the result is written to stdout.")
|
|
|
|
cmd.PersistentFlags().Bool("verbose", false, "Enable verbose output")
|
|
|
|
must(cmd.MarkPersistentFlagRequired("raw-image"))
|
|
|
|
must(cmd.MarkPersistentFlagRequired("attestation-variant"))
|
|
|
|
must(cmd.MarkPersistentFlagRequired("version"))
|
|
|
|
|
|
|
|
cmd.AddCommand(newAWSCmd())
|
|
|
|
cmd.AddCommand(newAzureCmd())
|
|
|
|
cmd.AddCommand(newGCPCommand())
|
|
|
|
cmd.AddCommand(newOpenStackCmd())
|
|
|
|
cmd.AddCommand(newQEMUCmd())
|
|
|
|
|
|
|
|
return cmd
|
|
|
|
}
|