-
Notifications
You must be signed in to change notification settings - Fork 59
/
azure-terraform.yaml
160 lines (143 loc) · 4.14 KB
/
azure-terraform.yaml
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
tosca_definitions_version: cloudify_dsl_1_5
description: >
This blueprint creates infrastructure on Azure using Terraform.
imports:
- cloudify/types/types.yaml
- plugin:cloudify-terraform-plugin?version= >=0.15.0
- plugin:cloudify-utilities-plugin?version= >=1.22.1
inputs:
agent_user:
display_label: Agent User
description: >
The username of the agent running on the instance created from the image.
type: string
default: 'ubuntu'
region_name:
display_label: Region Name
type: string
default: 'eastus'
constraints:
- valid_values:
- westus,
- westus2,
- eastus,
- centralus,
- centraluseuap,
- southcentralus,
- northcentralus,
- westcentralus,
- eastus2,
- eastus2euap,
- brazilsouth,
- brazilus,
- northeurope,
- westeurope,
- eastasia,
- southeastasia,
- japanwest,
- japaneast,
- koreacentral,
- koreasouth,
- southindia,
- westindia,
- centralindia,
- australiaeast,
- australiasoutheast,
- canadacentral,
- canadaeast,
- uksouth,
- ukwest,
- francecentral,
- francesouth,
- australiacentral,
- australiacentral2,
- uaecentral,
- uaenorth,
- southafricanorth,
- southafricawest,
- switzerlandnorth,
- switzerlandwest,
- germanynorth,
- germanywestcentral,
- norwayeast,
- norwaywest,
- brazilsoutheast,
- westus3,
- swedencentral,
- swedensouth
image:
display_label: Image
type: list
description: Azure Image reference
default:
publisher: Canonical
offer: UbuntuServer
sku: 18.04-LTS
version: latest
agent_key_name:
display_label: Agent Key Name
type: string
default: agent_key
location:
display_label: Location
type: string
default: https://github.com/cloudify-community/tf-source/archive/refs/heads/main.zip
source_path:
display_label: Source Path
type: string
default: template/modules/azure/public_vm
prefix:
display_label: Prefix
type: string
default: cfy
node_templates:
terraform:
type: cloudify.nodes.terraform
cloud_resources:
type: cloudify.nodes.terraform.Module
properties:
resource_config:
source:
location: { get_input: location }
source_path: { get_input: source_path }
variables:
subscription_id: { get_secret: azure_subscription_id }
tenant_id: { get_secret: azure_tenant_id }
client_id: { get_secret: azure_client_id }
client_secret: { get_secret: azure_client_secret }
region: { get_input: region_name }
admin_user: { get_input: agent_user }
admin_key_public: { get_attribute: [agent_key, public_key_export] }
prefix: { get_input: prefix }
relationships:
- target: terraform
type: cloudify.relationships.terraform.run_on_host
- target: agent_key
type: cloudify.relationships.depends_on
agent_key:
type: cloudify.nodes.keys.RSAKey
properties:
resource_config:
key_name: { get_input: agent_key_name }
openssh_format: true
use_secret_store: true
use_secrets_if_exist: true
interfaces:
cloudify.interfaces.lifecycle:
create:
implementation: keys.cloudify_ssh_key.operations.create
inputs:
store_private_key_material: true
capabilities:
name:
description: name
value: { get_attribute: [ cloud_resources, resources, vm, instances, 0, attributes, id ] }
endpoint:
description: The external endpoint of the application.
value: { get_attribute: [ cloud_resources, resources, fip, instances, 0, attributes, ip_address ] }
user:
description: user ID.
value: { get_input: agent_user }
key_content:
description: Private agent key
value: { get_attribute: [agent_key, private_key_export] }