Merge branch 'development' into 'master'

chore: next release

See merge request nofusscomputing/projects/ansible/execution_environment!6
This commit is contained in:
2023-06-15 04:48:06 +00:00
25 changed files with 226 additions and 38 deletions

View File

@ -4,4 +4,4 @@ commitizen:
name: cz_conventional_commits
tag_format: $major.$minor.$patch$prerelease
update_changelog_on_bump: true
version: 0.1.0
version: 0.1.1rc5

View File

@ -1,6 +1,6 @@
---
variables:
GIT_SUBMODULE_STRATEGY: recursive
MY_PROJECT_ID: "45741845"
GIT_SYNC_URL: "https://$GITHUB_USERNAME_ROBOT:$GITHUB_TOKEN_ROBOT@github.com/NoFussComputing/execution_environment.git"
@ -8,18 +8,17 @@ variables:
DOCKER_IMAGE_PUBLISH_NAME: 'ansible-ee'
DOCKER_IMAGE_PUBLISH_REGISTRY: docker.io/nofusscomputing
DOCKER_IMAGE_PUBLISH_URL: https://hub.docker.com/r/nofusscomputing/$DOCKER_IMAGE_PUBLISH_NAME
PAGES_ENVIRONMENT_PATH: projects/execution_environment/
include:
- project: nofusscomputing/projects/gitlab-ci
ref: development
file:
- .gitlab-ci_common.yaml
- type/docker-image.gitlab-ci.yaml
- template/automagic.gitlab-ci.yaml
#- template: Jobs/Container-Scanning.gitlab-ci.yml # see https://gitlab.com/gitlab-org/gitlab/-/issues/381665
.MKDocs_Build:
image: python:3.11-buster
Build/Cache Python Packages:
stage: build
@ -38,6 +37,9 @@ Build/Cache Python Packages:
- pip3 install setuptools wheel
- pip3 install commitizen==2.21.0 # version specified so current build works.
- pip3 install gitlab-ci/gitlab_release/python-module/cz_nfc/.
# see: https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/1861
# on why this `docker run` is required. without it multiarch support doesnt work.
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
- update-binfmts --enable # Important: Ensures execution of other binary formats is enabled in the kernel
- docker buildx create --driver=docker-container --driver-opt image=moby/buildkit:v0.11.6 --use
- docker buildx inspect --bootstrap

12
.gitmodules vendored
View File

@ -2,3 +2,15 @@
path = gitlab-ci
url = https://gitlab.com/nofusscomputing/projects/gitlab-ci.git
branch = development
[submodule "ansible-roles"]
path = includes/etc/ansible/roles
url = https://gitlab.com/nofusscomputing/projects/ansible/ansible-roles.git
branch = development
[submodule "ansible_playbooks"]
path = includes/etc/ansible/playbooks
url = https://gitlab.com/nofusscomputing/projects/ansible/ansible_playbooks.git
branch = development
[submodule "website-template"]
path = website-template
url = https://gitlab.com/nofusscomputing/infrastructure/website-template.git
branch = development

8
.nfc_automation.yaml Normal file
View File

@ -0,0 +1,8 @@
---
role_git_conf:
gitlab:
submodule_branch: "development"
default_branch: development
mr_labels: ~"type::automation" ~"impact::0" ~"priority::0"
auto_merge: true

View File

@ -1,3 +1,50 @@
## 0.1.1rc5 (2023-06-15)
## 0.1.1rc4 (2023-06-12)
## 0.1.1rc3 (2023-06-08)
## 0.1.1rc2 (2023-06-08)
### Continious Integration
- [f5c4b33c](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/commit/f5c4b33c696451629d8f521a47267ce30fee7e91) - mkdocs temp newer image [ [!29](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/29) [#8](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/issues/8) ]
### Documentaton / Guides
- [56b6e304](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/commit/56b6e304bbdaa9a631a18ac95ffdfe95b7fef307) - fix typo [ [!29](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/29) [#8](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/issues/8) ]
- [b8b9348e](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/commit/b8b9348e3061345588c51b75b30d22ece3984c56) - added initial docs [ [!29](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/29) [#8](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/issues/8) ]
## 0.1.1rc1 (2023-06-05)
### Bug Fixes
- **python**: [e82f96a4](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/commit/e82f96a40269b42a5421360724e93768b2958bdb) - linked ansible used python to 3.11 [ [#9](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/issues/9) [!24](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/24) [#22](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/issues/22) [!27](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/27) [#9](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/issues/9) ]
- **git_config**: [318a91ce](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/commit/318a91ce6d7bd08ff7bde514b33a13a01235afc6) - again! ensure cloned ansible-roles has submodules init [ [!9](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/9) ]
- **git_config**: [30797b45](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/commit/30797b4577589c39eed0ae63ce2df37f9920f2a8) - ensure cloned ansible-roles has submodules init [ [!8](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/8) ]
### Code Refactor
- **build**: [e2852ebe](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/commit/e2852ebe292bc838d95048515a8dca0d93ccbc24) - other projects included as git submodule [ [!15](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/15) [#74](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/issues/74) ]
- **playbooks**: [07cdde82](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/commit/07cdde820a6b42e607966257c373239bb1b20ccb) - seperated git clone to own run [ [!11](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/11) [#7](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/issues/7) [!1](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/1) [#1](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/issues/1) ]
### Features
- **ansible**: [a1e3a0c6](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/commit/a1e3a0c656897c28c7d778ead46dac11e9edf5aa) - ansible.cfg added workdir roles [ [!28](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/28) ]
- **ansible**: [369987ea](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/commit/369987eaf5755c193b9d1fd53f614799139acdd4) - add galaxy collection community.docker [ [!24](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/24) [#22](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/issues/22) [!27](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/27) ]
- **ansible**: [e48800bf](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/commit/e48800bf8ea2922a37992770a9b63ea6ca425cd4) - add galaxy collection ansible.posix [ [!24](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/24) [#22](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/issues/22) [!27](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/27) ]
- **ci**: [6b785d0c](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/commit/6b785d0c532d432c4f88387c13d12d3870a71d04) - use project gitlab-ci automagic template [ [!12](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/12) ]
- **playbooks**: [1da35d57](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/commit/1da35d57709480ecde0573a33647f8dcb17ebffb) - add nfc ansible playbooks to image [ [!11](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/11) [#7](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/issues/7) [!1](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/1) [#1](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/issues/1) ]
- **module**: [24a65b4d](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/commit/24a65b4d99876c1bf09da81bab7a1942b32f2dd1) - add collection community.general [ [!10](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/10) ]
## 0.1.1rc0 (2023-05-23)
### Bug Fixes
- **ci**: [f93ef764](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/commit/f93ef764ff07c4c8fa7582553a667eeb6d628de1) - ensure binfmt initialized [ [!7](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/7) ]
- **ci**: [f35259f7](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/commit/f35259f796516e235bd8060c3ccfd058514343aa) - update to new template path [ [!7](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/7) ]
- **readme**: [d9df60e2](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/commit/d9df60e27f75004ce05ccb495d970c32325cb712) - typo in dev branch badge [ [!7](https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/merge_requests/7) ]
## 0.1.0 (2023-05-15)
### Bug Fixes

View File

@ -29,7 +29,7 @@ This project is hosted on [gitlab](https://gitlab.com/nofusscomputing/projects/a
**Development Branch**
![Gitlab build status - development](https://img.shields.io/badge/dynamic/json?color=ff782e&label=Build&query=0.status&url=https%3A%2F%2Fgitlab.com%2Fapi%2Fv4%2Fprojects%2F45741845%2Fpipelines%3Fref%3Ddevelopment&logo=gitlab&style=plastic) ![branch release version](https://img.shields.io/badge/dynamic/yaml?color=ff782e&logo=gitlab&style=plastic&label=Release&query=%24.commitizen.version&url=https%3A//gitlab.com/nofusscomputing/projects/ansible/execution_environment-%2Fraw%2Fdevelopment%2F.cz.yaml)
![Gitlab build status - development](https://img.shields.io/badge/dynamic/json?color=ff782e&label=Build&query=0.status&url=https%3A%2F%2Fgitlab.com%2Fapi%2Fv4%2Fprojects%2F45741845%2Fpipelines%3Fref%3Ddevelopment&logo=gitlab&style=plastic) ![branch release version](https://img.shields.io/badge/dynamic/yaml?color=ff782e&logo=gitlab&style=plastic&label=Release&query=%24.commitizen.version&url=https%3A//gitlab.com/nofusscomputing/projects/ansible/execution_environment%2F-%2Fraw%2Fdevelopment%2F.cz.yaml)
----
<br>

View File

@ -1,4 +0,0 @@
[defaults]
collections_path=/etc/ansible/collections
roles_path=/etc/ansible/roles
log_path=/ansible.log

View File

@ -1,29 +1,13 @@
FROM --platform=$BUILDPLATFORM python:3.11-bullseye as fetch-ansible-roles
ENV LC_ALL en_US.UTF-8
RUN export DEBIAN_FRONTEND=noninteractive \
&& dpkg-reconfigure debconf -f noninteractive
RUN apt update \
&& apt install --reinstall -yq \
git || true
RUN git clone -b development --depth 1 https://gitlab.com/nofusscomputing/projects/ansible-roles.git /tmp/ansible-roles
FROM --platform=$TARGETPLATFORM python:3.11-bullseye
# Ansible chucks a wobbler without. see: https://github.com/ansible/ansible/issues/78283
ENV LC_ALL en_US.UTF-8
ENV ANSIBLE_PLAYBOOK_DIR=/etc/ansible/playbooks
COPY includes /
COPY --from=fetch-ansible-roles /tmp/ansible-roles/roles /etc/ansible/roles
# Ref: https://github.com/opencontainers/image-spec/blob/d86384efdb8c30770a92415c100f57a9bffbb64e/annotations.md
LABEL \
@ -60,15 +44,15 @@ RUN export DEBIAN_FRONTEND=noninteractive \
&& mkdir -p /etc/ansible/roles \
&& mkdir -p /etc/ansible/collections \
&& mkdir -p /workdir \
&& apt list --installed
&& apt list --installed \
# see issue https://gitlab.com/nofusscomputing/projects/ansible/execution_environment/-/issues/9 for following two lines
&& rm /usr/bin/python3 \
&& ln -s /usr/local/bin/python3.11 /usr/bin/python3
WORKDIR /workdir
COPY ansible.cfg /etc/ansible/ansible.cfg
COPY requirements.txt /tmp/requirements.txt
@ -79,4 +63,10 @@ RUN pip install --index-url https://gitlab.com/api/v4/projects/45741845/packages
RUN ansible-galaxy collection install \
awx.awx \
kubernetes.core
kubernetes.core \
# community.general.gitlab_*
community.general \
# ansible.posix.authorized_key for SSH
ansible.posix \
# docker managment
community.docker

0
docs/articles/index.md Normal file
View File

0
docs/contact.md Normal file
View File

0
docs/index.md Normal file
View File

0
docs/operations/index.md Normal file
View File

View File

View File

View File

@ -0,0 +1,92 @@
---
title: Ansible Execution Environment
description: How to use No Fuss Computings Ansible Execution Environment Docker Container.
date: 2023-06-05
template: project.html
about: https://gitlab.com/nofusscomputing/projects/ansible/execution_environment
---
This docker container is designed to be used with Ansible AWX/Tower or from within the Gitlab CI/CD Environment. Included in the container are the following projects from us:
- [Ansible Playbooks](../ansible_playbooks/index.md)
- [Ansible Roles](../ansible-roles/index.md)
This container can be found at dockerhub at <https://hub.docker.com/r/nofusscomputing/ansible-ee> and for use from docker with `docker pull nofusscomputing/ansible-ee`. versioning and git tags are in accordance with semver.
The docker container is built from the python-slim image with a few extra items added to suit the containers intent. Please refer to the [dockerfile](#Dockerfile). we currently build containers for amd64, armv7 and aarch640.
## Features
Included features are only included if a role that we create requires it. Currently we use the pythonx.xx-{debian release} as abase image which makes available the debian packages should you require additional features/sofware not specified below.
- custom [ansible.cfg](#ansible%20config%20file)
- environmental variable `ANSIBLE_PLAYBOOK_DIR` set pointing to `/etc/ansible/playbooks`.
- Galaxy Collections included
- Any collection installed with ansible-core
- awx.awx
- kubernetes.core
- community.general
- ansible.posix
- community.docker
- Additional Software within container
- git
- openssh-client
- obviously, since its a python container, python.
## Docker Tags
We use the following tags for our docker containers
- `latest` This is the latest stable code from the master branch, and will always match the newest non `rc` git and dockerhub tag. Built on merge from development to master branch.
- `\d.\d\.d` i.e. `1.0.0` This layout of tag is the latest git tag from the master branch. Built on merge from development to master branch after the gitlab release job runs.
- `dev` This tag is from the latet build from the development branch, this is considered unstable. on every merge to this branch, the container is built and pushed to this tag on dockerhub.
!!! Info
We use this tag within our gitlab-ci roles. Eventhough it's considered unstable, using it for our CI jobs enables an extra gate in our release cycle to find and fix issues prior to releaseing to stable.
- `\d.\d.\drc\d` i.e. `1.0.0.rc0` This tag is used on the development branch as a means to take a snapshot of the code. Built on the gitlab release job being triggered on the development branch.
## Dockerfile
``` dockerfile title="dockerfile" linenums="1"
--8<-- "dockerfile"
```
This dockerfile is only used to build the python packages for cross platform compilation.
``` dockerfile title="dockerfile-build_cache" linenums="1"
--8<-- "dockerfile-build_cache"
```
## ansible config file
This ansible config file is included within this docker container.
``` ini title="/etc/ansible/ansible.cfg" linenums="1"
--8<-- "includes/etc/ansible/ansible.cfg"
```

View File

0
docs/projects/index.md Normal file
View File

0
docs/tags.md Normal file
View File

View File

@ -0,0 +1,4 @@
[defaults]
collections_path=/etc/ansible/collections
roles_path=/etc/ansible/roles:/workdir/roles:/workdir/ansible-roles
log_path=/ansible.log

31
mkdocs.yml Normal file
View File

@ -0,0 +1,31 @@
INHERIT: website-template/mkdocs.yml
docs_dir: 'docs'
repo_name: Ansible-EE
repo_url: https://gitlab.com/nofusscomputing/projects/ansible/execution_environment
edit_uri: '/-/ide/project/nofusscomputing/projects/ansible/execution_environment/edit/development/-/docs/'
nav:
- Home: index.md
- Articles:
- articles/index.md
- Projects:
- projects/index.md
- Ansible Roles:
- Execution Environment:
- projects/execution_environment/index.md
- Operations:
- operations/index.md
- Contact Us: contact.md

View File

@ -1,2 +1,5 @@
ansible-core==2.14.5
ansible-lint==6.15.0
# Required for community.general.gitlab_*
python_gitlab==3.14.0

1
website-template Submodule

Submodule website-template added at 992b54805b