-
Notifications
You must be signed in to change notification settings - Fork 70
/
manager.go
58 lines (48 loc) · 2.71 KB
/
manager.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// (C) Copyright Confidential Containers Contributors
// SPDX-License-Identifier: Apache-2.0
package azure
import (
"flag"
provider "github.com/confidential-containers/cloud-api-adaptor/src/cloud-providers"
)
var azurecfg Config
type Manager struct{}
func init() {
provider.AddCloudProvider("azure", &Manager{})
}
func (_ *Manager) ParseCmd(flags *flag.FlagSet) {
flags.StringVar(&azurecfg.ClientId, "clientid", "", "Client Id, defaults to `AZURE_CLIENT_ID`")
flags.StringVar(&azurecfg.ClientSecret, "secret", "", "Client Secret, defaults to `AZURE_CLIENT_SECRET`")
flags.StringVar(&azurecfg.TenantId, "tenantid", "", "Tenant Id, defaults to `AZURE_TENANT_ID`")
flags.StringVar(&azurecfg.ResourceGroupName, "resourcegroup", "", "Resource Group")
flags.StringVar(&azurecfg.Zone, "zone", "", "Zone")
flags.StringVar(&azurecfg.Region, "region", "", "Region")
flags.StringVar(&azurecfg.SubnetId, "subnetid", "", "Network Subnet Id")
flags.StringVar(&azurecfg.SecurityGroupId, "securitygroupid", "", "Security Group Id")
flags.StringVar(&azurecfg.Size, "instance-size", "Standard_DC2as_v5", "Instance size")
flags.StringVar(&azurecfg.ImageId, "imageid", "", "Image Id")
flags.StringVar(&azurecfg.SubscriptionId, "subscriptionid", "", "Subscription ID")
flags.StringVar(&azurecfg.SSHKeyPath, "ssh-key-path", "$HOME/.ssh/id_rsa.pub", "Path to SSH public key")
flags.StringVar(&azurecfg.SSHUserName, "ssh-username", "peerpod", "SSH User Name")
flags.BoolVar(&azurecfg.DisableCVM, "disable-cvm", false, "Use non-CVMs for peer pods")
// Add a List parameter to indicate differet type of instance sizes to be used for the Pod VMs
flags.Var(&azurecfg.InstanceSizes, "instance-sizes", "Instance sizes to be used for the Pod VMs, comma separated")
// Add a key value list parameter to indicate custom tags to be used for the Pod VMs
flags.Var(&azurecfg.Tags, "tags", "Custom tags (key=value pairs) to be used for the Pod VMs, comma separated")
flags.BoolVar(&azurecfg.EnableSecureBoot, "enable-secure-boot", false, "Enable secure boot for the VMs")
}
func (_ *Manager) LoadEnv() {
provider.DefaultToEnv(&azurecfg.ClientId, "AZURE_CLIENT_ID", "")
provider.DefaultToEnv(&azurecfg.ClientSecret, "AZURE_CLIENT_SECRET", "")
provider.DefaultToEnv(&azurecfg.TenantId, "AZURE_TENANT_ID", "")
provider.DefaultToEnv(&azurecfg.SubscriptionId, "AZURE_SUBSCRIPTION_ID", "")
provider.DefaultToEnv(&azurecfg.Region, "AZURE_REGION", "")
provider.DefaultToEnv(&azurecfg.ResourceGroupName, "AZURE_RESOURCE_GROUP", "")
provider.DefaultToEnv(&azurecfg.Size, "AZURE_INSTANCE_SIZE", "Standard_DC2as_v5")
}
func (_ *Manager) NewProvider() (provider.Provider, error) {
return NewProvider(&azurecfg)
}
func (_ *Manager) GetConfig() (config *Config) {
return &azurecfg
}