init commit

This commit is contained in:
Jermeiah S 2025-06-12 21:34:48 -04:00
parent cd78d5b172
commit 1a9746a773
No known key found for this signature in database
7 changed files with 158 additions and 2 deletions

1
.envrc Normal file
View file

@ -0,0 +1 @@
use flake

2
.gitignore vendored
View file

@ -37,3 +37,5 @@ override.tf.json
.terraformrc .terraformrc
terraform.rc terraform.rc
# nix
.direnv

23
.terraform.lock.hcl generated Normal file
View file

@ -0,0 +1,23 @@
# This file is maintained automatically by "tofu init".
# Manual edits may be lost in future updates.
provider "registry.opentofu.org/lxc/incus" {
version = "0.3.1"
constraints = "0.3.1"
hashes = [
"h1:OKdDao225lPcaL+Ib2hLLV8w8mWrx0BbEifMtFVwSJc=",
"zh:32b1c9dbd31e3ebf78994f19646feb10e304c3f40035de3d7c75afd08bfbd9d9",
"zh:39f74690d6c012f66fd14ffd2606e342c9ae693ff73e81c3d06a0867ffbbc8ab",
"zh:45cbe9cbfae44d9ef04d96ac717bf3e0b9493bf46da14c0c561f1518802ea040",
"zh:610d3da892aadfe5c03b1bb2cf76fea7645c8bde7a06543611cb165b56a73608",
"zh:6cef7658a5fd58bf0e88d8e5f335ca1f96aa96f9f77ea0b9fc17d314b204413a",
"zh:a26789474e406dc0e68a38cbb0defcbb832d7ffff659c29f6a5098c545ea9651",
"zh:b6beaffb4525b26a9deb64cff94fd248ab9b654a7e57610e36666823b499ea40",
"zh:d11fcee90dbe7a45d081a522b28adf7712c6bd41a96ca90b30195acdae973c2c",
"zh:dc992f89ae4cdb59a27d5867837bb725b24103b228e84714bbb8e900004377ef",
"zh:dcb731680196bad03101d2f9cd93911906b7c82ab182166ed437db7d6f97f590",
"zh:eb06fdccfa9f7842e3c40712fde6ffed0e39a3e2d46fe110dae071553f3324d1",
"zh:f10f0e4bd197ac35ced4d195eb78d22af9bb558082616e403fc009447417e34e",
"zh:fc330285c55cc5f3dbba306534adddc0e9922b1903932d34c2085412d41a38df",
]
}

40
flake.lock generated Normal file
View file

@ -0,0 +1,40 @@
{
"nodes": {
"flake-schemas": {
"locked": {
"lastModified": 1721999734,
"narHash": "sha256-G5CxYeJVm4lcEtaO87LKzOsVnWeTcHGKbKxNamNWgOw=",
"rev": "0a5c42297d870156d9c57d8f99e476b738dcd982",
"revCount": 75,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1749494155,
"narHash": "sha256-FG4DEYBpROupu758beabUk9lhrblSf5hnv84v1TLqMc=",
"rev": "88331c17ba434359491e8d5889cce872464052c2",
"revCount": 803751,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2505.803751%2Brev-88331c17ba434359491e8d5889cce872464052c2/01975aed-3cf2-75cb-ae5a-3b3ba077bb2e/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/NixOS/nixpkgs/%2A"
}
},
"root": {
"inputs": {
"flake-schemas": "flake-schemas",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

49
flake.nix Normal file
View file

@ -0,0 +1,49 @@
# This flake was initially generated by fh, the CLI for FlakeHub (version 0.1.22)
{
# Flake inputs
inputs = {
flake-schemas.url = "https://flakehub.com/f/DeterminateSystems/flake-schemas/*";
nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/*";
};
# Flake outputs that other flakes can use
outputs =
{
self,
flake-schemas,
nixpkgs,
}:
let
# Helpers for producing system-specific outputs
supportedSystems = [ "x86_64-linux" ];
forEachSupportedSystem =
f:
nixpkgs.lib.genAttrs supportedSystems (
system:
f {
pkgs = import nixpkgs { inherit system; };
}
);
in
{
# Schemas tell Nix about the structure of your flake's outputs
schemas = flake-schemas.schemas;
# Development environments
devShells = forEachSupportedSystem (
{ pkgs }:
{
default = pkgs.mkShell {
# Pinned packages available in the environment
packages = with pkgs; [
jq
opentofu
nixpkgs-fmt
];
};
}
);
};
}

18
main.tf Normal file
View file

@ -0,0 +1,18 @@
locals {
default_remote = "lappy"
instances = {
"tofu-example" = {
},
}
}
resource "incus_instance" "demo" {
name = "demo"
image = "images:fedora/42"
config = {
"boot.autostart" = true
"limits.cpu" = 2
"limits.memory" = "4GiB"
}
}

23
providers.tf Normal file
View file

@ -0,0 +1,23 @@
terraform {
required_providers {
incus = {
source = "lxc/incus"
version = "0.3.1"
}
}
}
provider "incus" {
generate_client_certificates = true
accept_remote_certificate = true
remote {
default = true
name = "lappy"
scheme = "https"
address = "olympus.tailfc9f5.ts.net"
token = "token"
}
}