Skip to content

Commit 29822f0

Browse files
committed
release: publish v0.1.4
pre-claude
1 parent 9124c76 commit 29822f0

File tree

6 files changed

+52
-21
lines changed

6 files changed

+52
-21
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
VERSION ?= 0.1.3
1+
VERSION ?= 0.1.4
22
DOCKERHUB_USER ?= plan9better
33
LOCAL_REGISTRY ?= 192.168.10.201:5000
44

api/v1/vlanman_types.go

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,15 @@ type VlanNetworkList struct {
2626
Items []VlanNetwork `json:"items"`
2727
}
2828

29+
type Gateway struct {
30+
// +kubebuilder:validation:Pattern=`^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/(3[0-2]|2[0-9]|1[0-9]|[0-9]))?$`
31+
Address string `json:"address"`
32+
Routes []Route `json:"routes"`
33+
}
34+
2935
type VlanNetworkSpec struct {
30-
// LocalGatewayIP specifies the IP address of the local gateway for the VLAN network
31-
// +kubebuilder:validation:Pattern=`^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$`
32-
// +optional
33-
LocalGatewayIP string `json:"localGatewayIp"`
34-
// RemoteGatewayIP specifies the IP address of the remote gateway for the VLAN network
35-
// +kubebuilder:validation:Pattern=`^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$`
3636
// +optional
37-
RemoteGatewayIP string `json:"remoteGatewayIp"`
38-
// LocalSubnet defines the list of local subnet CIDR blocks
39-
// +kubebuilder:validation:MinItems=1
40-
LocalSubnet []string `json:"localSubnet"`
41-
// RemoteSubnet defines the list of remote subnet CIDR blocks
42-
// +kubebuilder:validation:MinItems=1
43-
RemoteSubnet []string `json:"remoteSubnet"`
37+
Gateways []Gateway `json:"gateways"`
4438
// VlanID specifies the VLAN identifier (1-4094)
4539
// +kubebuilder:validation:Minimum=1
4640
// +kubebuilder:validation:Maximum=4094
@@ -65,9 +59,23 @@ type IPMapping struct {
6559
Interface string `json:"interfaceName"`
6660
}
6761

62+
type Route struct {
63+
// Destination specifies the target subnet for the route, in CIDR format. For example: "10.0.0.0/24", you can omit the subnet mask, in that case '/32' will be chosen. 10.0.0.0 -> 10.0.0.0/32
64+
// +kubebuilder:validation:Pattern=`^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/(3[0-2]|2[0-9]|1[0-9]|[0-9]))?$`
65+
Destination string `json:"dest"`
66+
// Via specifies the next-hop IP address for the route. If omitted, the route is assumed to be directly connected.
67+
// +optional
68+
Via *string `json:"via"`
69+
// Source determines how the source IP is selected for this route. Allowed values: "self": use an IP assigned from the current VLAN pool, "none": no source IP (use default behavior)
70+
// +kubebuilder:validation:Enum=self;none
71+
Source string `json:"src"`
72+
}
73+
6874
type VlanNetworkPool struct {
6975
// Description provides a human-readable description of the IP pool
70-
Description string `json:"description"`
76+
// +optional
77+
Description string `json:"description"`
78+
Routes []Route `json:"routes"`
7179
// Addresses contains the list of IP addresses or CIDR blocks in this pool
7280
// +kubebuilder:validation:MinItems=1
7381
Addresses []string `json:"addresses"`

flake.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,6 @@
157157
};
158158
};
159159

160-
version = "dev";
161160
packages = {
162161
inherit generate manifests;
163162
chart = chart version;
@@ -203,6 +202,7 @@
203202
EDITOR = "hx";
204203
};
205204
};
205+
version = "dev";
206206
}
207207
);
208208
}

helm/vlanman-0.1.4.tgz

181 KB
Binary file not shown.

index.yaml

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,28 @@ entries:
1414
- https://artifacthub.io/packages/helm/prometheus-community/kube-prometheus-stack
1515
apiVersion: v2
1616
appVersion: 1.16.0
17-
created: "2025-07-29T17:51:10.140142+02:00"
17+
created: "2025-08-05T17:58:28.448279+02:00"
18+
description: VLAN network manager
19+
digest: 7555c142d6f65eb7a52d0135685b6bbe32407f0e69c6e113b580a467eb259a30
20+
name: vlanman
21+
type: application
22+
urls:
23+
- https://github.com/dialohq/vlanman/releases/download/v0.1.4/vlanman-0.1.4.tgz
24+
version: 0.1.4
25+
- annotations:
26+
artifacthub.io/category: networking
27+
artifacthub.io/crds: |
28+
- kind: VlanNetwork
29+
version: v1
30+
name: vlannetwork
31+
description: Defines the VLAN connection
32+
artifacthub.io/license: MIT
33+
artifacthub.io/recommendations: |
34+
- https://artifacthub.io/packages/helm/cert-manager/cert-manager
35+
- https://artifacthub.io/packages/helm/prometheus-community/kube-prometheus-stack
36+
apiVersion: v2
37+
appVersion: 1.16.0
38+
created: "2025-08-05T17:58:28.44618+02:00"
1839
description: VLAN network manager
1940
digest: 8e2efb5c505d6b963b74e704eaf96ee4cabae4a6fe2317d4dd8c494fa6013b8e
2041
name: vlanman
@@ -35,7 +56,7 @@ entries:
3556
- https://artifacthub.io/packages/helm/prometheus-community/kube-prometheus-stack
3657
apiVersion: v2
3758
appVersion: 1.16.0
38-
created: "2025-07-29T17:51:10.138815+02:00"
59+
created: "2025-08-05T17:58:28.444225+02:00"
3960
description: VLAN network manager
4061
digest: 4a4c3b41a49039bb06b13221dc5a42973813e546a51a362cdf6f693c07fb90b4
4162
name: vlanman
@@ -56,7 +77,7 @@ entries:
5677
- https://artifacthub.io/packages/helm/prometheus-community/kube-prometheus-stack
5778
apiVersion: v2
5879
appVersion: 1.16.0
59-
created: "2025-07-29T17:51:10.137647+02:00"
80+
created: "2025-08-05T17:58:28.44292+02:00"
6081
description: VLAN network manager
6182
digest: ab1060ee1c74386328a1913148b305e245a4dcbeea28cc8fb1cf4945f00c330d
6283
name: vlanman
@@ -77,12 +98,12 @@ entries:
7798
- https://artifacthub.io/packages/helm/prometheus-community/kube-prometheus-stack
7899
apiVersion: v2
79100
appVersion: 1.16.0
80-
created: "2025-07-29T17:51:10.136013+02:00"
101+
created: "2025-08-05T17:58:28.442305+02:00"
81102
description: VLAN network manager
82103
digest: 0bf004ba2202856151915191f652966b1850352072d0af9a83fddf53e96aaa57
83104
name: vlanman
84105
type: application
85106
urls:
86107
- https://github.com/dialohq/vlanman/releases/download/v0.1.0/vlanman-0.1.0.tgz
87108
version: 0.1.0
88-
generated: "2025-07-29T17:51:10.135158+02:00"
109+
generated: "2025-08-05T17:58:28.441328+02:00"

operator.Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ ARG PLATFORM=arm64
66

77
ENV GOCACHE=/build
88
COPY go.mod go.sum ./
9+
# COPY vendor ./vendor
910
RUN go mod download
1011
COPY cmd/operator/ ./cmd/operator/
1112
COPY pkg/ ./pkg/
@@ -14,6 +15,7 @@ COPY api ./api
1415

1516

1617
RUN --mount=type=cache,target=/build GOOS=linux GOARCH=${PLATFORM} CGO_ENABLED=0 go build -o manager ./cmd/operator
18+
# RUN --mount=type=cache,target=/build GOOS=linux GOARCH=${PLATFORM} CGO_ENABLED=0 go build -mod vendor -o manager ./cmd/operator
1719

1820
FROM ubuntu:latest
1921

0 commit comments

Comments
 (0)