Skip to content

Commit 25b351c

Browse files
committed
Merge main
2 parents 0b457ce + 5ea341c commit 25b351c

File tree

25 files changed

+1897
-78
lines changed

25 files changed

+1897
-78
lines changed

_typos.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ extend-ignore-re = [
77
]
88

99
[default.extend-words]
10+
PN = "PN"
1011

1112
[files]
1213
extend-exclude = [

doc/index.html

Lines changed: 292 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1870,6 +1870,52 @@ <h2>Table of Contents</h2>
18701870
</li>
18711871

18721872

1873+
<li>
1874+
<a href="#metalstack%2fapi%2fv2%2fvpn.proto">metalstack/api/v2/vpn.proto</a>
1875+
<ul>
1876+
1877+
<li>
1878+
<a href="#metalstack.api.v2.VPNNode"><span class="badge">M</span>VPNNode</a>
1879+
</li>
1880+
1881+
1882+
1883+
1884+
</ul>
1885+
</li>
1886+
1887+
1888+
<li>
1889+
<a href="#metalstack%2fadmin%2fv2%2fvpn.proto">metalstack/admin/v2/vpn.proto</a>
1890+
<ul>
1891+
1892+
<li>
1893+
<a href="#metalstack.admin.v2.VPNServiceAuthKeyRequest"><span class="badge">M</span>VPNServiceAuthKeyRequest</a>
1894+
</li>
1895+
1896+
<li>
1897+
<a href="#metalstack.admin.v2.VPNServiceAuthKeyResponse"><span class="badge">M</span>VPNServiceAuthKeyResponse</a>
1898+
</li>
1899+
1900+
<li>
1901+
<a href="#metalstack.admin.v2.VPNServiceListNodesRequest"><span class="badge">M</span>VPNServiceListNodesRequest</a>
1902+
</li>
1903+
1904+
<li>
1905+
<a href="#metalstack.admin.v2.VPNServiceListNodesResponse"><span class="badge">M</span>VPNServiceListNodesResponse</a>
1906+
</li>
1907+
1908+
1909+
1910+
1911+
<li>
1912+
<a href="#metalstack.admin.v2.VPNService"><span class="badge">S</span>VPNService</a>
1913+
</li>
1914+
1915+
</ul>
1916+
</li>
1917+
1918+
18731919
<li>
18741920
<a href="#metalstack%2fapi%2fv2%2fhealth.proto">metalstack/api/v2/health.proto</a>
18751921
<ul>
@@ -7487,6 +7533,13 @@ <h3 id="metalstack.api.v2.MachineAllocationQuery">MachineAllocationQuery</h3>
74877533
<td><p>Labels for which this machine allocation should get filtered </p></td>
74887534
</tr>
74897535

7536+
<tr>
7537+
<td>vpn</td>
7538+
<td><a href="#metalstack.api.v2.MachineVPN">MachineVPN</a></td>
7539+
<td>optional</td>
7540+
<td><p>VPN query if this machine has a vpn configuration </p></td>
7541+
</tr>
7542+
74907543
</tbody>
74917544
</table>
74927545

@@ -9209,9 +9262,14 @@ <h3 id="metalstack.api.v2.MachineVPN">MachineVPN</h3>
92099262
<td>connected</td>
92109263
<td><a href="#bool">bool</a></td>
92119264
<td></td>
9212-
<td><p>Connected indicate if this machine is connected to the VPN
9213-
9214-
TODO add machine ips </p></td>
9265+
<td><p>Connected indicate if this machine is connected to the VPN </p></td>
9266+
</tr>
9267+
9268+
<tr>
9269+
<td>ips</td>
9270+
<td><a href="#string">string</a></td>
9271+
<td>repeated</td>
9272+
<td><p>IPs of the machine connected to the vpn </p></td>
92159273
</tr>
92169274

92179275
</tbody>
@@ -15591,6 +15649,237 @@ <h3 id="metalstack.admin.v2.TokenService">TokenService</h3>
1559115649

1559215650

1559315651

15652+
<div class="file-heading">
15653+
<h2 id="metalstack/api/v2/vpn.proto">metalstack/api/v2/vpn.proto</h2><a href="#title">Top</a>
15654+
</div>
15655+
<p></p>
15656+
15657+
15658+
<h3 id="metalstack.api.v2.VPNNode">VPNNode</h3>
15659+
<p>VPNNode is a machine connected to the vpn</p>
15660+
15661+
15662+
<table class="field-table">
15663+
<thead>
15664+
<tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
15665+
</thead>
15666+
<tbody>
15667+
15668+
<tr>
15669+
<td>id</td>
15670+
<td><a href="#uint64">uint64</a></td>
15671+
<td></td>
15672+
<td><p>Id of this node </p></td>
15673+
</tr>
15674+
15675+
<tr>
15676+
<td>name</td>
15677+
<td><a href="#string">string</a></td>
15678+
<td></td>
15679+
<td><p>Name of this node </p></td>
15680+
</tr>
15681+
15682+
<tr>
15683+
<td>project</td>
15684+
<td><a href="#string">string</a></td>
15685+
<td></td>
15686+
<td><p>Project of this node, maps to a project </p></td>
15687+
</tr>
15688+
15689+
<tr>
15690+
<td>ip_addresses</td>
15691+
<td><a href="#string">string</a></td>
15692+
<td>repeated</td>
15693+
<td><p>IPAddresses of this node in the vpn </p></td>
15694+
</tr>
15695+
15696+
<tr>
15697+
<td>last_seen</td>
15698+
<td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
15699+
<td></td>
15700+
<td><p>LastSeen timestamp when this node reached out the the control plane </p></td>
15701+
</tr>
15702+
15703+
<tr>
15704+
<td>online</td>
15705+
<td><a href="#bool">bool</a></td>
15706+
<td></td>
15707+
<td><p>Online indicates if this node is online </p></td>
15708+
</tr>
15709+
15710+
</tbody>
15711+
</table>
15712+
15713+
15714+
15715+
15716+
15717+
15718+
15719+
15720+
15721+
15722+
15723+
15724+
15725+
<div class="file-heading">
15726+
<h2 id="metalstack/admin/v2/vpn.proto">metalstack/admin/v2/vpn.proto</h2><a href="#title">Top</a>
15727+
</div>
15728+
<p></p>
15729+
15730+
15731+
<h3 id="metalstack.admin.v2.VPNServiceAuthKeyRequest">VPNServiceAuthKeyRequest</h3>
15732+
<p>VPNServiceAuthKeyRequest is the request payload for a vpn authkey request.</p>
15733+
15734+
15735+
<table class="field-table">
15736+
<thead>
15737+
<tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
15738+
</thead>
15739+
<tbody>
15740+
15741+
<tr>
15742+
<td>project</td>
15743+
<td><a href="#string">string</a></td>
15744+
<td></td>
15745+
<td><p>Project for which a vpn authkey should be generated. </p></td>
15746+
</tr>
15747+
15748+
<tr>
15749+
<td>ephemeral</td>
15750+
<td><a href="#bool">bool</a></td>
15751+
<td></td>
15752+
<td><p>Ephemeral defines if the authkey should be ephemeral. </p></td>
15753+
</tr>
15754+
15755+
<tr>
15756+
<td>expires</td>
15757+
<td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
15758+
<td></td>
15759+
<td><p>Expires defines the duration after which the authkey expires. </p></td>
15760+
</tr>
15761+
15762+
</tbody>
15763+
</table>
15764+
15765+
15766+
15767+
15768+
15769+
<h3 id="metalstack.admin.v2.VPNServiceAuthKeyResponse">VPNServiceAuthKeyResponse</h3>
15770+
<p>VPNServiceAuthKeyResponse is the request payload for a authkey response</p>
15771+
15772+
15773+
<table class="field-table">
15774+
<thead>
15775+
<tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
15776+
</thead>
15777+
<tbody>
15778+
15779+
<tr>
15780+
<td>address</td>
15781+
<td><a href="#string">string</a></td>
15782+
<td></td>
15783+
<td><p>Address is the address of the vpn control plane. </p></td>
15784+
</tr>
15785+
15786+
<tr>
15787+
<td>auth_key</td>
15788+
<td><a href="#string">string</a></td>
15789+
<td></td>
15790+
<td><p>AuthKey is the key to connect to the vpn at the given address.
15791+
This key can only be seen once. </p></td>
15792+
</tr>
15793+
15794+
</tbody>
15795+
</table>
15796+
15797+
15798+
15799+
15800+
15801+
<h3 id="metalstack.admin.v2.VPNServiceListNodesRequest">VPNServiceListNodesRequest</h3>
15802+
<p>VPNServiceListNodesRequest is the request payload for a vpn list nodes request</p>
15803+
15804+
15805+
<table class="field-table">
15806+
<thead>
15807+
<tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
15808+
</thead>
15809+
<tbody>
15810+
15811+
<tr>
15812+
<td>project</td>
15813+
<td><a href="#string">string</a></td>
15814+
<td>optional</td>
15815+
<td><p>Project if given only nodes of this user are returned </p></td>
15816+
</tr>
15817+
15818+
</tbody>
15819+
</table>
15820+
15821+
15822+
15823+
15824+
15825+
<h3 id="metalstack.admin.v2.VPNServiceListNodesResponse">VPNServiceListNodesResponse</h3>
15826+
<p>VPNServiceListNodesResponse is the response payload for a vpn list nodes request</p>
15827+
15828+
15829+
<table class="field-table">
15830+
<thead>
15831+
<tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
15832+
</thead>
15833+
<tbody>
15834+
15835+
<tr>
15836+
<td>nodes</td>
15837+
<td><a href="#metalstack.api.v2.VPNNode">metalstack.api.v2.VPNNode</a></td>
15838+
<td>repeated</td>
15839+
<td><p>Nodes connected to the vpn </p></td>
15840+
</tr>
15841+
15842+
</tbody>
15843+
</table>
15844+
15845+
15846+
15847+
15848+
15849+
15850+
15851+
15852+
15853+
15854+
15855+
<h3 id="metalstack.admin.v2.VPNService">VPNService</h3>
15856+
<p>VPNService serves vpn related functions</p>
15857+
<table class="enum-table">
15858+
<thead>
15859+
<tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
15860+
</thead>
15861+
<tbody>
15862+
15863+
<tr>
15864+
<td>AuthKey</td>
15865+
<td><a href="#metalstack.admin.v2.VPNServiceAuthKeyRequest">VPNServiceAuthKeyRequest</a></td>
15866+
<td><a href="#metalstack.admin.v2.VPNServiceAuthKeyResponse">VPNServiceAuthKeyResponse</a></td>
15867+
<td><p>AuthKey generates a authkey for a project to join a machine to the project vpn</p></td>
15868+
</tr>
15869+
15870+
<tr>
15871+
<td>ListNodes</td>
15872+
<td><a href="#metalstack.admin.v2.VPNServiceListNodesRequest">VPNServiceListNodesRequest</a></td>
15873+
<td><a href="#metalstack.admin.v2.VPNServiceListNodesResponse">VPNServiceListNodesResponse</a></td>
15874+
<td><p>ListNodes returns a list of machines actually connected to the vpn</p></td>
15875+
</tr>
15876+
15877+
</tbody>
15878+
</table>
15879+
15880+
15881+
15882+
1559415883
<div class="file-heading">
1559515884
<h2 id="metalstack/api/v2/health.proto">metalstack/api/v2/health.proto</h2><a href="#title">Top</a>
1559615885
</div>

go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ require (
2626
github.com/pmezard/go-difflib v1.0.0 // indirect
2727
github.com/stoewer/go-strcase v1.3.1 // indirect
2828
github.com/stretchr/objx v0.5.3 // indirect
29-
golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 // indirect
29+
golang.org/x/exp v0.0.0-20260112195511-716be5621a96 // indirect
3030
golang.org/x/text v0.33.0 // indirect
31-
google.golang.org/genproto/googleapis/api v0.0.0-20251222181119-0a764e51fe1b // indirect
32-
google.golang.org/genproto/googleapis/rpc v0.0.0-20251222181119-0a764e51fe1b // indirect
31+
google.golang.org/genproto/googleapis/api v0.0.0-20260112192933-99fd39fd28a9 // indirect
32+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260112192933-99fd39fd28a9 // indirect
3333
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
3434
gopkg.in/yaml.v3 v3.0.1 // indirect
3535
)

go.sum

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,14 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO
5656
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
5757
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
5858
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
59-
golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 h1:fQsdNF2N+/YewlRZiricy4P1iimyPKZ/xwniHj8Q2a0=
60-
golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93/go.mod h1:EPRbTFwzwjXj9NpYyyrvenVh9Y+GFeEvMNh7Xuz7xgU=
59+
golang.org/x/exp v0.0.0-20260112195511-716be5621a96 h1:Z/6YuSHTLOHfNFdb8zVZomZr7cqNgTJvA8+Qz75D8gU=
60+
golang.org/x/exp v0.0.0-20260112195511-716be5621a96/go.mod h1:nzimsREAkjBCIEFtHiYkrJyT+2uy9YZJB7H1k68CXZU=
6161
golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE=
6262
golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8=
63-
google.golang.org/genproto/googleapis/api v0.0.0-20251222181119-0a764e51fe1b h1:uA40e2M6fYRBf0+8uN5mLlqUtV192iiksiICIBkYJ1E=
64-
google.golang.org/genproto/googleapis/api v0.0.0-20251222181119-0a764e51fe1b/go.mod h1:Xa7le7qx2vmqB/SzWUBa7KdMjpdpAHlh5QCSnjessQk=
65-
google.golang.org/genproto/googleapis/rpc v0.0.0-20251222181119-0a764e51fe1b h1:Mv8VFug0MP9e5vUxfBcE3vUkV6CImK3cMNMIDFjmzxU=
66-
google.golang.org/genproto/googleapis/rpc v0.0.0-20251222181119-0a764e51fe1b/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ=
63+
google.golang.org/genproto/googleapis/api v0.0.0-20260112192933-99fd39fd28a9 h1:4DKBrmaqeptdEzp21EfrOEh8LE7PJ5ywH6wydSbOfGY=
64+
google.golang.org/genproto/googleapis/api v0.0.0-20260112192933-99fd39fd28a9/go.mod h1:dd646eSK+Dk9kxVBl1nChEOhJPtMXriCcVb4x3o6J+E=
65+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260112192933-99fd39fd28a9 h1:IY6/YYRrFUk0JPp0xOVctvFIVuRnjccihY5kxf5g0TE=
66+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260112192933-99fd39fd28a9/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ=
6767
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
6868
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
6969
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

0 commit comments

Comments
 (0)