Skip to content

Commit

Permalink
Adds the Release Process for Ansible Community Execution Environment (#…
Browse files Browse the repository at this point in the history
…70)

* Adds basic release_process for community ee

Adds docs directory.
Adds basic release-process for community-ee-base image.

* Adds release process for community-ee-minimal

* Adds announcement draft

* Adds the process for creating Pull Request

* Edits based on feedback

* Edits based on the feeback

* Edits based on the feedback on PR

Fixes formating, typo.
Edits the directory structure.

* Update docs/community-ee/community-ee-release-process.md

Co-authored-by: Felix Fontein <[email protected]>

* Update docs/community-ee/community-ee-release-process.md

Co-authored-by: Felix Fontein <[email protected]>

* Update docs/community-ee/community-ee-release-process.md

Co-authored-by: Felix Fontein <[email protected]>

* Update docs/community-ee/community-ee-announcement.md

Co-authored-by: Felix Fontein <[email protected]>

* Update docs/community-ee/community-ee-release-process.md

Co-authored-by: Felix Fontein <[email protected]>

* Update docs/community-ee/community-ee-release-process.md

Co-authored-by: Felix Fontein <[email protected]>

* Update docs/community-ee/community-ee-release-process.md

Co-authored-by: Felix Fontein <[email protected]>

* Update docs/community-ee/community-ee-release-process.md

Co-authored-by: Felix Fontein <[email protected]>

---------

Co-authored-by: Felix Fontein <[email protected]>
  • Loading branch information
anweshadas and felixfontein authored May 8, 2024
1 parent 9cf0707 commit b29a9a2
Show file tree
Hide file tree
Showing 2 changed files with 280 additions and 0 deletions.
118 changes: 118 additions & 0 deletions docs/community-ee/community-ee-announcement.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
# Announcing the community-ee-* execution environments

We announce both community-ee-base and community-ee-minimal together.

## Forum Announcement

Release announcement to be done in the Ecosystem Release sub-category under the News & Announcements category.

## E-Mail Announcement

`ansible-announce` Google Groups

## Community-ee (both Base and Minimal) announcement

```
Hello everyone,
We’re happy to announce the release of the
Ansible Community Execution Environment Minimal <ansible-core-version-minimal-ee-version> and Ansible Community Execution Environment Base <ansible-core-version-base-ee-version>!
## What's inside community-ee-minimal <ansible-core-version-minimal-ee-version>?
Ansible community-ee-minimal is a container image. It includes:
- `base_image`: fedora-minimal
- `ansible-core`: <version of ansible-core>
- `collections`: The following set of collections
- ansible.posix <version>
- ansible.utils <version>
- ansible.windows <version>
## sha256 sum value of the container image:
## How to get community-ee-minimal?
### Install from command line via @sha256_sum_value of the image
`podman pull http://ghcr.io/ansible-community/community-ee-minimal@sha256:<sha_sum_value>`
### Install from command line via image tag
`podman pull ghcr.io/ansible-community/community-ee-minimal:latest`
`podman pull ghcr.io/ansible-community/community-ee-minimal:<ansible-core-version-minimal-ee-version>`
## What's inside community-ee-base?
- `base_image`: fedora-minimal
- `ansible-core`: ansible-core <version of ansible-core>
## sha256 sum value of the container image:
## How to get community-ee-base?
### Install from command line via @sha256_sum_value of the image
`podman pull http://ghcr.io/ansible-community/community-ee-base@sha256:<sha_sum_value>`
### Install from command line via image tag
`podman pull ghcr.io/ansible-community/community-ee-base:latest`
`podman pull ghcr.io/ansible-community/community-ee-base:<ansible-core-version-base-ee-version>`
## To know about future releases
Join the [Ansible Community Forum](https://forum.ansible.com) to follow along and participate
in all the discussions and release related discussions and
announcements. Feel free to share your thoughts, ideas and concerns
there.
Subscribe to the Bullhorn for all future release dates, announcements,
and Ansible community contributor news at:
[https://bit.ly/subscribe-bullhorn](https://bit.ly/subscribe-bullhorn)
You can find all Bullhorn issues on the Community forum:
https://forum.ansible.com/c/news/bullhorn/17
On behalf of the Ansible community, thank you and happy automating!
Cheers,
Ansible Community Team
```

## Matrix Announcement

Inform the Ansible users - Matrix: #users:ansible.com

Inform Discussions on community and collections related topics - Matrix: #community:ansible.com

Inform the Release Managers Working Group: Matrix: #release-management:ansible.com

Inform Community social room - Matrix: #social:ansible.com
Posting news for the Bullhorn newsletter @newsbot


```
We’re happy to announce the release of the
Ansible Community Execution Environment Minimal <ansible-core-version-minimal-ee-version> and Ansible Community Execution Environment Base <ansible-core-version-base-ee-version>!
Get the details of both the images [here](<link to the forum post>).
On behalf of the Ansible community, thank you and happy automating!
```
162 changes: 162 additions & 0 deletions docs/community-ee/community-ee-release-process.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
# Releasing the community-ee-* execution environments

## Release Cadence

The community EEs are to be built and published on the next day and/or the day after ansible-core is released.

## EE tag versioning

Versioning would be the core tag + a patch number, e.g

- EE with core `2.16.2` comes out -> `community-ee:2.16.2-1`
- EE with core `2.16.3` comes out -> `community-ee:2.16.3-1`


## Dependencies

- Podman/Docker

## Credentials

- Access to https://github.com/ansible-community/images repo
- Access to ghcr.io


## Build steps for Community-ee-base

1. Go to the working directory.

`cd images/execution-environments/community-ee-base`

2. Create a new release branch

`git checkout -b base-<ansible-core-version-base-ee-version>`

3. Edit the `execution-environment.yml` file to the right `collection version` and `ansible-core version`. Get the correct [ansible-core](https://pypi.org/project/ansible-core/) version and [ansible-<version>.deps](https://github.com/ansible-community/ansible-build-data/blob/main/9/ansible-9.0.1.deps) and edit accordingly.

`vim execution-environments/community-ee-base/execution-environment.yml`


4. List images in local storage

`podman images`

5. Delete the existing community-ee base and fedora images

```
podman rmi <podman_community-ee-base_IMAGE_ID>
podman rmi <podman_community-ee-fedora_IMAGE_ID>
```
6. Create a virtual environment

```
python3 -m venv .venv
source .venv/bin/activate
```
7. Install `ansible-builder` and `setuptools`

```
python3 -m pip install ansible-builder
python3 -m pip install setuptools
```

8. Pull the latest fedora image

`podman pull fedora:latest`

9. Build the ansible community-ee-base podman image with ansible-builder. (versioning: 2.16.1-1)

`ansible-builder build --tag ghcr.io/ansible-community/community-ee-base:<ansible-core-version-base-ee-version>`

10. Check if the image has been created or not and get the <image ID> of `community-ee-base`

`podman images`

11. Build latest tag for the community-ee-base image

`podman tag <image id> ghcr.io/ansible-community/community-ee-base:latest`

12. Create the Github token

Go to Github UI and create Personal Token (classic).

Select `write:packages` scope while creating the token.
Copy the token from Github UI and then pass the token on the following command.


13. Login to Github Registry

`echo TOKEN | podman login ghcr.io -u USERNAME --password-stdin`

14. Push both the images (general versioning and the latest) to Github Registry

```
podman push ghcr.io/ansible-community/community-ee-base:<ansible-core-version-base-ee-version>
podman push ghcr.io/ansible-community/community-ee-base:latest
```

15. Commit and push the changes made in the `execution-environments/community-ee-base/execution-environment.yml` to the `https://github.com/ansible-community/images` repo.

```
git add execution-environments/community-ee-base/execution-environment.yml
git commit
git push origin <ansible-core-version-base-ee-version>
```
Compare and create the pull request.

16. Check the community-ee-base images [here](https://github.com/orgs/ansible-community/packages/container/package/community-ee-base) and get the sha256 sum.



## Build steps for Community-ee-minimal

1. Go to the working directory

`cd images/execution-environments/community-ee-minimal`

2. Create a new release branch

`git checkout -b base-<ansible-core-version-minimal-ee-version>`

3. Edit the `execution-environment.yml` file to the right `collection version` and `ansible-core version`. Get the correct [ansible-core](https://pypi.org/project/ansible-core/) version and edit accordingly.

`vim execution-environments/community-ee-minimal/execution-environment.yml`


4. List images in local storage

`podman images`

5. Delete the existing community-ee-minimal image

`podman rmi <podman_community-ee-minimal_IMAGE_ID>`

6. Build the ansible community-ee-minimal podman image with ansible-builder. (versioning: 2.16.1-1)

`ansible-builder build --tag ghcr.io/ansible-community/community-ee-minimal:<ansible-core-version-minimal-ee-version>`

7. Check if the image has been created or not and get the <image ID> of `community-ee-minimal`

`podman images`

8. Build `latest` tag for the community-ee-minimal image

`podman tag <image id> ghcr.io/ansible-community/community-ee-minimal:latest`

9. Push both the images (general versioning and the latest) to Github Registry by using the Github Token created before

```
podman push ghcr.io/ansible-community/community-ee-minimal:<ansible-core-version-minimal-ee-version>
podman push ghcr.io/ansible-community/community-ee-minimal:latest
```
10. Commit and push the changes made in the `execution-environments/community-ee-minimal/execution-environment.yml` to the `https://github.com/ansible-community/images` repo.

```
git add execution-environments/community-ee-minimal/execution-environment.yml
git commit
git push origin <ansible-core-version-minimal-ee-version>
```
Compare and create the pull request.

11. Check the community-ee-minimal images [here](https://github.com/orgs/ansible-community/packages/container/package/community-ee-minimal) and get the sha256 sum.

0 comments on commit b29a9a2

Please sign in to comment.