Documentation
¶
Index ¶
- Constants
- Variables
- func ApplicationProjectName(namespace, application, environment string) string
- func CacheProjectEnvironment(project string, environment map[string]string)
- func ClearProjectEnvironment(project string)
- func ControlPlaneNetworkName(resourceProject string) string
- func ControlPlaneServiceAccessNeedsBootstrapRestart(files Files) (bool, error)
- func DataDir(stateDir string) (string, error)
- func EnsureServiceAccess(ctx context.Context, issuer serviceaccess.Issuer, files Files) error
- func IsPortBindingConflict(err error) bool
- func RequireCapabilities(provider Provider, required ...RuntimeCapability) error
- func SharedProjectName(namespace string) string
- func SharedResourceProjectName(namespace string) string
- func StateDir(stateDir string) (string, error)
- func TakeProjectEnvironment(project string) map[string]string
- type Compose
- func (c Compose) BuildProjectFilesSelectedProgress(ctx context.Context, project, workdir string, environment map[string]string, ...) error
- func (c Compose) CommandPath() string
- func (c Compose) Config(ctx context.Context, composeFile, envFile string) error
- func (c Compose) ConfigJSONProjectFilesEnv(ctx context.Context, project, workdir string, environment map[string]string, ...) (string, error)
- func (c Compose) ConfigProject(ctx context.Context, project, composeFile, envFile string) error
- func (c Compose) ConfigProjectFiles(ctx context.Context, project, workdir string, composeFiles ...string) error
- func (c Compose) ConfigProjectFilesEnv(ctx context.Context, project, workdir string, environment map[string]string, ...) error
- func (c Compose) ConnectManagedNetwork(ctx context.Context, network, container, alias string) error
- func (c Compose) ContainerExposedTCPPorts(ctx context.Context, container string) ([]int, error)
- func (c Compose) ContainerHealthStatus(ctx context.Context, container string) (string, error)
- func (c Compose) ContainerLogConfigProjectService(ctx context.Context, project, service string) (string, string, error)
- func (c Compose) ContainerNetworks(ctx context.Context, container string) ([]string, error)
- func (c Compose) DestroyOwnedProjectResources(ctx context.Context, project string, resources []ProjectResource) error
- func (c Compose) DestroyProject(ctx context.Context, project, composeFile, envFile string) error
- func (c Compose) DestroyProjectRemoveOrphans(ctx context.Context, project, composeFile, envFile string) error
- func (c Compose) DiagnosticsProject(ctx context.Context, project, composeFile, envFile string) string
- func (c Compose) DirectOutput(ctx context.Context, args ...string) (string, error)
- func (c Compose) DisconnectManagedNetwork(ctx context.Context, network, container string) error
- func (c Compose) Down(ctx context.Context, composeFile, envFile string) error
- func (c Compose) DownProject(ctx context.Context, project, composeFile, envFile string) error
- func (c Compose) DownProjectFiles(ctx context.Context, project, workdir string, composeFiles ...string) error
- func (c Compose) DownProjectFilesEnv(ctx context.Context, project, workdir string, environment map[string]string, ...) error
- func (c Compose) DownProjectRemoveOrphans(ctx context.Context, project, composeFile, envFile string) error
- func (c Compose) EnsureManagedNetwork(ctx context.Context, name string) error
- func (c Compose) EnsureOwnedVolume(ctx context.Context, project, volume string) error
- func (c Compose) ExecProject(ctx context.Context, project, composeFile, envFile, service string, ...) (string, error)
- func (c Compose) ExecProjectFiles(ctx context.Context, project, workdir, service string, composeFiles []string, ...) (string, error)
- func (c Compose) ExecProjectFilesInput(ctx context.Context, project, workdir, service string, composeFiles []string, ...) (string, error)
- func (c Compose) ExecProjectInput(ctx context.Context, project, composeFile, envFile string, input []byte, ...) (string, error)
- func (c Compose) ExportOwnedVolume(ctx context.Context, project, volume string) ([]byte, error)
- func (c Compose) InspectProjectResource(ctx context.Context, project string, resource ProjectResource) (bool, error)
- func (c Compose) InspectProjectResources(ctx context.Context, project string, resources []ProjectResource) ([]ProjectResource, error)
- func (c Compose) ListOwnedProjectResources(ctx context.Context, project string) ([]ProjectResource, error)
- func (c Compose) ListRuntimeContainers(ctx context.Context) ([]RuntimeContainer, error)
- func (Compose) LogCollectionMode() LogCollectionMode
- func (c Compose) LogsProject(ctx context.Context, project, composeFile, envFile string, services ...string) (string, error)
- func (c Compose) NetworkProjectOwner(ctx context.Context, network string) (string, error)
- func (c Compose) ProjectServiceImageIdentity(ctx context.Context, project, service string) (ImageIdentity, error)
- func (c Compose) ProjectServiceLogDriver(ctx context.Context, project, service string) (string, error)
- func (c Compose) PullImage(ctx context.Context, image string) error
- func (c Compose) RemoveManagedNetwork(ctx context.Context, name string) error
- func (c Compose) RemoveProjectServices(ctx context.Context, project string, services ...string) error
- func (c Compose) RestoreOwnedVolume(ctx context.Context, project, volume string, archive []byte) error
- func (c Compose) RunProjectFilesEnv(ctx context.Context, project, workdir string, environment map[string]string, ...) error
- func (c Compose) RunningServicesProject(ctx context.Context, project, composeFile, envFile string) ([]string, error)
- func (c Compose) RunningServicesProjectFiles(ctx context.Context, project, workdir string, composeFiles ...string) ([]string, error)
- func (c Compose) RunningServicesProjectFilesEnv(ctx context.Context, project, workdir string, environment map[string]string, ...) ([]string, error)
- func (c Compose) ServiceStatesFromRuntimeLabels(ctx context.Context, project string) ([]ServiceState, error)
- func (c Compose) ServiceStatesProjectFilesEnv(ctx context.Context, project, workdir string, environment map[string]string, ...) ([]ServiceState, error)
- func (c Compose) ServicesProjectFiles(ctx context.Context, project, workdir string, composeFiles ...string) ([]string, error)
- func (c Compose) ServicesProjectFilesEnv(ctx context.Context, project, workdir string, environment map[string]string, ...) ([]string, error)
- func (c Compose) Status(ctx context.Context, composeFile, envFile string) (string, error)
- func (c Compose) StatusProject(ctx context.Context, project, composeFile, envFile string) (string, error)
- func (c Compose) StatusProjectFiles(ctx context.Context, project, workdir string, composeFiles ...string) (string, error)
- func (c Compose) StopOwnedProjectContainers(ctx context.Context, project string) error
- func (c Compose) StopProject(ctx context.Context, project, composeFile, envFile string) error
- func (c Compose) StopProjectFilesSelected(ctx context.Context, project, workdir string, environment map[string]string, ...) error
- func (c Compose) Up(ctx context.Context, composeFile, envFile string) error
- func (c Compose) UpProject(ctx context.Context, project, composeFile, envFile string) error
- func (c Compose) UpProjectFiles(ctx context.Context, project, workdir string, composeFiles ...string) error
- func (c Compose) UpProjectFilesSelected(ctx context.Context, project, workdir string, environment map[string]string, ...) error
- func (c Compose) UpProjectFilesSelectedForceRecreateNoBuild(ctx context.Context, project, workdir string, environment map[string]string, ...) error
- func (c Compose) UpProjectFilesSelectedNoBuildProgress(ctx context.Context, project, workdir string, environment map[string]string, ...) error
- func (c Compose) UpProjectFilesSelectedProgress(ctx context.Context, project, workdir string, environment map[string]string, ...) error
- func (c Compose) UpProjectProgress(ctx context.Context, project, composeFile, envFile string, ...) error
- func (c Compose) VerifyProjectServiceLogCollection(ctx context.Context, project, service, expectedTag string) error
- type Config
- type Files
- func EnsureFiles(stateDir string) (Files, error)
- func EnsureFilesForProject(stateDir, project string, ports Ports) (Files, error)
- func EnsureFilesForProjectAndResources(stateDir, project, resourceProject string, ports Ports) (Files, error)
- func EnsureFilesWithPorts(stateDir string, ports Ports) (Files, error)
- func ExistingFiles(stateDir string) (Files, error)
- func ExistingFilesForProject(stateDir, project string) (Files, error)
- type ImageIdentity
- type LogCollectionMode
- type LogSourceAdapter
- type Ports
- type ProjectResource
- type Provider
- type ProviderCapabilities
- type ProviderDescriptor
- type ProviderFactory
- type ProviderKind
- type ProviderRegistration
- type ProviderRegistry
- type PublishedPort
- type RuntimeCapability
- type RuntimeContainer
- type RuntimeProvider
- type ServiceState
Constants ¶
const ( LogCollectionSyslog = runtimecontract.LogCollectionSyslog LogCollectionJournald = runtimecontract.LogCollectionJournald )
const ( ProviderDocker = runtimecontract.ProviderDocker ProviderPodman = runtimecontract.ProviderPodman ProviderKubernetes = runtimecontract.ProviderKubernetes ProviderOpenShift = runtimecontract.ProviderOpenShift )
const ( CapabilityWorkloadLifecycle = runtimecontract.CapabilityWorkloadLifecycle CapabilityServiceExec = runtimecontract.CapabilityServiceExec CapabilityPublishedPorts = runtimecontract.CapabilityPublishedPorts CapabilityResourceOwnership = runtimecontract.CapabilityResourceOwnership )
const ( DefaultPostgresPort = 5432 DefaultOpenBaoPort = 8200 )
const RuntimeProviderContractVersion = runtimecontract.RuntimeProviderContractVersion
Variables ¶
var ErrResourceOwnership = errors.New("runtime resource ownership does not match the application project")
var ErrRuntimeNotFound = errors.New("container runtime orchestration not found")
Functions ¶
func ApplicationProjectName ¶ added in v0.4.16
ApplicationProjectName returns the operator-visible Compose project for one application on a target. Empty namespace means the implicit local target.
func CacheProjectEnvironment ¶ added in v0.4.17
func ClearProjectEnvironment ¶ added in v0.4.17
func ClearProjectEnvironment(project string)
func ControlPlaneNetworkName ¶ added in v0.4.17
func ControlPlaneServiceAccessNeedsBootstrapRestart ¶ added in v0.4.17
func DataDir ¶ added in v0.4.2
DataDir resolves the BaseHarbor data root that owns runtime-global metadata. Explicit state-directory overrides remain self-contained. Without an override, metadata is stored beside runtime/ so creating it cannot change legacy/global runtime selection.
func EnsureServiceAccess ¶ added in v0.4.15
func IsPortBindingConflict ¶
IsPortBindingConflict reports whether a Docker Compose or Podman runtime failure is a host-port allocation conflict. Runtime engines phrase the same condition differently, so keep the classifier deliberately narrow but multi-engine.
func RequireCapabilities ¶ added in v0.4.0
func RequireCapabilities(provider Provider, required ...RuntimeCapability) error
func SharedProjectName ¶ added in v0.4.16
SharedProjectName returns the operator-visible Compose project for target-wide BaseHarbor platform services. Empty namespace means the implicit local target.
func SharedResourceProjectName ¶ added in v0.4.16
SharedResourceProjectName returns the stable physical resource prefix for target-wide platform resources. It is intentionally independent from the operator-visible consolidated Compose project name.
func StateDir ¶ added in v0.4.2
StateDir resolves the authoritative BaseHarbor runtime state directory without mutating it.
func TakeProjectEnvironment ¶ added in v0.4.17
Types ¶
type Compose ¶
type Compose struct {
// contains filtered or unexported fields
}
Compose provides the small lifecycle surface BaseHarbor needs from a container runtime. Application code should not shell out to Docker/Podman directly.
func NewCLIBackend ¶ added in v0.4.17
func (Compose) BuildProjectFilesSelectedProgress ¶ added in v0.4.15
func (Compose) CommandPath ¶ added in v0.4.17
func (Compose) ConfigJSONProjectFilesEnv ¶
func (Compose) ConfigProject ¶
func (Compose) ConfigProjectFiles ¶
func (Compose) ConfigProjectFilesEnv ¶
func (Compose) ConnectManagedNetwork ¶ added in v0.4.8
func (Compose) ContainerExposedTCPPorts ¶ added in v0.4.8
func (Compose) ContainerHealthStatus ¶ added in v0.4.8
func (Compose) ContainerLogConfigProjectService ¶ added in v0.4.16
func (c Compose) ContainerLogConfigProjectService(ctx context.Context, project, service string) (string, string, error)
ContainerLogConfigProjectService returns the runtime logging driver and tag for the running container that belongs to an exact Compose project/service.
func (Compose) ContainerNetworks ¶ added in v0.4.8
func (Compose) DestroyOwnedProjectResources ¶ added in v0.4.11
func (Compose) DestroyProject ¶
func (Compose) DestroyProjectRemoveOrphans ¶ added in v0.4.4
func (Compose) DiagnosticsProject ¶ added in v0.4.9
func (c Compose) DiagnosticsProject(ctx context.Context, project, composeFile, envFile string) string
DiagnosticsProject captures stopped/restarting containers and recent logs before a fail-closed lifecycle rollback removes provider resources.
func (Compose) DirectOutput ¶ added in v0.4.17
func (Compose) DisconnectManagedNetwork ¶ added in v0.4.8
func (Compose) DownProject ¶
func (Compose) DownProjectFiles ¶
func (Compose) DownProjectFilesEnv ¶
func (Compose) DownProjectRemoveOrphans ¶ added in v0.4.4
func (Compose) EnsureManagedNetwork ¶ added in v0.4.8
func (Compose) EnsureOwnedVolume ¶ added in v0.4.16
func (Compose) ExecProject ¶
func (Compose) ExecProjectFiles ¶
func (Compose) ExecProjectFilesInput ¶ added in v0.4.15
func (Compose) ExecProjectInput ¶
func (c Compose) ExecProjectInput(ctx context.Context, project, composeFile, envFile string, input []byte, service string, args ...string) (string, error)
ExecProjectInput executes a command inside a Compose service while supplying stdin without placing that input in the host process argument list. It is intended for sensitive operator flows such as OpenBao unseal/authentication.
func (Compose) ExportOwnedVolume ¶ added in v0.4.16
func (Compose) InspectProjectResource ¶
func (c Compose) InspectProjectResource(ctx context.Context, project string, resource ProjectResource) (bool, error)
InspectProjectResource verifies an exact runtime resource name before a destructive operation. A resource with the expected name but a different Compose project label is an ownership conflict, never an implicit match.
func (Compose) InspectProjectResources ¶ added in v0.4.15
func (c Compose) InspectProjectResources(ctx context.Context, project string, resources []ProjectResource) ([]ProjectResource, error)
InspectProjectResources verifies runtime resource existence and ownership in batches by kind. This keeps ownership fail-closed while avoiding repeated list/inspect round-trips on Podman.
func (Compose) ListOwnedProjectResources ¶ added in v0.4.18
func (Compose) ListRuntimeContainers ¶ added in v0.4.17
func (c Compose) ListRuntimeContainers(ctx context.Context) ([]RuntimeContainer, error)
func (Compose) LogCollectionMode ¶ added in v0.4.17
func (Compose) LogCollectionMode() LogCollectionMode
func (Compose) LogsProject ¶ added in v0.4.9
func (Compose) NetworkProjectOwner ¶ added in v0.4.8
func (Compose) ProjectServiceImageIdentity ¶ added in v0.4.15
func (Compose) ProjectServiceLogDriver ¶ added in v0.4.16
func (Compose) RemoveManagedNetwork ¶ added in v0.4.8
func (Compose) RemoveProjectServices ¶ added in v0.4.17
func (c Compose) RemoveProjectServices(ctx context.Context, project string, services ...string) error
RemoveProjectServices removes only containers whose runtime ownership labels match the exact project and one of the requested legacy service names. It is intentionally narrower than compose --remove-orphans so consolidated bh-* projects cannot prune sibling modules.
func (Compose) RestoreOwnedVolume ¶ added in v0.4.16
func (Compose) RunProjectFilesEnv ¶ added in v0.3.0
func (c Compose) RunProjectFilesEnv(ctx context.Context, project, workdir string, environment map[string]string, stdin io.Reader, stdout, stderr io.Writer, composeFiles []string, args ...string) error
RunProjectFilesEnv runs a workload command with caller-owned streams through Docker Compose. Podman owns the equivalent operation in PodmanProvider.
func (Compose) RunningServicesProject ¶
func (Compose) RunningServicesProjectFiles ¶
func (Compose) RunningServicesProjectFilesEnv ¶
func (Compose) ServiceStatesFromRuntimeLabels ¶ added in v0.4.17
func (Compose) ServiceStatesProjectFilesEnv ¶ added in v0.3.0
func (c Compose) ServiceStatesProjectFilesEnv(ctx context.Context, project, workdir string, environment map[string]string, composeFiles ...string) ([]ServiceState, error)
ServiceStatesProjectFilesEnv returns Compose service state without exposing generated container names to application code. Modern Compose implementations expose JSON state including container health and published ports. Older compatible implementations fall back to the portable running-service query; in that case Health and Publishers remain empty rather than inventing state.
func (Compose) ServicesProjectFiles ¶
func (Compose) ServicesProjectFilesEnv ¶
func (Compose) StatusProject ¶
func (Compose) StatusProjectFiles ¶
func (Compose) StopOwnedProjectContainers ¶ added in v0.4.18
func (Compose) StopProject ¶ added in v0.4.8
func (Compose) StopProjectFilesSelected ¶
func (Compose) UpProjectFiles ¶
func (Compose) UpProjectFilesSelected ¶
func (Compose) UpProjectFilesSelectedForceRecreateNoBuild ¶ added in v0.4.15
func (Compose) UpProjectFilesSelectedNoBuildProgress ¶ added in v0.4.15
func (Compose) UpProjectFilesSelectedProgress ¶ added in v0.4.11
func (Compose) UpProjectProgress ¶ added in v0.4.11
func (Compose) VerifyProjectServiceLogCollection ¶ added in v0.4.17
func (c Compose) VerifyProjectServiceLogCollection(ctx context.Context, project, service, expectedTag string) error
VerifyProjectServiceLogCollection keeps runtime-product verification behind the runtime provider boundary. Docker verifies the configured syslog driver and tag. Podman/Quadlet uses journald and has no equivalent Compose log-tag contract to assert here.
type Config ¶
type Config struct {
PostgresDB string
PostgresUser string
PostgresPassword string
OpenBaoDBPassword string
PostgresPort int
OpenBaoPort int
}
func LoadConfig ¶
type Files ¶
func EnsureFiles ¶
func EnsureFilesForProject ¶ added in v0.4.15
func EnsureFilesForProjectAndResources ¶ added in v0.4.16
func ExistingFiles ¶
func ExistingFilesForProject ¶ added in v0.4.15
type ImageIdentity ¶ added in v0.4.15
type ImageIdentity = runtimecontract.ImageIdentity
type LogCollectionMode ¶ added in v0.4.17
type LogCollectionMode = runtimecontract.LogCollectionMode
type LogSourceAdapter ¶ added in v0.4.17
type LogSourceAdapter = runtimecontract.LogSourceAdapter
type ProjectResource ¶
type ProjectResource = runtimecontract.ProjectResource
type Provider ¶ added in v0.4.0
type Provider = runtimecontract.Provider
type ProviderCapabilities ¶ added in v0.4.0
type ProviderCapabilities = runtimecontract.ProviderCapabilities
type ProviderDescriptor ¶ added in v0.4.17
type ProviderDescriptor = runtimecontract.ProviderDescriptor
type ProviderFactory ¶ added in v0.4.17
type ProviderFactory = runtimecontract.ProviderFactory
type ProviderKind ¶ added in v0.4.0
type ProviderKind = runtimecontract.ProviderKind
func ParseProviderKind ¶ added in v0.4.0
func ParseProviderKind(value string) (ProviderKind, error)
type ProviderRegistration ¶ added in v0.4.17
type ProviderRegistration = runtimecontract.ProviderRegistration
type ProviderRegistry ¶ added in v0.4.17
type ProviderRegistry = runtimecontract.ProviderRegistry
func NewProviderRegistry ¶ added in v0.4.17
func NewProviderRegistry(registrations ...ProviderRegistration) (*ProviderRegistry, error)
type PublishedPort ¶ added in v0.3.0
type PublishedPort = runtimecontract.PublishedPort
type RuntimeCapability ¶ added in v0.4.0
type RuntimeCapability = runtimecontract.RuntimeCapability
type RuntimeContainer ¶ added in v0.4.17
type RuntimeContainer = runtimecontract.RuntimeContainer
type RuntimeProvider ¶ added in v0.4.17
type RuntimeProvider = runtimecontract.RuntimeProvider
type ServiceState ¶ added in v0.3.0
type ServiceState = runtimecontract.ServiceState
Source Files
¶
- bootstrap_postgres_tls.go
- command_env.go
- compose.go
- compose_command.go
- compose_files.go
- compose_interactive.go
- compose_network.go
- compose_progress.go
- compose_resources.go
- compose_status.go
- config.go
- contract.go
- logging.go
- openbao_runtime_prepare.go
- openbao_storage.go
- port_conflict.go
- project_names.go
- projected_files.go
- provider.go
- service_access_transition.go
- stack.go
- volume_recovery.go