| gio | f6ad298 | 2024-08-23 17:42:49 +0400 | [diff] [blame] | 1 | package cluster |
| 2 | |
| 3 | import ( |
| 4 | "net" |
| 5 | ) |
| 6 | |
| 7 | const ( |
| 8 | whichTailscale = "which tailscale" |
| 9 | tailscaleInstallCmd = "curl -fsSL https://tailscale.com/install.sh | sh" |
| 10 | tailscaleUpCmd = "sudo tailscale up --login-server=%s --auth-key=%s --hostname=%s --reset" |
| 11 | ) |
| 12 | |
| 13 | type Server struct { |
| 14 | Name string `json:"name"` |
| 15 | IP net.IP `json:"ip"` |
| 16 | Port int `json:"port"` |
| 17 | HostKey string `json:"hostKey"` |
| 18 | User string `json:"user"` |
| 19 | Password string `json:"password"` |
| 20 | ClientKey string `json:"clientKey"` |
| 21 | AuthKey string `json:"authKey"` |
| 22 | } |
| 23 | |
| 24 | type State struct { |
| 25 | Name string `json:"name"` |
| 26 | IngressClassName string `json:"ingressClassName"` |
| 27 | IngressIP net.IP `json:"ingressIP"` |
| 28 | ServerAddr string `json:"serverAddr"` |
| 29 | ServerToken string `json:"serverToken"` |
| 30 | Kubeconfig string `json:"kubeconfig"` |
| 31 | Controllers []Server `json:"controllers"` |
| 32 | Workers []Server `json:"workers"` |
| gio | 8f29032 | 2024-09-21 15:37:45 +0400 | [diff] [blame] | 33 | StorageEnabled bool `json:"storageEnabled"` |
| gio | f6ad298 | 2024-08-23 17:42:49 +0400 | [diff] [blame] | 34 | } |
| 35 | |
| gio | 8f29032 | 2024-09-21 15:37:45 +0400 | [diff] [blame] | 36 | type ClusterIngressSetupFunc func(name, kubeconfig, ingressClassName string) (net.IP, error) |
| 37 | type ClusterSetupFunc func(m Manager) error |
| gio | f6ad298 | 2024-08-23 17:42:49 +0400 | [diff] [blame] | 38 | |
| 39 | type Manager interface { |
| gio | 8f29032 | 2024-09-21 15:37:45 +0400 | [diff] [blame] | 40 | Init(s Server, setupFn ClusterIngressSetupFunc) (net.IP, error) |
| gio | f6ad298 | 2024-08-23 17:42:49 +0400 | [diff] [blame] | 41 | JoinController(s Server) error |
| 42 | JoinWorker(s Server) error |
| 43 | RemoveServer(name string) error |
| 44 | State() State |
| gio | 8f29032 | 2024-09-21 15:37:45 +0400 | [diff] [blame] | 45 | EnableStorage() |
| gio | f6ad298 | 2024-08-23 17:42:49 +0400 | [diff] [blame] | 46 | } |