@microsoft/terraform-cdk-constructs 0.0.3-pre.10 → 0.0.3-pre.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +858 -681
- package/API.md +499 -405
- package/README.md +4 -5
- package/docs/testing.md +39 -137
- package/lib/azure-actiongroup/lib/actiongroup.d.ts +1 -1
- package/lib/azure-actiongroup/lib/actiongroup.js +4 -4
- package/lib/azure-actiongroup/model/action-group-props.d.ts +3 -2
- package/lib/azure-actiongroup/model/action-group-props.js +1 -1
- package/lib/azure-actiongroup/test/AzureActionGroup.integ.js +66 -0
- package/lib/azure-actiongroup/test/AzureActionGroup.spec.js +5 -33
- package/lib/azure-applicationgateway/lib/gateway.d.ts +5 -3
- package/lib/azure-applicationgateway/lib/gateway.js +14 -7
- package/lib/azure-applicationgateway/test/AzureApplicationGateway.integ.d.ts +1 -0
- package/lib/azure-applicationgateway/test/AzureApplicationGateway.integ.js +272 -0
- package/lib/azure-applicationgateway/test/AzureApplicationGateway.spec.js +3 -35
- package/lib/azure-applicationinsights/lib/appinsights.d.ts +4 -3
- package/lib/azure-applicationinsights/lib/appinsights.js +6 -6
- package/lib/azure-applicationinsights/test/AzureAppInsights.integ.d.ts +1 -0
- package/lib/azure-applicationinsights/test/AzureAppInsights.integ.js +101 -0
- package/lib/azure-applicationinsights/test/AzureAppInsights.spec.js +4 -27
- package/lib/azure-containerregistry/lib/registry.d.ts +4 -3
- package/lib/azure-containerregistry/lib/registry.js +5 -5
- package/lib/azure-containerregistry/test/AzureContainerRegistry.integ.d.ts +1 -0
- package/lib/azure-containerregistry/test/AzureContainerRegistry.integ.js +68 -0
- package/lib/azure-containerregistry/test/AzureContainerRegistry.spec.js +4 -23
- package/lib/azure-datalake/lib/datalake.d.ts +1 -0
- package/lib/azure-datalake/lib/datalake.js +2 -1
- package/lib/azure-datalake/test/AzureDatalake.spec.d.ts +1 -0
- package/lib/azure-datalake/test/AzureDatalake.spec.js +32 -0
- package/lib/azure-datalake/test/AzureStorageAccount.integ.d.ts +1 -0
- package/lib/azure-datalake/test/AzureStorageAccount.integ.js +60 -0
- package/lib/azure-eventhub/lib/authorization.js +1 -1
- package/lib/azure-eventhub/lib/consumer.js +1 -1
- package/lib/azure-eventhub/lib/{cluster.d.ts → eventhubcluster.d.ts} +11 -7
- package/lib/azure-eventhub/lib/eventhubcluster.js +64 -0
- package/lib/azure-eventhub/lib/index.d.ts +1 -1
- package/lib/azure-eventhub/lib/index.js +2 -2
- package/lib/azure-eventhub/lib/instance.d.ts +1 -0
- package/lib/azure-eventhub/lib/instance.js +5 -4
- package/lib/azure-eventhub/lib/kusto-connection.js +1 -1
- package/lib/azure-eventhub/lib/namespace.d.ts +7 -6
- package/lib/azure-eventhub/lib/namespace.js +24 -26
- package/lib/azure-eventhub/test/AzureEventhub.integ.d.ts +1 -0
- package/lib/azure-eventhub/test/AzureEventhub.integ.js +72 -0
- package/lib/azure-eventhub/test/AzureEventhub.spec.js +4 -27
- package/lib/azure-functionapp/lib/functionapplinux.js +1 -1
- package/lib/azure-functionapp/test/AzureLinuxFunctionApp.integ.d.ts +1 -0
- package/lib/azure-functionapp/test/AzureLinuxFunctionApp.integ.js +117 -0
- package/lib/azure-functionapp/test/AzureLinuxFunctionApp.spec.js +4 -21
- package/lib/azure-keyvault/lib/certificate.js +2 -2
- package/lib/azure-keyvault/lib/key.js +1 -1
- package/lib/azure-keyvault/lib/policy.js +1 -1
- package/lib/azure-keyvault/lib/secret.js +1 -1
- package/lib/azure-keyvault/lib/vault.d.ts +3 -2
- package/lib/azure-keyvault/lib/vault.js +4 -4
- package/lib/azure-keyvault/test/AzureKeyVault.integ.d.ts +1 -0
- package/lib/azure-keyvault/test/AzureKeyVault.integ.js +119 -0
- package/lib/azure-keyvault/test/AzureKeyVault.spec.js +4 -35
- package/lib/azure-kubernetes/lib/cluster.js +1 -1
- package/lib/azure-kubernetes/test/AzureKubernetesCluster.integ.d.ts +1 -0
- package/lib/azure-kubernetes/test/AzureKubernetesCluster.integ.js +75 -0
- package/lib/azure-kubernetes/test/AzureKubernetesCluster.spec.js +4 -21
- package/lib/azure-kusto/lib/cluster.d.ts +9 -5
- package/lib/azure-kusto/lib/cluster.js +66 -42
- package/lib/azure-kusto/lib/compute-specification.js +1 -1
- package/lib/azure-kusto/lib/database.d.ts +7 -8
- package/lib/azure-kusto/lib/database.js +23 -25
- package/lib/azure-kusto/test/AzureKusto.integ.d.ts +1 -0
- package/lib/azure-kusto/test/AzureKusto.integ.js +74 -0
- package/lib/azure-kusto/test/AzureKusto.spec.js +3 -22
- package/lib/azure-loganalytics/lib/workspace.d.ts +6 -3
- package/lib/azure-loganalytics/lib/workspace.js +7 -6
- package/lib/azure-loganalytics/test/AzureLogAnalytics.integ.d.ts +1 -0
- package/lib/azure-loganalytics/test/AzureLogAnalytics.integ.js +117 -0
- package/lib/azure-loganalytics/test/AzureLogAnalytics.spec.js +4 -23
- package/lib/azure-metricalert/lib/metric-alert.js +1 -1
- package/lib/azure-metricalert/test/AzureMetricAlert.integ.d.ts +1 -0
- package/lib/azure-metricalert/test/AzureMetricAlert.integ.js +85 -0
- package/lib/azure-metricalert/test/AzureMetricAlert.spec.js +4 -21
- package/lib/azure-networksecuritygroup/lib/preconfigured-rules.js +1 -1
- package/lib/azure-networksecuritygroup/lib/securitygroup.d.ts +4 -3
- package/lib/azure-networksecuritygroup/lib/securitygroup.js +7 -7
- package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.integ.d.ts +1 -0
- package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.integ.js +85 -0
- package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.spec.js +4 -23
- package/lib/azure-queryrulealert/lib/query-rule-alert.js +1 -1
- package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.integ.d.ts +1 -0
- package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.integ.js +63 -0
- package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.spec.js +4 -21
- package/lib/azure-resourcegroup/lib/resource-group.js +1 -1
- package/lib/azure-resourcegroup/test/AzureResourceGroup.integ.d.ts +1 -0
- package/lib/azure-resourcegroup/test/AzureResourceGroup.integ.js +41 -0
- package/lib/azure-resourcegroup/test/AzureResourceGroup.spec.js +4 -17
- package/lib/azure-storageaccount/lib/account.d.ts +5 -0
- package/lib/azure-storageaccount/lib/account.js +3 -2
- package/lib/azure-storageaccount/lib/container.js +2 -2
- package/lib/azure-storageaccount/lib/fileshare.js +2 -2
- package/lib/azure-storageaccount/lib/queue.js +1 -1
- package/lib/azure-storageaccount/lib/table.js +1 -1
- package/lib/azure-storageaccount/test/AzureStorageAccount.integ.d.ts +1 -0
- package/lib/azure-storageaccount/test/AzureStorageAccount.integ.js +84 -0
- package/lib/azure-storageaccount/test/AzureStorageAccount.spec.js +4 -17
- package/lib/azure-virtualmachine/lib/image-references.js +2 -2
- package/lib/azure-virtualmachine/lib/vm.d.ts +29 -6
- package/lib/azure-virtualmachine/lib/vm.js +17 -15
- package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.integ.d.ts +1 -0
- package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.integ.js +109 -0
- package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.spec.js +5 -25
- package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.integ.d.ts +1 -0
- package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.integ.js +105 -0
- package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.spec.js +4 -23
- package/lib/azure-virtualmachinescaleset/lib/cluster.d.ts +28 -6
- package/lib/azure-virtualmachinescaleset/lib/cluster.js +13 -11
- package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.integ.d.ts +1 -0
- package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.integ.js +113 -0
- package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.spec.js +5 -25
- package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.integ.d.ts +1 -0
- package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.integ.js +109 -0
- package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.spec.js +4 -23
- package/lib/azure-virtualnetwork/lib/network.d.ts +4 -3
- package/lib/azure-virtualnetwork/lib/network.js +7 -6
- package/lib/azure-virtualnetwork/lib/peering.js +1 -1
- package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.integ.d.ts +1 -0
- package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.integ.js +92 -0
- package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.spec.js +5 -25
- package/lib/core-azure/lib/diagsettings.d.ts +3 -2
- package/lib/core-azure/lib/diagsettings.js +15 -21
- package/lib/core-azure/lib/rbac.js +1 -1
- package/lib/core-azure/lib/resource.js +6 -4
- package/lib/core-azure/test/AzureResource.integ.d.ts +1 -0
- package/lib/core-azure/test/AzureResource.integ.js +75 -0
- package/lib/testing/index.d.ts +34 -0
- package/lib/testing/index.js +235 -2
- package/package.json +32 -11
- package/cdktf.out/manifest.json +0 -13
- package/cdktf.out/stacks/testAzureActionGroup/cdk.tf.json +0 -111
- package/cdktf.out/stacks/testAzureApplicationGateway/cdk.tf.json +0 -588
- package/cdktf.out/stacks/testAzureApplicationInsights/cdk.tf.json +0 -245
- package/cdktf.out/stacks/testAzureContainerRegistry/cdk.tf.json +0 -179
- package/cdktf.out/stacks/testAzureEventhub/cdk.tf.json +0 -236
- package/cdktf.out/stacks/testAzureKeyVault/cdk.tf.json +0 -436
- package/cdktf.out/stacks/testAzureKubernetesCluster/cdk.tf.json +0 -152
- package/cdktf.out/stacks/testAzureKusto/cdk.tf.json +0 -209
- package/cdktf.out/stacks/testAzureLinuxFunctionApp/cdk.tf.json +0 -439
- package/cdktf.out/stacks/testAzureLinuxVirtualMachineExample/cdk.tf.json +0 -283
- package/cdktf.out/stacks/testAzureLinuxVirtualMachineScaleSetExample/cdk.tf.json +0 -261
- package/cdktf.out/stacks/testAzureLogAnalytics/cdk.tf.json +0 -309
- package/cdktf.out/stacks/testAzureMetricAlert/cdk.tf.json +0 -161
- package/cdktf.out/stacks/testAzureNetworkSecurityGroup/cdk.tf.json +0 -271
- package/cdktf.out/stacks/testAzureQueryRuleAlert/cdk.tf.json +0 -122
- package/cdktf.out/stacks/testAzureResourceGroup/cdk.tf.json +0 -88
- package/cdktf.out/stacks/testAzureStorageAccount/cdk.tf.json +0 -339
- package/cdktf.out/stacks/testAzureVirtualNetwork/cdk.tf.json +0 -264
- package/cdktf.out/stacks/testAzureWindowVirtualMachineScaleSetExample/cdk.tf.json +0 -261
- package/cdktf.out/stacks/testAzureWindowsVirtualMachineExample/cdk.tf.json +0 -280
- package/cdktf.out/stacks/testExampleAzureResource/cdk.tf.json +0 -167
- package/lib/azure-actiongroup/test/ExampleAzureActionGroup.d.ts +0 -5
- package/lib/azure-actiongroup/test/ExampleAzureActionGroup.js +0 -66
- package/lib/azure-applicationgateway/test/ExampleAzureApplicationGateway.d.ts +0 -5
- package/lib/azure-applicationgateway/test/ExampleAzureApplicationGateway.js +0 -267
- package/lib/azure-applicationinsights/test/ExampleAzureApplicationInsights.d.ts +0 -5
- package/lib/azure-applicationinsights/test/ExampleAzureApplicationInsights.js +0 -87
- package/lib/azure-containerregistry/test/ExampleAzureContainerRegistry.d.ts +0 -5
- package/lib/azure-containerregistry/test/ExampleAzureContainerRegistry.js +0 -57
- package/lib/azure-eventhub/lib/cluster.js +0 -64
- package/lib/azure-eventhub/test/ExampleAzureEventhub.d.ts +0 -5
- package/lib/azure-eventhub/test/ExampleAzureEventhub.js +0 -72
- package/lib/azure-functionapp/test/ExampleAzureLinuxFunctionApp.d.ts +0 -5
- package/lib/azure-functionapp/test/ExampleAzureLinuxFunctionApp.js +0 -123
- package/lib/azure-keyvault/test/ExampleAzureKeyVault.d.ts +0 -5
- package/lib/azure-keyvault/test/ExampleAzureKeyVault.js +0 -112
- package/lib/azure-kubernetes/test/ExampleAzureKubernetesCluster.d.ts +0 -5
- package/lib/azure-kubernetes/test/ExampleAzureKubernetesCluster.js +0 -65
- package/lib/azure-kusto/test/ExampleAzureKusto.d.ts +0 -5
- package/lib/azure-kusto/test/ExampleAzureKusto.js +0 -71
- package/lib/azure-loganalytics/test/ExampleAzureLogAnalytics.d.ts +0 -5
- package/lib/azure-loganalytics/test/ExampleAzureLogAnalytics.js +0 -115
- package/lib/azure-metricalert/test/ExampleAzureMetricAlert.d.ts +0 -5
- package/lib/azure-metricalert/test/ExampleAzureMetricAlert.js +0 -81
- package/lib/azure-networksecuritygroup/test/ExampleAzureNetworkSecurityGroup.d.ts +0 -5
- package/lib/azure-networksecuritygroup/test/ExampleAzureNetworkSecurityGroup.js +0 -97
- package/lib/azure-queryrulealert/test/ExampleAzureQueryRuleAlert.d.ts +0 -5
- package/lib/azure-queryrulealert/test/ExampleAzureQueryRuleAlert.js +0 -67
- package/lib/azure-resourcegroup/test/ExampleAzureResourceGroup.d.ts +0 -5
- package/lib/azure-resourcegroup/test/ExampleAzureResourceGroup.js +0 -29
- package/lib/azure-storageaccount/test/ExampleAzureStorageAccount.d.ts +0 -5
- package/lib/azure-storageaccount/test/ExampleAzureStorageAccount.js +0 -102
- package/lib/azure-virtualmachine/test/ExampleAzureLinuxVirtualMachine.d.ts +0 -5
- package/lib/azure-virtualmachine/test/ExampleAzureLinuxVirtualMachine.js +0 -106
- package/lib/azure-virtualmachine/test/ExampleAzureWindowsVirtualMachine.d.ts +0 -5
- package/lib/azure-virtualmachine/test/ExampleAzureWindowsVirtualMachine.js +0 -102
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureLinuxVirtualMachineScaleSet.d.ts +0 -5
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureLinuxVirtualMachineScaleSet.js +0 -107
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureWindowsVirtualMachineScaleSet.d.ts +0 -5
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureWindowsVirtualMachineScaleSet.js +0 -103
- package/lib/azure-virtualnetwork/test/ExampleAzureVirtualNetwork.d.ts +0 -5
- package/lib/azure-virtualnetwork/test/ExampleAzureVirtualNetwork.js +0 -88
- package/lib/core-azure/test/AzureResource.spec.js +0 -19
- package/lib/core-azure/test/ExampleAzureResource.d.ts +0 -5
- package/lib/core-azure/test/ExampleAzureResource.js +0 -67
- package/tfsec.json +0 -4
- /package/lib/{core-azure/test/AzureResource.spec.d.ts → azure-actiongroup/test/AzureActionGroup.integ.d.ts} +0 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const data_azurerm_client_config_1 = require("@cdktf/provider-azurerm/lib/data-azurerm-client-config");
|
|
4
|
+
const provider_1 = require("@cdktf/provider-azurerm/lib/provider");
|
|
5
|
+
const resource_group_1 = require("@cdktf/provider-azurerm/lib/resource-group");
|
|
6
|
+
const storage_account_1 = require("@cdktf/provider-azurerm/lib/storage-account");
|
|
7
|
+
const subnet_1 = require("@cdktf/provider-azurerm/lib/subnet");
|
|
8
|
+
const virtual_network_1 = require("@cdktf/provider-azurerm/lib/virtual-network");
|
|
9
|
+
const cdktf_1 = require("cdktf");
|
|
10
|
+
const vm = require("..");
|
|
11
|
+
const testing_1 = require("../../testing");
|
|
12
|
+
const randomName_1 = require("../../util/randomName");
|
|
13
|
+
require("cdktf/lib/testing/adapters/jest");
|
|
14
|
+
describe("Example of deploying a Linux Virtual Machine", () => {
|
|
15
|
+
let stack;
|
|
16
|
+
let fullSynthResult;
|
|
17
|
+
const streamOutput = process.env.STREAM_OUTPUT !== "false";
|
|
18
|
+
beforeEach(() => {
|
|
19
|
+
const app = cdktf_1.Testing.app();
|
|
20
|
+
stack = new cdktf_1.TerraformStack(app, "test");
|
|
21
|
+
const randomName = (0, randomName_1.generateRandomName)(12);
|
|
22
|
+
const clientConfig = new data_azurerm_client_config_1.DataAzurermClientConfig(stack, "CurrentClientConfig", {});
|
|
23
|
+
new provider_1.AzurermProvider(stack, "azureFeature", { features: {} });
|
|
24
|
+
// Create a resource group
|
|
25
|
+
const resourceGroup = new resource_group_1.ResourceGroup(stack, "rg", {
|
|
26
|
+
name: `rg-${randomName}`,
|
|
27
|
+
location: "southcentralus",
|
|
28
|
+
});
|
|
29
|
+
const vnet = new virtual_network_1.VirtualNetwork(stack, "vnet", {
|
|
30
|
+
name: `vnet-${randomName}`,
|
|
31
|
+
location: resourceGroup.location,
|
|
32
|
+
resourceGroupName: resourceGroup.name,
|
|
33
|
+
addressSpace: ["10.0.0.0/16"],
|
|
34
|
+
});
|
|
35
|
+
const subnet = new subnet_1.Subnet(stack, "subnet1", {
|
|
36
|
+
name: "subnet1",
|
|
37
|
+
resourceGroupName: resourceGroup.name,
|
|
38
|
+
virtualNetworkName: vnet.name,
|
|
39
|
+
addressPrefixes: ["10.0.1.0/24"],
|
|
40
|
+
});
|
|
41
|
+
const storage = new storage_account_1.StorageAccount(stack, "storage", {
|
|
42
|
+
name: `sta${randomName}08l98`,
|
|
43
|
+
resourceGroupName: resourceGroup.name,
|
|
44
|
+
location: resourceGroup.location,
|
|
45
|
+
accountReplicationType: "LRS",
|
|
46
|
+
accountTier: "Standard",
|
|
47
|
+
minTlsVersion: "TLS1_2",
|
|
48
|
+
publicNetworkAccessEnabled: false,
|
|
49
|
+
networkRules: {
|
|
50
|
+
bypass: ["AzureServices"],
|
|
51
|
+
defaultAction: "Deny",
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
const linuxVm = new vm.LinuxVM(stack, "vm", {
|
|
55
|
+
name: randomName,
|
|
56
|
+
location: "southcentralus",
|
|
57
|
+
resourceGroup: resourceGroup,
|
|
58
|
+
size: "Standard_D2as_v4",
|
|
59
|
+
adminUsername: "testadmin",
|
|
60
|
+
adminPassword: "Password1234!",
|
|
61
|
+
osDisk: {
|
|
62
|
+
caching: "ReadWrite",
|
|
63
|
+
storageAccountType: "Standard_LRS",
|
|
64
|
+
},
|
|
65
|
+
sourceImageReference: {
|
|
66
|
+
publisher: "Canonical",
|
|
67
|
+
offer: "0001-com-ubuntu-server-jammy",
|
|
68
|
+
sku: "22_04-lts-gen2",
|
|
69
|
+
version: "latest",
|
|
70
|
+
},
|
|
71
|
+
subnet: subnet,
|
|
72
|
+
publicIPAllocationMethod: "Static",
|
|
73
|
+
userData: "#!/bin/bash\nsudo apt-get install -y apache2",
|
|
74
|
+
enableSshAzureADLogin: true,
|
|
75
|
+
identity: {
|
|
76
|
+
type: "SystemAssigned",
|
|
77
|
+
},
|
|
78
|
+
bootDiagnosticsStorageURI: storage.primaryBlobEndpoint,
|
|
79
|
+
lifecycle: {
|
|
80
|
+
ignoreChanges: ["tags", "identity"],
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
// Diag Settings
|
|
84
|
+
linuxVm.addDiagSettings({
|
|
85
|
+
name: "diagsettings",
|
|
86
|
+
storageAccountId: storage.id,
|
|
87
|
+
metric: [
|
|
88
|
+
{
|
|
89
|
+
category: "AllMetrics",
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
});
|
|
93
|
+
// RBAC
|
|
94
|
+
linuxVm.addAccess(clientConfig.objectId, "Contributor");
|
|
95
|
+
fullSynthResult = cdktf_1.Testing.fullSynth(stack); // Save the result for reuse
|
|
96
|
+
});
|
|
97
|
+
afterEach(() => {
|
|
98
|
+
try {
|
|
99
|
+
(0, testing_1.TerraformDestroy)(fullSynthResult, streamOutput);
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
console.error("Error during Terraform destroy:", error);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
it("check if stack can be deployed", () => {
|
|
106
|
+
(0, testing_1.TerraformApplyAndCheckIdempotency)(fullSynthResult, streamOutput); // Set to true to stream output
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXp1cmVMaW51eFZpcnR1YWxNYWNoaW5lLmludGVnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXZpcnR1YWxtYWNoaW5lL3Rlc3QvQXp1cmVMaW51eFZpcnR1YWxNYWNoaW5lLmludGVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdUdBQWlHO0FBQ2pHLG1FQUF1RTtBQUN2RSwrRUFBMkU7QUFDM0UsaUZBQTZFO0FBQzdFLCtEQUE0RDtBQUM1RCxpRkFBNkU7QUFDN0UsaUNBQWdEO0FBQ2hELHlCQUF5QjtBQUV6QiwyQ0FHdUI7QUFDdkIsc0RBQTJEO0FBQzNELDJDQUF5QztBQUV6QyxRQUFRLENBQUMsOENBQThDLEVBQUUsR0FBRyxFQUFFO0lBQzVELElBQUksS0FBcUIsQ0FBQztJQUMxQixJQUFJLGVBQW9CLENBQUM7SUFDekIsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEtBQUssT0FBTyxDQUFDO0lBRTNELFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxNQUFNLEdBQUcsR0FBRyxlQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUIsS0FBSyxHQUFHLElBQUksc0JBQWMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEMsTUFBTSxVQUFVLEdBQUcsSUFBQSwrQkFBa0IsRUFBQyxFQUFFLENBQUMsQ0FBQztRQUUxQyxNQUFNLFlBQVksR0FBRyxJQUFJLG9EQUF1QixDQUM5QyxLQUFLLEVBQ0wscUJBQXFCLEVBQ3JCLEVBQUUsQ0FDSCxDQUFDO1FBRUYsSUFBSSwwQkFBZSxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU3RCwwQkFBMEI7UUFDMUIsTUFBTSxhQUFhLEdBQUcsSUFBSSw4QkFBYSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDbkQsSUFBSSxFQUFFLE1BQU0sVUFBVSxF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QUFFO1lBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN6RDtJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGdDQUFnQyxFQUFFLEdBQUcsRUFBRTtRQUN4QyxJQUFBLDJDQUFpQyxFQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLCtCQUErQjtJQUNuRyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YUF6dXJlcm1DbGllbnRDb25maWcgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2RhdGEtYXp1cmVybS1jbGllbnQtY29uZmlnXCI7XG5pbXBvcnQgeyBBenVyZXJtUHJvdmlkZXIgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9yZXNvdXJjZS1ncm91cFwiO1xuaW1wb3J0IHsgU3RvcmFnZUFjY291bnQgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3N0b3JhZ2UtYWNjb3VudFwiO1xuaW1wb3J0IHsgU3VibmV0IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9zdWJuZXRcIjtcbmltcG9ydCB7IFZpcnR1YWxOZXR3b3JrIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi92aXJ0dWFsLW5ldHdvcmtcIjtcbmltcG9ydCB7IFRlc3RpbmcsIFRlcnJhZm9ybVN0YWNrIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgKiBhcyB2bSBmcm9tIFwiLi5cIjtcblxuaW1wb3J0IHtcbiAgVGVycmFmb3JtQXBwbHlBbmRDaGVja0lkZW1wb3RlbmN5LFxuICBUZXJyYWZvcm1EZXN0cm95LFxufSBmcm9tIFwiLi4vLi4vdGVzdGluZ1wiO1xuaW1wb3J0IHsgZ2VuZXJhdGVSYW5kb21OYW1lIH0gZnJvbSBcIi4uLy4uL3V0aWwvcmFuZG9tTmFtZVwiO1xuaW1wb3J0IFwiY2RrdGYvbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuXG5kZXNjcmliZShcIkV4YW1wbGUgb2YgZGVwbG95aW5nIGEgTGludXggVmlydHVhbCBNYWNoaW5lXCIsICgpID0+IHtcbiAgbGV0IHN0YWNrOiBUZXJyYWZvcm1TdGFjaztcbiAgbGV0IGZ1bGxTeW50aFJlc3VsdDogYW55O1xuICBjb25zdCBzdHJlYW1PdXRwdXQgPSBwcm9jZXNzLmVudi5TVFJFQU1fT1VUUFVUICE9PSBcImZhbHNlXCI7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgY29uc3QgYXBwID0gVGVzdGluZy5hcHAoKTtcbiAgICBzdGFjayA9IG5ldyBUZXJyYWZvcm1TdGFjayhhcHAsIFwidGVzdFwiKTtcbiAgICBjb25zdCByYW5kb21OYW1lID0gZ2VuZXJhdGVSYW5kb21OYW1lKDEyKTtcblxuICAgIGNvbnN0IGNsaWVudENvbmZpZyA9IG5ldyBEYXRhQXp1cmVybUNsaWVudENvbmZpZyhcbiAgICAgIHN0YWNrLFxuICAgICAgXCJDdXJyZW50Q2xpZW50Q29uZmlnXCIsXG4gICAgICB7fSxcbiAgICApO1xuXG4gICAgbmV3IEF6dXJlcm1Qcm92aWRlcihzdGFjaywgXCJhenVyZUZlYXR1cmVcIiwgeyBmZWF0dXJlczoge30gfSk7XG5cbiAgICAvLyBDcmVhdGUgYSByZXNvdXJjZSBncm91cFxuICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJyZ1wiLCB7XG4gICAgICBuYW1lOiBgcmctJHtyYW5kb21OYW1lfWAsXG4gICAgICBsb2NhdGlvbjogXCJzb3V0aGNlbnRyYWx1c1wiLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgdm5ldCA9IG5ldyBWaXJ0dWFsTmV0d29yayhzdGFjaywgXCJ2bmV0XCIsIHtcbiAgICAgIG5hbWU6IGB2bmV0LSR7cmFuZG9tTmFtZX1gLFxuICAgICAgbG9jYXRpb246IHJlc291cmNlR3JvdXAubG9jYXRpb24sXG4gICAgICByZXNvdXJjZUdyb3VwTmFtZTogcmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgYWRkcmVzc1NwYWNlOiBbXCIxMC4wLjAuMC8xNlwiXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN1Ym5ldCA9IG5ldyBTdWJuZXQoc3RhY2ssIFwic3VibmV0MVwiLCB7XG4gICAgICBuYW1lOiBcInN1Ym5ldDFcIixcbiAgICAgIHJlc291cmNlR3JvdXBOYW1lOiByZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICB2aXJ0dWFsTmV0d29ya05hbWU6IHZuZXQubmFtZSxcbiAgICAgIGFkZHJlc3NQcmVmaXhlczogW1wiMTAuMC4xLjAvMjRcIl0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdG9yYWdlID0gbmV3IFN0b3JhZ2VBY2NvdW50KHN0YWNrLCBcInN0b3JhZ2VcIiwge1xuICAgICAgbmFtZTogYHN0YSR7cmFuZG9tTmFtZX0wOGw5OGAsXG4gICAgICByZXNvdXJjZUdyb3VwTmFtZTogcmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgbG9jYXRpb246IHJlc291cmNlR3JvdXAubG9jYXRpb24sXG4gICAgICBhY2NvdW50UmVwbGljYXRpb25UeXBlOiBcIkxSU1wiLFxuICAgICAgYWNjb3VudFRpZXI6IFwiU3RhbmRhcmRcIixcbiAgICAgIG1pblRsc1ZlcnNpb246IFwiVExTMV8yXCIsXG4gICAgICBwdWJsaWNOZXR3b3JrQWNjZXNzRW5hYmxlZDogZmFsc2UsXG4gICAgICBuZXR3b3JrUnVsZXM6IHtcbiAgICAgICAgYnlwYXNzOiBbXCJBenVyZVNlcnZpY2VzXCJdLFxuICAgICAgICBkZWZhdWx0QWN0aW9uOiBcIkRlbnlcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBsaW51eFZtID0gbmV3IHZtLkxpbnV4Vk0oc3RhY2ssIFwidm1cIiwge1xuICAgICAgbmFtZTogcmFuZG9tTmFtZSxcbiAgICAgIGxvY2F0aW9uOiBcInNvdXRoY2VudHJhbHVzXCIsXG4gICAgICByZXNvdXJjZUdyb3VwOiByZXNvdXJjZUdyb3VwLFxuICAgICAgc2l6ZTogXCJTdGFuZGFyZF9EMmFzX3Y0XCIsXG4gICAgICBhZG1pblVzZXJuYW1lOiBcInRlc3RhZG1pblwiLFxuICAgICAgYWRtaW5QYXNzd29yZDogXCJQYXNzd29yZDEyMzQhXCIsXG4gICAgICBvc0Rpc2s6IHtcbiAgICAgICAgY2FjaGluZzogXCJSZWFkV3JpdGVcIixcbiAgICAgICAgc3RvcmFnZUFjY291bnRUeXBlOiBcIlN0YW5kYXJkX0xSU1wiLFxuICAgICAgfSxcbiAgICAgIHNvdXJjZUltYWdlUmVmZXJlbmNlOiB7XG4gICAgICAgIHB1Ymxpc2hlcjogXCJDYW5vbmljYWxcIixcbiAgICAgICAgb2ZmZXI6IFwiMDAwMS1jb20tdWJ1bnR1LXNlcnZlci1qYW1teVwiLFxuICAgICAgICBza3U6IFwiMjJfMDQtbHRzLWdlbjJcIixcbiAgICAgICAgdmVyc2lvbjogXCJsYXRlc3RcIixcbiAgICAgIH0sXG4gICAgICBzdWJuZXQ6IHN1Ym5ldCxcbiAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgIHVzZXJEYXRhOiBcIiMhL2Jpbi9iYXNoXFxuc3VkbyBhcHQtZ2V0IGluc3RhbGwgLXkgYXBhY2hlMlwiLFxuICAgICAgZW5hYmxlU3NoQXp1cmVBRExvZ2luOiB0cnVlLFxuICAgICAgaWRlbnRpdHk6IHtcbiAgICAgICAgdHlwZTogXCJTeXN0ZW1Bc3NpZ25lZFwiLFxuICAgICAgfSxcbiAgICAgIGJvb3REaWFnbm9zdGljc1N0b3JhZ2VVUkk6IHN0b3JhZ2UucHJpbWFyeUJsb2JFbmRwb2ludCxcbiAgICAgIGxpZmVjeWNsZToge1xuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXCJ0YWdzXCIsIFwiaWRlbnRpdHlcIl0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gRGlhZyBTZXR0aW5nc1xuICAgIGxpbnV4Vm0uYWRkRGlhZ1NldHRpbmdzKHtcbiAgICAgIG5hbWU6IFwiZGlhZ3NldHRpbmdzXCIsXG4gICAgICBzdG9yYWdlQWNjb3VudElkOiBzdG9yYWdlLmlkLFxuICAgICAgbWV0cmljOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjYXRlZ29yeTogXCJBbGxNZXRyaWNzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8gUkJBQ1xuICAgIGxpbnV4Vm0uYWRkQWNjZXNzKGNsaWVudENvbmZpZy5vYmplY3RJZCwgXCJDb250cmlidXRvclwiKTtcblxuICAgIGZ1bGxTeW50aFJlc3VsdCA9IFRlc3RpbmcuZnVsbFN5bnRoKHN0YWNrKTsgLy8gU2F2ZSB0aGUgcmVzdWx0IGZvciByZXVzZVxuICB9KTtcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBUZXJyYWZvcm1EZXN0cm95KGZ1bGxTeW50aFJlc3VsdCwgc3RyZWFtT3V0cHV0KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yIGR1cmluZyBUZXJyYWZvcm0gZGVzdHJveTpcIiwgZXJyb3IpO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoXCJjaGVjayBpZiBzdGFjayBjYW4gYmUgZGVwbG95ZWRcIiwgKCkgPT4ge1xuICAgIFRlcnJhZm9ybUFwcGx5QW5kQ2hlY2tJZGVtcG90ZW5jeShmdWxsU3ludGhSZXN1bHQsIHN0cmVhbU91dHB1dCk7IC8vIFNldCB0byB0cnVlIHRvIHN0cmVhbSBvdXRwdXRcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const provider_1 = require("@cdktf/provider-azurerm/lib/provider");
|
|
4
|
-
const resource_group_1 = require("@cdktf/provider-azurerm/lib/resource-group");
|
|
5
4
|
const cdktf_1 = require("cdktf");
|
|
6
|
-
require("cdktf/lib/testing/adapters/jest");
|
|
7
5
|
const vm = require("..");
|
|
8
|
-
const
|
|
6
|
+
const testing_1 = require("../../testing");
|
|
7
|
+
require("cdktf/lib/testing/adapters/jest");
|
|
9
8
|
describe("Azure Linux Virtual Machine With Defaults", () => {
|
|
10
9
|
let stack;
|
|
11
10
|
let fullSynthResult;
|
|
@@ -13,13 +12,7 @@ describe("Azure Linux Virtual Machine With Defaults", () => {
|
|
|
13
12
|
const app = cdktf_1.Testing.app();
|
|
14
13
|
stack = new cdktf_1.TerraformStack(app, "testAzureVMWithDefaults");
|
|
15
14
|
new provider_1.AzurermProvider(stack, "azureFeature", { features: {} });
|
|
16
|
-
|
|
17
|
-
name: "rg-test",
|
|
18
|
-
location: "eastus",
|
|
19
|
-
});
|
|
20
|
-
new vm.LinuxVM(stack, "testVirtualMachine", {
|
|
21
|
-
resourceGroup: rg,
|
|
22
|
-
});
|
|
15
|
+
new vm.LinuxVM(stack, "testVirtualMachine", {});
|
|
23
16
|
fullSynthResult = cdktf_1.Testing.fullSynth(stack); // Save the result for reuse
|
|
24
17
|
});
|
|
25
18
|
it("renders an Azure Linux Virtual Machine with defaults and checks snapshot", () => {
|
|
@@ -29,20 +22,7 @@ describe("Azure Linux Virtual Machine With Defaults", () => {
|
|
|
29
22
|
expect(fullSynthResult).toBeValidTerraform(); // Use the saved result
|
|
30
23
|
});
|
|
31
24
|
it("check if this can be planned", () => {
|
|
32
|
-
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
describe("Azure Linux Virtual Machine Example", () => {
|
|
36
|
-
it("renders the Azure Linux Virtual Machine and checks snapshot", () => {
|
|
37
|
-
expect(cdktf_1.Testing.synth(new ExampleAzureLinuxVirtualMachine_1.exampleAzureLinuxVirtualMachine(cdktf_1.Testing.app(), "testAzureLinuxVirtualMachineExample"))).toMatchSnapshot();
|
|
38
|
-
});
|
|
39
|
-
it("check if the produced terraform configuration is valid", () => {
|
|
40
|
-
// We need to do a full synth to plan the terraform configuration
|
|
41
|
-
expect(cdktf_1.Testing.fullSynth(new ExampleAzureLinuxVirtualMachine_1.exampleAzureLinuxVirtualMachine(cdktf_1.Testing.app(), "testAzureLinuxVirtualMachineExample"))).toBeValidTerraform();
|
|
42
|
-
});
|
|
43
|
-
it("check if this can be planned", () => {
|
|
44
|
-
// We need to do a full synth to plan the terraform configuration
|
|
45
|
-
expect(cdktf_1.Testing.fullSynth(new ExampleAzureLinuxVirtualMachine_1.exampleAzureLinuxVirtualMachine(cdktf_1.Testing.app(), "testAzureLinuxVirtualMachineExample"))).toPlanSuccessfully();
|
|
25
|
+
(0, testing_1.TerraformPlan)(fullSynthResult); // Use the saved result
|
|
46
26
|
});
|
|
47
27
|
});
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXp1cmVMaW51eFZpcnR1YWxNYWNoaW5lLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtdmlydHVhbG1hY2hpbmUvdGVzdC9BenVyZUxpbnV4VmlydHVhbE1hY2hpbmUuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1FQUF1RTtBQUN2RSxpQ0FBZ0Q7QUFDaEQseUJBQXlCO0FBQ3pCLDJDQUE4QztBQUM5QywyQ0FBeUM7QUFFekMsUUFBUSxDQUFDLDJDQUEyQyxFQUFFLEdBQUcsRUFBRTtJQUN6RCxJQUFJLEtBQXFCLENBQUM7SUFDMUIsSUFBSSxlQUFvQixDQUFDO0lBRXpCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxNQUFNLEdBQUcsR0FBRyxlQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUIsS0FBSyxHQUFHLElBQUksc0JBQWMsQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUMsQ0FBQztRQUUzRCxJQUFJLDBCQUFlLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTdELElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFaEQsZUFBZSxHQUFHLGVBQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyw0QkFBNEI7SUFDMUUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMEVBQTBFLEVBQUUsR0FBRyxFQUFFO1FBQ2xGLE1BQU0sQ0FBQyxlQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxxQ0FBcUM7SUFDdkYsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsd0RBQXdELEVBQUUsR0FBRyxFQUFFO1FBQ2hFLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsdUJBQXVCO0lBQ3ZFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDhCQUE4QixFQUFFLEdBQUcsRUFBRTtRQUN0QyxJQUFBLHVCQUFhLEVBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyx1QkFBdUI7SUFDekQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF6dXJlcm1Qcm92aWRlciB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcHJvdmlkZXJcIjtcbmltcG9ydCB7IFRlc3RpbmcsIFRlcnJhZm9ybVN0YWNrIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgKiBhcyB2bSBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IFRlcnJhZm9ybVBsYW4gfSBmcm9tIFwiLi4vLi4vdGVzdGluZ1wiO1xuaW1wb3J0IFwiY2RrdGYvbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuXG5kZXNjcmliZShcIkF6dXJlIExpbnV4IFZpcnR1YWwgTWFjaGluZSBXaXRoIERlZmF1bHRzXCIsICgpID0+IHtcbiAgbGV0IHN0YWNrOiBUZXJyYWZvcm1TdGFjaztcbiAgbGV0IGZ1bGxTeW50aFJlc3VsdDogYW55O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGNvbnN0IGFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgc3RhY2sgPSBuZXcgVGVycmFmb3JtU3RhY2soYXBwLCBcInRlc3RBenVyZVZNV2l0aERlZmF1bHRzXCIpO1xuXG4gICAgbmV3IEF6dXJlcm1Qcm92aWRlcihzdGFjaywgXCJhenVyZUZlYXR1cmVcIiwgeyBmZWF0dXJlczoge30gfSk7XG5cbiAgICBuZXcgdm0uTGludXhWTShzdGFjaywgXCJ0ZXN0VmlydHVhbE1hY2hpbmVcIiwge30pO1xuXG4gICAgZnVsbFN5bnRoUmVzdWx0ID0gVGVzdGluZy5mdWxsU3ludGgoc3RhY2spOyAvLyBTYXZlIHRoZSByZXN1bHQgZm9yIHJldXNlXG4gIH0pO1xuXG4gIGl0KFwicmVuZGVycyBhbiBBenVyZSBMaW51eCBWaXJ0dWFsIE1hY2hpbmUgd2l0aCBkZWZhdWx0cyBhbmQgY2hlY2tzIHNuYXBzaG90XCIsICgpID0+IHtcbiAgICBleHBlY3QoVGVzdGluZy5zeW50aChzdGFjaykpLnRvTWF0Y2hTbmFwc2hvdCgpOyAvLyBDb21wYXJlIHRoZSBhbHJlYWR5IHByZXBhcmVkIHN0YWNrXG4gIH0pO1xuXG4gIGl0KFwiY2hlY2sgaWYgdGhlIHByb2R1Y2VkIHRlcnJhZm9ybSBjb25maWd1cmF0aW9uIGlzIHZhbGlkXCIsICgpID0+IHtcbiAgICBleHBlY3QoZnVsbFN5bnRoUmVzdWx0KS50b0JlVmFsaWRUZXJyYWZvcm0oKTsgLy8gVXNlIHRoZSBzYXZlZCByZXN1bHRcbiAgfSk7XG5cbiAgaXQoXCJjaGVjayBpZiB0aGlzIGNhbiBiZSBwbGFubmVkXCIsICgpID0+IHtcbiAgICBUZXJyYWZvcm1QbGFuKGZ1bGxTeW50aFJlc3VsdCk7IC8vIFVzZSB0aGUgc2F2ZWQgcmVzdWx0XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "cdktf/lib/testing/adapters/jest";
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const data_azurerm_client_config_1 = require("@cdktf/provider-azurerm/lib/data-azurerm-client-config");
|
|
4
|
+
const provider_1 = require("@cdktf/provider-azurerm/lib/provider");
|
|
5
|
+
const resource_group_1 = require("@cdktf/provider-azurerm/lib/resource-group");
|
|
6
|
+
const storage_account_1 = require("@cdktf/provider-azurerm/lib/storage-account");
|
|
7
|
+
const subnet_1 = require("@cdktf/provider-azurerm/lib/subnet");
|
|
8
|
+
const virtual_network_1 = require("@cdktf/provider-azurerm/lib/virtual-network");
|
|
9
|
+
const cdktf_1 = require("cdktf");
|
|
10
|
+
const vm = require("..");
|
|
11
|
+
const testing_1 = require("../../testing");
|
|
12
|
+
const randomName_1 = require("../../util/randomName");
|
|
13
|
+
require("cdktf/lib/testing/adapters/jest");
|
|
14
|
+
describe("Example of deploying a Windows Virtual Machine", () => {
|
|
15
|
+
let stack;
|
|
16
|
+
let fullSynthResult;
|
|
17
|
+
const streamOutput = process.env.STREAM_OUTPUT !== "false";
|
|
18
|
+
beforeEach(() => {
|
|
19
|
+
const app = cdktf_1.Testing.app();
|
|
20
|
+
stack = new cdktf_1.TerraformStack(app, "test");
|
|
21
|
+
const randomName = (0, randomName_1.generateRandomName)(12);
|
|
22
|
+
const clientConfig = new data_azurerm_client_config_1.DataAzurermClientConfig(stack, "CurrentClientConfig", {});
|
|
23
|
+
new provider_1.AzurermProvider(stack, "azureFeature", { features: {} });
|
|
24
|
+
// Create a resource group
|
|
25
|
+
const resourceGroup = new resource_group_1.ResourceGroup(stack, "rg", {
|
|
26
|
+
name: `rg-${randomName}`,
|
|
27
|
+
location: "southcentralus",
|
|
28
|
+
});
|
|
29
|
+
const vnet = new virtual_network_1.VirtualNetwork(stack, "vnet", {
|
|
30
|
+
name: `vnet-${randomName}`,
|
|
31
|
+
location: resourceGroup.location,
|
|
32
|
+
resourceGroupName: resourceGroup.name,
|
|
33
|
+
addressSpace: ["10.0.0.0/16"],
|
|
34
|
+
});
|
|
35
|
+
const subnet = new subnet_1.Subnet(stack, "subnet1", {
|
|
36
|
+
name: "subnet1",
|
|
37
|
+
resourceGroupName: resourceGroup.name,
|
|
38
|
+
virtualNetworkName: vnet.name,
|
|
39
|
+
addressPrefixes: ["10.0.1.0/24"],
|
|
40
|
+
});
|
|
41
|
+
const storage = new storage_account_1.StorageAccount(stack, "storage", {
|
|
42
|
+
name: `sta${randomName}87u98`,
|
|
43
|
+
resourceGroupName: resourceGroup.name,
|
|
44
|
+
location: resourceGroup.location,
|
|
45
|
+
accountReplicationType: "LRS",
|
|
46
|
+
accountTier: "Standard",
|
|
47
|
+
minTlsVersion: "TLS1_2",
|
|
48
|
+
publicNetworkAccessEnabled: false,
|
|
49
|
+
networkRules: {
|
|
50
|
+
bypass: ["AzureServices"],
|
|
51
|
+
defaultAction: "Deny",
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
const winVm = new vm.WindowsVM(stack, "vm", {
|
|
55
|
+
name: randomName,
|
|
56
|
+
location: "southcentralus",
|
|
57
|
+
resourceGroup: resourceGroup,
|
|
58
|
+
size: "Standard_D2as_v4",
|
|
59
|
+
adminUsername: "testadmin",
|
|
60
|
+
adminPassword: "Password1234!",
|
|
61
|
+
osDisk: {
|
|
62
|
+
caching: "ReadWrite",
|
|
63
|
+
storageAccountType: "Standard_LRS",
|
|
64
|
+
},
|
|
65
|
+
sourceImageReference: {
|
|
66
|
+
publisher: "MicrosoftWindowsServer",
|
|
67
|
+
offer: "WindowsServer",
|
|
68
|
+
sku: "2019-Datacenter",
|
|
69
|
+
version: "latest",
|
|
70
|
+
},
|
|
71
|
+
subnet: subnet,
|
|
72
|
+
publicIPAllocationMethod: "Static",
|
|
73
|
+
boostrapCustomData: "Install-WindowsFeature -Name Web-Server; $website = '<h1>Hello World!</h1>'; Set-Content \"C:\\inetpub\\wwwroot\\iisstart.htm\" $website",
|
|
74
|
+
bootDiagnosticsStorageURI: storage.primaryBlobEndpoint,
|
|
75
|
+
lifecycle: {
|
|
76
|
+
ignoreChanges: ["tags", "identity"],
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
// Diag Settings
|
|
80
|
+
winVm.addDiagSettings({
|
|
81
|
+
name: "diagsettings",
|
|
82
|
+
storageAccountId: storage.id,
|
|
83
|
+
metric: [
|
|
84
|
+
{
|
|
85
|
+
category: "AllMetrics",
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
});
|
|
89
|
+
// RBAC
|
|
90
|
+
winVm.addAccess(clientConfig.objectId, "Contributor");
|
|
91
|
+
fullSynthResult = cdktf_1.Testing.fullSynth(stack); // Save the result for reuse
|
|
92
|
+
});
|
|
93
|
+
afterEach(() => {
|
|
94
|
+
try {
|
|
95
|
+
(0, testing_1.TerraformDestroy)(fullSynthResult, streamOutput);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
console.error("Error during Terraform destroy:", error);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
it("check if stack can be deployed", () => {
|
|
102
|
+
(0, testing_1.TerraformApplyAndCheckIdempotency)(fullSynthResult, streamOutput); // Set to true to stream output
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXp1cmVXaW5kb3dzVmlydHVhbE1hY2hpbmUuaW50ZWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtdmlydHVhbG1hY2hpbmUvdGVzdC9BenVyZVdpbmRvd3NWaXJ0dWFsTWFjaGluZS5pbnRlZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVHQUFpRztBQUNqRyxtRUFBdUU7QUFDdkUsK0VBQTJFO0FBQzNFLGlGQUE2RTtBQUM3RSwrREFBNEQ7QUFDNUQsaUZBQTZFO0FBQzdFLGlDQUFnRDtBQUNoRCx5QkFBeUI7QUFFekIsMkNBR3VCO0FBQ3ZCLHNEQUEyRDtBQUMzRCwyQ0FBeUM7QUFFekMsUUFBUSxDQUFDLGdEQUFnRCxFQUFFLEdBQUcsRUFBRTtJQUM5RCxJQUFJLEtBQXFCLENBQUM7SUFDMUIsSUFBSSxlQUFvQixDQUFDO0lBQ3pCLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxLQUFLLE9BQU8sQ0FBQztJQUUzRCxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsTUFBTSxHQUFHLEdBQUcsZUFBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFCLEtBQUssR0FBRyxJQUFJLHNCQUFjLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sVUFBVSxHQUFHLElBQUEsK0JBQWtCLEVBQUMsRUFBRSxDQUFDLENBQUM7UUFFMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxvREFBdUIsQ0FDOUMsS0FBSyxFQUNMLHFCQUFxQixFQUNyQixFQUFFLENBQ0gsQ0FBQztRQUVGLElBQUksMEJBQWUsQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFN0QsMEJBQTBCO1FBQzFCLE1BQU0sYUFBYSxHQUFHLElBQUksOEJBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ25ELElBQUksRUFBRSxNQUFNLFVB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RDtJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGdDQUFnQyxFQUFFLEdBQUcsRUFBRTtRQUN4QyxJQUFBLDJDQUFpQyxFQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLCtCQUErQjtJQUNuRyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YUF6dXJlcm1DbGllbnRDb25maWcgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2RhdGEtYXp1cmVybS1jbGllbnQtY29uZmlnXCI7XG5pbXBvcnQgeyBBenVyZXJtUHJvdmlkZXIgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9yZXNvdXJjZS1ncm91cFwiO1xuaW1wb3J0IHsgU3RvcmFnZUFjY291bnQgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3N0b3JhZ2UtYWNjb3VudFwiO1xuaW1wb3J0IHsgU3VibmV0IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9zdWJuZXRcIjtcbmltcG9ydCB7IFZpcnR1YWxOZXR3b3JrIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi92aXJ0dWFsLW5ldHdvcmtcIjtcbmltcG9ydCB7IFRlc3RpbmcsIFRlcnJhZm9ybVN0YWNrIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgKiBhcyB2bSBmcm9tIFwiLi5cIjtcblxuaW1wb3J0IHtcbiAgVGVycmFmb3JtQXBwbHlBbmRDaGVja0lkZW1wb3RlbmN5LFxuICBUZXJyYWZvcm1EZXN0cm95LFxufSBmcm9tIFwiLi4vLi4vdGVzdGluZ1wiO1xuaW1wb3J0IHsgZ2VuZXJhdGVSYW5kb21OYW1lIH0gZnJvbSBcIi4uLy4uL3V0aWwvcmFuZG9tTmFtZVwiO1xuaW1wb3J0IFwiY2RrdGYvbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuXG5kZXNjcmliZShcIkV4YW1wbGUgb2YgZGVwbG95aW5nIGEgV2luZG93cyBWaXJ0dWFsIE1hY2hpbmVcIiwgKCkgPT4ge1xuICBsZXQgc3RhY2s6IFRlcnJhZm9ybVN0YWNrO1xuICBsZXQgZnVsbFN5bnRoUmVzdWx0OiBhbnk7XG4gIGNvbnN0IHN0cmVhbU91dHB1dCA9IHByb2Nlc3MuZW52LlNUUkVBTV9PVVRQVVQgIT09IFwiZmFsc2VcIjtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBjb25zdCBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgIHN0YWNrID0gbmV3IFRlcnJhZm9ybVN0YWNrKGFwcCwgXCJ0ZXN0XCIpO1xuICAgIGNvbnN0IHJhbmRvbU5hbWUgPSBnZW5lcmF0ZVJhbmRvbU5hbWUoMTIpO1xuXG4gICAgY29uc3QgY2xpZW50Q29uZmlnID0gbmV3IERhdGFBenVyZXJtQ2xpZW50Q29uZmlnKFxuICAgICAgc3RhY2ssXG4gICAgICBcIkN1cnJlbnRDbGllbnRDb25maWdcIixcbiAgICAgIHt9LFxuICAgICk7XG5cbiAgICBuZXcgQXp1cmVybVByb3ZpZGVyKHN0YWNrLCBcImF6dXJlRmVhdHVyZVwiLCB7IGZlYXR1cmVzOiB7fSB9KTtcblxuICAgIC8vIENyZWF0ZSBhIHJlc291cmNlIGdyb3VwXG4gICAgY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcInJnXCIsIHtcbiAgICAgIG5hbWU6IGByZy0ke3JhbmRvbU5hbWV9YCxcbiAgICAgIGxvY2F0aW9uOiBcInNvdXRoY2VudHJhbHVzXCIsXG4gICAgfSk7XG5cbiAgICBjb25zdCB2bmV0ID0gbmV3IFZpcnR1YWxOZXR3b3JrKHN0YWNrLCBcInZuZXRcIiwge1xuICAgICAgbmFtZTogYHZuZXQtJHtyYW5kb21OYW1lfWAsXG4gICAgICBsb2NhdGlvbjogcmVzb3VyY2VHcm91cC5sb2NhdGlvbixcbiAgICAgIHJlc291cmNlR3JvdXBOYW1lOiByZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICBhZGRyZXNzU3BhY2U6IFtcIjEwLjAuMC4wLzE2XCJdLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3VibmV0ID0gbmV3IFN1Ym5ldChzdGFjaywgXCJzdWJuZXQxXCIsIHtcbiAgICAgIG5hbWU6IFwic3VibmV0MVwiLFxuICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IHJlc291cmNlR3JvdXAubmFtZSxcbiAgICAgIHZpcnR1YWxOZXR3b3JrTmFtZTogdm5ldC5uYW1lLFxuICAgICAgYWRkcmVzc1ByZWZpeGVzOiBbXCIxMC4wLjEuMC8yNFwiXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0b3JhZ2UgPSBuZXcgU3RvcmFnZUFjY291bnQoc3RhY2ssIFwic3RvcmFnZVwiLCB7XG4gICAgICBuYW1lOiBgc3RhJHtyYW5kb21OYW1lfTg3dTk4YCxcbiAgICAgIHJlc291cmNlR3JvdXBOYW1lOiByZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICBsb2NhdGlvbjogcmVzb3VyY2VHcm91cC5sb2NhdGlvbixcbiAgICAgIGFjY291bnRSZXBsaWNhdGlvblR5cGU6IFwiTFJTXCIsXG4gICAgICBhY2NvdW50VGllcjogXCJTdGFuZGFyZFwiLFxuICAgICAgbWluVGxzVmVyc2lvbjogXCJUTFMxXzJcIixcbiAgICAgIHB1YmxpY05ldHdvcmtBY2Nlc3NFbmFibGVkOiBmYWxzZSxcbiAgICAgIG5ldHdvcmtSdWxlczoge1xuICAgICAgICBieXBhc3M6IFtcIkF6dXJlU2VydmljZXNcIl0sXG4gICAgICAgIGRlZmF1bHRBY3Rpb246IFwiRGVueVwiLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHdpblZtID0gbmV3IHZtLldpbmRvd3NWTShzdGFjaywgXCJ2bVwiLCB7XG4gICAgICBuYW1lOiByYW5kb21OYW1lLFxuICAgICAgbG9jYXRpb246IFwic291dGhjZW50cmFsdXNcIixcbiAgICAgIHJlc291cmNlR3JvdXA6IHJlc291cmNlR3JvdXAsXG4gICAgICBzaXplOiBcIlN0YW5kYXJkX0QyYXNfdjRcIixcbiAgICAgIGFkbWluVXNlcm5hbWU6IFwidGVzdGFkbWluXCIsXG4gICAgICBhZG1pblBhc3N3b3JkOiBcIlBhc3N3b3JkMTIzNCFcIixcbiAgICAgIG9zRGlzazoge1xuICAgICAgICBjYWNoaW5nOiBcIlJlYWRXcml0ZVwiLFxuICAgICAgICBzdG9yYWdlQWNjb3VudFR5cGU6IFwiU3RhbmRhcmRfTFJTXCIsXG4gICAgICB9LFxuICAgICAgc291cmNlSW1hZ2VSZWZlcmVuY2U6IHtcbiAgICAgICAgcHVibGlzaGVyOiBcIk1pY3Jvc29mdFdpbmRvd3NTZXJ2ZXJcIixcbiAgICAgICAgb2ZmZXI6IFwiV2luZG93c1NlcnZlclwiLFxuICAgICAgICBza3U6IFwiMjAxOS1EYXRhY2VudGVyXCIsXG4gICAgICAgIHZlcnNpb246IFwibGF0ZXN0XCIsXG4gICAgICB9LFxuICAgICAgc3VibmV0OiBzdWJuZXQsXG4gICAgICBwdWJsaWNJUEFsbG9jYXRpb25NZXRob2Q6IFwiU3RhdGljXCIsXG4gICAgICBib29zdHJhcEN1c3RvbURhdGE6XG4gICAgICAgIFwiSW5zdGFsbC1XaW5kb3dzRmVhdHVyZSAtTmFtZSBXZWItU2VydmVyOyAkd2Vic2l0ZSA9ICc8aDE+SGVsbG8gV29ybGQhPC9oMT4nOyBTZXQtQ29udGVudCBcXFwiQzpcXFxcaW5ldHB1YlxcXFx3d3dyb290XFxcXGlpc3N0YXJ0Lmh0bVxcXCIgJHdlYnNpdGVcIixcbiAgICAgIGJvb3REaWFnbm9zdGljc1N0b3JhZ2VVUkk6IHN0b3JhZ2UucHJpbWFyeUJsb2JFbmRwb2ludCxcbiAgICAgIGxpZmVjeWNsZToge1xuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXCJ0YWdzXCIsIFwiaWRlbnRpdHlcIl0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gRGlhZyBTZXR0aW5nc1xuICAgIHdpblZtLmFkZERpYWdTZXR0aW5ncyh7XG4gICAgICBuYW1lOiBcImRpYWdzZXR0aW5nc1wiLFxuICAgICAgc3RvcmFnZUFjY291bnRJZDogc3RvcmFnZS5pZCxcbiAgICAgIG1ldHJpYzogW1xuICAgICAgICB7XG4gICAgICAgICAgY2F0ZWdvcnk6IFwiQWxsTWV0cmljc1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIC8vIFJCQUNcbiAgICB3aW5WbS5hZGRBY2Nlc3MoY2xpZW50Q29uZmlnLm9iamVjdElkLCBcIkNvbnRyaWJ1dG9yXCIpO1xuXG4gICAgZnVsbFN5bnRoUmVzdWx0ID0gVGVzdGluZy5mdWxsU3ludGgoc3RhY2spOyAvLyBTYXZlIHRoZSByZXN1bHQgZm9yIHJldXNlXG4gIH0pO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIFRlcnJhZm9ybURlc3Ryb3koZnVsbFN5bnRoUmVzdWx0LCBzdHJlYW1PdXRwdXQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgZHVyaW5nIFRlcnJhZm9ybSBkZXN0cm95OlwiLCBlcnJvcik7XG4gICAgfVxuICB9KTtcblxuICBpdChcImNoZWNrIGlmIHN0YWNrIGNhbiBiZSBkZXBsb3llZFwiLCAoKSA9PiB7XG4gICAgVGVycmFmb3JtQXBwbHlBbmRDaGVja0lkZW1wb3RlbmN5KGZ1bGxTeW50aFJlc3VsdCwgc3RyZWFtT3V0cHV0KTsgLy8gU2V0IHRvIHRydWUgdG8gc3RyZWFtIG91dHB1dFxuICB9KTtcbn0pO1xuIl19
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const provider_1 = require("@cdktf/provider-azurerm/lib/provider");
|
|
4
|
-
const resource_group_1 = require("@cdktf/provider-azurerm/lib/resource-group");
|
|
5
4
|
const cdktf_1 = require("cdktf");
|
|
6
|
-
require("cdktf/lib/testing/adapters/jest");
|
|
7
|
-
const ExampleAzureWindowsVirtualMachine_1 = require("./ExampleAzureWindowsVirtualMachine");
|
|
8
5
|
const vm = require("..");
|
|
6
|
+
const testing_1 = require("../../testing");
|
|
7
|
+
require("cdktf/lib/testing/adapters/jest");
|
|
9
8
|
describe("Azure Windows Virtual Machine With Defaults", () => {
|
|
10
9
|
let stack;
|
|
11
10
|
let fullSynthResult;
|
|
@@ -13,12 +12,7 @@ describe("Azure Windows Virtual Machine With Defaults", () => {
|
|
|
13
12
|
const app = cdktf_1.Testing.app();
|
|
14
13
|
stack = new cdktf_1.TerraformStack(app, "testAzureVMWithDefaults");
|
|
15
14
|
new provider_1.AzurermProvider(stack, "azureFeature", { features: {} });
|
|
16
|
-
const rg = new resource_group_1.ResourceGroup(stack, "MyResourceGroup", {
|
|
17
|
-
name: "rg-test",
|
|
18
|
-
location: "eastus",
|
|
19
|
-
});
|
|
20
15
|
new vm.WindowsVM(stack, "testVirtualMachine", {
|
|
21
|
-
resourceGroup: rg,
|
|
22
16
|
adminUsername: "testAdmin",
|
|
23
17
|
adminPassword: "testPassword&@34$$123",
|
|
24
18
|
});
|
|
@@ -31,20 +25,7 @@ describe("Azure Windows Virtual Machine With Defaults", () => {
|
|
|
31
25
|
expect(fullSynthResult).toBeValidTerraform(); // Use the saved result
|
|
32
26
|
});
|
|
33
27
|
it("check if this can be planned", () => {
|
|
34
|
-
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
describe("Azure Windows Virtual Machine Example", () => {
|
|
38
|
-
it("renders the Azure Windows Virtual Machine and checks snapshot", () => {
|
|
39
|
-
expect(cdktf_1.Testing.synth(new ExampleAzureWindowsVirtualMachine_1.exampleAzureWindowsVirtualMachine(cdktf_1.Testing.app(), "testAzureWindowsVirtualMachineExample"))).toMatchSnapshot();
|
|
40
|
-
});
|
|
41
|
-
it("check if the produced terraform configuration is valid", () => {
|
|
42
|
-
// We need to do a full synth to plan the terraform configuration
|
|
43
|
-
expect(cdktf_1.Testing.fullSynth(new ExampleAzureWindowsVirtualMachine_1.exampleAzureWindowsVirtualMachine(cdktf_1.Testing.app(), "testAzureWindowsVirtualMachineExample"))).toBeValidTerraform();
|
|
44
|
-
});
|
|
45
|
-
it("check if this can be planned", () => {
|
|
46
|
-
// We need to do a full synth to plan the terraform configuration
|
|
47
|
-
expect(cdktf_1.Testing.fullSynth(new ExampleAzureWindowsVirtualMachine_1.exampleAzureWindowsVirtualMachine(cdktf_1.Testing.app(), "testAzureWindowsVirtualMachineExample"))).toPlanSuccessfully();
|
|
28
|
+
(0, testing_1.TerraformPlan)(fullSynthResult); // Use the saved result
|
|
48
29
|
});
|
|
49
30
|
});
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXp1cmVXaW5kb3dzVmlydHVhbE1hY2hpbmUuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS12aXJ0dWFsbWFjaGluZS90ZXN0L0F6dXJlV2luZG93c1ZpcnR1YWxNYWNoaW5lLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtRUFBdUU7QUFDdkUsaUNBQWdEO0FBQ2hELHlCQUF5QjtBQUN6QiwyQ0FBOEM7QUFDOUMsMkNBQXlDO0FBRXpDLFFBQVEsQ0FBQyw2Q0FBNkMsRUFBRSxHQUFHLEVBQUU7SUFDM0QsSUFBSSxLQUFxQixDQUFDO0lBQzFCLElBQUksZUFBb0IsQ0FBQztJQUV6QixVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsTUFBTSxHQUFHLEdBQUcsZUFBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFCLEtBQUssR0FBRyxJQUFJLHNCQUFjLENBQUMsR0FBRyxFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFFM0QsSUFBSSwwQkFBZSxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU3RCxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLG9CQUFvQixFQUFFO1lBQzVDLGFBQWEsRUFBRSxXQUFXO1lBQzFCLGFBQWEsRUFBRSx1QkFBdUI7U0FDdkMsQ0FBQyxDQUFDO1FBRUgsZUFBZSxHQUFHLGVBQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyw0QkFBNEI7SUFDMUUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNEVBQTRFLEVBQUUsR0FBRyxFQUFFO1FBQ3BGLE1BQU0sQ0FBQyxlQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxxQ0FBcUM7SUFDdkYsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsd0RBQXdELEVBQUUsR0FBRyxFQUFFO1FBQ2hFLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsdUJBQXVCO0lBQ3ZFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDhCQUE4QixFQUFFLEdBQUcsRUFBRTtRQUN0QyxJQUFBLHVCQUFhLEVBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyx1QkFBdUI7SUFDekQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF6dXJlcm1Qcm92aWRlciB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcHJvdmlkZXJcIjtcbmltcG9ydCB7IFRlc3RpbmcsIFRlcnJhZm9ybVN0YWNrIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgKiBhcyB2bSBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IFRlcnJhZm9ybVBsYW4gfSBmcm9tIFwiLi4vLi4vdGVzdGluZ1wiO1xuaW1wb3J0IFwiY2RrdGYvbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuXG5kZXNjcmliZShcIkF6dXJlIFdpbmRvd3MgVmlydHVhbCBNYWNoaW5lIFdpdGggRGVmYXVsdHNcIiwgKCkgPT4ge1xuICBsZXQgc3RhY2s6IFRlcnJhZm9ybVN0YWNrO1xuICBsZXQgZnVsbFN5bnRoUmVzdWx0OiBhbnk7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgY29uc3QgYXBwID0gVGVzdGluZy5hcHAoKTtcbiAgICBzdGFjayA9IG5ldyBUZXJyYWZvcm1TdGFjayhhcHAsIFwidGVzdEF6dXJlVk1XaXRoRGVmYXVsdHNcIik7XG5cbiAgICBuZXcgQXp1cmVybVByb3ZpZGVyKHN0YWNrLCBcImF6dXJlRmVhdHVyZVwiLCB7IGZlYXR1cmVzOiB7fSB9KTtcblxuICAgIG5ldyB2bS5XaW5kb3dzVk0oc3RhY2ssIFwidGVzdFZpcnR1YWxNYWNoaW5lXCIsIHtcbiAgICAgIGFkbWluVXNlcm5hbWU6IFwidGVzdEFkbWluXCIsXG4gICAgICBhZG1pblBhc3N3b3JkOiBcInRlc3RQYXNzd29yZCZAMzQkJDEyM1wiLFxuICAgIH0pO1xuXG4gICAgZnVsbFN5bnRoUmVzdWx0ID0gVGVzdGluZy5mdWxsU3ludGgoc3RhY2spOyAvLyBTYXZlIHRoZSByZXN1bHQgZm9yIHJldXNlXG4gIH0pO1xuXG4gIGl0KFwicmVuZGVycyBhbiBBenVyZSBXaW5kb3dzIFZpcnR1YWwgTWFjaGluZSB3aXRoIGRlZmF1bHRzIGFuZCBjaGVja3Mgc25hcHNob3RcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChUZXN0aW5nLnN5bnRoKHN0YWNrKSkudG9NYXRjaFNuYXBzaG90KCk7IC8vIENvbXBhcmUgdGhlIGFscmVhZHkgcHJlcGFyZWQgc3RhY2tcbiAgfSk7XG5cbiAgaXQoXCJjaGVjayBpZiB0aGUgcHJvZHVjZWQgdGVycmFmb3JtIGNvbmZpZ3VyYXRpb24gaXMgdmFsaWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChmdWxsU3ludGhSZXN1bHQpLnRvQmVWYWxpZFRlcnJhZm9ybSgpOyAvLyBVc2UgdGhlIHNhdmVkIHJlc3VsdFxuICB9KTtcblxuICBpdChcImNoZWNrIGlmIHRoaXMgY2FuIGJlIHBsYW5uZWRcIiwgKCkgPT4ge1xuICAgIFRlcnJhZm9ybVBsYW4oZnVsbFN5bnRoUmVzdWx0KTsgLy8gVXNlIHRoZSBzYXZlZCByZXN1bHRcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -27,9 +27,10 @@ export interface LinuxClusterProps {
|
|
|
27
27
|
*/
|
|
28
28
|
readonly adminPassword?: string;
|
|
29
29
|
/**
|
|
30
|
-
*
|
|
30
|
+
* An optional reference to the resource group in which to deploy the Virtual Machine.
|
|
31
|
+
* If not provided, the Virtual Machine will be deployed in the default resource group.
|
|
31
32
|
*/
|
|
32
|
-
readonly resourceGroup
|
|
33
|
+
readonly resourceGroup?: ResourceGroup;
|
|
33
34
|
/**
|
|
34
35
|
* The size of the virtual machines in the scale set.
|
|
35
36
|
* @default "Standard_B2s"
|
|
@@ -110,6 +111,16 @@ export interface LinuxClusterProps {
|
|
|
110
111
|
* @default false
|
|
111
112
|
*/
|
|
112
113
|
readonly enableSshAzureADLogin?: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Lifecycle settings for the Terraform resource.
|
|
116
|
+
*
|
|
117
|
+
* @remarks
|
|
118
|
+
* This property specifies the lifecycle customizations for the Terraform resource,
|
|
119
|
+
* allowing you to define specific actions to be taken during the lifecycle of the
|
|
120
|
+
* resource. It can include settings such as create before destroy, prevent destroy,
|
|
121
|
+
* ignore changes, etc.
|
|
122
|
+
*/
|
|
123
|
+
readonly lifecycle?: cdktf.TerraformMetaArguments["lifecycle"];
|
|
113
124
|
}
|
|
114
125
|
export declare class LinuxCluster extends AzureResource {
|
|
115
126
|
readonly props: LinuxClusterProps;
|
|
@@ -130,7 +141,7 @@ export declare class LinuxCluster extends AzureResource {
|
|
|
130
141
|
* @param props - Configuration properties for the Linux VM Scale Set, derived from the LinuxClusterProps interface. These include:
|
|
131
142
|
* - `location`: The geographic location where the scale set will be hosted (e.g., "eastus").
|
|
132
143
|
* - `name`: The name of the scale set, which must be unique within the resource group.
|
|
133
|
-
* - `resourceGroup`:
|
|
144
|
+
* - `resourceGroup`: Optional. Reference to the resource group for deployment.
|
|
134
145
|
* - `sku`: The size specification of the VMs (e.g., "Standard_B2s").
|
|
135
146
|
* - `adminUsername`: The administrator username for the VMs.
|
|
136
147
|
* - `adminPassword`: The administrator password for the VMs.
|
|
@@ -184,9 +195,10 @@ export interface WindowsClusterProps {
|
|
|
184
195
|
*/
|
|
185
196
|
readonly name?: string;
|
|
186
197
|
/**
|
|
187
|
-
*
|
|
198
|
+
* An optional reference to the resource group in which to deploy the Virtual Machine.
|
|
199
|
+
* If not provided, the Virtual Machine will be deployed in the default resource group.
|
|
188
200
|
*/
|
|
189
|
-
readonly resourceGroup
|
|
201
|
+
readonly resourceGroup?: ResourceGroup;
|
|
190
202
|
/**
|
|
191
203
|
* The size of the virtual machine.
|
|
192
204
|
* @default "Standard_B2s"
|
|
@@ -263,6 +275,16 @@ export interface WindowsClusterProps {
|
|
|
263
275
|
* Specifies the scale-in policy for the VMSS.
|
|
264
276
|
*/
|
|
265
277
|
readonly scaleInPolicy?: string;
|
|
278
|
+
/**
|
|
279
|
+
* Lifecycle settings for the Terraform resource.
|
|
280
|
+
*
|
|
281
|
+
* @remarks
|
|
282
|
+
* This property specifies the lifecycle customizations for the Terraform resource,
|
|
283
|
+
* allowing you to define specific actions to be taken during the lifecycle of the
|
|
284
|
+
* resource. It can include settings such as create before destroy, prevent destroy,
|
|
285
|
+
* ignore changes, etc.
|
|
286
|
+
*/
|
|
287
|
+
readonly lifecycle?: cdktf.TerraformMetaArguments["lifecycle"];
|
|
266
288
|
}
|
|
267
289
|
export declare class WindowsCluster extends AzureResource {
|
|
268
290
|
readonly props: WindowsClusterProps;
|
|
@@ -282,7 +304,7 @@ export declare class WindowsCluster extends AzureResource {
|
|
|
282
304
|
* @param props - Configuration properties for the Windows VM Scale Set, derived from the WindowsClusterProps interface. These include:
|
|
283
305
|
* - `location`: The geographic location where the scale set will be hosted (e.g., "eastus").
|
|
284
306
|
* - `name`: The name of the scale set, which must be unique within the resource group.
|
|
285
|
-
* - `resourceGroup`:
|
|
307
|
+
* - `resourceGroup`: Optional. Reference to the resource group for deployment.
|
|
286
308
|
* - `sku`: The size specification of the VMs (e.g., "Standard_B2s").
|
|
287
309
|
* - `adminUsername`: The administrator username for the VMs.
|
|
288
310
|
* - `adminPassword`: The administrator password for the VMs.
|