Compare commits
2 Commits
0d24c69e32
...
ab749f7e11
Author | SHA1 | Date | |
---|---|---|---|
ab749f7e11 | |||
3d0dce28c2 |
2
linode/.gitignore
vendored
Normal file
2
linode/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
*.pyc
|
||||||
|
venv/
|
5
linode/Pulumi.yaml
Normal file
5
linode/Pulumi.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
name: ${PROJECT}
|
||||||
|
description: ${DESCRIPTION}
|
||||||
|
runtime: python
|
||||||
|
template:
|
||||||
|
description: A Pulumi deployment with Linode cloud and Python
|
25
linode/__main__.py
Normal file
25
linode/__main__.py
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
"""A Linode Python Pulumi program"""
|
||||||
|
|
||||||
|
import pulumi
|
||||||
|
import pulumi_linode
|
||||||
|
import yaml
|
||||||
|
from dotmap import DotMap
|
||||||
|
|
||||||
|
conf = DotMap(yaml.safe_load(open("input.yaml").read()))
|
||||||
|
config = pulumi.Config()
|
||||||
|
|
||||||
|
# Create a Linode resource (Linode Instance)
|
||||||
|
instance = pulumi_linode.Instance('my-instance',
|
||||||
|
type=config.linode.type,
|
||||||
|
region=config.linode.region,
|
||||||
|
image=config.linode.image,
|
||||||
|
label=config.vm.name,
|
||||||
|
root_pass=config.vm.root_password,
|
||||||
|
authorized_keys=config.vm.sshkeys
|
||||||
|
opts=pulumi.ResourceOptions(
|
||||||
|
custom_timeouts=pulumi.CustomTimeouts(create="2m")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
# Export the Instance label of the instance
|
||||||
|
pulumi.export('ip_address', instance.ip_address)
|
14
linode/input.yaml
Normal file
14
linode/input.yaml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
linode:
|
||||||
|
type: g6-nanode-1
|
||||||
|
region: eu-central
|
||||||
|
image: linode/debian12
|
||||||
|
|
||||||
|
# Basic VM configuration
|
||||||
|
vm:
|
||||||
|
name: linode-test
|
||||||
|
root_password: cicciopasticcio
|
||||||
|
sshkeys:
|
||||||
|
- "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFioHkaV1NhX6NCqsJakJw8EVBOcDHm1MEbpY499CPtG syntaxerrormmm@fisso"
|
||||||
|
- "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILu91hBh8pNRt4eE1pug0Y4jCHZDCcMJ+vj3CiF5EQHV syntaxerrormmm@syntaxxps"
|
||||||
|
- "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILH5q/ObtC4VhNT88gebezP/svpvCoQLoZCh4DvUn4xq syntaxerrormmm@taz"
|
4
linode/requirements.txt
Normal file
4
linode/requirements.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
pulumi>=3.0.0,<4.0.0
|
||||||
|
pulumi-linode>=4.0.0,<5.0.0
|
||||||
|
pyyaml>=6.0
|
||||||
|
dotmap>=1.3.30
|
@ -14,12 +14,10 @@ i.close()
|
|||||||
config = pulumi.Config()
|
config = pulumi.Config()
|
||||||
|
|
||||||
provider = proxmox.Provider("proxmoxve",
|
provider = proxmox.Provider("proxmoxve",
|
||||||
virtual_environment = {
|
endpoint=input_['pve']['url'],
|
||||||
"endpoint": input_['pve']['url'],
|
insecure=input_['pve']['insecure'],
|
||||||
"insecure": input_['pve']['insecure'],
|
username=input_['pve']['username'],
|
||||||
"username": input_['pve']['username'],
|
password=config.require_secret("password")
|
||||||
"password": config.require_secret("password")
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
vm_name = input_['vm']['name']
|
vm_name = input_['vm']['name']
|
||||||
@ -75,7 +73,8 @@ vm = proxmox.vm.VirtualMachine("vm",
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
opts = pulumi.ResourceOptions(
|
opts = pulumi.ResourceOptions(
|
||||||
provider = provider
|
provider = provider,
|
||||||
|
custom_timeouts=pulumi.CustomTimeouts(create="3m")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
"""A ProxmoxVE VM template with Python"""
|
"""A ProxmoxVE VM template with Python"""
|
||||||
|
|
||||||
import yaml
|
|
||||||
from dotmap import DotMap
|
|
||||||
import pulumi
|
import pulumi
|
||||||
import pulumi_proxmoxve as proxmox
|
import pulumi_proxmoxve as proxmox
|
||||||
|
import yaml
|
||||||
|
from dotmap import DotMap
|
||||||
|
|
||||||
conf = DotMap(yaml.safe_load(open("input.yaml").read()))
|
conf = DotMap(yaml.safe_load(open("input.yaml").read()))
|
||||||
config = pulumi.Config()
|
config = pulumi.Config()
|
||||||
@ -63,7 +63,8 @@ vm = proxmox.vm.VirtualMachine(conf.vm.name,
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
opts = pulumi.ResourceOptions(
|
opts = pulumi.ResourceOptions(
|
||||||
provider = provider
|
provider = provider,
|
||||||
|
custom_timeouts=pulumi.CustomTimeouts(create="3m")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user