1 Commits

Author SHA1 Message Date
Dreaded_X 731800fd3f fix: No default value for advertise routes
Committed / committed (pull_request) Successful in 32s
CI / cargo shear (pull_request) Successful in 5m42s
CI / prek (pull_request) Successful in 6m5s
2026-04-13 03:14:31 +02:00
6 changed files with 15 additions and 36 deletions
-13
View File
@@ -7,19 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [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.1.0](https://git.huizinga.dev/infra/crete/releases/tag/v0.1.0) - 2026-04-07
### <!-- 0 -->Features ### <!-- 0 -->Features
Generated
+1 -1
View File
@@ -214,7 +214,7 @@ dependencies = [
[[package]] [[package]]
name = "crete" name = "crete"
version = "0.1.2" version = "0.1.0"
dependencies = [ dependencies = [
"clap", "clap",
"clap_complete", "clap_complete",
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "crete" name = "crete"
version = "0.1.2" version = "0.1.0"
edition = "2024" edition = "2024"
default-run = "crete" default-run = "crete"
publish = ["infra"] publish = ["infra"]
+5 -6
View File
@@ -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": [
@@ -305,10 +306,8 @@
"type": "object", "type": "object",
"properties": { "properties": {
"advertiseRoutes": { "advertiseRoutes": {
"type": [ "type": "boolean",
"boolean", "default": false
"null"
]
}, },
"authKey": { "authKey": {
"anyOf": [ "anyOf": [
+5 -6
View File
@@ -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": [
@@ -210,10 +211,8 @@
"type": "object", "type": "object",
"properties": { "properties": {
"advertiseRoutes": { "advertiseRoutes": {
"type": [ "type": "boolean",
"boolean", "default": false
"null"
]
}, },
"authKey": { "authKey": {
"anyOf": [ "anyOf": [
+3 -9
View File
@@ -40,6 +40,8 @@ enum NodeArch {
#[serde(rename_all = "camelCase", deny_unknown_fields)] #[serde(rename_all = "camelCase", deny_unknown_fields)]
struct Tailscale { struct Tailscale {
auth_key: Secret, auth_key: Secret,
#[serde(default)]
#[optional_skip_wrap]
advertise_routes: bool, advertise_routes: bool,
#[serde(default)] #[serde(default)]
server: Option<String>, server: Option<String>,
@@ -53,8 +55,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 +130,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![]),