| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package config
- import (
- "encoding/json"
- "goseg/defaults"
- "goseg/structs"
- "os"
- "path/filepath"
- )
- // write a hardcoded default conf to disk
- func CreateDefaultNetdataConf() error {
- defaultConfig := defaults.NetdataConfig
- path := filepath.Join(BasePath, "settings", "netdata.json")
- if err := os.MkdirAll(filepath.Dir(path), os.ModePerm); err != nil {
- return err
- }
- file, err := os.Create(path)
- if err != nil {
- return err
- }
- defer file.Close()
- encoder := json.NewEncoder(file)
- encoder.SetIndent("", " ")
- if err := encoder.Encode(&defaultConfig); err != nil {
- return err
- }
- return nil
- }
- // write a conf to disk from version server info
- func UpdateNetdataConf() error {
- conf := Conf()
- releaseChannel := conf.UpdateBranch
- netdataRepo := VersionInfo.Netdata.Repo
- amdHash := VersionInfo.Netdata.Amd64Sha256
- armHash := VersionInfo.Netdata.Arm64Sha256
- newConfig := structs.NetdataConfig{
- NetdataName: "netdata",
- Repo: netdataRepo,
- NetdataVersion: releaseChannel,
- Amd64Sha256: amdHash,
- Arm64Sha256: armHash,
- CapAdd: []string{"SYS_PTRACE"},
- Port: 19999,
- Restart: "unless-stopped",
- SecurityOpt: "apparmor=unconfined",
- Volumes: []string{
- "netdataconfig:/etc/netdata",
- "netdatalib:/var/lib/netdata",
- "netdatacache:/var/cache/netdata",
- "/etc/passwd:/host/etc/passwd:ro",
- "/etc/group:/host/etc/group:ro",
- "/proc:/host/proc:ro",
- "/sys:/host/sys:ro",
- "/etc/os-release:/host/etc/os-release:ro",
- },
- }
- path := filepath.Join(BasePath, "settings", "netdata.json")
- if err := os.MkdirAll(filepath.Dir(path), os.ModePerm); err != nil {
- return err
- }
- file, err := os.Create(path)
- if err != nil {
- return err
- }
- defer file.Close()
- encoder := json.NewEncoder(file)
- encoder.SetIndent("", " ")
- if err := encoder.Encode(&newConfig); err != nil {
- return err
- }
- return nil
- }
|