Documentation
¶
Overview ¶
Package unit provides quadlet unit types and generation functionality
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplyDependencyRelationships ¶ added in v0.4.0
func ApplyDependencyRelationships(unit *QuadletUnit, serviceName string, dependencyGraph *dependency.ServiceDependencyGraph, projectName string) error
ApplyDependencyRelationships applies dependencies to a quadlet unit based on the dependency graph.
func GenerateQuadletUnit ¶
func GenerateQuadletUnit(unit QuadletUnit) string
GenerateQuadletUnit generates a quadlet unit file content from a unit configuration.
Types ¶
type Build ¶ added in v0.9.0
type Build struct {
BaseUnit // Embed the base struct
ImageTag []string // Specifies the name which is assigned to the resulting image
File string // Path to Containerfile/Dockerfile
SetWorkingDirectory string // Sets the working directory for the build context
Label []string // Add metadata to the resulting image
Annotation []string // Add OCI annotations to the resulting image
Env map[string]string // Environment variables for the build process
Secret []string // Pass secret information for build
Network []string // Set network mode for RUN instructions
Pull string // Pull policy for base images (always, missing, never, newer)
Volume []string // Mount volumes for build process
Target string // Set the target build stage to build
PodmanArgs []string // Additional arguments to pass to podman build
}
Build represents the configuration for a build unit.
func (*Build) FromComposeBuild ¶ added in v0.9.0
func (b *Build) FromComposeBuild(buildConfig types.BuildConfig, service types.ServiceConfig, projectName string) *Build
FromComposeBuild converts a Docker Compose build configuration to a Podman Quadlet build configuration.
type Container ¶ added in v0.3.0
type Container struct {
BaseUnit // Embed the base struct
Image string
Label []string
PublishPort []string
Environment map[string]string
// Environment file paths (will be sorted for deterministic output)
EnvironmentFile []string
Volume []string
Network []string
NetworkAlias []string
Exec []string
Entrypoint []string
User string
Group string
WorkingDir string
RunInit *bool
// Privileged removed - not supported by podman-systemd
ReadOnly bool
// SecurityLabel removed - not supported by podman-systemd
// Use SecurityLabelType, SecurityLabelLevel, etc. instead
HostName string
ContainerName string
Secrets []Secret
// PodmanArgs contains direct podman run arguments for features not supported by Quadlet
PodmanArgs []string
// Health check settings
HealthCmd []string
HealthInterval string
HealthTimeout string
HealthRetries int
HealthStartPeriod string
HealthStartInterval string
// Resource constraints
Memory string
MemoryReservation string
MemorySwap string
CPUQuota int64
CPUPeriod int64
PidsLimit int64
// Advanced container configuration
Ulimit []string
Sysctl map[string]string
Tmpfs []string
UserNS string
// Logging and monitoring configuration
LogDriver string
LogOpt map[string]string
RestartPolicy string
// contains filtered or unexported fields
}
Container represents the configuration for a container unit.
func NewContainer ¶ added in v0.3.0
NewContainer creates a new Container with the given name.
func (*Container) FromComposeService ¶ added in v0.4.0
func (c *Container) FromComposeService(service types.ServiceConfig, projectName string) *Container
FromComposeService converts a Docker Compose service to a Podman Quadlet container configuration.
type Network ¶ added in v0.3.0
type Network struct {
BaseUnit // Embed the base struct
Label []string `yaml:"label"`
Driver string `yaml:"driver"`
Gateway string `yaml:"gateway"`
IPRange string `yaml:"ip_range"`
Subnet string `yaml:"subnet"`
IPv6 bool `yaml:"ipv6"`
Internal bool `yaml:"internal"`
// DNSEnabled removed - not supported by podman-systemd
Options []string `yaml:"options"`
NetworkName string `yaml:"network_name"`
}
Network represents the configuration for a network in a Quadlet unit.
func NewNetwork ¶ added in v0.3.0
NewNetwork creates a new Network with the given name.
func (*Network) FromComposeNetwork ¶ added in v0.4.0
func (n *Network) FromComposeNetwork(name string, network types.NetworkConfig) *Network
FromComposeNetwork creates a Network from a Docker Compose network configuration.
type QuadletUnit ¶
type QuadletUnit struct {
Name string `yaml:"name"`
Type string `yaml:"type"`
Systemd SystemdConfig `yaml:"systemd"`
Container Container `yaml:"container,omitempty"`
Volume Volume `yaml:"volume,omitempty"`
Network Network `yaml:"network,omitempty"`
Build Build `yaml:"build,omitempty"`
}
QuadletUnit represents the configuration for a Quadlet unit, which can include systemd, container, volume, network, pod, Kubernetes, image, and build settings.
func (*QuadletUnit) GetSystemdUnit ¶ added in v0.3.0
func (u *QuadletUnit) GetSystemdUnit() systemd.Unit
GetSystemdUnit returns the appropriate systemd.Unit implementation for this QuadletUnit.
type SystemdConfig ¶
type SystemdConfig struct {
Description string `yaml:"description"`
After []string `yaml:"after"`
Before []string `yaml:"before"`
Requires []string `yaml:"requires"`
Wants []string `yaml:"wants"`
Conflicts []string `yaml:"conflicts"`
PartOf []string `yaml:"part_of"` // Services that this unit is part of
PropagatesReloadTo []string `yaml:"propagates_reload_to"` // Services that should be reloaded when this unit is reloaded
RestartPolicy string `yaml:"restart_policy"`
TimeoutStartSec int `yaml:"timeout_start_sec"`
Type string `yaml:"type"`
RemainAfterExit bool `yaml:"remain_after_exit"`
WantedBy []string `yaml:"wanted_by"`
}
SystemdConfig represents the configuration for a systemd unit. It includes settings such as the unit description, dependencies, restart policy, and other systemd-specific options.
type Volume ¶ added in v0.3.0
type Volume struct {
BaseUnit // Embed the base struct
ContainersConfModule []string `yaml:"containers_conf_module"`
Copy bool `yaml:"copy"`
Device string `yaml:"device"`
Driver string `yaml:"driver"`
GlobalArgs []string `yaml:"global_args"`
Group string `yaml:"group"`
Image string `yaml:"image"`
Label []string `yaml:"label"`
Options []string `yaml:"options"`
PodmanArgs []string `yaml:"podman_args"`
Type string `yaml:"type"`
User string `yaml:"user"`
VolumeName string `yaml:"volume_name"`
}
Volume represents the configuration for a volume in a Quadlet unit.
func (*Volume) FromComposeVolume ¶ added in v0.4.0
func (v *Volume) FromComposeVolume(name string, volume types.VolumeConfig) *Volume
FromComposeVolume creates a Volume from a Docker Compose volume configuration.