Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add support for Pebble check-failed and check-recovered events #172

Merged
merged 1 commit into from
Jul 24, 2024

Conversation

tonyandrewmeyer
Copy link
Contributor

Adds explicit support to jhack fire for <container-name>-pebble-check-failed and <container-name>-pebble-check-recovered events.

In very much the same way as notice events prompt asking for the appropriate notice, this will prompt for the appropriate check, if necessary.

OP045

Copy link
Collaborator

@PietroPasotti PietroPasotti left a comment

Choose a reason for hiding this comment

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

lovely! many thanks.

@tonyandrewmeyer
Copy link
Contributor Author

tonyandrewmeyer commented Jul 5, 2024

Works correctly in my local testing. Best to hold off on merging until the Juju & pebble PRs have landed.

@tonyandrewmeyer tonyandrewmeyer marked this pull request as ready for review July 5, 2024 03:30
jujubot added a commit to juju/juju that referenced this pull request Jul 16, 2024
#17655

This creates new `<container-name>-pebble-check-failed` and `<container-name>-pebble-check-failed` hooks, which are triggered by Pebble change-update notices of particular kinds & statuses, with the effect that we'll now respond to Pebble checks reaching the failure threshold, or passing after having reached the threshold, by sending a pebble-check-failed or pebble-check-recovered event to the charm.

## QA steps

### Test the hooks directly:
```shell
# Pack and deploy the test charm
$ juju add-model t
$ cd testcharms/charms/pebble-checks
$ charmcraft pack
$ juju deploy ./juju-qa-pebble-checks_ubuntu-22.04-amd64.charm --resource ubuntu-image=public.ecr.aws/ubuntu/ubuntu:22.04

# The check is set to succeed if `/trigger/` exists, so make it.
$ juju ssh --container ubuntu juju-qa-pebble-checks/0 mkdir /trigger/

$ juju status # unit status should settle to "active" after pebble-ready

# Make the check fail
$ juju ssh --container ubuntu juju-qa-pebble-checks/0 rmdir /trigger/
$ juju status # will now say status "maintenance" with message "check failed: exec-check"

# Make the check pass again
$ juju ssh --container ubuntu juju-qa-pebble-checks/0 mkdir /trigger/
$ juju status # will now say status "active" with message "check recovered: exec-check"
```

### Test the shell test:
`./main.sh -p k8s -c minikube sidecar test_pebble_checks`

## Documentation changes

 prdesc [CHARMTECH-160](https://warthogs.atlassian.net/browse/CHARMTECH-160), [CHARMTECH-161](https://warthogs.atlassian.net/browse/CHARMTECH-161), [CHARMTECH-162](https://warthogs.atlassian.net/browse/CHARMTECH-162) cover updating the juju.is (main and SDK) docs

## Links

<!-- Link to all relevant specification, documentation, bug, issue or JIRA card. -->

* [OP046](https://docs.google.com/document/d/13ItH8l5ZSmmv9WqZXpqjV8EifZU5e3zxINiNLubnC68/edit)
* [juju/charm PR](juju/charm#432)
* [ops PR](canonical/operator#1281)
* [pebble PR](canonical/pebble#444)
* [jhack PR](canonical/jhack#172)
* [Scenario PR](canonical/ops-scenario#151)

**Jira card:** [CHARMTECH-109](https://warthogs.atlassian.net/browse/CHARMTECH-109)

[CHARMTECH-160]: https://warthogs.atlassian.net/browse/CHARMTECH-160?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
@tonyandrewmeyer
Copy link
Contributor Author

Best to hold off on merging until the Juju & pebble PRs have landed.

Should be good to merge once you're back 😄.

@PietroPasotti PietroPasotti merged commit b4f1a03 into canonical:main Jul 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants