https://github.com/steveb/ansible-role-tripleo-modify-image
https://github.com/steveb/ansible-role-tripleo-modify-image
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/steveb/ansible-role-tripleo-modify-image
- Owner: steveb
- License: apache-2.0
- Created: 2018-04-30T00:40:27.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-05-23T01:15:16.000Z (about 8 years ago)
- Last Synced: 2025-02-08T19:34:27.704Z (over 1 year ago)
- Language: Python
- Size: 27.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TripleO Modify Image #
A role to allow modification to container images built for the TripleO project.
## Role Variables ##
**Variables used for modify image**
| Name | Default Value | Description |
|-------------------|---------------------|----------------------|
| `source_image` | `[undefined]` | Mandatory fully qualified reference to the source image to be modified. The supplied Dockerfile will be copied and modified to make the FROM directive match this variable. |
| `modify_dir_path` | `[undefined]` | Mandatory path to the directory containing the Dockerfile to modify the image |
| `modified_append_tag` | `date +-modified-%Y%m%d%H%M%S` | String to be appended after the tag to indicate this is a modified version of the source image. |
| `target_image` | `[undefined]` | If set, the modified image will be tagged with `target_image + modified_append_tag`. If `target_image` is not set, the modified image will be tagged with `source_image + modified_append_tag`. If the purpose of the image is not changing, it may be enough to rely on the `source_image + modified_append_tag` tag to identify that this is a modified version of the source image. |
**Variables used for yum update**
| Name | Default Value | Description |
|-------------------|---------------------|----------------------|
| `source_image` | `[undefined]` | See modify image variables |
| `modified_append_tag` | `date +-modified-%Y%m%d%H%M%S` | See modify image variables |
| `target_image` | `''` | See modify image variables |
| `update_repo` | `''` | If set, packages from this repo will be updated. Other repos will only be used for dependencies of these updates.|
| `yum_repos_dir_path` | `None` | Optional path of directory to be used as `/etc/yum.repos.d` during the update |
| `compare_host_packages` | `False` | If `True`, skip yum update when package versions match host package versions |
## Requirements ##
- ansible >= 2.4
- python >= 2.6
- docker-py >= 1.7.0
- Docker API >= 1.20
## Dependencies ##
None
## Example Playbooks ##
### Modify Image ###
The following playbook will produce a modified image with the tag
`:latest-modified-` based on the Dockerfile in the custom directory
`/path/to/example_modify_dir`.
- hosts: localhost
tasks:
- name: include tripleo-modify-image
import_role:
name: tripleo-modify-image
tasks_from: modify_image.yml
vars:
source_image: docker.io/tripleomaster/centos-binary-nova-api:latest
modify_dir_path: /path/to/example_modify_dir
The directory `example_modify_dir` contains the `Dockerfile` which will perform
the modification, for example:
# This will be replaced in the file Dockerfile.modified
FROM centos-binary-nova-api
# switch to root to install packages
USER root
# install packages
RUN curl "https://bootstrap.pypa.io/get-pip.py" -o "/tmp/get-pip.py"
RUN python /tmp/get-pip.py
# switch the container back to the default user
USER nova
### Yum update ###
The following playbook will produce a modified image with the tag
`:latest-updated` which will do a yum update using the host's /etc/yum.repos.d.
The yum update will only occur if there are differences between host and image
package versions. In this playbook the tasks_from is set as a variable instead
of an `import_role` parameter.
- hosts: localhost
tasks:
- name: include tripleo-modify-image
import_role:
name: tripleo-modify-image
vars:
tasks_from: yum_update.yml
source_image: docker.io/tripleomaster/centos-binary-nova-api:latest
compare_host_packages: true
yum_repos_dir_path: /etc/yum.repos.d
modified_append_tag: updated
## License ##
Apache 2.0