diff --git a/.cz.yaml b/.cz.yaml
index 4c9b9c4..f1eb1a9 100644
--- a/.cz.yaml
+++ b/.cz.yaml
@@ -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
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index fcec1c7..557f178 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -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
diff --git a/.gitmodules b/.gitmodules
index cc4d8a5..96eef09 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -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
diff --git a/.nfc_automation.yaml b/.nfc_automation.yaml
new file mode 100644
index 0000000..077d7f4
--- /dev/null
+++ b/.nfc_automation.yaml
@@ -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
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7aca7da..9442a33 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -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
diff --git a/README.md b/README.md
index 5623770..8c7ff4a 100644
--- a/README.md
+++ b/README.md
@@ -29,7 +29,7 @@ This project is hosted on [gitlab](https://gitlab.com/nofusscomputing/projects/a
**Development Branch**
- 
+ 
----
diff --git a/ansible.cfg b/ansible.cfg
deleted file mode 100644
index 047d6f8..0000000
--- a/ansible.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-[defaults]
-collections_path=/etc/ansible/collections
-roles_path=/etc/ansible/roles
-log_path=/ansible.log
diff --git a/dockerfile b/dockerfile
index 62b190e..9b9cd9e 100644
--- a/dockerfile
+++ b/dockerfile
@@ -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
\ No newline at end of file
+ kubernetes.core \
+ # community.general.gitlab_*
+ community.general \
+ # ansible.posix.authorized_key for SSH
+ ansible.posix \
+ # docker managment
+ community.docker
\ No newline at end of file
diff --git a/docs/articles/index.md b/docs/articles/index.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/contact.md b/docs/contact.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/operations/index.md b/docs/operations/index.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/projects/ansible-roles/index.md b/docs/projects/ansible-roles/index.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/projects/ansible_playbooks/index.md b/docs/projects/ansible_playbooks/index.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/projects/execution_environment/index.md b/docs/projects/execution_environment/index.md
new file mode 100644
index 0000000..9a162ae
--- /dev/null
+++ b/docs/projects/execution_environment/index.md
@@ -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 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"
+
+```
diff --git a/docs/projects/gitlab-ci/index.md b/docs/projects/gitlab-ci/index.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/projects/index.md b/docs/projects/index.md
new file mode 100644
index 0000000..e69de29
diff --git a/docs/tags.md b/docs/tags.md
new file mode 100644
index 0000000..e69de29
diff --git a/gitlab-ci b/gitlab-ci
index 18a2808..d91605e 160000
--- a/gitlab-ci
+++ b/gitlab-ci
@@ -1 +1 @@
-Subproject commit 18a280878799fe077efa0ed5b11bceedd53eb5c8
+Subproject commit d91605e3771781ad1d6ea88ec799d9261e1641af
diff --git a/includes/etc/ansible/ansible.cfg b/includes/etc/ansible/ansible.cfg
new file mode 100644
index 0000000..447a15b
--- /dev/null
+++ b/includes/etc/ansible/ansible.cfg
@@ -0,0 +1,4 @@
+[defaults]
+collections_path=/etc/ansible/collections
+roles_path=/etc/ansible/roles:/workdir/roles:/workdir/ansible-roles
+log_path=/ansible.log
\ No newline at end of file
diff --git a/includes/etc/ansible/playbooks b/includes/etc/ansible/playbooks
new file mode 160000
index 0000000..d6a8823
--- /dev/null
+++ b/includes/etc/ansible/playbooks
@@ -0,0 +1 @@
+Subproject commit d6a88239f9836dc737d273c97793f223111e728c
diff --git a/includes/etc/ansible/roles b/includes/etc/ansible/roles
new file mode 160000
index 0000000..e0788cc
--- /dev/null
+++ b/includes/etc/ansible/roles
@@ -0,0 +1 @@
+Subproject commit e0788ccdf5972d5ee63d4c47aba9a209e7e12f87
diff --git a/mkdocs.yml b/mkdocs.yml
new file mode 100644
index 0000000..d0d7fb0
--- /dev/null
+++ b/mkdocs.yml
@@ -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
+
diff --git a/requirements.txt b/requirements.txt
index aee9e30..d21c8b5 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,2 +1,5 @@
ansible-core==2.14.5
ansible-lint==6.15.0
+
+# Required for community.general.gitlab_*
+python_gitlab==3.14.0
\ No newline at end of file
diff --git a/website-template b/website-template
new file mode 160000
index 0000000..992b548
--- /dev/null
+++ b/website-template
@@ -0,0 +1 @@
+Subproject commit 992b54805b8b6c78a3d2a5ea7de71c7be2b070c8