services

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Aug 28, 2026 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

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

	ADCMVaultMinTag        = "2.12.0"
	ADCMUnprivilegedMinTag = "3.0.0"
	ADCMWorkerMinTag       = "3.0.0"
	ADCMHealthCheckMinTag  = "3.0.0"

	ADCMLivenessProbePath = "/api/health/live"

	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"

	SecretStorageFileSystem = "FileSystem"
	SecretStorageVault      = "Vault"

	JobExecEnvLocal  = "local"
	JobExecEnvCelery = "celery"

	VaultTypeEmbedded = "embedded"
	VaultTypeExternal = "external"

	VaultTokenKey      = "vault-token"
	VaultCaKey         = "vault-ca"
	VaultClientCertKey = "vault-client-cert"
	VaultClientKeyKey  = "vault-client-key"

	AdcmUrlEnv                 = "DEFAULT_ADCM_URL"
	JobExecEnvEnv              = "SCHEDULER_JOB_EXECUTION_ENVIRONMENT"
	SecretBackendEnv           = "SECRET_BACKEND"
	SecretBackendEnvFileSystem = "FileSystemBackend"
	SecretBackendEnvVault      = "VaultBackend"
	ConsulUrlEnv               = "CONSUL_URL"
	VaultUrlEnv                = "VAULT_URL"
	VaultMountPointEnv         = "VAULT_MOUNT_POINT"
	VaultTokenFileEnv          = "VAULT_TOKEN_FILE"
	VaultCaFileEnv             = "VAULT_CA_FILE"
	VaultClientCertFileEnv     = "VAULT_CLIENT_CERT_FILE"
	VaultClientKeyFileEnv      = "VAULT_CLIENT_KEY_FILE"

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

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

	XSecretsKey = "x-secrets"

	InitContainerProfile    = "init"
	PrimaryContainerProfile = "primary"
)
View Source
const BaoDevRootTokenEnv = "BAO_DEV_ROOT_TOKEN_ID"

Variables

This section is empty.

Functions

func AdcmFamilyService added in v1.2.0

func AdcmFamilyService(appType string) bool

func ChownContainer

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

func LatestReleasedTag added in v1.2.0

func LatestReleasedTag(image string) (string, error)

LatestReleasedTag returns the highest released (non-prerelease) semver tag available for the image in its registry.

func PauseContainer

func PauseContainer(prj *composeTypes.Project)

func RegistryVersions added in v1.2.0

func RegistryVersions(image string) ([]semver.Version, error)

RegistryVersions fetches the semver-parsed tags for the given image reference from its registry, sorted in ascending order. Tags that are not valid semver are ignored.

Types

type AdcmConfig

type AdcmConfig struct {
	Count          uint8  `yaml:"adcm-count"`
	WorkerCount    *uint8 `yaml:"adcm-worker-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"`

	VaultUrl            string `yaml:"adcm-vault-url"`
	VaultTokenFile      string `yaml:"adcm-vault-token-file"`
	VaultMountPoint     string `yaml:"adcm-vault-mount-point"`
	VaultCaFile         string `yaml:"adcm-vault-ca-file"`
	VaultClientCertFile string `yaml:"adcm-vault-client-cert-file"`
	VaultClientKeyFile  string `yaml:"adcm-vault-client-key-file"`
	// 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 {
	SecretStorage string `yaml:"secret-storage"`
	VaultType     string `yaml:"vault-type"`
	JobExecEnv    string `yaml:"job-execution-environment"`

	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 WithAdcmWorkerCount added in v1.2.0

func WithAdcmWorkerCount(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