Compare commits

..

8 Commits

Author SHA1 Message Date
amery 4d78214b82 cluster: add []string writer to Env
Signed-off-by: Alejandro Mery <amery@jpi.io>
2024-03-02 21:35:55 +00:00
amery 8f4ac9f789 cluster: introduce RegionIterator
Signed-off-by: Alejandro Mery <amery@jpi.io>
2024-03-02 21:35:55 +00:00
amery a769bdaaac m/eu/k8s_token [DO-NOT-MERGE]
Signed-off-by: Alejandro Mery <amery@jpi.io>
2024-03-02 21:35:55 +00:00
amery b2e7cb5f91 import m tree [DO-NOT-MERGE]
Signed-off-by: Alejandro Mery <amery@jpi.io>
2024-03-02 21:35:55 +00:00
amery c8c330d93a Merge branch 'pr-amery-k8s_token' into next-amery 2024-03-02 21:35:28 +00:00
amery 111951a86c Merge branch 'pr-amery-wireguard-ini' into next-amery 2024-03-02 21:35:24 +00:00
amery 3efe9c1d20 cluster: remove k8s_token files from zones on write if found
Signed-off-by: Alejandro Mery <amery@jpi.io>
2024-03-02 21:34:37 +00:00
amery 464c968381 cluster: introduce Region.Cluster and m/{region}/k8s_token
Signed-off-by: Alejandro Mery <amery@jpi.io>
2024-03-02 21:30:37 +00:00
3 changed files with 46 additions and 23 deletions
+16 -11
View File
@@ -4,6 +4,7 @@ import (
"io/fs" "io/fs"
"path" "path"
"sort" "sort"
"strings"
"darvaza.org/core" "darvaza.org/core"
) )
@@ -225,22 +226,26 @@ func (z *Zone) loadRegions() error {
} }
func (z *Zone) loadClusterToken() error { func (z *Zone) loadClusterToken() error {
var token string
filename := path.Join(z.Name, RegionClusterTokenFileName) filename := path.Join(z.Name, RegionClusterTokenFileName)
lines, err := z.zones.ReadLines(filename) lines, err := z.zones.ReadLines(filename)
if err == nil { if err != nil {
var token string return err
}
for _, s := range lines { // first non-empty line
if s != "" { for _, s := range lines {
token = s s = strings.TrimSpace(s)
break if s != "" {
} token = s
break
} }
}
err = z.zones.setRegionClusterToken(z.Name, token) err = z.zones.setRegionClusterToken(z.Name, token)
if err != nil { if err != nil {
err = core.Wrap(err, filename) err = core.Wrap(err, filename)
}
} }
return err return err
+19 -12
View File
@@ -85,22 +85,29 @@ func (m *Env) writeEnvZone(w io.Writer, z *Zone) {
} }
func (m *Env) writeEnvVarInts(w io.Writer, value []int, name string, args ...any) { func (m *Env) writeEnvVarInts(w io.Writer, value []int, name string, args ...any) {
var s string var buf bytes.Buffer
if n := len(value); n > 0 { for _, v := range value {
var buf bytes.Buffer if buf.Len() > 0 {
_, _ = fmt.Fprint(&buf, " ")
for i, v := range value {
if i != 0 {
_, _ = fmt.Fprint(&buf, " ")
}
_, _ = fmt.Fprintf(&buf, "%v", v)
} }
_, _ = fmt.Fprintf(&buf, "%v", v)
s = buf.String()
} }
m.writeEnvVar(w, s, name, args...) m.writeEnvVar(w, buf.String(), name, args...)
}
func (m *Env) writeEnvVarStrings(w io.Writer, value []string, name string, args ...any) {
var buf bytes.Buffer
for _, v := range value {
if buf.Len() > 0 {
_, _ = fmt.Fprint(&buf, " ")
}
_, _ = fmt.Fprintf(&buf, "%s", v)
}
m.writeEnvVar(w, buf.String(), name, args...)
} }
func (m *Env) writeEnvVar(w io.Writer, value string, name string, args ...any) { func (m *Env) writeEnvVar(w io.Writer, value string, name string, args ...any) {
+11
View File
@@ -8,8 +8,14 @@ import (
var ( var (
_ MachineIterator = (*Region)(nil) _ MachineIterator = (*Region)(nil)
_ ZoneIterator = (*Region)(nil) _ ZoneIterator = (*Region)(nil)
_ RegionIterator = (*Cluster)(nil)
) )
// A RegionIterator is a set of Regions we can iterate on
type RegionIterator interface {
ForEachRegion(func(*Region) bool)
}
// Region represents a group of zones geographically related // Region represents a group of zones geographically related
type Region struct { type Region struct {
m *Cluster m *Cluster
@@ -204,6 +210,11 @@ func (z *Zone) SyncRegions() error {
} else { } else {
err = p.WriteStringFile("none\n", "region") err = p.WriteStringFile("none\n", "region")
} }
if err == nil {
err = p.RemoveFile(RegionClusterTokenFileName)
}
return err != nil return err != nil
}) })
} }