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