Compare commits
2 Commits
main
..
4d7d714a48
| Author | SHA1 | Date | |
|---|---|---|---|
| 4d7d714a48 | |||
|
8a0a583028
|
@@ -36,7 +36,7 @@ jobs:
|
|||||||
- name: release-plz release
|
- name: release-plz release
|
||||||
env:
|
env:
|
||||||
CARGO_REGISTRIES_INFRA_TOKEN: "Bearer ${{ secrets.RELEASE_PLZ_TOKEN }}"
|
CARGO_REGISTRIES_INFRA_TOKEN: "Bearer ${{ secrets.RELEASE_PLZ_TOKEN }}"
|
||||||
run: release-plz release --git-token "${{ secrets.RELEASE_PLZ_TOKEN }}" --forge gitea
|
run: release-plz release --git-token "${{ secrets.RELEASE_PLZ_TOKEN }}" --forge gitea --dry-run
|
||||||
|
|
||||||
release-plz-pr:
|
release-plz-pr:
|
||||||
name: Release-plz PR
|
name: Release-plz PR
|
||||||
|
|||||||
@@ -20,6 +20,6 @@ jobs:
|
|||||||
path: .
|
path: .
|
||||||
- name: Upload package
|
- name: Upload package
|
||||||
run: |
|
run: |
|
||||||
curl --user ${{ gitea.actor }}:${{ secrets.REGISTRY_TOKEN }} \
|
curl --user ${{ gitea.actor }}:${{ secrets.GITEA_TOKEN }} \
|
||||||
--upload-file "$(ls | grep -E 'crete-[0-9]+\.[0-9]+\.[0-9]+-[0-9]+-.*.pkg.tar.zst')" \
|
--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
|
https://git.huizinga.dev/api/packages/infra/arch/core
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ repos:
|
|||||||
rev: "1.0.0"
|
rev: "1.0.0"
|
||||||
hooks:
|
hooks:
|
||||||
- id: mdformat
|
- id: mdformat
|
||||||
exclude: "^CHANGELOG.md$"
|
|
||||||
|
|
||||||
- repo: local
|
- repo: local
|
||||||
hooks:
|
hooks:
|
||||||
|
|||||||
+12
-34
@@ -7,36 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
## [0.1.3](https://git.huizinga.dev/infra/crete/compare/v0.1.2...v0.1.3) - 2026-04-21
|
|
||||||
|
|
||||||
### <!-- 0 -->Features
|
|
||||||
|
|
||||||
- Add function that applies netmask to ip
|
|
||||||
|
|
||||||
### <!-- 3 -->Refactor
|
|
||||||
|
|
||||||
- Use ViaDeserialize to convert ip address
|
|
||||||
|
|
||||||
## [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.1.0](https://git.huizinga.dev/infra/crete/releases/tag/v0.1.0) - 2026-04-07
|
||||||
|
|
||||||
### <!-- 0 -->Features
|
### <!-- 0 -->Features
|
||||||
|
|
||||||
- _(package)_ Added PKGBUILD
|
- *(package)* Added PKGBUILD
|
||||||
- Set user agent
|
- Set user agent
|
||||||
- _(performance)_ Disable request features to reduce binary size
|
- *(performance)* Disable request features to reduce binary size
|
||||||
- Generate talos configs
|
- Generate talos configs
|
||||||
- Show error if no clusters are found in repo
|
- Show error if no clusters are found in repo
|
||||||
- Initial rewrite of python render tool
|
- Initial rewrite of python render tool
|
||||||
@@ -51,13 +28,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### <!-- 5 -->Miscellaneous Tasks
|
### <!-- 5 -->Miscellaneous Tasks
|
||||||
|
|
||||||
- _(actions)_ Publish Arch Linux package
|
- *(actions)* Publish Arch Linux package
|
||||||
- _(license)_ Add GPL license
|
- *(license)* Add GPL license
|
||||||
- _(actions)_ Name steps
|
- *(actions)* Name steps
|
||||||
- _(actions)_ Renamed release-plz workflow file
|
- *(actions)* Renamed release-plz workflow file
|
||||||
- _(actions)_ Use committed to check pr commits
|
- *(actions)* Use committed to check pr commits
|
||||||
- _(actions)_ Cancel in-progress ci runs when pushing to pr
|
- *(actions)* Cancel in-progress ci runs when pushing to pr
|
||||||
- _(docs)_ Added README
|
- *(docs)* Added README
|
||||||
- _(actions)_ Setup workflows
|
- *(actions)* Setup workflows
|
||||||
- Publish to gitea registry
|
- Publish to gitea registry
|
||||||
- _(pre-commit)_ Update pre commit config
|
- *(pre-commit)* Update pre commit config
|
||||||
|
# Changelog
|
||||||
|
|||||||
Generated
+1
-1
@@ -214,7 +214,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crete"
|
name = "crete"
|
||||||
version = "0.1.3"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap",
|
"clap",
|
||||||
"clap_complete",
|
"clap_complete",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "crete"
|
name = "crete"
|
||||||
version = "0.1.3"
|
version = "0.1.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
default-run = "crete"
|
default-run = "crete"
|
||||||
publish = ["infra"]
|
publish = ["infra"]
|
||||||
|
|||||||
@@ -140,11 +140,12 @@
|
|||||||
"array",
|
"array",
|
||||||
"null"
|
"null"
|
||||||
],
|
],
|
||||||
"default": null,
|
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"format": "ipv4"
|
"format": "ipv4"
|
||||||
}
|
},
|
||||||
|
"maxItems": 2,
|
||||||
|
"minItems": 2
|
||||||
},
|
},
|
||||||
"gateway": {
|
"gateway": {
|
||||||
"type": [
|
"type": [
|
||||||
|
|||||||
+3
-2
@@ -136,11 +136,12 @@
|
|||||||
"array",
|
"array",
|
||||||
"null"
|
"null"
|
||||||
],
|
],
|
||||||
"default": null,
|
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"format": "ipv4"
|
"format": "ipv4"
|
||||||
}
|
},
|
||||||
|
"maxItems": 2,
|
||||||
|
"minItems": 2
|
||||||
},
|
},
|
||||||
"gateway": {
|
"gateway": {
|
||||||
"type": [
|
"type": [
|
||||||
|
|||||||
+5
-11
@@ -1,8 +1,8 @@
|
|||||||
use std::net::Ipv4Addr;
|
use std::net::Ipv4Addr;
|
||||||
use std::ops::Deref;
|
use std::ops::Deref;
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
|
use std::str::FromStr;
|
||||||
|
|
||||||
use minijinja::value::ViaDeserialize;
|
|
||||||
use minijinja::{AutoEscape, Environment, path_loader};
|
use minijinja::{AutoEscape, Environment, path_loader};
|
||||||
use walkdir::WalkDir;
|
use walkdir::WalkDir;
|
||||||
|
|
||||||
@@ -16,13 +16,6 @@ pub struct PathEnvironment<'a> {
|
|||||||
path: PathBuf,
|
path: PathBuf,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn apply_netmask(
|
|
||||||
ip: ViaDeserialize<Ipv4Addr>,
|
|
||||||
netmask: ViaDeserialize<Ipv4Addr>,
|
|
||||||
) -> Result<String, minijinja::Error> {
|
|
||||||
Ok((*ip & *netmask).to_string())
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'a> PathEnvironment<'a> {
|
impl<'a> PathEnvironment<'a> {
|
||||||
pub fn new(path: &Path) -> Self {
|
pub fn new(path: &Path) -> Self {
|
||||||
let mut env = Environment::new();
|
let mut env = Environment::new();
|
||||||
@@ -34,7 +27,10 @@ impl<'a> PathEnvironment<'a> {
|
|||||||
env.set_auto_escape_callback(|_| AutoEscape::None);
|
env.set_auto_escape_callback(|_| AutoEscape::None);
|
||||||
|
|
||||||
// Add filters
|
// Add filters
|
||||||
env.add_filter("to_prefix", |netmask: ViaDeserialize<Ipv4Addr>| {
|
env.add_filter("to_prefix", |netmask: String| {
|
||||||
|
let netmask = Ipv4Addr::from_str(&netmask).map_err(|err| {
|
||||||
|
minijinja::Error::new(minijinja::ErrorKind::InvalidOperation, err.to_string())
|
||||||
|
})?;
|
||||||
let mask = netmask.to_bits();
|
let mask = netmask.to_bits();
|
||||||
let prefix = mask.leading_ones();
|
let prefix = mask.leading_ones();
|
||||||
|
|
||||||
@@ -48,8 +44,6 @@ impl<'a> PathEnvironment<'a> {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
env.add_function("apply_netmask", apply_netmask);
|
|
||||||
|
|
||||||
// Helper function for getting the path to kubeconfig files
|
// Helper function for getting the path to kubeconfig files
|
||||||
env.add_filter("kubeconfig", move |names: Vec<String>| {
|
env.add_filter("kubeconfig", move |names: Vec<String>| {
|
||||||
names
|
names
|
||||||
|
|||||||
+1
-9
@@ -53,8 +53,7 @@ struct Network {
|
|||||||
ip: Ipv4Addr,
|
ip: Ipv4Addr,
|
||||||
netmask: Ipv4Addr,
|
netmask: Ipv4Addr,
|
||||||
gateway: Ipv4Addr,
|
gateway: Ipv4Addr,
|
||||||
#[serde(default)]
|
dns: [Ipv4Addr; 2],
|
||||||
dns: Option<Vec<Ipv4Addr>>,
|
|
||||||
#[optional_rename(OptionalTailscale)]
|
#[optional_rename(OptionalTailscale)]
|
||||||
#[optional_wrap]
|
#[optional_wrap]
|
||||||
tailscale: Tailscale,
|
tailscale: Tailscale,
|
||||||
@@ -129,13 +128,6 @@ impl Node {
|
|||||||
// Sadly we have to this manually
|
// Sadly we have to this manually
|
||||||
// TODO: Find a better way of doing this
|
// TODO: Find a better way of doing this
|
||||||
let default = OptionalNodeDeserialize {
|
let default = OptionalNodeDeserialize {
|
||||||
network: Some(OptionalNetwork {
|
|
||||||
tailscale: Some(OptionalTailscale {
|
|
||||||
advertise_routes: Some(false),
|
|
||||||
..Default::default()
|
|
||||||
}),
|
|
||||||
..Default::default()
|
|
||||||
}),
|
|
||||||
patches: Some(OptionalPatches {
|
patches: Some(OptionalPatches {
|
||||||
all: Some(vec![]),
|
all: Some(vec![]),
|
||||||
control_plane: Some(vec![]),
|
control_plane: Some(vec![]),
|
||||||
|
|||||||
Reference in New Issue
Block a user