Skip to content

Feat/terraform files#70

Draft
DeeKay3 wants to merge 16 commits into
mainfrom
feat/terraform-files
Draft

Feat/terraform files#70
DeeKay3 wants to merge 16 commits into
mainfrom
feat/terraform-files

Conversation

@DeeKay3

@DeeKay3 DeeKay3 commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

What this PR does

Why we need it

Checklist

  • I followed the contributing guide
  • I added or updated the documentation (if applicable)
  • I updated docs/changelog.md with user-relevant changes
  • I added a change artifact for user-relevant changes in docs/release-notes/artifacts. If no change artifact is necessary, I tagged the PR with the label no-release-note.
  • I added or updated tests as needed (unit and integration)
  • If integration test modules are used: I updated the workflow configuration
    (e.g., in .github/workflows/integration_tests.yaml, ensure the modules list is correct)
  • If this is a Grafana dashboard: I added a screenshot of the dashboard
  • If this is Terraform: terraform fmt passes and tflint reports no errors
  • If this is Rockcraft: I updated the version

DeeKay3 and others added 16 commits May 5, 2026 22:08
* Export ingress URL to MM siteurl env var

* feat/ISD-5324: Add integration test with traefik for ingress

* Use unit address instead of clusterIP for request

* fix: Test if ingress reachable to let it settle

* docs/ISD-5324: Add release artifact

* rename workflows
* Export ingress URL to MM siteurl env var

* feat/ISD-5324: Add integration test with traefik for ingress

* Use unit address instead of clusterIP for request

* fix: Test if ingress reachable to let it settle

* feat/ISD-4622: Initial OIDC and SAML commit

* feat: changes to start.sh for SAML testing

* Add oauth test

* Add docs related to integration

* Fix vale error, correct name for release artifact

* feat/ISD-4622: Fix integration test, wait for oauth registration in Hydra before checking for env vars
* Add initial configs

* Fix config problem for booleans

* Add release artifact

* Fix vale error

* feat: changelog.md change

* feat: separate declare and assign

* Add permissions for auto-update-libs job

* Update bot_pr_approval.yaml

* Update comment.yaml

* Update integration_test.yaml

* Update publish_charm.yaml

* Update test.yaml

* Update .github/workflows/integration_test.yaml

Co-authored-by: srbouffard <sambouffard@gmail.com>

* Update .github/workflows/publish_charm.yaml

Co-authored-by: srbouffard <sambouffard@gmail.com>

---------

Co-authored-by: srbouffard <sambouffard@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* Define grant-admin-role action in charmcraft.yaml

* Create grant-admin-role action event handler

* Add PebbleReadyEvent handler to inject a Pebble patch

- Defined _on_app_pebble_ready() event handler to inject a Local Mode environment variable to the Pebble configuration.

* Define juju config for local-mode

- Instead of overriding _on_app_pebble_ready() to inject the Local Mode environment variable, define it in the charmcraft.yaml config for the paas_charm framework to handle.

* Move Local Mode logic to startup script

- Replace the PebbleReadyEvent handler in charm.py with an export line in the container's entrypoint script (start.sh) to set the MM_SERVICESETTINGS_ENABLELOCALMODE environment variable based on the APP_LOCAL_MODE configuration option.

* Revert startup logic for local mode and move it back to charm.py

- Remove Local Mode config from charmcraft.yaml and start.sh
- Move logic back to charm.py, introducing _set_local_mode() to configure the Pebble layer instead of overriding _on_app_pebble_ready().
- Enable local mode only when the grant-admin-role action is executed, and disable it immediately after.

* Create unit test for happy path case

* Implement remaining unit tests for grant-admin-role action

- Added test_grant_admin_role_exec_error
- Added test_grant_admin_role_socket_timeout
- Added grant-admin-role action definition to test_base.py

* Refactor error handling logic for grant-admin-role

- Moved the socket timeout check within the try block to ensure local mode is disabled after
- Added @patch decorator to test_grant_admin_role_socket_timeout to skip 30s wait
- Removed lib/charms/squid_forward_proxy/v0/http_proxy.py as it is out of scope for this change

* Create integration test for grant-admin-role action

* Resolve lint issues

* Add type hint to layer variable in charm.py

* Update code to abide by the contributing guide

- Reordered charm.py to follow the Step-Down rule
- Added docstrings using the Arrange, Act, Assert pattern to the unit tests in test_actions.py
- Use random values for variables in the unit tests instead of hardcoded strings
- Add missing type hints to the test functions
- Update docs/changelog.md
- Add a change artifact: docs/release-notes/artifacts/pr0059.yaml

* Resolve lint issues

* Catch TaskError that Jubilant throws on action fail

* Adjust socket logic to account for edge cases

- Explicitly delete the socket file after the action to prevent stale sockets
- Update local mode check to rely on mmctl status instead of socket presence
- Update unit tests to reflect the new local mode check

* chore: update libraries
* feat: add custom Prometheus alert rules and unit test for Mattermost

- Defined five custom Prometheus alert rules in `mattermost.rule`
- Created `test_prometheus_alerts.yaml` with sample alert data for testing
- Created `test_alerts.py` wrapper to run the test using pytest

* docs: add changelog and artifact entries

* feat: increase evalution interval to 5 mins

- change evaluation interval from 1 min to 5 mins for all alerts
- update test data to reflect the new evaluation interval

* feat: decrease duration time for critical alert
* Add initial Grafana dashboard for Mattermost

* fix dashboard variable filtering and metadata

- Add missing juju_unit filter to Websocket Broadcasts, Reconnects, and Events panels
- Update pluginVersion from 8.2.3 to 10.2.3 on Websocket panels
- Remove unused DS_PROMETHEUS input from __inputs
- Remove unused lokids (Loki) datasource variable from templating list

* Add changelog entry and change artifact

* feat: add fixes to Grafana dashboard

- Add missing juju_unit filter to multiple targets
- Add aggregation to HTTP Requests per second panel
- Add unit to Replica Lag panel

* feat: switch to dynamic rate in all panel queries

* chore: Add .rock files to .jujuignore
* docs/ISD-5865: Charm-architecture as .md file, will push .rst file after

* docs/ISD-5865: Convert to RST and add release artifact

* fix: replace reusable docs workflow with direct implementation to avoid broken docutils apt install

* fix: correct RST formatting in charm-architecture.rst

* revert: restore PR files to main state

* fix: revert changes from copilot

* Update docs/reference/charm-architecture.rst

Co-authored-by: Erin Conley <erin.conley@canonical.com>

* Update docs/reference/charm-architecture.rst

Co-authored-by: Erin Conley <erin.conley@canonical.com>

* Apply suggestion from @erinecon

Co-authored-by: Erin Conley <erin.conley@canonical.com>

* Apply suggestion from @erinecon

Co-authored-by: Erin Conley <erin.conley@canonical.com>

* docs/ISD-5865: Fix link issues, add explanation sentences

* Apply suggestions from code review

Co-authored-by: Erin Conley <erin.conley@canonical.com>

* Remove extra header

* docs/ISD-5865: Remove unnecessary header

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: erinecon <erin.conley@canonical.com>
* feat: initial custom loki alert rules

* feat: relocate custom Loki alert rules

* feat: finalize custom Loki alert rules

- updated thresholds and labels
- move file back to cos_custom/loki_alert_rules/
- update changelog and release notes

* feat: optimize loki alert rules for root-cause detection

- removed MattermostHttp5xxServerErrors to avoid overlap with Prometheus alerts
- added MattermostFatalOrPanicLogs to catch low-volume critical issues
- added MattermostDatabaseErrors to catch backend failures
- lowered thresholds for authentication floods (>300 to >30) and plugin failures (>100 to >20)

* feat: adjust formatting for loki alert rules

* feat: decrease pending duration for MattermostAuthFailureFlood
* docs: update metrics reference page

* docs: update integrate with cos page

* docs: add changelog and artifact entry

* docs: fix vale

* docs: adjust wording and metadata descriptions
)

- Removed self-hosted-runner: true parameter (now uses GitHub runners by default)
- Removed self-hosted-runner-label: "edge" (no longer needed with GitHub runners)
- Uses default ubuntu-24.04 runner image for consistency

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

3 participants