Merge pull request #8879 from mbrancato/specify_keyvault_sku
Add support for configurable KeyVault SKU
This commit is contained in:
commit
aeedc9af7a
|
@ -40,6 +40,7 @@ const (
|
||||||
DefaultUserName = "packer"
|
DefaultUserName = "packer"
|
||||||
DefaultPrivateVirtualNetworkWithPublicIp = false
|
DefaultPrivateVirtualNetworkWithPublicIp = false
|
||||||
DefaultVMSize = "Standard_A1"
|
DefaultVMSize = "Standard_A1"
|
||||||
|
DefaultKeyVaultSKU = "standard"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -257,6 +258,9 @@ type Config struct {
|
||||||
// Specify an existing key vault to use for uploading certificates to the
|
// Specify an existing key vault to use for uploading certificates to the
|
||||||
// instance to connect.
|
// instance to connect.
|
||||||
BuildKeyVaultName string `mapstructure:"build_key_vault_name"`
|
BuildKeyVaultName string `mapstructure:"build_key_vault_name"`
|
||||||
|
// Specify the KeyVault SKU to create during the build. Valid values are
|
||||||
|
// standard or premium. The default value is standard.
|
||||||
|
BuildKeyVaultSKU string `mapstructure:"build_key_vault_sku"`
|
||||||
storageAccountBlobEndpoint string
|
storageAccountBlobEndpoint string
|
||||||
// This value allows you to
|
// This value allows you to
|
||||||
// set a virtual_network_name and obtain a public IP. If this value is not
|
// set a virtual_network_name and obtain a public IP. If this value is not
|
||||||
|
@ -684,6 +688,10 @@ func provideDefaultValues(c *Config) {
|
||||||
c.ImageVersion = DefaultImageVersion
|
c.ImageVersion = DefaultImageVersion
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if c.BuildKeyVaultSKU == "" {
|
||||||
|
c.BuildKeyVaultSKU = DefaultKeyVaultSKU
|
||||||
|
}
|
||||||
|
|
||||||
c.ClientConfig.SetDefaultValues()
|
c.ClientConfig.SetDefaultValues()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,6 +54,7 @@ type FlatConfig struct {
|
||||||
TempResourceGroupName *string `mapstructure:"temp_resource_group_name" cty:"temp_resource_group_name"`
|
TempResourceGroupName *string `mapstructure:"temp_resource_group_name" cty:"temp_resource_group_name"`
|
||||||
BuildResourceGroupName *string `mapstructure:"build_resource_group_name" cty:"build_resource_group_name"`
|
BuildResourceGroupName *string `mapstructure:"build_resource_group_name" cty:"build_resource_group_name"`
|
||||||
BuildKeyVaultName *string `mapstructure:"build_key_vault_name" cty:"build_key_vault_name"`
|
BuildKeyVaultName *string `mapstructure:"build_key_vault_name" cty:"build_key_vault_name"`
|
||||||
|
BuildKeyVaultSKU *string `mapstructure:"build_key_vault_sku" cty:"build_key_vault_sku"`
|
||||||
PrivateVirtualNetworkWithPublicIp *bool `mapstructure:"private_virtual_network_with_public_ip" required:"false" cty:"private_virtual_network_with_public_ip"`
|
PrivateVirtualNetworkWithPublicIp *bool `mapstructure:"private_virtual_network_with_public_ip" required:"false" cty:"private_virtual_network_with_public_ip"`
|
||||||
VirtualNetworkName *string `mapstructure:"virtual_network_name" required:"false" cty:"virtual_network_name"`
|
VirtualNetworkName *string `mapstructure:"virtual_network_name" required:"false" cty:"virtual_network_name"`
|
||||||
VirtualNetworkSubnetName *string `mapstructure:"virtual_network_subnet_name" required:"false" cty:"virtual_network_subnet_name"`
|
VirtualNetworkSubnetName *string `mapstructure:"virtual_network_subnet_name" required:"false" cty:"virtual_network_subnet_name"`
|
||||||
|
@ -166,6 +167,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
|
||||||
"temp_resource_group_name": &hcldec.AttrSpec{Name: "temp_resource_group_name", Type: cty.String, Required: false},
|
"temp_resource_group_name": &hcldec.AttrSpec{Name: "temp_resource_group_name", Type: cty.String, Required: false},
|
||||||
"build_resource_group_name": &hcldec.AttrSpec{Name: "build_resource_group_name", Type: cty.String, Required: false},
|
"build_resource_group_name": &hcldec.AttrSpec{Name: "build_resource_group_name", Type: cty.String, Required: false},
|
||||||
"build_key_vault_name": &hcldec.AttrSpec{Name: "build_key_vault_name", Type: cty.String, Required: false},
|
"build_key_vault_name": &hcldec.AttrSpec{Name: "build_key_vault_name", Type: cty.String, Required: false},
|
||||||
|
"build_key_vault_sku": &hcldec.AttrSpec{Name: "build_key_vault_sku", Type: cty.String, Required: false},
|
||||||
"private_virtual_network_with_public_ip": &hcldec.AttrSpec{Name: "private_virtual_network_with_public_ip", Type: cty.Bool, Required: false},
|
"private_virtual_network_with_public_ip": &hcldec.AttrSpec{Name: "private_virtual_network_with_public_ip", Type: cty.Bool, Required: false},
|
||||||
"virtual_network_name": &hcldec.AttrSpec{Name: "virtual_network_name", Type: cty.String, Required: false},
|
"virtual_network_name": &hcldec.AttrSpec{Name: "virtual_network_name", Type: cty.String, Required: false},
|
||||||
"virtual_network_subnet_name": &hcldec.AttrSpec{Name: "virtual_network_subnet_name", Type: cty.String, Required: false},
|
"virtual_network_subnet_name": &hcldec.AttrSpec{Name: "virtual_network_subnet_name", Type: cty.String, Required: false},
|
||||||
|
|
|
@ -17,6 +17,7 @@ type templateFactoryFunc func(*Config) (*resources.Deployment, error)
|
||||||
func GetKeyVaultDeployment(config *Config) (*resources.Deployment, error) {
|
func GetKeyVaultDeployment(config *Config) (*resources.Deployment, error) {
|
||||||
params := &template.TemplateParameters{
|
params := &template.TemplateParameters{
|
||||||
KeyVaultName: &template.TemplateParameter{Value: config.tmpKeyVaultName},
|
KeyVaultName: &template.TemplateParameter{Value: config.tmpKeyVaultName},
|
||||||
|
KeyVaultSKU: &template.TemplateParameter{Value: config.BuildKeyVaultSKU},
|
||||||
KeyVaultSecretValue: &template.TemplateParameter{Value: config.winrmCertificate},
|
KeyVaultSecretValue: &template.TemplateParameter{Value: config.winrmCertificate},
|
||||||
ObjectId: &template.TemplateParameter{Value: config.ClientConfig.ObjectID},
|
ObjectId: &template.TemplateParameter{Value: config.ClientConfig.ObjectID},
|
||||||
TenantId: &template.TemplateParameter{Value: config.ClientConfig.TenantID},
|
TenantId: &template.TemplateParameter{Value: config.ClientConfig.TenantID},
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
"keyVaultName": {
|
"keyVaultName": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"keyVaultSKU": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"keyVaultSecretValue": {
|
"keyVaultSecretValue": {
|
||||||
"type": "securestring"
|
"type": "securestring"
|
||||||
},
|
},
|
||||||
|
@ -39,7 +42,7 @@
|
||||||
"enabledForTemplateDeployment": "true",
|
"enabledForTemplateDeployment": "true",
|
||||||
"sku": {
|
"sku": {
|
||||||
"family": "A",
|
"family": "A",
|
||||||
"name": "standard"
|
"name": "[parameters('keyVaultSKU')]"
|
||||||
},
|
},
|
||||||
"tenantId": "[parameters('tenantId')]"
|
"tenantId": "[parameters('tenantId')]"
|
||||||
},
|
},
|
||||||
|
|
|
@ -482,6 +482,9 @@ const KeyVault = `{
|
||||||
"keyVaultName": {
|
"keyVaultName": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"keyVaultSKU": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"keyVaultSecretValue": {
|
"keyVaultSecretValue": {
|
||||||
"type": "securestring"
|
"type": "securestring"
|
||||||
},
|
},
|
||||||
|
@ -518,7 +521,7 @@ const KeyVault = `{
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"sku": {
|
"sku": {
|
||||||
"name": "standard",
|
"name": "[parameters('keyVaultSKU')]",
|
||||||
"family": "A"
|
"family": "A"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -22,6 +22,7 @@ type TemplateParameters struct {
|
||||||
AdminPassword *TemplateParameter `json:"adminPassword,omitempty"`
|
AdminPassword *TemplateParameter `json:"adminPassword,omitempty"`
|
||||||
DnsNameForPublicIP *TemplateParameter `json:"dnsNameForPublicIP,omitempty"`
|
DnsNameForPublicIP *TemplateParameter `json:"dnsNameForPublicIP,omitempty"`
|
||||||
KeyVaultName *TemplateParameter `json:"keyVaultName,omitempty"`
|
KeyVaultName *TemplateParameter `json:"keyVaultName,omitempty"`
|
||||||
|
KeyVaultSKU *TemplateParameter `json:"keyVaultSKU,omitempty"`
|
||||||
KeyVaultSecretValue *TemplateParameter `json:"keyVaultSecretValue,omitempty"`
|
KeyVaultSecretValue *TemplateParameter `json:"keyVaultSecretValue,omitempty"`
|
||||||
ObjectId *TemplateParameter `json:"objectId,omitempty"`
|
ObjectId *TemplateParameter `json:"objectId,omitempty"`
|
||||||
NicName *TemplateParameter `json:"nicName,omitempty"`
|
NicName *TemplateParameter `json:"nicName,omitempty"`
|
||||||
|
|
|
@ -118,6 +118,9 @@
|
||||||
- `build_key_vault_name` (string) - Specify an existing key vault to use for uploading certificates to the
|
- `build_key_vault_name` (string) - Specify an existing key vault to use for uploading certificates to the
|
||||||
instance to connect.
|
instance to connect.
|
||||||
|
|
||||||
|
- `build_key_vault_sku` (string) - Specify the KeyVault SKU to create during the build. Valid values are
|
||||||
|
standard or premium. The default value is standard.
|
||||||
|
|
||||||
- `private_virtual_network_with_public_ip` (bool) - This value allows you to
|
- `private_virtual_network_with_public_ip` (bool) - This value allows you to
|
||||||
set a virtual_network_name and obtain a public IP. If this value is not
|
set a virtual_network_name and obtain a public IP. If this value is not
|
||||||
set and virtual_network_name is defined Packer is only allowed to be
|
set and virtual_network_name is defined Packer is only allowed to be
|
||||||
|
|
Loading…
Reference in New Issue