Skip to content

Commit 86ade9b

Browse files
committed
Merge branch 'main' of github.com:metal-stack/api into mep17
2 parents cbd4433 + 5ea341c commit 86ade9b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+1929
-110
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
@@ -1786,6 +1786,52 @@ <h2>Table of Contents</h2>
17861786
</li>
17871787

17881788

1789+
<li>
1790+
<a href="#metalstack%2fapi%2fv2%2fvpn.proto">metalstack/api/v2/vpn.proto</a>
1791+
<ul>
1792+
1793+
<li>
1794+
<a href="#metalstack.api.v2.VPNNode"><span class="badge">M</span>VPNNode</a>
1795+
</li>
1796+
1797+
1798+
1799+
1800+
</ul>
1801+
</li>
1802+
1803+
1804+
<li>
1805+
<a href="#metalstack%2fadmin%2fv2%2fvpn.proto">metalstack/admin/v2/vpn.proto</a>
1806+
<ul>
1807+
1808+
<li>
1809+
<a href="#metalstack.admin.v2.VPNServiceAuthKeyRequest"><span class="badge">M</span>VPNServiceAuthKeyRequest</a>
1810+
</li>
1811+
1812+
<li>
1813+
<a href="#metalstack.admin.v2.VPNServiceAuthKeyResponse"><span class="badge">M</span>VPNServiceAuthKeyResponse</a>
1814+
</li>
1815+
1816+
<li>
1817+
<a href="#metalstack.admin.v2.VPNServiceListNodesRequest"><span class="badge">M</span>VPNServiceListNodesRequest</a>
1818+
</li>
1819+
1820+
<li>
1821+
<a href="#metalstack.admin.v2.VPNServiceListNodesResponse"><span class="badge">M</span>VPNServiceListNodesResponse</a>
1822+
</li>
1823+
1824+
1825+
1826+
1827+
<li>
1828+
<a href="#metalstack.admin.v2.VPNService"><span class="badge">S</span>VPNService</a>
1829+
</li>
1830+
1831+
</ul>
1832+
</li>
1833+
1834+
17891835
<li>
17901836
<a href="#metalstack%2fapi%2fv2%2fhealth.proto">metalstack/api/v2/health.proto</a>
17911837
<ul>
@@ -7302,6 +7348,13 @@ <h3 id="metalstack.api.v2.MachineAllocationQuery">MachineAllocationQuery</h3>
73027348
<td><p>Labels for which this machine allocation should get filtered </p></td>
73037349
</tr>
73047350

7351+
<tr>
7352+
<td>vpn</td>
7353+
<td><a href="#metalstack.api.v2.MachineVPN">MachineVPN</a></td>
7354+
<td>optional</td>
7355+
<td><p>VPN query if this machine has a vpn configuration </p></td>
7356+
</tr>
7357+
73057358
</tbody>
73067359
</table>
73077360

@@ -8627,9 +8680,14 @@ <h3 id="metalstack.api.v2.MachineVPN">MachineVPN</h3>
86278680
<td>connected</td>
86288681
<td><a href="#bool">bool</a></td>
86298682
<td></td>
8630-
<td><p>Connected indicate if this machine is connected to the VPN
8631-
8632-
TODO add machine ips </p></td>
8683+
<td><p>Connected indicate if this machine is connected to the VPN </p></td>
8684+
</tr>
8685+
8686+
<tr>
8687+
<td>ips</td>
8688+
<td><a href="#string">string</a></td>
8689+
<td>repeated</td>
8690+
<td><p>IPs of the machine connected to the vpn </p></td>
86338691
</tr>
86348692

86358693
</tbody>
@@ -14664,6 +14722,237 @@ <h3 id="metalstack.admin.v2.TokenService">TokenService</h3>
1466414722

1466514723

1466614724

14725+
<div class="file-heading">
14726+
<h2 id="metalstack/api/v2/vpn.proto">metalstack/api/v2/vpn.proto</h2><a href="#title">Top</a>
14727+
</div>
14728+
<p></p>
14729+
14730+
14731+
<h3 id="metalstack.api.v2.VPNNode">VPNNode</h3>
14732+
<p>VPNNode is a machine connected to the vpn</p>
14733+
14734+
14735+
<table class="field-table">
14736+
<thead>
14737+
<tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
14738+
</thead>
14739+
<tbody>
14740+
14741+
<tr>
14742+
<td>id</td>
14743+
<td><a href="#uint64">uint64</a></td>
14744+
<td></td>
14745+
<td><p>Id of this node </p></td>
14746+
</tr>
14747+
14748+
<tr>
14749+
<td>name</td>
14750+
<td><a href="#string">string</a></td>
14751+
<td></td>
14752+
<td><p>Name of this node </p></td>
14753+
</tr>
14754+
14755+
<tr>
14756+
<td>project</td>
14757+
<td><a href="#string">string</a></td>
14758+
<td></td>
14759+
<td><p>Project of this node, maps to a project </p></td>
14760+
</tr>
14761+
14762+
<tr>
14763+
<td>ip_addresses</td>
14764+
<td><a href="#string">string</a></td>
14765+
<td>repeated</td>
14766+
<td><p>IPAddresses of this node in the vpn </p></td>
14767+
</tr>
14768+
14769+
<tr>
14770+
<td>last_seen</td>
14771+
<td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
14772+
<td></td>
14773+
<td><p>LastSeen timestamp when this node reached out the the control plane </p></td>
14774+
</tr>
14775+
14776+
<tr>
14777+
<td>online</td>
14778+
<td><a href="#bool">bool</a></td>
14779+
<td></td>
14780+
<td><p>Online indicates if this node is online </p></td>
14781+
</tr>
14782+
14783+
</tbody>
14784+
</table>
14785+
14786+
14787+
14788+
14789+
14790+
14791+
14792+
14793+
14794+
14795+
14796+
14797+
14798+
<div class="file-heading">
14799+
<h2 id="metalstack/admin/v2/vpn.proto">metalstack/admin/v2/vpn.proto</h2><a href="#title">Top</a>
14800+
</div>
14801+
<p></p>
14802+
14803+
14804+
<h3 id="metalstack.admin.v2.VPNServiceAuthKeyRequest">VPNServiceAuthKeyRequest</h3>
14805+
<p>VPNServiceAuthKeyRequest is the request payload for a vpn authkey request.</p>
14806+
14807+
14808+
<table class="field-table">
14809+
<thead>
14810+
<tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
14811+
</thead>
14812+
<tbody>
14813+
14814+
<tr>
14815+
<td>project</td>
14816+
<td><a href="#string">string</a></td>
14817+
<td></td>
14818+
<td><p>Project for which a vpn authkey should be generated. </p></td>
14819+
</tr>
14820+
14821+
<tr>
14822+
<td>ephemeral</td>
14823+
<td><a href="#bool">bool</a></td>
14824+
<td></td>
14825+
<td><p>Ephemeral defines if the authkey should be ephemeral. </p></td>
14826+
</tr>
14827+
14828+
<tr>
14829+
<td>expires</td>
14830+
<td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
14831+
<td></td>
14832+
<td><p>Expires defines the duration after which the authkey expires. </p></td>
14833+
</tr>
14834+
14835+
</tbody>
14836+
</table>
14837+
14838+
14839+
14840+
14841+
14842+
<h3 id="metalstack.admin.v2.VPNServiceAuthKeyResponse">VPNServiceAuthKeyResponse</h3>
14843+
<p>VPNServiceAuthKeyResponse is the request payload for a authkey response</p>
14844+
14845+
14846+
<table class="field-table">
14847+
<thead>
14848+
<tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
14849+
</thead>
14850+
<tbody>
14851+
14852+
<tr>
14853+
<td>address</td>
14854+
<td><a href="#string">string</a></td>
14855+
<td></td>
14856+
<td><p>Address is the address of the vpn control plane. </p></td>
14857+
</tr>
14858+
14859+
<tr>
14860+
<td>auth_key</td>
14861+
<td><a href="#string">string</a></td>
14862+
<td></td>
14863+
<td><p>AuthKey is the key to connect to the vpn at the given address.
14864+
This key can only be seen once. </p></td>
14865+
</tr>
14866+
14867+
</tbody>
14868+
</table>
14869+
14870+
14871+
14872+
14873+
14874+
<h3 id="metalstack.admin.v2.VPNServiceListNodesRequest">VPNServiceListNodesRequest</h3>
14875+
<p>VPNServiceListNodesRequest is the request payload for a vpn list nodes request</p>
14876+
14877+
14878+
<table class="field-table">
14879+
<thead>
14880+
<tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
14881+
</thead>
14882+
<tbody>
14883+
14884+
<tr>
14885+
<td>project</td>
14886+
<td><a href="#string">string</a></td>
14887+
<td>optional</td>
14888+
<td><p>Project if given only nodes of this user are returned </p></td>
14889+
</tr>
14890+
14891+
</tbody>
14892+
</table>
14893+
14894+
14895+
14896+
14897+
14898+
<h3 id="metalstack.admin.v2.VPNServiceListNodesResponse">VPNServiceListNodesResponse</h3>
14899+
<p>VPNServiceListNodesResponse is the response payload for a vpn list nodes request</p>
14900+
14901+
14902+
<table class="field-table">
14903+
<thead>
14904+
<tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
14905+
</thead>
14906+
<tbody>
14907+
14908+
<tr>
14909+
<td>nodes</td>
14910+
<td><a href="#metalstack.api.v2.VPNNode">metalstack.api.v2.VPNNode</a></td>
14911+
<td>repeated</td>
14912+
<td><p>Nodes connected to the vpn </p></td>
14913+
</tr>
14914+
14915+
</tbody>
14916+
</table>
14917+
14918+
14919+
14920+
14921+
14922+
14923+
14924+
14925+
14926+
14927+
14928+
<h3 id="metalstack.admin.v2.VPNService">VPNService</h3>
14929+
<p>VPNService serves vpn related functions</p>
14930+
<table class="enum-table">
14931+
<thead>
14932+
<tr><td>Method Name</td><td>Request Type</td><td>Response Type</td><td>Description</td></tr>
14933+
</thead>
14934+
<tbody>
14935+
14936+
<tr>
14937+
<td>AuthKey</td>
14938+
<td><a href="#metalstack.admin.v2.VPNServiceAuthKeyRequest">VPNServiceAuthKeyRequest</a></td>
14939+
<td><a href="#metalstack.admin.v2.VPNServiceAuthKeyResponse">VPNServiceAuthKeyResponse</a></td>
14940+
<td><p>AuthKey generates a authkey for a project to join a machine to the project vpn</p></td>
14941+
</tr>
14942+
14943+
<tr>
14944+
<td>ListNodes</td>
14945+
<td><a href="#metalstack.admin.v2.VPNServiceListNodesRequest">VPNServiceListNodesRequest</a></td>
14946+
<td><a href="#metalstack.admin.v2.VPNServiceListNodesResponse">VPNServiceListNodesResponse</a></td>
14947+
<td><p>ListNodes returns a list of machines actually connected to the vpn</p></td>
14948+
</tr>
14949+
14950+
</tbody>
14951+
</table>
14952+
14953+
14954+
14955+
1466714956
<div class="file-heading">
1466814957
<h2 id="metalstack/api/v2/health.proto">metalstack/api/v2/health.proto</h2><a href="#title">Top</a>
1466914958
</div>

go.mod

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module github.com/metal-stack/api
33
go 1.25
44

55
require (
6-
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.10-20251209175733-2a1774d88802.1
6+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20251209175733-2a1774d88802.1
77
buf.build/go/protovalidate v1.1.0
88
connectrpc.com/connect v1.19.1
99
github.com/bufbuild/protocompile v0.14.1
@@ -12,7 +12,7 @@ require (
1212
github.com/google/go-cmp v0.7.0
1313
github.com/klauspost/connect-compress/v2 v2.1.0
1414
github.com/stretchr/testify v1.11.1
15-
google.golang.org/protobuf v1.36.10
15+
google.golang.org/protobuf v1.36.11
1616
)
1717

1818
require (
@@ -28,8 +28,8 @@ require (
2828
github.com/stretchr/objx v0.5.3 // indirect
2929
golang.org/x/exp v0.0.0-20251209150349-8475f28825e9 // indirect
3030
golang.org/x/text v0.32.0 // indirect
31-
google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 // indirect
32-
google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 // indirect
31+
google.golang.org/genproto/googleapis/api v0.0.0-20251213004720-97cd9d5aeac2 // indirect
32+
google.golang.org/genproto/googleapis/rpc v0.0.0-20251213004720-97cd9d5aeac2 // 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: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.10-20251209175733-2a1774d88802.1 h1:ZnX3qpF/pDiYrf+Q3p+/zCzZ5ELSpszy5hdVarDMSV4=
2-
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.10-20251209175733-2a1774d88802.1/go.mod h1:fUl8CEN/6ZAMk6bP8ahBJPUJw7rbp+j4x+wCcYi2IG4=
1+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20251209175733-2a1774d88802.1 h1:j9yeqTWEFrtimt8Nng2MIeRrpoCvQzM9/g25XTvqUGg=
2+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20251209175733-2a1774d88802.1/go.mod h1:tvtbpgaVXZX4g6Pn+AnzFycuRK3MOz5HJfEGeEllXYM=
33
buf.build/go/protovalidate v1.1.0 h1:pQqEQRpOo4SqS60qkvmhLTTQU9JwzEvdyiqAtXa5SeY=
44
buf.build/go/protovalidate v1.1.0/go.mod h1:bGZcPiAQDC3ErCHK3t74jSoJDFOs2JH3d7LWuTEIdss=
55
cel.dev/expr v0.25.1 h1:1KrZg61W6TWSxuNZ37Xy49ps13NUovb66QLprthtwi4=
@@ -60,12 +60,12 @@ golang.org/x/exp v0.0.0-20251209150349-8475f28825e9 h1:MDfG8Cvcqlt9XXrmEiD4epKn7
6060
golang.org/x/exp v0.0.0-20251209150349-8475f28825e9/go.mod h1:EPRbTFwzwjXj9NpYyyrvenVh9Y+GFeEvMNh7Xuz7xgU=
6161
golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU=
6262
golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY=
63-
google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 h1:fCvbg86sFXwdrl5LgVcTEvNC+2txB5mgROGmRL5mrls=
64-
google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto=
65-
google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww=
66-
google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
67-
google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
68-
google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
63+
google.golang.org/genproto/googleapis/api v0.0.0-20251213004720-97cd9d5aeac2 h1:7LRqPCEdE4TP4/9psdaB7F2nhZFfBiGJomA5sojLWdU=
64+
google.golang.org/genproto/googleapis/api v0.0.0-20251213004720-97cd9d5aeac2/go.mod h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto=
65+
google.golang.org/genproto/googleapis/rpc v0.0.0-20251213004720-97cd9d5aeac2 h1:2I6GHUeJ/4shcDpoUlLs/2WPnhg7yJwvXtqcMJt9liA=
66+
google.golang.org/genproto/googleapis/rpc v0.0.0-20251213004720-97cd9d5aeac2/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
67+
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
68+
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=
7070
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
7171
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

0 commit comments

Comments
 (0)