@@ -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>
0 commit comments