Integrate Pulumi deployment logic

- Update Makefile to support Pulumi deployment commands
- Modify cmd/up.go to call the Pulumi deployment function
- Add pulumi.go, containing infrastructure deployment code
This commit is contained in:
Haitao Pan 2025-05-16 17:57:07 +08:00
parent 0fd4d49374
commit 40c058beac
4 changed files with 28 additions and 0 deletions

View File

@ -9,6 +9,7 @@ all: build
init: init:
GOPROXY=https://goproxy.cn,direct go get github.com/spf13/cobra@latest GOPROXY=https://goproxy.cn,direct go get github.com/spf13/cobra@latest
GOPROXY=https://goproxy.cn,direct go get -u github.com/pulumi/pulumi/sdk/v3
go mod tidy go mod tidy
build: build:

View File

@ -6,6 +6,7 @@ import (
"os/exec" "os/exec"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"cloudwalker"
) )
var upCmd = &cobra.Command{ var upCmd = &cobra.Command{

View File

@ -4,4 +4,6 @@ go 1.20
require ( require (
github.com/spf13/cobra v1.7.0 github.com/spf13/cobra v1.7.0
github.com/pulumi/pulumi/sdk/v3 v3.0.0
) )

24
CloudWalker/pulumi.go Normal file
View File

@ -0,0 +1,24 @@
package cloudwalker
import (
"fmt"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func DeployInfrastructure() error {
err := pulumi.Run(func(ctx *pulumi.Context) error {
// 示例:创建一个 S3 bucketPulumi 示例)
bucket, err := pulumi.NewBucket(ctx, "my-bucket", &pulumi.BucketArgs{})
if err != nil {
return fmt.Errorf("failed to create bucket: %v", err)
}
// 输出结果
ctx.Export("bucketName", bucket.ID())
return nil
})
if err != nil {
return fmt.Errorf("failed to run pulumi: %v", err)
}
return nil
}