7 Commits

Author SHA1 Message Date
Release-plz 6a7ab1f9d5 chore(release): Release v0.1.2
CI / cargo shear (pull_request) Successful in 9m24s
CI / prek (pull_request) Successful in 11m0s
Committed / committed (pull_request) Successful in 1m36s
Release-plz / Release-plz PR (push) Successful in 9m26s
Release-plz / Release-plz Release (push) Successful in 12m6s
Audit / cargo audit (push) Successful in 4m5s
CI / cargo shear (push) Successful in 7m57s
Release / Arch Linux (push) Successful in 9m42s
CI / prek (push) Successful in 4m28s
Signed-off-by: Release-plz <release-plz@noreply.huizinga.dev>
2026-04-17 19:55:20 +00:00
Dreaded_X f7e4a2d545 feat: Make dns optional
Committed / committed (pull_request) Successful in 47s
CI / prek (pull_request) Successful in 6m31s
CI / cargo shear (pull_request) Successful in 7m58s
CI / cargo shear (push) Successful in 7m45s
Release-plz / Release-plz Release (push) Successful in 9m39s
CI / prek (push) Successful in 10m6s
Release-plz / Release-plz PR (push) Successful in 4m47s
2026-04-17 21:32:19 +02:00
Dreaded_X 7142ff0fa3 feat: Allow more than two dns entries 2026-04-17 20:59:42 +02:00
Release-plz afcca9eb47 chore(release): Release v0.1.1
Committed / committed (pull_request) Successful in 40s
CI / cargo shear (pull_request) Successful in 6m45s
CI / prek (pull_request) Successful in 10m0s
Release-plz / Release-plz PR (push) Successful in 5m31s
Release-plz / Release-plz Release (push) Successful in 6m13s
Audit / cargo audit (push) Successful in 7m3s
CI / cargo shear (push) Successful in 6m58s
CI / prek (push) Successful in 7m38s
Release / Arch Linux (push) Successful in 5m58s
Signed-off-by: Release-plz <release-plz@noreply.huizinga.dev>
2026-04-13 01:49:13 +00:00
Dreaded_X c76b0e6ade fix: No default value for advertise routes
Committed / committed (pull_request) Successful in 30s
CI / cargo shear (pull_request) Successful in 5m45s
CI / prek (pull_request) Successful in 5m50s
CI / cargo shear (push) Successful in 7m36s
Release-plz / Release-plz Release (push) Successful in 7m35s
CI / prek (push) Successful in 8m21s
Release-plz / Release-plz PR (push) Successful in 3m32s
2026-04-13 03:32:37 +02:00
Release-plz 8e5e02d29d chore(release): Release v0.1.0
Release-plz / Release-plz Release (push) Successful in 9m24s
Audit / cargo audit (push) Successful in 8m7s
Release-plz / Release-plz PR (push) Successful in 8m55s
CI / prek (push) Successful in 8m33s
Release / Arch Linux (push) Successful in 4m20s
CI / cargo shear (push) Successful in 2m50s
Signed-off-by: Release-plz <release-plz@noreply.huizinga.dev>
2026-04-07 06:11:38 +02:00
Dreaded_X c15f1ae5c4 chore(actions): Publish Arch Linux package 2026-04-07 06:11:37 +02:00
10 changed files with 120 additions and 10 deletions
+1 -1
View File
@@ -36,7 +36,7 @@ jobs:
- name: release-plz release
env:
CARGO_REGISTRIES_INFRA_TOKEN: "Bearer ${{ secrets.RELEASE_PLZ_TOKEN }}"
run: release-plz release --git-token "${{ secrets.RELEASE_PLZ_TOKEN }}" --forge gitea --dry-run
run: release-plz release --git-token "${{ secrets.RELEASE_PLZ_TOKEN }}" --forge gitea
release-plz-pr:
name: Release-plz PR
+25
View File
@@ -0,0 +1,25 @@
name: Release
on:
push:
tags:
- "v*"
jobs:
archlinux:
name: Arch Linux
runs-on: ubuntu-latest
permissions:
packages: write
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Build package
uses: https://git.huizinga.dev/infra/archlinux-package-action@v4
with:
path: .
- name: Upload package
run: |
curl --user ${{ gitea.actor }}:${{ secrets.REGISTRY_TOKEN }} \
--upload-file "$(ls | grep -E 'crete-[0-9]+\.[0-9]+\.[0-9]+-[0-9]+-.*.pkg.tar.zst')" \
https://git.huizinga.dev/api/packages/infra/arch/core
+1
View File
@@ -31,6 +31,7 @@ repos:
rev: "1.0.0"
hooks:
- id: mdformat
exclude: "^CHANGELOG.md$"
- repo: local
hooks:
+52
View File
@@ -1 +1,53 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [0.1.2](https://git.huizinga.dev/infra/crete/compare/v0.1.1...v0.1.2) - 2026-04-17
### <!-- 0 -->Features
- Make dns optional
- Allow more than two dns entries
## [0.1.1](https://git.huizinga.dev/infra/crete/compare/v0.1.0...v0.1.1) - 2026-04-13
### <!-- 2 -->Bug Fixes
- No default value for advertise routes
## [0.1.0](https://git.huizinga.dev/infra/crete/releases/tag/v0.1.0) - 2026-04-07
### <!-- 0 -->Features
- _(package)_ Added PKGBUILD
- Set user agent
- _(performance)_ Disable request features to reduce binary size
- Generate talos configs
- Show error if no clusters are found in repo
- Initial rewrite of python render tool
### <!-- 3 -->Refactor
- Big internal refactor
### <!-- 4 -->Testing
- Disable building tests
### <!-- 5 -->Miscellaneous Tasks
- _(actions)_ Publish Arch Linux package
- _(license)_ Add GPL license
- _(actions)_ Name steps
- _(actions)_ Renamed release-plz workflow file
- _(actions)_ Use committed to check pr commits
- _(actions)_ Cancel in-progress ci runs when pushing to pr
- _(docs)_ Added README
- _(actions)_ Setup workflows
- Publish to gitea registry
- _(pre-commit)_ Update pre commit config
Generated
+1 -1
View File
@@ -214,7 +214,7 @@ dependencies = [
[[package]]
name = "crete"
version = "0.1.0"
version = "0.1.2"
dependencies = [
"clap",
"clap_complete",
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "crete"
version = "0.1.0"
version = "0.1.2"
edition = "2024"
default-run = "crete"
publish = ["infra"]
+26
View File
@@ -5,6 +5,32 @@ and render jinja templates.
## Installation
### Arch
First import the verification key:
```bash
wget https://git.huizinga.dev/api/packages/infra/arch/repository.key -O /tmp/repository.key
sudo pacman-key --add /tmp/repository.key
sudo pacman-key --lsign-key $(gpg --show-keys /tmp/repository.key | sed -n 2p)
```
And add the following to `/etc/pacman.conf`:
```ini
[infra]
SigLevel = Required
Server = https://git.huizinga.dev/api/packages/infra/arch/core/$arch
```
You can then install `crete` by running:
```bash
sudo pacman -Sy crete
```
### Cargo install
Add the following to `~/.cargo.config.toml`:
```toml
+2 -3
View File
@@ -140,12 +140,11 @@
"array",
"null"
],
"default": null,
"items": {
"type": "string",
"format": "ipv4"
},
"maxItems": 2,
"minItems": 2
}
},
"gateway": {
"type": [
+2 -3
View File
@@ -136,12 +136,11 @@
"array",
"null"
],
"default": null,
"items": {
"type": "string",
"format": "ipv4"
},
"maxItems": 2,
"minItems": 2
}
},
"gateway": {
"type": [
+9 -1
View File
@@ -53,7 +53,8 @@ struct Network {
ip: Ipv4Addr,
netmask: Ipv4Addr,
gateway: Ipv4Addr,
dns: [Ipv4Addr; 2],
#[serde(default)]
dns: Option<Vec<Ipv4Addr>>,
#[optional_rename(OptionalTailscale)]
#[optional_wrap]
tailscale: Tailscale,
@@ -128,6 +129,13 @@ impl Node {
// Sadly we have to this manually
// TODO: Find a better way of doing this
let default = OptionalNodeDeserialize {
network: Some(OptionalNetwork {
tailscale: Some(OptionalTailscale {
advertise_routes: Some(false),
..Default::default()
}),
..Default::default()
}),
patches: Some(OptionalPatches {
all: Some(vec![]),
control_plane: Some(vec![]),