services

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Nov 25, 2025 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ADCMImage                 = "hub.arenadata.io/adcm/adcm"
	ADCMTag                   = "2.7.1"
	ADCMPublishPort    uint16 = 8000
	ADCMPublishSSLPort uint16 = 8443
	ADCMMountPath             = "/adcm/data"

	ADPGImage                = "hub.arenadata.io/adcm/postgres"
	ADPGTag                  = "v16.3.1"
	ADPGPublishPort   uint16 = 5432
	ADPGDataMountPath        = "/data"

	ConsulImage              = "hub.arenadata.io/adcm/consul"
	ConsulTag                = "v1.0.0"
	ConsulPublishPort uint16 = 8500

	VaultImage              = "openbao/openbao"
	VaultTag                = "2.2.0"
	VaultPublishPort uint16 = 8200
)
View Source
const (
	PgDbName = "db-name"
	PgDbUser = "db-user"
	PgDbPass = "db-pass"

	PgSslCaKey   = "pg-ssl-ca"
	PgSslCertKey = "pg-ssl-cert"
	PgSslKeyKey  = "pg-ssl-key"

	VaultDeployModeNonHa = "non-ha"
	VaultDeployModeHa    = "ha"
	VaultDeployModeDev   = "dev"
	VaultUnsealData      = "unseal-data"

	AdcmName   = "adcm"
	AdpgName   = "adpg"
	ConsulName = "consul"
	VaultName  = "vault"
	PauseName  = "pause"

	ConfigJson = "config.json"
	PemKey     = "key.pem"
	PemCert    = "cert.pem"
	PemCa      = "ca.pem"

	XSecretsKey = "x-secrets"

	InitContainerProfile    = "init"
	PrimaryContainerProfile = "primary"
)

Variables

This section is empty.

Functions

func ChownContainer

func ChownContainer(prj *composeTypes.Project, svc composeTypes.ServiceConfig) string

func PauseContainer

func PauseContainer(prj *composeTypes.Project)

Types

type AdcmConfig

type AdcmConfig struct {
	Count          uint8  `yaml:"adcm-count"`
	DBHost         string `yaml:"adcm-db-host"`
	DBPort         uint16 `yaml:"adcm-db-port"`
	DBName         string `yaml:"adcm-db-name"`
	DBUser         string `yaml:"adcm-db-user"`
	DBPassword     string `yaml:"adcm-db-pass"`
	DBSSLMode      string `yaml:"adcm-db-ssl-mode"`
	DBSSLCaFile    string `yaml:"adcm-db-ssl-ca-file"`
	DBSSLCertFile  string `yaml:"adcm-db-ssl-cert-file"`
	DBSSLKeyFile   string `yaml:"adcm-db-ssl-key-file"`
	SSLKeyFile     string `yaml:"adcm-ssl-key-file"`
	SSLCertFile    string `yaml:"adcm-ssl-cert-file"`
	Image          string `yaml:"adcm-image"`
	Tag            string `yaml:"adcm-tag"`
	PublishPort    uint16 `yaml:"adcm-publish-port"`
	PublishSSLPort uint16 `yaml:"adcm-publish-ssl-port"`
	Url            string `yaml:"adcm-url"`
	Volume         string `yaml:"adcm-volume"`
	// contains filtered or unexported fields
}

type AdpgConfig

type AdpgConfig struct {
	Password    string `yaml:"adpg-pass"`
	Image       string `yaml:"adpg-image"`
	Tag         string `yaml:"adpg-tag"`
	PublishPort uint16 `yaml:"adpg-publish-port"`
	Volume      string `yaml:"adpg-volume"`
	// contains filtered or unexported fields
}

type ConsulConfig

type ConsulConfig struct {
	Image       string `yaml:"consul-image"`
	Tag         string `yaml:"consul-tag"`
	PublishPort uint16 `yaml:"consul-publish-port"`
	// contains filtered or unexported fields
}

type InitConfig

type InitConfig struct {
	Adcm   AdcmConfig   `yaml:",inline"`
	Adpg   AdpgConfig   `yaml:",inline"`
	Consul ConsulConfig `yaml:",inline"`
	Vault  VaultConfig  `yaml:",inline"`
}

type Project

type Project struct {
	// contains filtered or unexported fields
}

func New

func New(name string, opts ...ProjectOption) (*Project, error)

func (*Project) AppendHelpers

func (prj *Project) AppendHelpers(hlp ...helpers.ModHelper)

func (*Project) ApplyHelpers

func (prj *Project) ApplyHelpers() error

func (*Project) Build

func (prj *Project) Build() error

func (*Project) Services

func (prj *Project) Services() []service

func (*Project) ToYaml

func (prj *Project) ToYaml(w io.Writer) (err error)

type ProjectOption

type ProjectOption func(*Project) error

func WithAdcmCount

func WithAdcmCount(n uint8) ProjectOption

func WithAdpg

func WithAdpg(b bool) ProjectOption

func WithConfigFile

func WithConfigFile(file string) ProjectOption

func WithConsul

func WithConsul(b bool) ProjectOption

func WithCrypt

func WithCrypt(crypt secrets.Secrets) ProjectOption

func WithInteractive

func WithInteractive(b bool) ProjectOption

func WithVault

func WithVault(b bool) ProjectOption

type VaultBackend

type VaultBackend struct {
	Postgresql VaultBackendPostgresql `json:"postgresql"`
}

type VaultBackendPostgresql

type VaultBackendPostgresql struct {
	ConnectionUrl string `json:"connection_url"`
	HA            bool   `json:"ha_enabled,omitempty"`
}

type VaultConfig

type VaultConfig struct {
	DBHost        string `yaml:"vault-db-host"`
	DBPort        uint16 `yaml:"vault-db-port"`
	DBName        string `yaml:"vault-db-name"`
	DBUser        string `yaml:"vault-db-user"`
	DBPassword    string `yaml:"vault-db-pass"`
	DBSSLMode     string `yaml:"vault-db-ssl-mode"`
	DBSSLCaFile   string `yaml:"vault-db-ssl-ca-file"`
	DBSSLCertFile string `yaml:"vault-db-ssl-cert-file"`
	DBSSLKeyFile  string `yaml:"vault-db-ssl-key-file"`
	SSLKeyFile    string `yaml:"vault-ssl-key-file"`
	SSLCertFile   string `yaml:"vault-ssl-cert-file"`
	Image         string `yaml:"vault-image"`
	Tag           string `yaml:"vault-tag"`
	PublishPort   uint16 `yaml:"vault-publish-port"`
	Mode          string `yaml:"vault-mode"`
	UI            *bool  `yaml:"vault-ui"`
	// contains filtered or unexported fields
}

type VaultConfigFile

type VaultConfigFile struct {
	Listener     []map[string]any `json:"listener"`
	VaultStorage `json:",inline"`
}

type VaultStorage

type VaultStorage struct {
	Storage VaultBackend `json:"storage"`
}

type XSecrets

type XSecrets struct {
	AgeRecipient string            `yaml:"age_recipient,omitempty" mapstructure:"age_recipient,omitempty"`
	Key          string            `yaml:"key,omitempty" mapstructure:"key,omitempty"`
	Data         map[string]string `yaml:"data,omitempty" mapstructure:"data,omitempty"`
	UnMapped     map[string]string `yaml:"un-mapped,omitempty" mapstructure:"un-mapped,omitempty"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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