Compare commits

...

9 Commits

Author SHA1 Message Date
amery 6225774baa dummy us and uk k8s_token markers [DO-NOT-MERGE]
Signed-off-by: Alejandro Mery <amery@jpi.io>
2024-03-02 23:18:46 +00:00
amery 88f9985dad m/eu/k8s_token [DO-NOT-MERGE]
Signed-off-by: Alejandro Mery <amery@jpi.io>
2024-03-02 23:18:46 +00:00
amery 8a7756642a import m tree [DO-NOT-MERGE]
Signed-off-by: Alejandro Mery <amery@jpi.io>
2024-03-02 23:18:46 +00:00
amery 4363c6ab12 env: export ZONE{zoneID}_REGION
Signed-off-by: Alejandro Mery <amery@jpi.io>
2024-03-02 23:18:18 +00:00
amery 589f61c1da env: add REGIONS list to output
Signed-off-by: Alejandro Mery <amery@jpi.io>
2024-03-02 23:18:18 +00:00
amery b8760941b8 env: add []string writer
Signed-off-by: Alejandro Mery <amery@jpi.io>
2024-03-02 23:18:18 +00:00
amery 29bc184c18 env: use foo= instead of foo="" for empty variables
to improve readability

Signed-off-by: Alejandro Mery <amery@jpi.io>
2024-03-02 23:18:18 +00:00
amery 26c1b37f1b Merge branch 'pr-amery-version' into next-amery 2024-03-02 23:18:03 +00:00
amery 09bec11506 jpictl: add --version and version command
from `git describe` using go:generate and embed

Signed-off-by: Alejandro Mery <amery@jpi.io>
2024-03-02 23:15:56 +00:00
66 changed files with 766 additions and 18 deletions
+1
View File
@@ -1 +1,2 @@
.tmp
.version
+159
View File
@@ -0,0 +1,159 @@
dir: m
name: m
domain: jpi.cloud
ceph_fsid: 28180b9b-6d5d-4be0-bb5b-e4b04bf03804
regions:
- name: eu
cluster: K102eb227eec765a3389ba82944c0c78ab1f14f3b4383831f47416598e54d64abbb::server:567b2023506e45f7ec0009a991824f1c
regions:
- de
- nl
- name: uk
cluster: ""
- name: us
cluster: ""
- name: earth
regions:
- europe
- us
- name: europe
regions:
- eu
- uk
zones:
- id: 1
name: ssd-lon
regions:
- uk
machines:
- id: 3
public:
- 63.250.53.5
- 2602:ff16:7:0:1:66:0:1
rings:
- ring: 0
enabled: true
keys:
privatekey: WJY1yrd14c0gY4qqq1O8BPck46TVYebXrT+OoMbEqG8=
publickey: aDXNwapVjufcuQKfBN+waJObe1TaeeaSNl1suA0u+00=
- ring: 1
enabled: true
keys:
privatekey: 2CDO+x8HVKfw1/iqC2WkwIEQyWZsC9XPW1otqxarR0o=
publickey: untmMfW2W4OiMgG/6nAysoivXtDh7cZ9/rxhgJ4OlC4=
- id: 4
ceph_monitor: true
public:
- 63.250.53.164
- 2602:ff16:7:0:1:50:0:1
rings:
- ring: 1
enabled: true
keys:
privatekey: wE05rSTPSlX9CUdyglpRsNqMVdh8bZSvmUlalGXArEE=
publickey: f7AcZy4H2qfi7BRtRA82VdJAqc+IXU90k88GKBp9piM=
- id: 5
public:
- 63.250.53.135
- 2602:ff16:7:0:1:156:0:1
rings:
- ring: 1
enabled: true
keys:
privatekey: oMLrZ8ZmNeWrVroGTh9lx9cJC1enWCF5VfIkv8t+jmk=
publickey: 9cUNKM8TPbD8BRjV7TG9/BuTq+2JO8KyrPCx69KW+Bk=
- id: 7
public:
- 107.155.122.3
- 2602:ff16:7:0:1:6d:0:1
rings:
- ring: 1
enabled: true
keys:
privatekey: iN4Rc3J36APlkIP/ksSpHIwAuxC/ehYLwGQ5va1AhG8=
publickey: XGVXDmxQajHpsgpzgrp+r/ZWxZUaodTpvGBJuLlZ0n4=
- id: 2
name: ssd-ams
regions:
- nl
machines:
- id: 3
public:
- 89.233.107.128
- 2602:ff16:9:0:1:1a7:0:1
rings:
- ring: 0
enabled: true
keys:
privatekey: oHVQY976pFH1lAhCrz9c40vR/e5PIXw7ZXv6pU6A5Ho=
publickey: y/Gkid2Mjxo1WO9Zi7mh+DETNYKT/AAc3K3bvr9xp3c=
- ring: 1
enabled: true
keys:
privatekey: 6I/ZMxaWUTbNc+SIGkNKxgovONqv6EAvg7NeeTRrR1c=
publickey: 9i0XI358OOYYoxoxV5lX8siqE8uiEwCsuWLo6LoFu0Y=
- id: 4
ceph_monitor: true
public:
- 89.233.107.251
- 2602:ff16:9:0:1:130:0:1
rings:
- ring: 1
enabled: true
keys:
privatekey: SPBd5Ka29ZecKYy7BW85rW7FO9dwKwoUHlSibybPG1s=
publickey: QpJupYlnJc7wc3+gAlEmbFMonsqpVnYRy7f/gnPqqBw=
- id: 5
inactive: true
public:
- 89.233.107.107
- 2602:ff16:9:0:1:74:0:1
rings:
- ring: 1
enabled: true
keys:
privatekey: mJaFvu9TBwE2i0rjhfhvpB3xZmp++3BVwa7QAvWXImY=
publickey: HDLVEwLv0uugyZ9C1C9ZWuiaWQ1qIqqe/DAUxYI0whM=
- id: 3
name: htz-fsn
regions:
- de
machines:
- id: 1
ceph_monitor: true
public:
- 157.90.209.125
- 2a01:4f8:252:168f::2
rings:
- ring: 0
enabled: true
keys:
privatekey: AMz/pCgOMVh1/2rT9uCFMox+LQgH5FrE4xUeqSs0x0M=
publickey: K9LYog8vtRFN4nW6dJWMQ9trmRrYuLpbu/Ze5kIiBGw=
- ring: 1
enabled: true
keys:
privatekey: 2JpA1G0Dp+sEuDhKnzToz0h76o2iLP+S7Qb9itlgXVA=
publickey: qWmYfgeRAQ563gWLdeYs65XjGJTSE+W8WTbpLZ0e1CQ=
- id: 4
name: ssd-nyc
regions:
- us
machines:
- id: 3
inactive: true
ceph_monitor: true
public:
- 208.87.134.41
- 2602:ff16:3:0:1:4fa:0:1
rings:
- ring: 0
enabled: true
keys:
privatekey: YNDxj+QSO3p5pXw9h7lBx0cLM0kJDv3v7BYLfc8TR3I=
publickey: 1UFgleUufTszPM1voIcwVhd0DpYZ1HwV05U6p3IS2DE=
- ring: 1
enabled: true
keys:
privatekey: APXGKqOxx1gOr587FSN3O3gRGpkGgSjt6zGlTu49UlU=
publickey: av8ni/9ZUyozabzqTjIy1sOnSJuQ9p63Tu9ECVmHB2I=
+5 -2
View File
@@ -2,6 +2,8 @@
package main
import (
_ "embed"
"github.com/spf13/cobra"
)
@@ -12,8 +14,9 @@ const (
var (
rootCmd = &cobra.Command{
Use: CmdName,
Short: "control tool for jpi.cloud",
Use: CmdName,
Short: "control tool for jpi.cloud",
Version: version,
}
)
+31
View File
@@ -0,0 +1,31 @@
package main
import (
_ "embed"
"fmt"
"os"
"github.com/spf13/cobra"
)
//go:generate sh -c "git describe | tr -d '\r\n' > .version"
//go:embed .version
var version string
var versionCmd = &cobra.Command{
Use: "version",
Short: "Returns jpictl's version",
Args: cobra.NoArgs,
Run: func(_ *cobra.Command, _ []string) {
_, _ = fmt.Fprintf(os.Stdout, "%s\n", version)
},
}
func init() {
if version == "" {
version = "undetermined"
}
rootCmd.AddCommand(versionCmd)
}
+5
View File
@@ -0,0 +1,5 @@
[global]
fsid = 28180b9b-6d5d-4be0-bb5b-e4b04bf03804
mon_initial_members = ssd-lon-4, ssd-ams-4, htz-fsn-1, ssd-nyc-3
mon_host = 10.16.0.4, 10.32.0.4, 10.48.0.1, 10.64.0.3
cluster_network = 10.0.0.0/8
+2
View File
@@ -0,0 +1,2 @@
europe
us
+1
View File
@@ -0,0 +1 @@
K102eb227eec765a3389ba82944c0c78ab1f14f3b4383831f47416598e54d64abbb::server:567b2023506e45f7ec0009a991824f1c
+2
View File
@@ -0,0 +1,2 @@
de
nl
+2
View File
@@ -0,0 +1,2 @@
eu
uk
+24
View File
@@ -0,0 +1,24 @@
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
10.16.0.3 ssd-lon-3
10.16.0.4 ssd-lon-4 ssd-lon-ceph ssd-lon-k3s
10.16.0.5 ssd-lon-5
10.16.0.7 ssd-lon-7
10.32.0.3 ssd-ams-3
10.32.0.4 ssd-ams-4 ssd-ams-ceph ssd-ams-k3s
10.32.0.5 ssd-ams-5
10.48.0.1 htz-fsn-1 htz-fsn-ceph htz-fsn-k3s ceph k3s
10.64.0.3 ssd-nyc-3 ssd-nyc-ceph ssd-nyc-k3s
10.0.1.3 ssd-lon-3-0
10.0.2.3 ssd-ams-3-0
10.0.3.1 htz-fsn-1-0
10.0.4.3 ssd-nyc-3-0
+23
View File
@@ -0,0 +1,23 @@
[Interface]
# Name: htz-fsn-1-0
Address = 10.0.3.1
PrivateKey = AMz/pCgOMVh1/2rT9uCFMox+LQgH5FrE4xUeqSs0x0M=
ListenPort = 51800
[Peer]
# Name: ssd-lon-3-0
PublicKey = aDXNwapVjufcuQKfBN+waJObe1TaeeaSNl1suA0u+00=
Endpoint = ssd-lon-3.m.jpi.cloud:51800
AllowedIPs = 10.16.0.0/12, 10.0.1.3/32
[Peer]
# Name: ssd-ams-3-0
PublicKey = y/Gkid2Mjxo1WO9Zi7mh+DETNYKT/AAc3K3bvr9xp3c=
Endpoint = ssd-ams-3.m.jpi.cloud:51800
AllowedIPs = 10.32.0.0/12, 10.0.2.3/32
[Peer]
# Name: ssd-nyc-3-0
PublicKey = 1UFgleUufTszPM1voIcwVhd0DpYZ1HwV05U6p3IS2DE=
Endpoint = ssd-nyc-3.m.jpi.cloud:51800
AllowedIPs = 10.64.0.0/12, 10.0.4.3/32
+1
View File
@@ -0,0 +1 @@
AMz/pCgOMVh1/2rT9uCFMox+LQgH5FrE4xUeqSs0x0M=
+1
View File
@@ -0,0 +1 @@
K9LYog8vtRFN4nW6dJWMQ9trmRrYuLpbu/Ze5kIiBGw=
+5
View File
@@ -0,0 +1,5 @@
[Interface]
# Name: htz-fsn-1-1
Address = 10.48.0.1
PrivateKey = 2JpA1G0Dp+sEuDhKnzToz0h76o2iLP+S7Qb9itlgXVA=
ListenPort = 51810
+1
View File
@@ -0,0 +1 @@
2JpA1G0Dp+sEuDhKnzToz0h76o2iLP+S7Qb9itlgXVA=
+1
View File
@@ -0,0 +1 @@
qWmYfgeRAQ563gWLdeYs65XjGJTSE+W8WTbpLZ0e1CQ=
+1
View File
@@ -0,0 +1 @@
de
+1
View File
@@ -0,0 +1 @@
nl
+24
View File
@@ -0,0 +1,24 @@
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
10.16.0.3 ssd-lon-3
10.16.0.4 ssd-lon-4 ssd-lon-ceph ssd-lon-k3s
10.16.0.5 ssd-lon-5
10.16.0.7 ssd-lon-7
10.32.0.3 ssd-ams-3
10.32.0.4 ssd-ams-4 ssd-ams-ceph ssd-ams-k3s ceph k3s
10.32.0.5 ssd-ams-5
10.48.0.1 htz-fsn-1 htz-fsn-ceph htz-fsn-k3s
10.64.0.3 ssd-nyc-3 ssd-nyc-ceph ssd-nyc-k3s
10.0.1.3 ssd-lon-3-0
10.0.2.3 ssd-ams-3-0
10.0.3.1 htz-fsn-1-0
10.0.4.3 ssd-nyc-3-0
+23
View File
@@ -0,0 +1,23 @@
[Interface]
# Name: ssd-ams-3-0
Address = 10.0.2.3
PrivateKey = oHVQY976pFH1lAhCrz9c40vR/e5PIXw7ZXv6pU6A5Ho=
ListenPort = 51800
[Peer]
# Name: ssd-lon-3-0
PublicKey = aDXNwapVjufcuQKfBN+waJObe1TaeeaSNl1suA0u+00=
Endpoint = ssd-lon-3.m.jpi.cloud:51800
AllowedIPs = 10.16.0.0/12, 10.0.1.3/32
[Peer]
# Name: htz-fsn-1-0
PublicKey = K9LYog8vtRFN4nW6dJWMQ9trmRrYuLpbu/Ze5kIiBGw=
Endpoint = htz-fsn-1.m.jpi.cloud:51800
AllowedIPs = 10.48.0.0/12, 10.0.3.1/32
[Peer]
# Name: ssd-nyc-3-0
PublicKey = 1UFgleUufTszPM1voIcwVhd0DpYZ1HwV05U6p3IS2DE=
Endpoint = ssd-nyc-3.m.jpi.cloud:51800
AllowedIPs = 10.64.0.0/12, 10.0.4.3/32
+1
View File
@@ -0,0 +1 @@
oHVQY976pFH1lAhCrz9c40vR/e5PIXw7ZXv6pU6A5Ho=
+1
View File
@@ -0,0 +1 @@
y/Gkid2Mjxo1WO9Zi7mh+DETNYKT/AAc3K3bvr9xp3c=
+17
View File
@@ -0,0 +1,17 @@
[Interface]
# Name: ssd-ams-3-1
Address = 10.32.0.3
PrivateKey = 6I/ZMxaWUTbNc+SIGkNKxgovONqv6EAvg7NeeTRrR1c=
ListenPort = 51810
[Peer]
# Name: ssd-ams-4-1
PublicKey = QpJupYlnJc7wc3+gAlEmbFMonsqpVnYRy7f/gnPqqBw=
Endpoint = ssd-ams-4.m.jpi.cloud:51810
AllowedIPs = 10.32.0.4/32
[Peer]
# Name: ssd-ams-5-1
PublicKey = HDLVEwLv0uugyZ9C1C9ZWuiaWQ1qIqqe/DAUxYI0whM=
Endpoint = ssd-ams-5.m.jpi.cloud:51810
AllowedIPs = 10.32.0.5/32
+1
View File
@@ -0,0 +1 @@
6I/ZMxaWUTbNc+SIGkNKxgovONqv6EAvg7NeeTRrR1c=
+1
View File
@@ -0,0 +1 @@
9i0XI358OOYYoxoxV5lX8siqE8uiEwCsuWLo6LoFu0Y=
+24
View File
@@ -0,0 +1,24 @@
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
10.16.0.3 ssd-lon-3
10.16.0.4 ssd-lon-4 ssd-lon-ceph ssd-lon-k3s
10.16.0.5 ssd-lon-5
10.16.0.7 ssd-lon-7
10.32.0.3 ssd-ams-3
10.32.0.4 ssd-ams-4 ssd-ams-ceph ssd-ams-k3s ceph k3s
10.32.0.5 ssd-ams-5
10.48.0.1 htz-fsn-1 htz-fsn-ceph htz-fsn-k3s
10.64.0.3 ssd-nyc-3 ssd-nyc-ceph ssd-nyc-k3s
10.0.1.3 ssd-lon-3-0
10.0.2.3 ssd-ams-3-0
10.0.3.1 htz-fsn-1-0
10.0.4.3 ssd-nyc-3-0
+17
View File
@@ -0,0 +1,17 @@
[Interface]
# Name: ssd-ams-4-1
Address = 10.32.0.4
PrivateKey = SPBd5Ka29ZecKYy7BW85rW7FO9dwKwoUHlSibybPG1s=
ListenPort = 51810
[Peer]
# Name: ssd-ams-3-1
PublicKey = 9i0XI358OOYYoxoxV5lX8siqE8uiEwCsuWLo6LoFu0Y=
Endpoint = ssd-ams-3.m.jpi.cloud:51810
AllowedIPs = 10.32.0.3/32, 10.16.0.0/12, 10.48.0.0/12, 10.64.0.0/12, 10.0.1.3/32, 10.0.2.3/32, 10.0.3.1/32, 10.0.4.3/32
[Peer]
# Name: ssd-ams-5-1
PublicKey = HDLVEwLv0uugyZ9C1C9ZWuiaWQ1qIqqe/DAUxYI0whM=
Endpoint = ssd-ams-5.m.jpi.cloud:51810
AllowedIPs = 10.32.0.5/32
+1
View File
@@ -0,0 +1 @@
SPBd5Ka29ZecKYy7BW85rW7FO9dwKwoUHlSibybPG1s=
+1
View File
@@ -0,0 +1 @@
QpJupYlnJc7wc3+gAlEmbFMonsqpVnYRy7f/gnPqqBw=
+24
View File
@@ -0,0 +1,24 @@
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
10.16.0.3 ssd-lon-3
10.16.0.4 ssd-lon-4 ssd-lon-ceph ssd-lon-k3s
10.16.0.5 ssd-lon-5
10.16.0.7 ssd-lon-7
10.32.0.3 ssd-ams-3
10.32.0.4 ssd-ams-4 ssd-ams-ceph ssd-ams-k3s ceph k3s
10.32.0.5 ssd-ams-5
10.48.0.1 htz-fsn-1 htz-fsn-ceph htz-fsn-k3s
10.64.0.3 ssd-nyc-3 ssd-nyc-ceph ssd-nyc-k3s
10.0.1.3 ssd-lon-3-0
10.0.2.3 ssd-ams-3-0
10.0.3.1 htz-fsn-1-0
10.0.4.3 ssd-nyc-3-0
+1
View File
@@ -0,0 +1 @@
none
+17
View File
@@ -0,0 +1,17 @@
[Interface]
# Name: ssd-ams-5-1
Address = 10.32.0.5
PrivateKey = mJaFvu9TBwE2i0rjhfhvpB3xZmp++3BVwa7QAvWXImY=
ListenPort = 51810
[Peer]
# Name: ssd-ams-3-1
PublicKey = 9i0XI358OOYYoxoxV5lX8siqE8uiEwCsuWLo6LoFu0Y=
Endpoint = ssd-ams-3.m.jpi.cloud:51810
AllowedIPs = 10.32.0.3/32, 10.16.0.0/12, 10.48.0.0/12, 10.64.0.0/12, 10.0.1.3/32, 10.0.2.3/32, 10.0.3.1/32, 10.0.4.3/32
[Peer]
# Name: ssd-ams-4-1
PublicKey = QpJupYlnJc7wc3+gAlEmbFMonsqpVnYRy7f/gnPqqBw=
Endpoint = ssd-ams-4.m.jpi.cloud:51810
AllowedIPs = 10.32.0.4/32
+1
View File
@@ -0,0 +1 @@
mJaFvu9TBwE2i0rjhfhvpB3xZmp++3BVwa7QAvWXImY=
+1
View File
@@ -0,0 +1 @@
HDLVEwLv0uugyZ9C1C9ZWuiaWQ1qIqqe/DAUxYI0whM=
+1
View File
@@ -0,0 +1 @@
uk
+24
View File
@@ -0,0 +1,24 @@
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
10.16.0.3 ssd-lon-3
10.16.0.4 ssd-lon-4 ssd-lon-ceph ssd-lon-k3s ceph k3s
10.16.0.5 ssd-lon-5
10.16.0.7 ssd-lon-7
10.32.0.3 ssd-ams-3
10.32.0.4 ssd-ams-4 ssd-ams-ceph ssd-ams-k3s
10.32.0.5 ssd-ams-5
10.48.0.1 htz-fsn-1 htz-fsn-ceph htz-fsn-k3s
10.64.0.3 ssd-nyc-3 ssd-nyc-ceph ssd-nyc-k3s
10.0.1.3 ssd-lon-3-0
10.0.2.3 ssd-ams-3-0
10.0.3.1 htz-fsn-1-0
10.0.4.3 ssd-nyc-3-0
+23
View File
@@ -0,0 +1,23 @@
[Interface]
# Name: ssd-lon-3-0
Address = 10.0.1.3
PrivateKey = WJY1yrd14c0gY4qqq1O8BPck46TVYebXrT+OoMbEqG8=
ListenPort = 51800
[Peer]
# Name: ssd-ams-3-0
PublicKey = y/Gkid2Mjxo1WO9Zi7mh+DETNYKT/AAc3K3bvr9xp3c=
Endpoint = ssd-ams-3.m.jpi.cloud:51800
AllowedIPs = 10.32.0.0/12, 10.0.2.3/32
[Peer]
# Name: htz-fsn-1-0
PublicKey = K9LYog8vtRFN4nW6dJWMQ9trmRrYuLpbu/Ze5kIiBGw=
Endpoint = htz-fsn-1.m.jpi.cloud:51800
AllowedIPs = 10.48.0.0/12, 10.0.3.1/32
[Peer]
# Name: ssd-nyc-3-0
PublicKey = 1UFgleUufTszPM1voIcwVhd0DpYZ1HwV05U6p3IS2DE=
Endpoint = ssd-nyc-3.m.jpi.cloud:51800
AllowedIPs = 10.64.0.0/12, 10.0.4.3/32
+1
View File
@@ -0,0 +1 @@
WJY1yrd14c0gY4qqq1O8BPck46TVYebXrT+OoMbEqG8=
+1
View File
@@ -0,0 +1 @@
aDXNwapVjufcuQKfBN+waJObe1TaeeaSNl1suA0u+00=
+23
View File
@@ -0,0 +1,23 @@
[Interface]
# Name: ssd-lon-3-1
Address = 10.16.0.3
PrivateKey = 2CDO+x8HVKfw1/iqC2WkwIEQyWZsC9XPW1otqxarR0o=
ListenPort = 51810
[Peer]
# Name: ssd-lon-4-1
PublicKey = f7AcZy4H2qfi7BRtRA82VdJAqc+IXU90k88GKBp9piM=
Endpoint = ssd-lon-4.m.jpi.cloud:51810
AllowedIPs = 10.16.0.4/32
[Peer]
# Name: ssd-lon-5-1
PublicKey = 9cUNKM8TPbD8BRjV7TG9/BuTq+2JO8KyrPCx69KW+Bk=
Endpoint = ssd-lon-5.m.jpi.cloud:51810
AllowedIPs = 10.16.0.5/32
[Peer]
# Name: ssd-lon-7-1
PublicKey = XGVXDmxQajHpsgpzgrp+r/ZWxZUaodTpvGBJuLlZ0n4=
Endpoint = ssd-lon-7.m.jpi.cloud:51810
AllowedIPs = 10.16.0.7/32
+1
View File
@@ -0,0 +1 @@
2CDO+x8HVKfw1/iqC2WkwIEQyWZsC9XPW1otqxarR0o=
+1
View File
@@ -0,0 +1 @@
untmMfW2W4OiMgG/6nAysoivXtDh7cZ9/rxhgJ4OlC4=
+24
View File
@@ -0,0 +1,24 @@
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
10.16.0.3 ssd-lon-3
10.16.0.4 ssd-lon-4 ssd-lon-ceph ssd-lon-k3s ceph k3s
10.16.0.5 ssd-lon-5
10.16.0.7 ssd-lon-7
10.32.0.3 ssd-ams-3
10.32.0.4 ssd-ams-4 ssd-ams-ceph ssd-ams-k3s
10.32.0.5 ssd-ams-5
10.48.0.1 htz-fsn-1 htz-fsn-ceph htz-fsn-k3s
10.64.0.3 ssd-nyc-3 ssd-nyc-ceph ssd-nyc-k3s
10.0.1.3 ssd-lon-3-0
10.0.2.3 ssd-ams-3-0
10.0.3.1 htz-fsn-1-0
10.0.4.3 ssd-nyc-3-0
+23
View File
@@ -0,0 +1,23 @@
[Interface]
# Name: ssd-lon-4-1
Address = 10.16.0.4
PrivateKey = wE05rSTPSlX9CUdyglpRsNqMVdh8bZSvmUlalGXArEE=
ListenPort = 51810
[Peer]
# Name: ssd-lon-3-1
PublicKey = untmMfW2W4OiMgG/6nAysoivXtDh7cZ9/rxhgJ4OlC4=
Endpoint = ssd-lon-3.m.jpi.cloud:51810
AllowedIPs = 10.16.0.3/32, 10.32.0.0/12, 10.48.0.0/12, 10.64.0.0/12, 10.0.1.3/32, 10.0.2.3/32, 10.0.3.1/32, 10.0.4.3/32
[Peer]
# Name: ssd-lon-5-1
PublicKey = 9cUNKM8TPbD8BRjV7TG9/BuTq+2JO8KyrPCx69KW+Bk=
Endpoint = ssd-lon-5.m.jpi.cloud:51810
AllowedIPs = 10.16.0.5/32
[Peer]
# Name: ssd-lon-7-1
PublicKey = XGVXDmxQajHpsgpzgrp+r/ZWxZUaodTpvGBJuLlZ0n4=
Endpoint = ssd-lon-7.m.jpi.cloud:51810
AllowedIPs = 10.16.0.7/32
+1
View File
@@ -0,0 +1 @@
wE05rSTPSlX9CUdyglpRsNqMVdh8bZSvmUlalGXArEE=
+1
View File
@@ -0,0 +1 @@
f7AcZy4H2qfi7BRtRA82VdJAqc+IXU90k88GKBp9piM=
+24
View File
@@ -0,0 +1,24 @@
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
10.16.0.3 ssd-lon-3
10.16.0.4 ssd-lon-4 ssd-lon-ceph ssd-lon-k3s ceph k3s
10.16.0.5 ssd-lon-5
10.16.0.7 ssd-lon-7
10.32.0.3 ssd-ams-3
10.32.0.4 ssd-ams-4 ssd-ams-ceph ssd-ams-k3s
10.32.0.5 ssd-ams-5
10.48.0.1 htz-fsn-1 htz-fsn-ceph htz-fsn-k3s
10.64.0.3 ssd-nyc-3 ssd-nyc-ceph ssd-nyc-k3s
10.0.1.3 ssd-lon-3-0
10.0.2.3 ssd-ams-3-0
10.0.3.1 htz-fsn-1-0
10.0.4.3 ssd-nyc-3-0
+23
View File
@@ -0,0 +1,23 @@
[Interface]
# Name: ssd-lon-5-1
Address = 10.16.0.5
PrivateKey = oMLrZ8ZmNeWrVroGTh9lx9cJC1enWCF5VfIkv8t+jmk=
ListenPort = 51810
[Peer]
# Name: ssd-lon-3-1
PublicKey = untmMfW2W4OiMgG/6nAysoivXtDh7cZ9/rxhgJ4OlC4=
Endpoint = ssd-lon-3.m.jpi.cloud:51810
AllowedIPs = 10.16.0.3/32, 10.32.0.0/12, 10.48.0.0/12, 10.64.0.0/12, 10.0.1.3/32, 10.0.2.3/32, 10.0.3.1/32, 10.0.4.3/32
[Peer]
# Name: ssd-lon-4-1
PublicKey = f7AcZy4H2qfi7BRtRA82VdJAqc+IXU90k88GKBp9piM=
Endpoint = ssd-lon-4.m.jpi.cloud:51810
AllowedIPs = 10.16.0.4/32
[Peer]
# Name: ssd-lon-7-1
PublicKey = XGVXDmxQajHpsgpzgrp+r/ZWxZUaodTpvGBJuLlZ0n4=
Endpoint = ssd-lon-7.m.jpi.cloud:51810
AllowedIPs = 10.16.0.7/32
+1
View File
@@ -0,0 +1 @@
oMLrZ8ZmNeWrVroGTh9lx9cJC1enWCF5VfIkv8t+jmk=
+1
View File
@@ -0,0 +1 @@
9cUNKM8TPbD8BRjV7TG9/BuTq+2JO8KyrPCx69KW+Bk=
+24
View File
@@ -0,0 +1,24 @@
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
10.16.0.3 ssd-lon-3
10.16.0.4 ssd-lon-4 ssd-lon-ceph ssd-lon-k3s ceph k3s
10.16.0.5 ssd-lon-5
10.16.0.7 ssd-lon-7
10.32.0.3 ssd-ams-3
10.32.0.4 ssd-ams-4 ssd-ams-ceph ssd-ams-k3s
10.32.0.5 ssd-ams-5
10.48.0.1 htz-fsn-1 htz-fsn-ceph htz-fsn-k3s
10.64.0.3 ssd-nyc-3 ssd-nyc-ceph ssd-nyc-k3s
10.0.1.3 ssd-lon-3-0
10.0.2.3 ssd-ams-3-0
10.0.3.1 htz-fsn-1-0
10.0.4.3 ssd-nyc-3-0
+23
View File
@@ -0,0 +1,23 @@
[Interface]
# Name: ssd-lon-7-1
Address = 10.16.0.7
PrivateKey = iN4Rc3J36APlkIP/ksSpHIwAuxC/ehYLwGQ5va1AhG8=
ListenPort = 51810
[Peer]
# Name: ssd-lon-3-1
PublicKey = untmMfW2W4OiMgG/6nAysoivXtDh7cZ9/rxhgJ4OlC4=
Endpoint = ssd-lon-3.m.jpi.cloud:51810
AllowedIPs = 10.16.0.3/32, 10.32.0.0/12, 10.48.0.0/12, 10.64.0.0/12, 10.0.1.3/32, 10.0.2.3/32, 10.0.3.1/32, 10.0.4.3/32
[Peer]
# Name: ssd-lon-4-1
PublicKey = f7AcZy4H2qfi7BRtRA82VdJAqc+IXU90k88GKBp9piM=
Endpoint = ssd-lon-4.m.jpi.cloud:51810
AllowedIPs = 10.16.0.4/32
[Peer]
# Name: ssd-lon-5-1
PublicKey = 9cUNKM8TPbD8BRjV7TG9/BuTq+2JO8KyrPCx69KW+Bk=
Endpoint = ssd-lon-5.m.jpi.cloud:51810
AllowedIPs = 10.16.0.5/32
+1
View File
@@ -0,0 +1 @@
iN4Rc3J36APlkIP/ksSpHIwAuxC/ehYLwGQ5va1AhG8=
+1
View File
@@ -0,0 +1 @@
XGVXDmxQajHpsgpzgrp+r/ZWxZUaodTpvGBJuLlZ0n4=
+1
View File
@@ -0,0 +1 @@
us
+24
View File
@@ -0,0 +1,24 @@
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
10.16.0.3 ssd-lon-3
10.16.0.4 ssd-lon-4 ssd-lon-ceph ssd-lon-k3s
10.16.0.5 ssd-lon-5
10.16.0.7 ssd-lon-7
10.32.0.3 ssd-ams-3
10.32.0.4 ssd-ams-4 ssd-ams-ceph ssd-ams-k3s
10.32.0.5 ssd-ams-5
10.48.0.1 htz-fsn-1 htz-fsn-ceph htz-fsn-k3s
10.64.0.3 ssd-nyc-3 ssd-nyc-ceph ssd-nyc-k3s ceph k3s
10.0.1.3 ssd-lon-3-0
10.0.2.3 ssd-ams-3-0
10.0.3.1 htz-fsn-1-0
10.0.4.3 ssd-nyc-3-0
+1
View File
@@ -0,0 +1 @@
none
+23
View File
@@ -0,0 +1,23 @@
[Interface]
# Name: ssd-nyc-3-0
Address = 10.0.4.3
PrivateKey = YNDxj+QSO3p5pXw9h7lBx0cLM0kJDv3v7BYLfc8TR3I=
ListenPort = 51800
[Peer]
# Name: ssd-lon-3-0
PublicKey = aDXNwapVjufcuQKfBN+waJObe1TaeeaSNl1suA0u+00=
Endpoint = ssd-lon-3.m.jpi.cloud:51800
AllowedIPs = 10.16.0.0/12, 10.0.1.3/32
[Peer]
# Name: ssd-ams-3-0
PublicKey = y/Gkid2Mjxo1WO9Zi7mh+DETNYKT/AAc3K3bvr9xp3c=
Endpoint = ssd-ams-3.m.jpi.cloud:51800
AllowedIPs = 10.32.0.0/12, 10.0.2.3/32
[Peer]
# Name: htz-fsn-1-0
PublicKey = K9LYog8vtRFN4nW6dJWMQ9trmRrYuLpbu/Ze5kIiBGw=
Endpoint = htz-fsn-1.m.jpi.cloud:51800
AllowedIPs = 10.48.0.0/12, 10.0.3.1/32
+1
View File
@@ -0,0 +1 @@
YNDxj+QSO3p5pXw9h7lBx0cLM0kJDv3v7BYLfc8TR3I=
+1
View File
@@ -0,0 +1 @@
1UFgleUufTszPM1voIcwVhd0DpYZ1HwV05U6p3IS2DE=
+5
View File
@@ -0,0 +1,5 @@
[Interface]
# Name: ssd-nyc-3-1
Address = 10.64.0.3
PrivateKey = APXGKqOxx1gOr587FSN3O3gRGpkGgSjt6zGlTu49UlU=
ListenPort = 51810
+1
View File
@@ -0,0 +1 @@
APXGKqOxx1gOr587FSN3O3gRGpkGgSjt6zGlTu49UlU=
+1
View File
@@ -0,0 +1 @@
av8ni/9ZUyozabzqTjIy1sOnSJuQ9p63Tu9ECVmHB2I=
View File
View File
+65 -16
View File
@@ -4,12 +4,14 @@ import (
"bytes"
"fmt"
"io"
"sort"
"strings"
)
// Env is a shell environment factory for this cluster
type Env struct {
ZoneIterator
RegionIterator
cephFSID string
export bool
@@ -23,9 +25,10 @@ func (m *Cluster) Env(export bool) (*Env, error) {
}
env := &Env{
ZoneIterator: m,
cephFSID: fsid.String(),
export: export,
ZoneIterator: m,
RegionIterator: m,
cephFSID: fsid.String(),
export: export,
}
return env, nil
@@ -43,6 +46,22 @@ func (m *Env) Zones() []int {
return zones
}
// Regions returns the list of primary regions
func (m *Env) Regions() []string {
var regions []string
m.ForEachRegion(func(r *Region) bool {
if r.Cluster != nil {
regions = append(regions, r.Name)
}
return false
})
sort.Strings(regions)
return regions
}
// WriteTo generates environment variables for shell scripts
func (m *Env) WriteTo(w io.Writer) (int64, error) {
var buf bytes.Buffer
@@ -51,6 +70,7 @@ func (m *Env) WriteTo(w io.Writer) (int64, error) {
m.writeEnvVar(&buf, m.cephFSID, "FSID")
}
m.writeEnvVarStrings(&buf, m.Regions(), "REGIONS")
m.writeEnvVarInts(&buf, m.Zones(), "ZONES")
m.ForEachZone(func(z *Zone) bool {
@@ -74,6 +94,9 @@ func (m *Env) writeEnvZone(w io.Writer, z *Zone) {
gateways, _ := z.GatewayIDs()
m.writeEnvVarInts(w, gateways, "ZONE%v_%s", zoneID, "GW")
// ZONE{zoneID}_REGION
m.writeEnvVar(w, genEnvZoneRegion(z), "ZONE%v_%s", zoneID, "REGION")
// Ceph
monitors := z.GetCephMonitors()
// MON{zoneID}_NAME
@@ -85,22 +108,29 @@ func (m *Env) writeEnvZone(w io.Writer, z *Zone) {
}
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 {
var buf bytes.Buffer
for i, v := range value {
if i != 0 {
_, _ = fmt.Fprint(&buf, " ")
}
_, _ = fmt.Fprintf(&buf, "%v", v)
for _, v := range value {
if buf.Len() > 0 {
_, _ = fmt.Fprint(&buf, " ")
}
s = buf.String()
_, _ = fmt.Fprintf(&buf, "%v", v)
}
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) {
@@ -117,7 +147,11 @@ func (m *Env) writeEnvVar(w io.Writer, value string, name string, args ...any) {
if name != "" {
value = strings.TrimSpace(value)
_, _ = fmt.Fprintf(w, "%s%s=%q\n", prefix, name, value)
if value == "" {
_, _ = fmt.Fprintf(w, "%s%s=\n", prefix, name)
} else {
_, _ = fmt.Fprintf(w, "%s%s=%q\n", prefix, name, value)
}
}
}
@@ -135,6 +169,21 @@ func genEnvZoneNodes(z *Zone) string {
return ""
}
func genEnvZoneRegion(z *Zone) string {
var region string
z.ForEachRegion(func(r *Region) bool {
if r.Cluster != nil {
region = r.Name
return true
}
return false
})
return region
}
func genEnvZoneCephMonNames(m Machines) string {
var buf strings.Builder
m.ForEachMachine(func(p *Machine) bool {