toad.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
Mastodon server operated by David Troy, a tech pioneer and investigative journalist addressing threats to democracy. Thoughtful participation and discussion welcome.

Administered by:

Server stats:

227
active users

#quadlet

0 posts0 participants0 posts today

Well, this took a bit of investigative work but was ultimately successful. Now, for each service that I want to host I have an Ansible playbook that:

1. Creates a service-specific user that will run the rootless #podman container
2. Uploads the custom #quadlet `.container` unit file in said user's home
3. Use `machinectl` to interact with systemd as said user

As an example, I now have CoreDNS running as a rootless container as the `coredns` user via systemd/quadlet!

Is anyone here versed in #podman and #quadlet ? I'm trying to get the latest version to work on Raspbian (Debian 12), I got it installed by building from source, podman works, quadlet seems to work, the issue arises when I create a `.continer` file so systemd picks i tup and creates a service, the service unit created has the following podman path: `~/.local/bin/bin/podman` and for the love of me, I can't figure out where this is coming from? Tried setting PODMAN env var tbut no joy.

I'm in a mood to try to setup #bootc-based server again.

This time to do the total bare minimum, to only load the system. Rest would be handled by podman and #quadlet based containers, so no hardcoding packages. And I would likely do that with #Ansible, but in some more simple way where I'd embed all the quadlets and configurations in the Ansible playbook itself, instead of copying the files over, I find that too messy.

I know it's servers, but Fedora would probably be fine. Perhaps CentOS Stream. I'd like to have access to newer #podman and #systemd goodies.

Since my last posts about Podman Quadlets on here I've done a lot of updates to my repository with podman quadlets:

  • Move to Codeberg
  • Mirror to Github
  • Synapse + PostgreSQL
  • Start on boot by default
  • Dependency management between some containers
  • Force logging through systemd's journal
  • PiGallery2
  • Cinny
  • Element
  • Nextcloud
  • Fossil
  • LibreSpeed speedtest
  • FreshRSS

As usual, to get started you just do something like this:

cp herz-quadlet/project-you-want/ ~/.config/containers/systemd/
systemctl daemon-reload --user
systemctl start --user project-you-want

Of course, after taking a look at the folder's readme, if there is one.

Codeberg.orgherz-quadletA repository where I store my podman quadlets.

Next fun one for the #podman #quadlet #container users:

I have a quadlet file that specifies a Secret and uses it:
Secret=my-secret,type=env,target=SOME_NAME
Exec=my-command $SOME_NAME

"podman secret ls" shows the secret with the correct name

But still when starting the container I get a warning:
"Referenced but unset environment variable evaluates to an empty string"

Funnily enough, in total there are three secrets being defined and uses, and only one of them errors out...

Any ideas on how to debug this?

Question for the #podman #quadlet #container users out there:

Given that I have a quadlet file that has an "Environment=FOO=bar" setting, which makes the variable FOO available to the container.
Now I can use a "Exec=echo $FOO" inside the container and get my variable's value. Also "Exec=env" prints out the environment variables, which contains the FOO variable.

The variable is set inside the container, but not exported to any subshells being started. What would be the best approach to do that so I can start a bash script using "Exec=/my_bash_script.sh"

I tried different variations of "Entrypoint=/bin/bash" and "Exec=-c '...'" and things like that, but nothing seemed to work.

Background: I can use Podman secrets as environment variables, but I cannot at the same time use things like bash's date command to get a proper timestamp, if I directly start the executable via "Exec"...

Hey #podman #quadlet #container users,

does anyone already have a solution to handle quadlet files in a GitOps way? I.e. a script that runs periodically, pulls down the latest state of the files from a git repository and then restarts the pods?

Or are you all handling image updates with Podman's auto-update functionality (which only gives you the latest image, without handling dependencies between containers AFAIAA)?