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}"); } }
public bool KeyvaultExtensionConfig(KeyvaultExtensionConfig e) { return(Test(e)); }