Skip to content

Development: Add Staging 2 - #47

Merged
Mtze merged 5 commits into
mainfrom
feat/add-staging-2
Jan 23, 2026
Merged

Development: Add Staging 2#47
Mtze merged 5 commits into
mainfrom
feat/add-staging-2

Conversation

@bensofficial

@bensofficial bensofficial commented Jan 20, 2026

Copy link
Copy Markdown
Member

Motivation and Context

Staging 2 for Redis (ls1intum/artemis-ansible-collection#98)

Description

Add Staging 2

Summary by CodeRabbit

  • New Features

    • Added a complete staging2 environment with inventory, orchestration flows, and CI build-agent support.
  • Chores

    • Provisioned network, VPN (WireGuard), DB, broker, registry, storage, proxy and node setups for staging2.
    • Integrated Vault-backed secrets for host credentials and service keys.
    • Updated MySQL role/version to 6.2.0.
    • Disabled sharing configuration in test settings.
  • Documentation

    • Minor comment/text corrections across host configurations.

✏️ Tip: You can customize this high-level summary in your review settings.

@bensofficial bensofficial self-assigned this Jan 20, 2026
@bensofficial
bensofficial requested a review from a team as a code owner January 20, 2026 21:19
@coderabbitai

coderabbitai Bot commented Jan 20, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

Adds a full "staging2" Artemis environment: inventory/groups, group and host variables (network/WireGuard, Vault lookups), 13 provisioning playbooks, and a MySQL role version bump; also comments out sharing config in test common config.

Changes

Cohort / File(s) Summary
Group Variables
group_vars/artemis_staging2.yml, group_vars/artemis_staging2_agents.yml, group_vars/artemistests_common_config.yml
New staging2 group_vars with environment IDs, CI/localvc settings, Vault-backed secrets (athena, nebula, Redis), proxy/firewall flags, Theia image tags; agents flag set to build agents; sharing config commented out in common tests config.
Host Variables (WireGuard & Network)
host_vars/*staging2*.yml (e.g. host_vars/agent01.staging2..., host_vars/node1.staging2..., host_vars/broker.staging2..., host_vars/db.staging2..., host_vars/registry.staging2..., host_vars/redis.staging2..., host_vars/storage.staging2..., host_vars/proxy.staging2...)
Adds per-host YAMLs providing IPv6/IPv4 addresses, wireguard_interface_address, wireguard_pubkey, and Vault-sourced wireguard_privkey entries plus node metadata. Consistent structure across hosts.
Inventory
hosts
Adds artemis_staging2 groups (core, agents, nodes, db, broker, registry, redis, storage, proxy) and integrates staging2 into prod-like groupings and artemis_all.
Playbooks – Orchestration
playbooks/artemis-staging2/complete-setup.yml, .../network-setup.yml, .../wireguard.yml, .../storage.yml, .../db.yml, .../broker.yml, .../registry.yml, .../proxy.yml, .../redis.yml
New playbooks to provision cluster components (network/netplan, wireguard, storage provider, db, broker, registry+proxy, proxy, redis). complete-setup imports sub-playbooks in sequence.
Playbooks – Nodes Lifecycle
playbooks/artemis-staging2/nodes.yml, .../nodes-start-artemis.yml, .../nodes-stop-artemis.yml, .../nodes-update-config.yml, .../nodes-version-update.yml
Node-focused playbooks: role applications for artemis and storage_client, service start/stop, config updates, and version update flow with pre-task validation.
Requirements
requirements.yml
Bumps role version for geerlingguy.mysql from 5.0.1 to 6.2.0.
Minor Comment Fixes
many host_vars/*.yml (prod/staging1 files)
Numerous trivial comment typo corrections ("Autmatically" → "Automatically") across existing host_vars files.

Sequence Diagram(s)

sequenceDiagram
  participant Operator as Operator
  participant Ansible as Ansible Controller
  participant Vault as HashiVault
  participant Hosts as Staging2 Hosts (nodes, db, broker, registry, proxy, storage)

  Operator->>Ansible: run playbook complete-setup.yml
  Ansible->>Vault: lookup secrets (WireGuard keys, Redis password, service creds)
  Ansible->>Hosts: configure network (netplan) and wireguard
  Ansible->>Hosts: provision storage, DB, broker, registry, redis, proxy
  Ansible->>Hosts: apply firewall, proxy, and application roles
  Hosts-->>Ansible: status/results
  Ansible-->>Operator: playbook summary/return code
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 In a burrow of YAML and keys I hop,
WireGuard threads woven, secrets fetched from the top,
Playbooks march in order, roles hop in a row,
Staging2 blossoms where Artemis will grow. 🌱

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Development: Add Staging 2' is clear and specific, directly describing the main change—addition of a new staging 2 environment with comprehensive infrastructure setup.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

🤖 Fix all issues with AI agents
In `@host_vars/agent02.staging2.artemis.cit.tum.de.yml`:
- Around line 9-11: Fix the typo in the comment above the Wireguard keys: change
the comment string "Wireguard Keys - Autmatically generated!" to "Wireguard Keys
- Automatically generated!" so the header above the variables wireguard_pubkey
and wireguard_privkey is spelled correctly.

In `@host_vars/db.staging2.artemis.cit.tum.de.yml`:
- Line 9: Fix the typo in the YAML comment string "# Wireguard Keys -
Autmatically generated!" by changing "Autmatically" to "Automatically" so the
comment reads "# Wireguard Keys - Automatically generated!"; update the exact
comment text in the file where that string occurs (search for the comment
starting with "Wireguard Keys -") and save the file.

In `@host_vars/node2.staging2.artemis.cit.tum.de.yml`:
- Line 9: Fix the typo in the comment string "# Wireguard Keys - Autmatically
generated!" by replacing "Autmatically" with "Automatically" so the comment
reads "# Wireguard Keys - Automatically generated!"; update the exact comment
line in the YAML file containing that string.

In `@host_vars/node3.staging2.artemis.cit.tum.de.yml`:
- Line 9: Fix the typo in the comment string "Wireguard Keys - Autmatically
generated!" by changing "Autmatically" to "Automatically" so the comment reads
"Wireguard Keys - Automatically generated!"; locate this exact comment text in
the file and update it to the corrected spelling.

In `@host_vars/redis.staging2.artemis.cit.tum.de.yml`:
- Line 9: Fix the typo in the comment line that reads "# Wireguard Keys -
Autmatically generated!" by changing "Autmatically" to "Automatically" so the
comment becomes "# Wireguard Keys - Automatically generated!"; Locate and update
the exact comment string to preserve spacing and punctuation.

In `@host_vars/storage.staging2.artemis.cit.tum.de.yml`:
- Line 9: Fix the typo in the comment string "# Wireguard Keys - Autmatically
generated!" by updating "Autmatically" to "Automatically" so the comment reads
"# Wireguard Keys - Automatically generated!"; locate this exact comment in the
file and correct the spelling.

In `@playbooks/artemis-staging2/nodes.yml`:
- Around line 12-20: The role entry currently uses a developer-local absolute
path
"/Users/benjaminschmitz/Development/artemis-ansible-collection/roles/artemis"
which will not resolve in CI; replace that string with the collection-qualified
role name "ls1intum.artemis.artemis" (the comment already shows this) so the
playbook uses the collection role convention like the other entries; update the
role value for the relevant node entry where "role:" is set to the absolute
path.

In `@playbooks/artemis-staging2/redis.yml`:
- Around line 2-6: Replace the hardcoded local role path used in the play
"Setup" (the string
"/Users/benjaminschmitz/Development/artemis-ansible-collection/roles/redis"
under roles) with the collection role reference (ls1intum.artemis.redis) so the
play uses the collection-provided role instead of a local filesystem path;
update the roles entry for the artemis_staging2_redis host group to reference
the collection role name.
🧹 Nitpick comments (1)
playbooks/artemis-staging2/nodes-version-update.yml (1)

5-12: Confirm the intent to force explicit -e artemis_version.

Setting artemis_version: to null overrides any group_vars value and guarantees the pre-task fails unless extra-vars are provided. If that’s intentional, consider documenting it; if not, remove the override.

♻️ Optional adjustment if group_vars should apply
-  vars:
-    artemis_version: # Unset artemis_version to ignore the initial version in group_vars

Comment thread host_vars/agent02.staging2.artemis.cit.tum.de.yml Outdated
Comment thread host_vars/db.staging2.artemis.cit.tum.de.yml Outdated
Comment thread host_vars/node2.staging2.artemis.cit.tum.de.yml Outdated
Comment thread host_vars/node3.staging2.artemis.cit.tum.de.yml Outdated
Comment thread host_vars/redis.staging2.artemis.cit.tum.de.yml Outdated
Comment thread host_vars/storage.staging2.artemis.cit.tum.de.yml Outdated
Comment thread playbooks/artemis-staging2/nodes.yml Outdated
Comment thread playbooks/artemis-staging2/redis.yml Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@host_vars/broker.staging2.artemis.cit.tum.de.yml`:
- Around line 2-4: The wireguard_host_ipv6_address value is missing a CIDR
suffix while the comment expects an address with CIDR; update the variable
wireguard_host_ipv6_address to include the appropriate prefix length (e.g.
append /64 or the network's actual prefix) so it matches host_ipv4_address's
format, or if the project expects bare addresses instead, adjust the comment and
any consumers that parse wireguard_host_ipv6_address to accept no-CIDR values;
modify either the value of wireguard_host_ipv6_address or the comment/consuming
code accordingly.

In `@host_vars/node2.staging2.artemis.cit.tum.de.yml`:
- Around line 2-4: The comment is misleading: change it to state that
wireguard_host_ipv6_address holds only the IPv6 address (no CIDR/prefix) because
the playbooks append the prefix (e.g., "{{ wireguard_host_ipv6_address }}/64");
update the comment text above the wireguard_host_ipv6_address (and similarly
clarify for host_ipv4_address if applicable) to explicitly say "IPv6 address
only — do not include CIDR/prefix" so maintainers know not to include a /prefix
in the variable value.

Comment thread host_vars/broker.staging2.artemis.cit.tum.de.yml
Comment thread host_vars/node2.staging2.artemis.cit.tum.de.yml
@Mtze
Mtze merged commit 366edba into main Jan 23, 2026
2 of 3 checks passed
@bensofficial
bensofficial deleted the feat/add-staging-2 branch January 23, 2026 10:23
@coderabbitai coderabbitai Bot mentioned this pull request Jul 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants