diff --git a/app/models/opentofu_worker.rb b/app/models/opentofu_worker.rb index f26fcf1d..f086362e 100644 --- a/app/models/opentofu_worker.rb +++ b/app/models/opentofu_worker.rb @@ -57,7 +57,7 @@ def container_image end def enable_systemd_unit - super + create_cid_runfile create_tls_certs create_podman_secret end @@ -83,6 +83,12 @@ def configure_service_worker_deployment(definition) end end + def create_cid_runfile + cid_runfile = Pathname.new("/run/opentofu-runner.cid") + cid_runfile.write(nil) + cid_runfile.chown(manageiq_uid, manageiq_gid) + end + def create_tls_certs opentofu_runner_certs_dir = Pathname.new("#{OPENTOFU_RUNTIME_DIR}/certs") unless opentofu_runner_certs_dir.exist? diff --git a/systemd/opentofu-runner.container b/systemd/opentofu-runner.container new file mode 100644 index 00000000..da272fba --- /dev/null +++ b/systemd/opentofu-runner.container @@ -0,0 +1,22 @@ +[Unit] +Description=Opentofu Runner Container +After=local-fs.target + +[Container] +Image=${OPENTOFU_RUNNER_IMAGE} +PodmanArgs=--root /var/www/miq/vmdb/data/containers/storage +ContainerName=opentofu-runner +Secret=opentofu-runner-secret +Volume=/var/lib/manageiq/opentofu-runner/certs:/opt/app-root/src/config/cert:z +Environment=DATABASE_HOSTNAME=${DATABASE_HOSTNAME} +Environment=DATABASE_NAME=${DATABASE_NAME} +Environment=DATABASE_USERNAME=${DATABASE_USERNAME} +Environment=MEMCACHE_SERVERS=${MEMCACHE_SERVERS} +ExposeHostPort=6000 +Network=host + +[Service] +Restart=on-failure +User=manageiq +Group=manageiq +Slice=manageiq.slice diff --git a/systemd/opentofu-runner.service b/systemd/opentofu-runner.service deleted file mode 100644 index 9f5460f7..00000000 --- a/systemd/opentofu-runner.service +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -PartOf=opentofu-runner.target -[Install] -WantedBy=opentofu-runner.target -[Service] -User=manageiq -Group=manageiq -ExecStartPre=/bin/rm -f /tmp/%n.cid -ExecStart=/usr/bin/podman run --conmon-pidfile %T/%N.pid --cidfile %T/%N.cid --cgroup-manager=cgroupfs --cgroups=no-conmon --log-driver=journald --replace --name=opentofu-runner --secret=opentofu-runner-secret --root=/var/www/miq/vmdb/data/containers/storage --env=DATABASE_HOSTNAME=${DATABASE_HOSTNAME} --env=DATABASE_NAME=${DATABASE_NAME} --env=DATABASE_USERNAME=${DATABASE_USERNAME} --env=MEMCACHE_SERVERS=${MEMCACHE_SERVERS} --volume=/var/lib/manageiq/opentofu-runner/certs:/opt/app-root/src/config/cert:z --expose=6000 --net=host $OPENTOFU_RUNNER_IMAGE -ExecStop=/usr/bin/podman stop --ignore -t 30 --cidfile %T/%N.cid --cgroup-manager=cgroupfs --root=/var/www/miq/vmdb/data/containers/storage -ExecStopPost=/usr/bin/podman rm --ignore --cidfile %T/%N.cid --cgroup-manager=cgroupfs --root=/var/www/miq/vmdb/data/containers/storage -ExecStopPost=/usr/bin/rm -f %T/%N.pid %T/%N.cid -KillMode=none -Type=simple -Restart=always -Slice=manageiq.slice