Compare commits

..

No commits in common. "00852ec1d3f6386f310180f3a9e256489b5525e1" and "9780947805438fc884327528d94f11817ca04ee3" have entirely different histories.

11 changed files with 33 additions and 47 deletions

View file

@ -32,7 +32,7 @@ jobs:
matrix: matrix:
goos: [linux] goos: [linux]
goarch: [amd64] goarch: [amd64]
binaries: [db, metadata, metacli, agent] binaries: [db, metadata, meta_cli, agent]
uses: ./.forgejo/workflows/build.yml uses: ./.forgejo/workflows/build.yml
with: with:
tag: ${{ needs.set-release-target.outputs.release_cible }} tag: ${{ needs.set-release-target.outputs.release_cible }}

View file

@ -5,8 +5,9 @@ import (
"fmt" "fmt"
configuration "git.g3e.fr/syonad/two/internal/config/agent" configuration "git.g3e.fr/syonad/two/internal/config/agent"
"git.g3e.fr/syonad/two/internal/metadata" "git.g3e.fr/syonad/two/internal/load_db/nocloud"
"git.g3e.fr/syonad/two/pkg/db/kv" "git.g3e.fr/syonad/two/pkg/db/kv"
"git.g3e.fr/syonad/two/pkg/systemd"
) )
func main() { func main() {
@ -23,6 +24,8 @@ func main() {
flag.Parse() flag.Parse()
service, _ := systemd.New()
conf, err := configuration.LoadConfig(*conf_file) conf, err := configuration.LoadConfig(*conf_file)
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
@ -35,15 +38,21 @@ func main() {
defer db.Close() defer db.Close()
if *start { if *start {
metadata.StartMetadata(metadata.NoCloudConfig{ nocloud.LoadNcCloudInDB(nocloud.Config{
VpcName: *vpc, VpcName: *vpc,
Name: *vm_name, Name: *vm_name,
BindIP: *bind_ip, BindIP: *bind_ip,
BindPort: *bind_port, BindPort: *bind_port,
Password: *password, Password: *password,
SSHKEY: *ssh_key, SSHKEY: *ssh_key,
}, db, *dryrun) }, db)
if !*dryrun {
service.Start("metadata@" + *vm_name)
}
} else if *stop { } else if *stop {
metadata.StopMetadata(*vm_name, db, *dryrun) nocloud.UnLoadNoCloudInDB(*vm_name, db)
if !*dryrun {
service.Stop("metadata@" + *vm_name)
}
} }
} }

View file

@ -1,4 +1,4 @@
package metadata package nocloud
import ( import (
"bytes" "bytes"
@ -12,7 +12,7 @@ import (
//go:embed templates/*.tmpl //go:embed templates/*.tmpl
var templateFS embed.FS var templateFS embed.FS
func RenderConfig(path string, cfg NoCloudConfig) (string, error) { func renderConfig(path string, cfg Config) (string, error) {
tpl, err := template.ParseFS(templateFS, path) tpl, err := template.ParseFS(templateFS, path)
if err != nil { if err != nil {
return "", err return "", err
@ -26,11 +26,11 @@ func RenderConfig(path string, cfg NoCloudConfig) (string, error) {
return buf.String(), nil return buf.String(), nil
} }
func LoadNcCloudInDB(config NoCloudConfig, db *badger.DB) { func LoadNcCloudInDB(config Config, db *badger.DB) {
meta_data, _ := RenderConfig("templates/meta-data.tmpl", config) meta_data, _ := renderConfig("templates/meta-data.tmpl", config)
user_data, _ := RenderConfig("templates/user-data.tmpl", config) user_data, _ := renderConfig("templates/user-data.tmpl", config)
network_config, _ := RenderConfig("templates/network-config.tmpl", config) network_config, _ := renderConfig("templates/network-config.tmpl", config)
vendor_data, _ := RenderConfig("templates/vendor-data.tmpl", config) vendor_data, _ := renderConfig("templates/vendor-data.tmpl", config)
kv.AddInDB(db, "metadata/"+config.Name+"/meta-data", meta_data) kv.AddInDB(db, "metadata/"+config.Name+"/meta-data", meta_data)
kv.AddInDB(db, "metadata/"+config.Name+"/user-data", user_data) kv.AddInDB(db, "metadata/"+config.Name+"/user-data", user_data)

View file

@ -0,0 +1,10 @@
package nocloud
type Config struct {
VpcName string
BindIP string
BindPort string
Name string
Password string
SSHKEY string
}

View file

@ -1,26 +0,0 @@
package metadata
import (
"git.g3e.fr/syonad/two/pkg/systemd"
"github.com/dgraph-io/badger/v4"
)
func StartMetadata(config NoCloudConfig, db *badger.DB, dryrun bool) {
service, _ := systemd.New()
defer service.Close()
LoadNcCloudInDB(config, db)
if !dryrun {
service.Start("metadata@" + config.Name)
}
}
func StopMetadata(vm_name string, db *badger.DB, dryrun bool) {
service, _ := systemd.New()
defer service.Close()
UnLoadNoCloudInDB(vm_name, db)
if !dryrun {
service.Stop("metadata@" + vm_name)
}
}

View file

@ -18,12 +18,3 @@ type ServerConfig struct {
ConfFile string ConfFile string
VmName string VmName string
} }
type NoCloudConfig struct {
VpcName string
BindIP string
BindPort string
Name string
Password string
SSHKEY string
}

View file

@ -1,6 +1,7 @@
package kv package kv
import ( import (
"fmt"
"log" "log"
"github.com/dgraph-io/badger/v4" "github.com/dgraph-io/badger/v4"
@ -28,6 +29,7 @@ func DeleteInDB(db *badger.DB, key string) error {
key := item.Key() key := item.Key()
k := append([]byte{}, key...) k := append([]byte{}, key...)
fmt.Println(string(k))
if err := deleteKey(db, string(k)); err != nil { if err := deleteKey(db, string(k)); err != nil {
return err return err
} }