Documentation
¶
Index ¶
- func GenerateQuadletUnit(unit QuadletUnit, verbose bool) string
- func GetUnitStatus(unitName string, unitType string) (string, error)
- func ProcessManifests(repo *git.Repository, force bool) error
- func ReloadSystemd() error
- func RestartUnit(unitName string, unitType string) error
- func ShowUnit(unitName string, unitType string) error
- func StartUnit(unitName string, unitType string) error
- func StopUnit(unitName string, unitType string) error
- type BaseSystemdUnit
- func (u *BaseSystemdUnit) GetServiceName() string
- func (u *BaseSystemdUnit) GetStatus() (string, error)
- func (u *BaseSystemdUnit) GetUnitName() string
- func (u *BaseSystemdUnit) GetUnitType() string
- func (u *BaseSystemdUnit) Restart() error
- func (u *BaseSystemdUnit) Show() error
- func (u *BaseSystemdUnit) Start() error
- func (u *BaseSystemdUnit) Stop() error
- type Container
- func (c *Container) GetServiceName() string
- func (c *Container) GetStatus() (string, error)
- func (c *Container) GetUnitName() string
- func (c *Container) GetUnitType() string
- func (c *Container) Restart() error
- func (c *Container) Show() error
- func (c *Container) Start() error
- func (c *Container) Stop() error
- type Image
- type Network
- type Processor
- type QuadletUnit
- type Repository
- type SQLRepository
- type Secret
- type SystemdConfig
- type SystemdUnit
- type Unit
- type Volume
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GenerateQuadletUnit ¶
func GenerateQuadletUnit(unit QuadletUnit, verbose bool) string
func GetUnitStatus ¶
GetUnitStatus - Legacy function for backward compatibility
func ProcessManifests ¶
func ProcessManifests(repo *git.Repository, force bool) error
func RestartUnit ¶
RestartUnit - Legacy function for backward compatibility
Types ¶
type BaseSystemdUnit ¶ added in v0.3.0
BaseSystemdUnit provides common implementation for all systemd units
func (*BaseSystemdUnit) GetServiceName ¶ added in v0.3.0
func (u *BaseSystemdUnit) GetServiceName() string
GetServiceName returns the full systemd service name based on unit type
func (*BaseSystemdUnit) GetStatus ¶ added in v0.3.0
func (u *BaseSystemdUnit) GetStatus() (string, error)
GetStatus returns the current status of the unit
func (*BaseSystemdUnit) GetUnitName ¶ added in v0.3.0
func (u *BaseSystemdUnit) GetUnitName() string
GetUnitName returns the name of the unit
func (*BaseSystemdUnit) GetUnitType ¶ added in v0.3.0
func (u *BaseSystemdUnit) GetUnitType() string
GetUnitType returns the type of the unit
func (*BaseSystemdUnit) Restart ¶ added in v0.3.0
func (u *BaseSystemdUnit) Restart() error
Restart restarts the unit
func (*BaseSystemdUnit) Show ¶ added in v0.3.0
func (u *BaseSystemdUnit) Show() error
Show displays the unit configuration and status
func (*BaseSystemdUnit) Start ¶ added in v0.3.0
func (u *BaseSystemdUnit) Start() error
Start starts the unit
func (*BaseSystemdUnit) Stop ¶ added in v0.3.0
func (u *BaseSystemdUnit) Stop() error
Stop stops the unit
type Container ¶ added in v0.3.0
type Container struct {
Image string `yaml:"image"`
Label []string `yaml:"label"`
PublishPort []string `yaml:"publish"`
Environment map[string]string `yaml:"environment"`
EnvironmentFile string `yaml:"environment_file"`
Volume []string `yaml:"volume"`
Network []string `yaml:"network"`
Command []string `yaml:"command"`
Entrypoint []string `yaml:"entrypoint"`
User string `yaml:"user"`
Group string `yaml:"group"`
WorkingDir string `yaml:"working_dir"`
PodmanArgs []string `yaml:"podman_args"`
RunInit bool `yaml:"run_init"`
Notify bool `yaml:"notify"`
Privileged bool `yaml:"privileged"`
ReadOnly bool `yaml:"read_only"`
SecurityLabel []string `yaml:"security_label"`
HostName string `yaml:"hostname"`
Secrets []Secret `yaml:"secrets"`
// Systemd unit properties
Name string
UnitType string
}
Container represents the configuration for a container in a Quadlet unit. It includes settings such as the container image, published ports, environment variables, volumes, networks, command, entrypoint, user, and other container-specific options.
func NewContainer ¶ added in v0.3.0
NewContainer creates a new Container with the given name
func (*Container) GetServiceName ¶ added in v0.3.0
GetServiceName returns the full systemd service name
func (*Container) GetUnitName ¶ added in v0.3.0
GetUnitName returns the name of the unit
func (*Container) GetUnitType ¶ added in v0.3.0
GetUnitType returns the type of the unit
type Image ¶ added in v0.3.0
type Image struct {
Image string `yaml:"image"`
PodmanArgs []string `yaml:"podman_args"`
// Systemd unit properties
Name string
UnitType string
}
Image represents the configuration for an image in a Quadlet unit.
func (*Image) GetServiceName ¶ added in v0.3.0
GetServiceName returns the full systemd service name
func (*Image) GetUnitName ¶ added in v0.3.0
GetUnitName returns the name of the unit
func (*Image) GetUnitType ¶ added in v0.3.0
GetUnitType returns the type of the unit
type Network ¶ added in v0.3.0
type Network 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 bool `yaml:"dns_enabled"`
Options []string `yaml:"options"`
// Systemd unit properties
Name string
UnitType string
}
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) GetServiceName ¶ added in v0.3.0
GetServiceName returns the full systemd service name
func (*Network) GetUnitName ¶ added in v0.3.0
GetUnitName returns the name of the unit
func (*Network) GetUnitType ¶ added in v0.3.0
GetUnitType returns the type of the unit
type Processor ¶
type Processor struct {
// contains filtered or unexported fields
}
func NewProcessor ¶
func NewProcessor(repo *git.Repository, unitRepo Repository) *Processor
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"`
Image Image `yaml:"image,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() SystemdUnit
GetSystemdUnit returns the appropriate SystemdUnit implementation for this QuadletUnit
type Repository ¶
type Repository interface {
FindAll() ([]Unit, error)
FindByUnitType(unitType string) ([]Unit, error)
FindByID(id int64) (Unit, error)
Create(unit *Unit) (int64, error)
Delete(id int64) error
}
Repository defines the interface for unit data access operations
func NewUnitRepository ¶
func NewUnitRepository(db *sql.DB) Repository
NewUnitRepository creates a new SQL-based unit repository
type SQLRepository ¶ added in v0.3.0
type SQLRepository struct {
// contains filtered or unexported fields
}
SQLRepository implements UnitRepository interface with SQL database
func (*SQLRepository) Create ¶ added in v0.3.0
func (r *SQLRepository) Create(unit *Unit) (int64, error)
Create inserts or updates a unit in the database
func (*SQLRepository) Delete ¶ added in v0.3.0
func (r *SQLRepository) Delete(id int64) error
Delete removes a unit from the database
func (*SQLRepository) FindAll ¶ added in v0.3.0
func (r *SQLRepository) FindAll() ([]Unit, error)
FindAll retrieves all units from the database
func (*SQLRepository) FindByID ¶ added in v0.3.0
func (r *SQLRepository) FindByID(id int64) (Unit, error)
FindByID retrieves a single unit by ID
func (*SQLRepository) FindByUnitType ¶ added in v0.3.0
func (r *SQLRepository) FindByUnitType(unitType string) ([]Unit, error)
FindByUnitType retrieves units filtered by type
type Secret ¶ added in v0.3.0
type Secret struct {
Name string `yaml:"name"`
Type string `yaml:"type"` // mount or env
Target string `yaml:"target"` // defaults to secret name
UID int `yaml:"uid"` // defaults to 0, mount type only
GID int `yaml:"gid"` // defaults to 0, mount type only
Mode string `yaml:"mode"` // defaults to 0444, mount type only
}
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"`
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 SystemdUnit ¶ added in v0.3.0
type SystemdUnit interface {
// GetServiceName returns the full systemd service name
GetServiceName() string
// GetUnitType returns the type of the unit (container, volume, network, etc.)
GetUnitType() string
// GetUnitName returns the name of the unit
GetUnitName() string
// GetStatus returns the current status of the unit
GetStatus() (string, error)
// Start starts the unit
Start() error
// Stop stops the unit
Stop() error
// Restart restarts the unit
Restart() error
// Show displays the unit configuration and status
Show() error
}
SystemdUnit defines the interface for managing systemd units
type Unit ¶
type Unit struct {
ID int64 `db:"id"`
Name string `db:"name"`
Type string `db:"type"`
CleanupPolicy string `db:"cleanup_policy"`
SHA1Hash []byte `db:"sha1_hash"`
CreatedAt time.Time `db:"created_at"`
}
Unit represents a record in the units table
type Volume ¶ added in v0.3.0
type Volume 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"`
// Systemd unit properties
Name string
UnitType string
}
Volume represents the configuration for a volume in a Quadlet unit.
func (*Volume) GetServiceName ¶ added in v0.3.0
GetServiceName returns the full systemd service name
func (*Volume) GetUnitName ¶ added in v0.3.0
GetUnitName returns the name of the unit
func (*Volume) GetUnitType ¶ added in v0.3.0
GetUnitType returns the type of the unit