Example #1
0
    public static VMExtensionWrapper KeyVaultExtension(AzureLocation region, KeyvaultExtensionConfig keyVault, Os vmOs)
    {
        var keyVaultName = keyVault.KeyVaultName;
        var certName     = keyVault.CertName;
        var uri          = keyVaultName + certName;

        if (vmOs == Os.Windows)
        {
            return(new VMExtensionWrapper {
                Location = region,
                Name = "KVVMExtensionForWindows",
                Publisher = "Microsoft.Azure.KeyVault",
                TypePropertiesType = "KeyVaultForWindows",
                TypeHandlerVersion = "1.0",
                AutoUpgradeMinorVersion = true,
                Settings = new BinaryData(JsonSerializer.Serialize(new {
                    SecretsManagementSettings = new {
                        PollingIntervalInS = "3600",
                        CertificateStoreName = "MY",
                        LinkOnRenewal = false,
                        CertificateStoreLocation = "LocalMachine",
                        RequireInitialSync = true,
                        ObservedCertificates = new string[] { uri },
                    }
                }, _extensionSerializerOptions))
            });
        }
        else if (vmOs == Os.Linux)
        {
            var certPath       = keyVault.CertPath;
            var extensionStore = keyVault.ExtensionStore;
            var certLocation   = certPath + extensionStore;

            return(new VMExtensionWrapper {
                Location = region,
                Name = "KVVMExtensionForLinux",
                Publisher = "Microsoft.Azure.KeyVault",
                TypePropertiesType = "KeyVaultForLinux",
                TypeHandlerVersion = "2.0",
                AutoUpgradeMinorVersion = true,
                Settings = new BinaryData(JsonSerializer.Serialize(new {
                    SecretsManagementSettings = new {
                        PollingIntervalInS = "3600",
                        CertificateStoreLocation = certLocation,
                        RequireInitialSync = true,
                        ObservedCertificates = new string[] { uri },
                    }
                }, _extensionSerializerOptions))
            });
        }
        else
        {
            throw new NotSupportedException($"unsupported os {vmOs}");
        }
    }
Example #2
0
 public bool KeyvaultExtensionConfig(KeyvaultExtensionConfig e)
 {
     return(Test(e));
 }