Operations : release management #25

Closed
opened 2022-03-15 05:03:29 +00:00 by realaravinth · 9 comments
realaravinth commented 2022-03-15 05:03:29 +00:00 (Migrated from git.batsense.net)

Hostea is a playbook in Enough and part of the Enough releases. Releasing a new Enough release, using the same methods, is how Hostea is effectively released.

While this gets a few things out of the way, there are issues that are a unique concern for Hostea and that must be implemented in Enough to verify the sanity of Hostea before it is published: the ability to run tests that remove / add hosts.

Hostea is a [playbook in Enough](https://lab.enough.community/main/infrastructure/-/tree/master/playbooks/hostea) and part of the Enough releases. Releasing a new Enough release, using the same methods, is how Hostea is effectively released. While this gets a few things out of the way, there are issues that are a unique concern for Hostea and that must be implemented in Enough to verify the sanity of Hostea before it is published: the ability to run tests that remove / add hosts.
dachary self-assigned this 2022-05-16 12:35:46 +00:00
dachary added spent time 2022-06-15 09:51:13 +00:00
5min

Figuring out an e2e testing strategy for Hostea. Leads to https://forum.hostea.org/t/openstack-tenant-dedicated-to-hostea-testing/97 and now working to create a test that bootstraps Enough in a dedicated OpenStack tenant for Hostea to consume and destroy if there is a bug without harming the test infrastructure itself.

Figuring out an e2e testing strategy for Hostea. Leads to https://forum.hostea.org/t/openstack-tenant-dedicated-to-hostea-testing/97 and now working to create a test that bootstraps Enough in a dedicated OpenStack tenant for Hostea to consume and destroy if there is a bug without harming the test infrastructure itself.
dachary added spent time 2022-06-16 14:57:01 +00:00
2h

Figured out the domain name allocation for tests https://forum.hostea.org/t/hostea-testing-and-domain-name/98

Figured out the domain name allocation for tests https://forum.hostea.org/t/hostea-testing-and-domain-name/98
dachary added spent time 2022-06-16 17:17:08 +00:00
2h

Spent some quality time getting backing into the Enough codebase. And fixed a bug in the test subdomain creation.

Spent some quality time getting backing into the Enough codebase. And fixed [a bug](https://lab.enough.community/main/infrastructure/-/merge_requests/542) in the test subdomain creation.
dachary added spent time 2022-06-16 20:07:05 +00:00
2h

Half baked creation of the deploy key. It is created and uploaded to gitea but woodpecker not just yet, lacks testing. Not much.

Half baked [creation of the deploy key](https://lab.enough.community/main/infrastructure/-/merge_requests/541/diffs?commit_id=a863d7b6095f304f4c803b6591c02908d902bbd8). It is created and uploaded to gitea but woodpecker not just yet, lacks testing. Not much.
dachary added spent time 2022-06-17 20:25:11 +00:00
3h

Completed the deploy key: the hostea CI can now push back changes.

  • Ansible creates a ssh key on the hostea host
  • Uploads the public key as a deploy key on Gitea
  • Adds the private key as a secret on Woodpecker
  • woodpecker.yml provides the secret to the job
  • the job
    • installs the ssh key
    • changes the remote to be git@... and to use the key

https://lab.enough.community/main/infrastructure/-/merge_requests/541/diffs?commit_id=3b3df9996e48abf36673c9d022b4eea3ee0f9bde

Completed the deploy key: the hostea CI can now push back changes. * Ansible creates a ssh key on the hostea host * Uploads the public key as a deploy key on Gitea * Adds the private key as a secret on Woodpecker * woodpecker.yml provides the secret to the job * the job * installs the ssh key * changes the remote to be git@... and to use the key https://lab.enough.community/main/infrastructure/-/merge_requests/541/diffs?commit_id=3b3df9996e48abf36673c9d022b4eea3ee0f9bde
dachary added spent time 2022-06-18 11:09:08 +00:00
2h

The hostea.sh script now bootstraps with a domain name and a DNS. Next up are tests to verify that actually works:

  1. git clone the hostea repo that contains the Enough configuration
  2. get the domain from the domain.yml file
  3. dig ns1.domain and keep the IP
  4. get the IP of the DNS from the hosts.yml file
  5. assert the two are the same

image

The hostea.sh script now bootstraps with a domain name and a DNS. Next up are tests to verify that actually works: 1. git clone the hostea repo that contains the Enough configuration 2. get the domain from the domain.yml file 3. dig ns1.domain and keep the IP 4. get the IP of the DNS from the hosts.yml file 5. assert the two are the same ![image](/attachments/4e66d3c1-107f-43ca-9c5b-5787d931d788)
180 KiB
dachary added spent time 2022-06-18 15:03:42 +00:00
2h
And for once the tests were as easy to implement as advertised. https://lab.enough.community/main/infrastructure/-/merge_requests/541/diffs?commit_id=45e2c7c99661adaa90bc9e05f7f488f9cbb02bd3 ![image](/attachments/d1dd6a01-df95-41eb-af1d-b1b5fdf14d31)
dachary added spent time 2022-06-18 16:58:33 +00:00
30min

create / test / delete works 🎉

Running it again and again to nail tiny details.

image

https://lab.enough.community/main/infrastructure/-/merge_requests/541/diffs?commit_id=acd809fac4820cf7b611c1c160587fab11c17509

create / test / delete works 🎉 Running it again and again to nail tiny details. ![image](/attachments/dc961a4a-7b09-4760-8011-92b1b14ec285) https://lab.enough.community/main/infrastructure/-/merge_requests/541/diffs?commit_id=acd809fac4820cf7b611c1c160587fab11c17509
120 KiB
dachary added spent time 2022-06-18 21:52:01 +00:00
4h

Today's coworking session accomplished this goal 🎉

Today's coworking session accomplished this goal 🎉
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Total Time Spent: 17 hours 35 minutes
dachary
17 hours 35 minutes
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Hostea/july-mvp#25
There is no content yet.