-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
initial draft for pulumi supporting mulitple providers
- Loading branch information
1 parent
22e466b
commit 1c5254c
Showing
2,664 changed files
with
885,991 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
out |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
VERSION ?= 0.0.1 | ||
CONTAINER_MANAGER ?= podman | ||
# Image URL to use all building/pushing image targets | ||
IMG ?= quay.io/crcont/crc-cloud:${VERSION} | ||
|
||
# Go and compilation related variables | ||
GOPATH ?= $(shell go env GOPATH) | ||
BUILD_DIR ?= out | ||
SOURCE_DIRS = cmd pkg test | ||
# https://golang.org/cmd/link/ | ||
LDFLAGS := $(VERSION_VARIABLES) -extldflags='-static' ${GO_EXTRA_LDFLAGS} | ||
GCFLAGS := all=-N -l | ||
|
||
# Add default target | ||
.PHONY: default | ||
default: install | ||
|
||
# Create and update the vendor directory | ||
.PHONY: vendor | ||
vendor: | ||
go mod tidy | ||
go mod vendor | ||
|
||
.PHONY: check | ||
check: build test lint | ||
|
||
# Start of the actual build targets | ||
|
||
.PHONY: install | ||
install: $(SOURCES) | ||
go install -ldflags="$(LDFLAGS)" $(GO_EXTRA_BUILDFLAGS) ./cmd | ||
|
||
$(BUILD_DIR)/crc-cloud: $(SOURCES) | ||
GOOS=linux GOARCH=amd64 go build -gcflags="$(GCFLAGS)" -ldflags="$(LDFLAGS)" -o $(BUILD_DIR)/crc-cloud $(GO_EXTRA_BUILDFLAGS) ./cmd | ||
|
||
|
||
|
||
.PHONY: build | ||
build: clean $(BUILD_DIR)/crc-cloud | ||
|
||
.PHONY: test | ||
test: | ||
go test -race --tags build -v -ldflags="$(VERSION_VARIABLES)" ./pkg/... ./cmd/... | ||
|
||
.PHONY: clean ## Remove all build artifacts | ||
clean: | ||
rm -rf $(BUILD_DIR) | ||
rm -f $(GOPATH)/bin/crc-cloud | ||
|
||
.PHONY: fmt | ||
fmt: | ||
@gofmt -l -w $(SOURCE_DIRS) | ||
|
||
$(GOPATH)/bin/golangci-lint: | ||
go install github.com/golangci/golangci-lint/cmd/[email protected] | ||
|
||
# Run golangci-lint against code | ||
.PHONY: lint | ||
lint: $(GOPATH)/bin/golangci-lint | ||
$(GOPATH)/bin/golangci-lint run | ||
|
||
# Build the container image | ||
.PHONY: oci-build | ||
oci-build: | ||
${CONTAINER_MANAGER} build -t ${IMG} -f oci/Containerfile . | ||
|
||
# Push the container image | ||
.PHONY: oci-push | ||
container-push: | ||
${CONTAINER_MANAGER} push ${IMG} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package cmd | ||
|
||
const ( | ||
projectName string = "project-name" | ||
projectNameDesc string = "project name to identify the instance of the stack" | ||
backedURL string = "backed-url" | ||
backedURLDesc string = "backed for stack state. Can be a local path with format file:///path/subpath or s3 s3://existing-bucket" | ||
outputFolder string = "output" | ||
outputFolderDesc string = "path to export assets" | ||
provider string = "provider" | ||
providerDesc string = "target cloud provider" | ||
ocpPullSecretFilePath string = "pullsecret-filepath" | ||
ocpPullSecretFilePathDesc string = "path for pullsecret file" | ||
keyFilePath string = "key-filepath" | ||
keyFilePathDesc string = "path to init key obtained when importing the image" | ||
|
||
bundleDownloadURL string = "bundle-url" | ||
bundleDownloadURLDesc string = "custom url to download the bundle artifact" | ||
shasumfileDownloadURL string = "bundle-shasumfile-url" | ||
shasumfileDownloadURLDesc string = "custom url to download the shasum file to verify the bundle artifact" | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
package cmd | ||
|
||
import ( | ||
"os" | ||
|
||
"github.com/crc/crc-cloud/pkg/manager" | ||
"github.com/spf13/cobra" | ||
"github.com/spf13/pflag" | ||
"github.com/spf13/viper" | ||
) | ||
|
||
const ( | ||
createCmdName string = "create" | ||
createCmdDescription string = "create crc cloud instance" | ||
) | ||
|
||
func init() { | ||
rootCmd.AddCommand(crcCloudCreateCmd) | ||
flagSet := pflag.NewFlagSet(createCmdName, pflag.ExitOnError) | ||
// Fixed params | ||
flagSet.StringP(projectName, "", "", projectNameDesc) | ||
flagSet.StringP(backedURL, "", "", backedURLDesc) | ||
flagSet.StringP(outputFolder, "", "", outputFolderDesc) | ||
flagSet.StringP(provider, "", "", providerDesc) | ||
flagSet.StringP(ocpPullSecretFilePath, "", "", ocpPullSecretFilePathDesc) | ||
flagSet.StringP(keyFilePath, "", "", keyFilePathDesc) | ||
// Provider dependent params | ||
for name, description := range manager.CreateParams() { | ||
flagSet.StringP(name, "", "", description) | ||
} | ||
crcCloudCreateCmd.Flags().AddFlagSet(flagSet) | ||
} | ||
|
||
var crcCloudCreateCmd = &cobra.Command{ | ||
Use: createCmdName, | ||
Short: createCmdDescription, | ||
RunE: func(cmd *cobra.Command, args []string) error { | ||
if err := viper.BindPFlags(cmd.Flags()); err != nil { | ||
return err | ||
} | ||
// Provider dependet params | ||
providerParams := make(map[string]string) | ||
for name := range manager.CreateParams() { | ||
providerParams[name] = viper.GetString(name) | ||
} | ||
if err := manager.Create( | ||
viper.GetString(projectName), | ||
viper.GetString(backedURL), | ||
viper.GetString(outputFolder), | ||
viper.GetString(provider), | ||
providerParams, | ||
viper.GetString(ocpPullSecretFilePath), | ||
viper.GetString(keyFilePath)); err != nil { | ||
os.Exit(1) | ||
} | ||
return nil | ||
}, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
package cmd | ||
|
||
import ( | ||
"os" | ||
|
||
"github.com/crc/crc-cloud/pkg/manager" | ||
"github.com/spf13/cobra" | ||
"github.com/spf13/pflag" | ||
"github.com/spf13/viper" | ||
) | ||
|
||
const ( | ||
destroyCmdName string = "destroy" | ||
destroyCmdDescription string = "destroy crc cloud instance" | ||
) | ||
|
||
func init() { | ||
rootCmd.AddCommand(crcCloudDestroyCmd) | ||
flagSet := pflag.NewFlagSet(createCmdName, pflag.ExitOnError) | ||
flagSet.StringP(projectName, "", "", projectNameDesc) | ||
flagSet.StringP(backedURL, "", "", backedURLDesc) | ||
flagSet.StringP(provider, "", "", providerDesc) | ||
crcCloudDestroyCmd.Flags().AddFlagSet(flagSet) | ||
} | ||
|
||
var crcCloudDestroyCmd = &cobra.Command{ | ||
Use: destroyCmdName, | ||
Short: destroyCmdDescription, | ||
RunE: func(cmd *cobra.Command, args []string) error { | ||
if err := viper.BindPFlags(cmd.Flags()); err != nil { | ||
return err | ||
} | ||
if err := manager.Destroy( | ||
viper.GetString(projectName), | ||
viper.GetString(backedURL), | ||
viper.GetString(provider)); err != nil { | ||
os.Exit(1) | ||
} | ||
return nil | ||
}, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
package cmd | ||
|
||
import ( | ||
"os" | ||
|
||
"github.com/crc/crc-cloud/pkg/manager" | ||
"github.com/spf13/cobra" | ||
"github.com/spf13/pflag" | ||
"github.com/spf13/viper" | ||
) | ||
|
||
const ( | ||
importImageCmdName string = "import" | ||
importImageCmdDescription string = "import crc cloud image" | ||
) | ||
|
||
func init() { | ||
rootCmd.AddCommand(crcCloudImportCmd) | ||
flagSet := pflag.NewFlagSet(importImageCmdName, pflag.ExitOnError) | ||
// Fixed params | ||
flagSet.StringP(projectName, "", "", projectNameDesc) | ||
flagSet.StringP(backedURL, "", "", backedURLDesc) | ||
flagSet.StringP(provider, "", "", providerDesc) | ||
flagSet.StringP(outputFolder, "", "", outputFolderDesc) | ||
flagSet.StringP(bundleDownloadURL, "", "", bundleDownloadURLDesc) | ||
flagSet.StringP(shasumfileDownloadURL, "", "", shasumfileDownloadURLDesc) | ||
crcCloudImportCmd.Flags().AddFlagSet(flagSet) | ||
} | ||
|
||
var crcCloudImportCmd = &cobra.Command{ | ||
Use: importImageCmdName, | ||
Short: importImageCmdDescription, | ||
RunE: func(cmd *cobra.Command, args []string) error { | ||
if err := viper.BindPFlags(cmd.Flags()); err != nil { | ||
return err | ||
} | ||
if err := manager.Import( | ||
viper.GetString(projectName), | ||
viper.GetString(backedURL), | ||
viper.GetString(provider), | ||
viper.GetString(outputFolder), | ||
viper.GetString(bundleDownloadURL), | ||
viper.GetString(shasumfileDownloadURL)); err != nil { | ||
os.Exit(1) | ||
} | ||
return nil | ||
}, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
package cmd | ||
|
||
import ( | ||
"context" | ||
"fmt" | ||
"os" | ||
"strings" | ||
|
||
"github.com/spf13/cobra" | ||
) | ||
|
||
const ( | ||
commandName = "crc-cloud" | ||
descriptionShort = "PoC for pulumi" | ||
descriptionLong = "PoC for pulumi" | ||
|
||
defaultErrorExitCode = 1 | ||
) | ||
|
||
var rootCmd = &cobra.Command{ | ||
Use: commandName, | ||
Short: descriptionShort, | ||
Long: descriptionLong, | ||
PersistentPreRunE: func(cmd *cobra.Command, args []string) error { | ||
return runPrerun(cmd) | ||
}, | ||
Run: func(cmd *cobra.Command, args []string) { | ||
runRoot() | ||
_ = cmd.Help() | ||
}, | ||
SilenceUsage: true, | ||
SilenceErrors: true, | ||
} | ||
|
||
func runPrerun(cmd *cobra.Command) error { | ||
return nil | ||
} | ||
|
||
func runRoot() { | ||
fmt.Println("No command given") | ||
} | ||
|
||
func Execute() { | ||
attachMiddleware([]string{}, rootCmd) | ||
|
||
if err := rootCmd.ExecuteContext(context.Background()); err != nil { | ||
runPostrun() | ||
_, _ = fmt.Fprintln(os.Stderr, err.Error()) | ||
os.Exit(defaultErrorExitCode) | ||
} | ||
runPostrun() | ||
} | ||
|
||
func attachMiddleware(names []string, cmd *cobra.Command) { | ||
if cmd.HasSubCommands() { | ||
for _, command := range cmd.Commands() { | ||
attachMiddleware(append(names, cmd.Name()), command) | ||
} | ||
} else if cmd.RunE != nil { | ||
fullCmd := strings.Join(append(names, cmd.Name()), " ") | ||
src := cmd.RunE | ||
cmd.RunE = executeWithLogging(fullCmd, src) | ||
} | ||
} | ||
|
||
func executeWithLogging(fullCmd string, input func(cmd *cobra.Command, args []string) error) func(cmd *cobra.Command, args []string) error { | ||
return func(cmd *cobra.Command, args []string) error { | ||
return input(cmd, args) | ||
} | ||
} | ||
|
||
func runPostrun() { | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
package main | ||
|
||
import "github.com/crc/crc-cloud/cmd/cmd" | ||
|
||
func main() { | ||
cmd.Execute() | ||
} |
Large diffs are not rendered by default.
Oops, something went wrong.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.