Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
8b246c2316 | ||
![]() |
a9964026d5 | ||
![]() |
aebdf6082d | ||
![]() |
9b2277302d | ||
334fd79f97 |
dib
element/ironic-python-agent-podman
extra-hardware
releasenotes/source
191
dib/element/ironic-python-agent-podman/README.rst
Normal file
191
dib/element/ironic-python-agent-podman/README.rst
Normal file
@ -0,0 +1,191 @@
|
||||
ironic-python-agent-podman
|
||||
===========================
|
||||
|
||||
Adds Podman support and configuration files to ironic-python-agent-ramdisk.
|
||||
|
||||
Compatibility
|
||||
-------------
|
||||
This DIB element currently supports Debian-based images only. Additional
|
||||
distribution support may be added in the future.
|
||||
|
||||
ironic-python-agent-config
|
||||
--------------------------
|
||||
|
||||
**allow_arbitrary_containers**
|
||||
- **Description:** Defines whether arbitrary containers are allowed. Set to true or false.
|
||||
- **Environment Variable:** ``DIB_ALLOW_ARBITRARY_CONTAINERS``
|
||||
- **Default:** ``false``
|
||||
|
||||
**allowed_containers**
|
||||
- **Description:** Specifies a list of allowed container image URLs (ex "image1-url,image2-url").
|
||||
- **Environment Variable:** ``DIB_ALLOWED_CONTAINERS``
|
||||
- **Default:** Empty string (``""``)
|
||||
|
||||
**container_steps_file**
|
||||
- **Description:** Specifies the path in the RAM to the YAML file containing container steps to be executed.
|
||||
- **Environment Variable:** ``DIB_CONTAINER_STEPS_FILE``
|
||||
- **Default:** ``/etc/ironic-python-agent.d/mysteps.yaml``
|
||||
|
||||
**runner**
|
||||
- **Description:** Defines the container runtime to use, such as podman or docker.
|
||||
- **Environment Variable:** ``DIB_RUNNER``
|
||||
- **Default:** ``podman``
|
||||
|
||||
**pull_options**
|
||||
- **Description:** Container pull options (e.g., --tls-verify=false).
|
||||
- **Environment Variable:** ``DIB_PULL_OPTIONS``
|
||||
- **Default:** ``--tls-verify=false``
|
||||
|
||||
**run_options**
|
||||
- **Description:** Options passed when running the container (e.g., --rm --network=host).
|
||||
- **Environment Variable:** ``DIB_RUN_OPTIONS``
|
||||
- **Default:** ``--rm --network=host --tls-verify=false``
|
||||
|
||||
ironic-python-agent-podman
|
||||
--------------------------
|
||||
|
||||
**podman_conf_file**
|
||||
- **Description:** The path to the configuration file created in the RAM.
|
||||
- **Environment Variable:** ``DIB_PODMAN_CONF_FILE``
|
||||
- **Default:** ``/etc/containers/containers.conf``
|
||||
|
||||
ironic-python-agent-steps
|
||||
--------------------------
|
||||
|
||||
**steps_file_path**
|
||||
- **Description:** Path to the local step file to be copied to the RAM.
|
||||
- **Environment Variable:** ``DIB_STEPS_FILE_PATH``
|
||||
- **Default:** ``/etc/mysteps.yaml``
|
||||
|
||||
Example mysteps.yaml
|
||||
--------------------
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
steps:
|
||||
- name: manage_container_cleanup
|
||||
image: docker://172.24.4.1:5000/cleaning-image:latest
|
||||
interface: deploy
|
||||
reboot_requested: true
|
||||
pull_options:
|
||||
- --tls-verify=false
|
||||
run_options:
|
||||
- --rm
|
||||
- --network=host
|
||||
- --tls-verify=false
|
||||
abortable: true
|
||||
priority: 20
|
||||
- name: manage_container_cleanup2
|
||||
image: docker://172.24.4.1:5000/cleaning-image2:latest
|
||||
interface: deploy
|
||||
reboot_requested: true
|
||||
pull_options:
|
||||
- --tls-verify=false
|
||||
run_options:
|
||||
- --rm
|
||||
- --network=host
|
||||
- --tls-verify=false
|
||||
abortable: true
|
||||
priority: 10
|
||||
|
||||
Customization
|
||||
-------------
|
||||
You can override any of the default values by setting the corresponding
|
||||
environment variables during the build process. This allows the configuration
|
||||
to be dynamically adapted without modifying the script.
|
||||
|
||||
ironic-python-agent-podman
|
||||
===========================
|
||||
|
||||
Adds Podman support and configuration files to ironic-python-agent-ramdisk.
|
||||
|
||||
Compatibility
|
||||
-------------
|
||||
This DIB element currently supports Debian-based images only. Additional
|
||||
distribution support may be added in the future.
|
||||
|
||||
ironic-python-agent-config
|
||||
--------------------------
|
||||
|
||||
**allow_arbitrary_containers**
|
||||
- **Description:** Defines whether arbitrary containers are allowed. Set to true or false.
|
||||
- **Environment Variable:** ``DIB_ALLOW_ARBITRARY_CONTAINERS``
|
||||
- **Default:** ``false``
|
||||
|
||||
**allowed_containers**
|
||||
- **Description:** Specifies a list of allowed container image URLs (ex "image1-url,image2-url").
|
||||
- **Environment Variable:** ``DIB_ALLOWED_CONTAINERS``
|
||||
- **Default:** Empty string (``""``)
|
||||
|
||||
**container_steps_file**
|
||||
- **Description:** Specifies the path in the RAM to the YAML file containing container steps to be executed.
|
||||
- **Environment Variable:** ``DIB_CONTAINER_STEPS_FILE``
|
||||
- **Default:** ``/etc/ironic-python-agent.d/mysteps.yaml``
|
||||
|
||||
**runner**
|
||||
- **Description:** Defines the container runtime to use, such as podman or docker.
|
||||
- **Environment Variable:** ``DIB_RUNNER``
|
||||
- **Default:** ``podman``
|
||||
|
||||
**pull_options**
|
||||
- **Description:** Container pull options (e.g., --tls-verify=false).
|
||||
- **Environment Variable:** ``DIB_PULL_OPTIONS``
|
||||
- **Default:** ``--tls-verify=false``
|
||||
|
||||
**run_options**
|
||||
- **Description:** Options passed when running the container (e.g., --rm --network=host).
|
||||
- **Environment Variable:** ``DIB_RUN_OPTIONS``
|
||||
- **Default:** ``--rm --network=host --tls-verify=false``
|
||||
|
||||
ironic-python-agent-podman
|
||||
--------------------------
|
||||
|
||||
**podman_conf_file**
|
||||
- **Description:** The path to the configuration file created in the RAM.
|
||||
- **Environment Variable:** ``DIB_PODMAN_CONF_FILE``
|
||||
- **Default:** ``/etc/containers/containers.conf``
|
||||
|
||||
ironic-python-agent-steps
|
||||
--------------------------
|
||||
|
||||
**steps_file_path**
|
||||
- **Description:** Path to the local step file to be copied to the RAM.
|
||||
- **Environment Variable:** ``DIB_STEPS_FILE_PATH``
|
||||
- **Default:** ``/etc/mysteps.yaml``
|
||||
|
||||
Example mysteps.yaml
|
||||
--------------------
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
steps:
|
||||
- name: manage_container_cleanup
|
||||
image: docker://172.24.4.1:5000/cleaning-image:latest
|
||||
interface: deploy
|
||||
reboot_requested: true
|
||||
pull_options:
|
||||
- --tls-verify=false
|
||||
run_options:
|
||||
- --rm
|
||||
- --network=host
|
||||
- --tls-verify=false
|
||||
abortable: true
|
||||
priority: 20
|
||||
- name: manage_container_cleanup2
|
||||
image: docker://172.24.4.1:5000/cleaning-image2:latest
|
||||
interface: deploy
|
||||
reboot_requested: true
|
||||
pull_options:
|
||||
- --tls-verify=false
|
||||
run_options:
|
||||
- --rm
|
||||
- --network=host
|
||||
- --tls-verify=false
|
||||
abortable: true
|
||||
priority: 10
|
||||
|
||||
Customization
|
||||
-------------
|
||||
You can override any of the default values by setting the corresponding
|
||||
environment variables during the build process. This allows the configuration
|
||||
to be dynamically adapted without modifying the script.
|
2
dib/element/ironic-python-agent-podman/element-deps
Normal file
2
dib/element/ironic-python-agent-podman/element-deps
Normal file
@ -0,0 +1,2 @@
|
||||
ironic-python-agent-ramdisk
|
||||
package-installs
|
@ -0,0 +1,21 @@
|
||||
# Podman Config
|
||||
PODMAN_CONF_INSIDEDIR=/etc/containers
|
||||
|
||||
export PODMAN_CONF_FILE=${DIB_IPA_PODMAN_CONF_FILE:-$TMP_BUILD_DIR/mnt/$PODMAN_CONF_INSIDEDIR/containers.conf}
|
||||
|
||||
# Ipa Config
|
||||
IPA_CONF_INSIDEDIR=/etc/ironic-python-agent.d
|
||||
export IPA_CONFFILE=$TMP_BUILD_DIR/mnt/$IPA_CONF_INSIDEDIR/ironic_python_agent.conf
|
||||
|
||||
export ALLOW_ARBITRARY_CONTAINERS="${DIB_ALLOW_ARBITRARY_CONTAINERS:-false}"
|
||||
export ALLOWED_CONTAINERS="${DIB_ALLOWED_CONTAINERS:-""}"
|
||||
export CONTAINER_STEPS_FILE="${DIB_CONTAINER_STEPS_FILE:-/etc/ironic-python-agent.d/mysteps.yaml}"
|
||||
export RUNNER="${DIB_RUNNER:-podman}"
|
||||
export PULL_OPTIONS="${DIB_PULL_OPTIONS:---tls-verify=false}"
|
||||
export RUN_OPTIONS="${DIB_RUN_OPTIONS:---rm --network=host --tls-verify=false}"
|
||||
|
||||
# Steps Config
|
||||
STEPS_INSIDEDIR=/etc/ironic-python-agent.d
|
||||
export STEPS_FILE=$TMP_BUILD_DIR/mnt/$STEPS_INSIDEDIR/mysteps.yaml
|
||||
|
||||
export STEPS_FILE_PATH="${DIB_STEPS_FILE_PATH:-/etc/mysteps.yaml}"
|
@ -0,0 +1,2 @@
|
||||
podman:
|
||||
phase: install.d
|
10
dib/element/ironic-python-agent-podman/pre-finalise.d/10-ipa-podman-config
Executable file
10
dib/element/ironic-python-agent-podman/pre-finalise.d/10-ipa-podman-config
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Ensure the directory exists
|
||||
sudo mkdir -p $(dirname $PODMAN_CONF_FILE)
|
||||
|
||||
# Create Podman configuration file inside the ramdisk with sudo tee
|
||||
echo "[engine]
|
||||
no_pivot_root = true" | sudo tee $PODMAN_CONF_FILE > /dev/null
|
||||
|
||||
echo "Podman configuration written to $PODMAN_CONF_FILE"
|
17
dib/element/ironic-python-agent-podman/pre-finalise.d/20-ipa-config
Executable file
17
dib/element/ironic-python-agent-podman/pre-finalise.d/20-ipa-config
Executable file
@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Ensure the directory exists
|
||||
sudo mkdir -p $(dirname $IPA_CONFFILE)
|
||||
|
||||
# Write the configuration inside the ramdisk
|
||||
cat <<EOF | sudo tee $IPA_CONFFILE
|
||||
[container]
|
||||
allow_arbitrary_containers="$ALLOW_ARBITRARY_CONTAINERS"
|
||||
allowed_containers="$ALLOWED_CONTAINERS"
|
||||
container_steps_file="$CONTAINER_STEPS_FILE"
|
||||
runner="$RUNNER"
|
||||
pull_options="$PULL_OPTIONS"
|
||||
run_options="$RUN_OPTIONS"
|
||||
EOF
|
||||
|
||||
echo "Ironic Python Agent config written to $IPA_CONFFILE"
|
10
dib/element/ironic-python-agent-podman/pre-finalise.d/30-ipa-steps
Executable file
10
dib/element/ironic-python-agent-podman/pre-finalise.d/30-ipa-steps
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copy the YAML file to the ramdisk location
|
||||
if [[ -f $STEPS_FILE_PATH ]]; then
|
||||
sudo cp $STEPS_FILE_PATH $STEPS_FILE
|
||||
echo "Local mysteps.yaml copied to ramdisk: $STEPS_FILE"
|
||||
else
|
||||
echo "No valid mysteps.yaml file found at $STEPS_FILE_PATH. Please provide a valid file or check the default path."
|
||||
exit 1
|
||||
fi
|
@ -13,5 +13,5 @@ smartmontools:
|
||||
sysbench:
|
||||
|
||||
biosdevname:
|
||||
not-arch: ppc64,ppc64el,ppc64le
|
||||
not-arch: aarch64,arm64,ppc64,ppc64el,ppc64le
|
||||
when: IPA_DISTRO_FAMILY = rh
|
||||
|
6
releasenotes/source/2025.1.rst
Normal file
6
releasenotes/source/2025.1.rst
Normal file
@ -0,0 +1,6 @@
|
||||
===========================
|
||||
2025.1 Series Release Notes
|
||||
===========================
|
||||
|
||||
.. release-notes::
|
||||
:branch: stable/2025.1
|
@ -6,6 +6,7 @@ Ironic Python Agent Builder Release Notes
|
||||
:maxdepth: 1
|
||||
|
||||
unreleased
|
||||
2025.1
|
||||
2024.2
|
||||
2024.1
|
||||
2023.2
|
||||
|
Loading…
x
Reference in New Issue
Block a user