config

package
v0.4.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 10, 2025 License: Apache-2.0 Imports: 7 Imported by: 0

README

Config Package

Overview

The config package manages configurations in Go applications, ensuring compatibility between config.yaml and setup.env. setup.env is used to setup environment variables.

Note - When both environment variables and config.yaml settings are present, the package prioritizes environment variables, overriding equivalent settings in config.yaml.

Compatible configurations example

The below configurations are compatible in this project.

  • setup.env contains:

    export LOGFILE_PATH=beetle.log
    
  • config.yaml has:

    logfile:
      path: ./beetle.log
    

How to use it

  • Get a value using Viper

Note - It's just my preference. config.Init() can be used.

// Package main is the starting point of CM-Beetle
package main

import (
    // other packages

    "github.com/cloud-barista/cm-beetle/pkg/config"
)

func init() {

	common.SystemReady = false

	// Initialize the configuration from "config.yaml" file or environment variables
	config.Init()

}

func main() {
    // Application logic follows
}

Wrapping Up

This setup illustrates the package's ability to harmonize settings from both setup.env and config.yaml, showcasing its versatility and ease of use.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	RuntimeConfig Config
	Beetle        BeetleConfig
	Tumblebug     TumblebugConfig
)

Functions

func Init

func Init()

func NVL added in v0.2.1

func NVL(str string, def string) string

NVL is func for null value logic

Types

type AllowConfig added in v0.2.1

type AllowConfig struct {
	Origins string `mapstructure:"origins"`
}

type ApiConfig added in v0.2.1

type ApiConfig struct {
	Allow    AllowConfig `mapstructure:"allow"`
	Auth     AuthConfig  `mapstructure:"auth"`
	Username string      `mapstructure:"username"`
	Password string      `mapstructure:"password"`
}

type AuthConfig added in v0.2.1

type AuthConfig struct {
	Enabled bool `mapstructure:"enabled"`
}

type AutoControlConfig added in v0.2.1

type AutoControlConfig struct {
	DurationMilliSec int `mapstructure:"duration_ms"`
}

type BeetleConfig added in v0.2.1

type BeetleConfig struct {
	Root        string            `mapstructure:"root"`
	Self        SelfConfig        `mapstructure:"self"`
	API         ApiConfig         `mapstructure:"api"`
	LKVStore    LkvStoreConfig    `mapstructure:"lkvstore"`
	LogFile     LogfileConfig     `mapstructure:"logfile"`
	LogLevel    string            `mapstructure:"loglevel"`
	LogWriter   string            `mapstructure:"logwriter"`
	Node        NodeConfig        `mapstructure:"node"`
	AutoControl AutoControlConfig `mapstructure:"autocontrol"`
	Tumblebug   TumblebugConfig   `mapstructure:"tumblebug"`
}

type Config added in v0.2.1

type Config struct {
	Beetle BeetleConfig `mapstructure:"beetle"`
}

type LkvStoreConfig added in v0.2.1

type LkvStoreConfig struct {
	Path string `mapstructure:"path"`
}

type LogfileConfig added in v0.2.1

type LogfileConfig struct {
	Path       string `mapstructure:"path"`
	MaxSize    int    `mapstructure:"maxsize"`
	MaxBackups int    `mapstructure:"maxbackups"`
	MaxAge     int    `mapstructure:"maxage"`
	Compress   bool   `mapstructure:"compress"`
}

type NodeConfig added in v0.2.1

type NodeConfig struct {
	Env string `mapstructure:"env"`
}

type SelfConfig added in v0.2.1

type SelfConfig struct {
	Endpoint string `mapstructure:"endpoint"`
}

type TumblebugApiConfig added in v0.2.1

type TumblebugApiConfig struct {
	Username string `mapstructure:"username"`
	Password string `mapstructure:"password"`
}

type TumblebugConfig added in v0.2.1

type TumblebugConfig struct {
	Endpoint string             `mapstructure:"endpoint"`
	RestUrl  string             `mapstructure:"resturl"`
	API      TumblebugApiConfig `mapstructure:"api"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL