Serge Bazanski | d7d6e02 | 2021-09-01 15:03:06 +0200 | [diff] [blame] | 1 | package rpc |
Serge Bazanski | 9ffa1f9 | 2021-09-01 15:42:23 +0200 | [diff] [blame] | 2 | |
| 3 | import ( |
Serge Bazanski | d7d6e02 | 2021-09-01 15:03:06 +0200 | [diff] [blame] | 4 | cpb "source.monogon.dev/metropolis/node/core/curator/proto/api" |
Serge Bazanski | 9ffa1f9 | 2021-09-01 15:42:23 +0200 | [diff] [blame] | 5 | apb "source.monogon.dev/metropolis/proto/api" |
| 6 | epb "source.monogon.dev/metropolis/proto/ext" |
| 7 | ) |
| 8 | |
Serge Bazanski | 3379a5d | 2021-09-09 12:56:40 +0200 | [diff] [blame] | 9 | var ( |
| 10 | // nodePermissions are the set of metropolis.common.ext.authorization |
| 11 | // permissions automatically given to nodes when connecting to curator gRPC |
| 12 | // services, either locally or remotely. |
| 13 | nodePermissions = Permissions{ |
| 14 | epb.Permission_PERMISSION_READ_CLUSTER_STATUS: true, |
Serge Bazanski | 2893e98 | 2021-09-09 13:06:16 +0200 | [diff] [blame] | 15 | epb.Permission_PERMISSION_UPDATE_NODE_SELF: true, |
Serge Bazanski | 3379a5d | 2021-09-09 12:56:40 +0200 | [diff] [blame] | 16 | } |
| 17 | ) |
| 18 | |
| 19 | // ClusterExternalServices is the interface containing all gRPC services that a |
| 20 | // Metropolis Cluster implements on its external interface. With the current |
| 21 | // implementation of Metropolis, this is all implemented by the Curator. |
| 22 | type ClusterExternalServices interface { |
Serge Bazanski | d7d6e02 | 2021-09-01 15:03:06 +0200 | [diff] [blame] | 23 | cpb.CuratorServer |
| 24 | apb.AAAServer |
| 25 | apb.ManagementServer |
Serge Bazanski | 9ffa1f9 | 2021-09-01 15:42:23 +0200 | [diff] [blame] | 26 | } |
| 27 | |
Serge Bazanski | 3379a5d | 2021-09-09 12:56:40 +0200 | [diff] [blame] | 28 | // ClusterInternalServices is the interface containing all gRPC services that a |
| 29 | // Metropolis Cluster implements on its internal interface. Currently this is |
| 30 | // just the Curator service. |
| 31 | type ClusterInternalServices interface { |
| 32 | cpb.CuratorServer |
Serge Bazanski | d7d6e02 | 2021-09-01 15:03:06 +0200 | [diff] [blame] | 33 | } |
| 34 | |
Serge Bazanski | 3379a5d | 2021-09-09 12:56:40 +0200 | [diff] [blame] | 35 | type ClusterServices interface { |
| 36 | ClusterExternalServices |
| 37 | ClusterInternalServices |
Serge Bazanski | 9ffa1f9 | 2021-09-01 15:42:23 +0200 | [diff] [blame] | 38 | } |