Skip to content

Commit

Permalink
feat(autok3s): Add AWS provider support
Browse files Browse the repository at this point in the history
Signed-off-by: JacieChao <kathyyy@163.com>
  • Loading branch information
JacieChao authored and Jason-ZW committed Jan 27, 2021
1 parent c553c99 commit 1230799
Show file tree
Hide file tree
Showing 188 changed files with 144,135 additions and 620 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ Install `dapper` please follow the [dapper](https://github.com/rancher/dapper) p

# License

Copyright (c) 2020 [Rancher Labs, Inc.](http://rancher.com)
Copyright (c) 2021 [Rancher Labs, Inc.](http://rancher.com)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
1 change: 1 addition & 0 deletions cmd/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (

// import custom provider
_ "github.com/cnrancher/autok3s/pkg/providers/alibaba"
_ "github.com/cnrancher/autok3s/pkg/providers/amazone"
_ "github.com/cnrancher/autok3s/pkg/providers/native"
_ "github.com/cnrancher/autok3s/pkg/providers/tencent"

Expand Down
12 changes: 12 additions & 0 deletions cmd/common/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,11 @@ import (
"github.com/cnrancher/autok3s/pkg/common"
"github.com/cnrancher/autok3s/pkg/providers"
"github.com/cnrancher/autok3s/pkg/providers/alibaba"
"github.com/cnrancher/autok3s/pkg/providers/amazone"
"github.com/cnrancher/autok3s/pkg/providers/tencent"
"github.com/cnrancher/autok3s/pkg/types"
typesAli "github.com/cnrancher/autok3s/pkg/types/alibaba"
typesAmazone "github.com/cnrancher/autok3s/pkg/types/amazone"
typesTencent "github.com/cnrancher/autok3s/pkg/types/tencent"
"github.com/cnrancher/autok3s/pkg/utils"

Expand Down Expand Up @@ -137,6 +139,16 @@ func GetProviderByState(c types.Cluster) (providers.Provider, error) {
Options: *option,
Status: c.Status,
}, nil
case "amazone":
option := &typesAmazone.Options{}
if err := yaml.Unmarshal(b, option); err != nil {
return nil, err
}
return &amazone.Amazone{
Metadata: c.Metadata,
Options: *option,
Status: c.Status,
}, nil
default:
return nil, fmt.Errorf("invalid provider name %s", c.Provider)
}
Expand Down
16 changes: 9 additions & 7 deletions cmd/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,6 @@ var (

func init() {
createCmd.Flags().StringVarP(&cProvider, "provider", "p", cProvider, "Provider is a module which provides an interface for managing cloud resources")
createCmd.Flags().StringVar(&cSSH.User, "ssh-user", cSSH.User, "SSH user for host")
createCmd.Flags().StringVar(&cSSH.Port, "ssh-port", cSSH.Port, "SSH port for host")
createCmd.Flags().StringVar(&cSSH.SSHKeyPath, "ssh-key-path", cSSH.SSHKeyPath, "SSH private key path")
createCmd.Flags().StringVar(&cSSH.SSHKeyPassphrase, "ssh-key-pass", cSSH.SSHKeyPassphrase, "SSH passphrase of private key")
createCmd.Flags().StringVar(&cSSH.SSHCertPath, "ssh-key-cert-path", cSSH.SSHCertPath, "SSH private key certificate path")
createCmd.Flags().StringVar(&cSSH.Password, "ssh-password", cSSH.Password, "SSH login password")
createCmd.Flags().BoolVar(&cSSH.SSHAgentAuth, "ssh-agent", cSSH.SSHAgentAuth, "Enable ssh agent")
}

func CreateCommand() *cobra.Command {
Expand All @@ -44,6 +37,15 @@ func CreateCommand() *cobra.Command {
cp = reg
}

cSSH = cp.GetSSHConfig()
createCmd.Flags().StringVar(&cSSH.User, "ssh-user", cSSH.User, "SSH user for host")
createCmd.Flags().StringVar(&cSSH.Port, "ssh-port", cSSH.Port, "SSH port for host")
createCmd.Flags().StringVar(&cSSH.SSHKeyPath, "ssh-key-path", cSSH.SSHKeyPath, "SSH private key path")
createCmd.Flags().StringVar(&cSSH.SSHKeyPassphrase, "ssh-key-pass", cSSH.SSHKeyPassphrase, "SSH passphrase of private key")
createCmd.Flags().StringVar(&cSSH.SSHCertPath, "ssh-key-cert-path", cSSH.SSHCertPath, "SSH private key certificate path")
createCmd.Flags().StringVar(&cSSH.Password, "ssh-password", cSSH.Password, "SSH login password")
createCmd.Flags().BoolVar(&cSSH.SSHAgentAuth, "ssh-agent", cSSH.SSHAgentAuth, "Enable ssh agent")

createCmd.Flags().AddFlagSet(cp.GetCredentialFlags(createCmd))
createCmd.Flags().AddFlagSet(cp.GetCreateFlags(createCmd))
createCmd.Example = cp.GetUsageExample("create")
Expand Down
15 changes: 8 additions & 7 deletions cmd/join.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,6 @@ var (

func init() {
joinCmd.Flags().StringVarP(&jProvider, "provider", "p", jProvider, "Provider is a module which provides an interface for managing cloud resources")
joinCmd.Flags().StringVar(&jSSH.User, "ssh-user", jSSH.User, "SSH user for host")
joinCmd.Flags().StringVar(&jSSH.Port, "ssh-port", jSSH.Port, "SSH port for host")
joinCmd.Flags().StringVar(&jSSH.SSHKeyPath, "ssh-key-path", jSSH.SSHKeyPath, "SSH private key path")
joinCmd.Flags().StringVar(&jSSH.SSHKeyPassphrase, "ssh-key-pass", jSSH.SSHKeyPassphrase, "SSH passphrase of private key")
joinCmd.Flags().StringVar(&jSSH.SSHCertPath, "ssh-key-cert-path", jSSH.SSHCertPath, "SSH private key certificate path")
joinCmd.Flags().StringVar(&jSSH.Password, "ssh-password", jSSH.Password, "SSH login password")
joinCmd.Flags().BoolVar(&jSSH.SSHAgentAuth, "ssh-agent", jSSH.SSHAgentAuth, "Enable ssh agent")
}

func JoinCommand() *cobra.Command {
Expand All @@ -42,6 +35,14 @@ func JoinCommand() *cobra.Command {
} else {
jp = reg
}
jSSH = jp.GetSSHConfig()
joinCmd.Flags().StringVar(&jSSH.User, "ssh-user", jSSH.User, "SSH user for host")
joinCmd.Flags().StringVar(&jSSH.Port, "ssh-port", jSSH.Port, "SSH port for host")
joinCmd.Flags().StringVar(&jSSH.SSHKeyPath, "ssh-key-path", jSSH.SSHKeyPath, "SSH private key path")
joinCmd.Flags().StringVar(&jSSH.SSHKeyPassphrase, "ssh-key-pass", jSSH.SSHKeyPassphrase, "SSH passphrase of private key")
joinCmd.Flags().StringVar(&jSSH.SSHCertPath, "ssh-key-cert-path", jSSH.SSHCertPath, "SSH private key certificate path")
joinCmd.Flags().StringVar(&jSSH.Password, "ssh-password", jSSH.Password, "SSH login password")
joinCmd.Flags().BoolVar(&jSSH.SSHAgentAuth, "ssh-agent", jSSH.SSHAgentAuth, "Enable ssh agent")

joinCmd.Flags().AddFlagSet(jp.GetCredentialFlags(joinCmd))
joinCmd.Flags().AddFlagSet(jp.GetJoinFlags(joinCmd))
Expand Down
23 changes: 3 additions & 20 deletions cmd/serve.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,8 @@ import (
"fmt"
"net/http"

"github.com/gorilla/mux"
"github.com/rancher/apiserver/pkg/server"
"github.com/rancher/apiserver/pkg/store/apiroot"
"github.com/rancher/apiserver/pkg/types"
"github.com/cnrancher/autok3s/pkg/server"

"github.com/sirupsen/logrus"
"github.com/spf13/cobra"
)
Expand All @@ -29,22 +27,7 @@ func init() {

func ServeCommand() *cobra.Command {
serveCmd.Run = func(cmd *cobra.Command, args []string) {
s := server.DefaultAPIServer()

apiroot.Register(s.Schemas, []string{"v1"})

router := mux.NewRouter()
router.Handle("/{prefix}/{type}", s)
router.Handle("/{prefix}/{type}/{id}", s)

router.NotFoundHandler = http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
s.Handle(&types.APIRequest{
Request: r,
Response: rw,
Type: "apiRoot",
URLPrefix: "v1",
})
})
router := server.Start()

logrus.Infof("run as daemon, listening on %s:%s", bindAddress, bindPort)
logrus.Fatal(http.ListenAndServe(fmt.Sprintf("%s:%s", bindAddress, bindPort), router))
Expand Down
22 changes: 13 additions & 9 deletions cmd/ssh.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,6 @@ var (

func init() {
sshCmd.Flags().StringVarP(&sProvider, "provider", "p", sProvider, "Provider is a module which provides an interface for managing cloud resources")
sshCmd.Flags().StringVar(&sSSH.User, "ssh-user", sSSH.User, "SSH user for host")
sshCmd.Flags().StringVar(&sSSH.Port, "ssh-port", sSSH.Port, "SSH port for host")
sshCmd.Flags().StringVar(&sSSH.SSHKeyPath, "ssh-key-path", sSSH.SSHKeyPath, "SSH private key path")
sshCmd.Flags().StringVar(&sSSH.SSHKeyPassphrase, "ssh-key-pass", sSSH.SSHKeyPassphrase, "SSH passphrase of private key")
sshCmd.Flags().StringVar(&sSSH.SSHCertPath, "ssh-key-cert-path", sSSH.SSHCertPath, "SSH private key certificate path")
sshCmd.Flags().StringVar(&sSSH.Password, "ssh-password", sSSH.Password, "SSH login password")
sshCmd.Flags().BoolVar(&sSSH.SSHAgentAuth, "ssh-agent", sSSH.SSHAgentAuth, "Enable ssh agent")
}

func SSHCommand() *cobra.Command {
Expand All @@ -41,6 +34,14 @@ func SSHCommand() *cobra.Command {
} else {
sp = reg
}
sSSH = sp.GetSSHConfig()
sshCmd.Flags().StringVar(&sSSH.User, "ssh-user", sSSH.User, "SSH user for host")
sshCmd.Flags().StringVar(&sSSH.Port, "ssh-port", sSSH.Port, "SSH port for host")
sshCmd.Flags().StringVar(&sSSH.SSHKeyPath, "ssh-key-path", sSSH.SSHKeyPath, "SSH private key path")
sshCmd.Flags().StringVar(&sSSH.SSHKeyPassphrase, "ssh-key-pass", sSSH.SSHKeyPassphrase, "SSH passphrase of private key")
sshCmd.Flags().StringVar(&sSSH.SSHCertPath, "ssh-key-cert-path", sSSH.SSHCertPath, "SSH private key certificate path")
sshCmd.Flags().StringVar(&sSSH.Password, "ssh-password", sSSH.Password, "SSH login password")
sshCmd.Flags().BoolVar(&sSSH.SSHAgentAuth, "ssh-agent", sSSH.SSHAgentAuth, "Enable ssh agent")

sshCmd.Flags().AddFlagSet(sp.GetCredentialFlags(sshCmd))
sshCmd.Flags().AddFlagSet(sp.GetSSHFlags(sshCmd))
Expand All @@ -61,8 +62,11 @@ func SSHCommand() *cobra.Command {

sshCmd.Run = func(cmd *cobra.Command, args []string) {
sp.GenerateClusterName()

if err := sp.SSHK3sNode(sSSH); err != nil {
node := ""
if len(args) > 0 {
node = args[0]
}
if err := sp.SSHK3sNode(sSSH, node); err != nil {
logrus.Fatalln(err)
}
}
Expand Down
7 changes: 1 addition & 6 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -34,20 +34,15 @@ replace (
require (
github.com/alexellis/go-execute v0.0.0-20200124154445-8697e4e28c5e
github.com/aliyun/alibaba-cloud-sdk-go v1.61.381
github.com/benmoss/go-powershell v0.0.0-20190925205200-09527df358ca // indirect
github.com/aws/aws-sdk-go v1.28.2
github.com/briandowns/spinner v1.11.1
github.com/docker/docker v17.12.0-ce-rc1.0.20200821074627-7ae5222c72cc+incompatible
github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c // indirect
github.com/ghodss/yaml v1.0.0
github.com/gogo/googleapis v1.4.0 // indirect
github.com/gorilla/mux v1.7.4
github.com/hashicorp/go-multierror v1.1.0 // indirect
github.com/juju/errors v0.0.0-20200330140219-3fe23663418f // indirect
github.com/morikuni/aec v1.0.0
github.com/olekukonko/tablewriter v0.0.4
github.com/onsi/ginkgo v1.14.0
github.com/onsi/gomega v1.10.1
github.com/rakelkar/gonetsh v0.0.0-20190930180311-e5c5ffe4bdf0 // indirect
github.com/rancher/apiserver v0.0.0-20201023000256-1a0a904f9197
github.com/rancher/k3s v1.19.5-0.20201117235738-2532c10faad4
github.com/sirupsen/logrus v1.6.0
Expand Down

0 comments on commit 1230799

Please sign in to comment.