WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Commit 59ba2a6

Browse files
committed
Add packet as provider
This commit adds packet.com as a provisioner which is already available in the upstream package, but wasn't exposed via flags or code. Tested e2e with the ewr1 region including create and delete. Signed-off-by: Alex Ellis (OpenFaaS Ltd) <[email protected]>
1 parent c3afdbb commit 59ba2a6

File tree

3 files changed

+24
-5
lines changed

3 files changed

+24
-5
lines changed

cmd/create.go

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020

2121
func init() {
2222
inletsCmd.AddCommand(createCmd)
23-
createCmd.Flags().StringP("provider", "p", "digitalocean", "The cloud provider - digitalocean, scaleway, or civo")
23+
createCmd.Flags().StringP("provider", "p", "digitalocean", "The cloud provider - digitalocean, packet, scaleway, or civo")
2424
createCmd.Flags().StringP("region", "r", "lon1", "The region for your cloud provider")
2525

2626
createCmd.Flags().StringP("inlets-token", "t", "", "The inlets auth token for your exit node")
@@ -30,6 +30,7 @@ func init() {
3030
createCmd.Flags().String("secret-key", "", "The access token for your cloud (Scaleway)")
3131
createCmd.Flags().String("secret-key-file", "", "Read this file for the access token for your cloud (Scaleway)")
3232
createCmd.Flags().String("organisation-id", "", "Organisation ID (Scaleway)")
33+
createCmd.Flags().String("project-id", "", "Project ID (Packet.com)")
3334

3435
createCmd.Flags().StringP("remote-tcp", "c", "", `Remote host for inlets-pro to use for forwarding TCP connections`)
3536

@@ -92,6 +93,8 @@ func runCreate(cmd *cobra.Command, _ []string) error {
9293

9394
} else if provider == "scaleway" {
9495
region = "fr-par-1"
96+
} else if provider == "packet" {
97+
region = "ams1"
9598
}
9699

97100
var secretKey string
@@ -124,7 +127,9 @@ func runCreate(cmd *cobra.Command, _ []string) error {
124127

125128
userData := makeUserdata(inletsToken, inletsControlPort, remoteTCP)
126129

127-
hostReq, err := createHost(provider, name, region, userData)
130+
projectID, _ := cmd.Flags().GetString("project-id")
131+
132+
hostReq, err := createHost(provider, name, region, projectID, userData)
128133
if err != nil {
129134
return err
130135
}
@@ -201,6 +206,8 @@ Command:
201206
func getProvisioner(provider, accessToken, secretKey, organisationID, region string) (provision.Provisioner, error) {
202207
if provider == "digitalocean" {
203208
return provision.NewDigitalOceanProvisioner(accessToken)
209+
} else if provider == "packet" {
210+
return provision.NewPacketProvisioner(accessToken)
204211
} else if provider == "civo" {
205212
return pkg.NewCivoProvisioner(accessToken)
206213
} else if provider == "scaleway" {
@@ -214,7 +221,7 @@ func generateAuth() (string, error) {
214221
return pwdRes, pwdErr
215222
}
216223

217-
func createHost(provider, name, region, userData string) (*provision.BasicHost, error) {
224+
func createHost(provider, name, region, projectID, userData string) (*provision.BasicHost, error) {
218225
if provider == "digitalocean" {
219226
return &provision.BasicHost{
220227
Name: name,
@@ -224,6 +231,17 @@ func createHost(provider, name, region, userData string) (*provision.BasicHost,
224231
UserData: userData,
225232
Additional: map[string]string{},
226233
}, nil
234+
} else if provider == "packet" {
235+
return &provision.BasicHost{
236+
Name: name,
237+
OS: "ubuntu_16_04",
238+
Plan: "t1.small.x86",
239+
Region: region,
240+
UserData: userData,
241+
Additional: map[string]string{
242+
"project_id": projectID,
243+
},
244+
}, nil
227245
} else if provider == "scaleway" {
228246
return &provision.BasicHost{
229247
Name: name,
@@ -244,7 +262,7 @@ func createHost(provider, name, region, userData string) (*provision.BasicHost,
244262
}, nil
245263
}
246264

247-
return nil, fmt.Errorf("no provisioner for provider: %s", provider)
265+
return nil, fmt.Errorf("no provisioner for provider: %q", provider)
248266
}
249267

250268
func makeUserdata(authToken string, inletsControlPort int, remoteTCP string) string {

cmd/delete.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ func init() {
2323
deleteCmd.Flags().String("secret-key", "", "The access token for your cloud (Scaleway)")
2424
deleteCmd.Flags().String("secret-key-file", "", "Read this file for the access token for your cloud (Scaleway)")
2525
deleteCmd.Flags().String("organisation-id", "", "Organisation ID (Scaleway)")
26-
2726
}
2827

2928
// clientCmd represents the client sub command.

vendor/github.com/packethost/packngo/go.mod

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)