Following the tutorial to set up and charm simple-flask, after running the juju deploy ./charm/sample-flask_ubuntu-22.04-amd64.charm sample-flask --resource flask-app-image=localhost:32000/sample-flask:main the workload fails with the message hook failed: "config-changed".
Logs show the error: ops.pebble.PathError: permission-denied - cannot create directory: mkdir /flask/state: permission denied
I think I've followed the tutorial to a tee and didn't deviate from any of the commands.
To Reproduce
Follow the tutorial until you reach the juju deploy ... step mentioned above.
deployment fails
Environment
The environment is the one generated by the command multipass launch --cpus 4 --memory 8G --disk 50G --name charm-dev charm-dev, running charmcraft and rockcraft on the latest/edge track. using microk8s.
Relevant log output
juju debug-log:
unit-sample-flask-0: 14:47:13 ERROR juju.worker.uniter.operation hook "config-changed" (via hook dispatching script: dispatch) failed: exit status 1
unit-sample-flask-0: 14:52:14 DEBUG unit.sample-flask/0.juju-log ops 2.14.0 up and running.
unit-sample-flask-0: 14:52:14 DEBUG unit.sample-flask/0.juju-log Emitting Juju event config_changed.
unit-sample-flask-0: 14:52:14 ERROR unit.sample-flask/0.juju-log Uncaught exception while in charm code:
Traceback (most recent call last):
File "/var/lib/juju/agents/unit-sample-flask-0/charm/./src/charm.py", line 30, in <module>
ops.main.main(FlaskCharm)
File "/var/lib/juju/agents/unit-sample-flask-0/charm/venv/ops/main.py", line 548, in main
manager.run()
File "/var/lib/juju/agents/unit-sample-flask-0/charm/venv/ops/main.py", line 527, in run
self._emit()
File "/var/lib/juju/agents/unit-sample-flask-0/charm/venv/ops/main.py", line 516, in _emit
_emit_charm_event(self.charm, self.dispatcher.event_name)
File "/var/lib/juju/agents/unit-sample-flask-0/charm/venv/ops/main.py", line 147, in _emit_charm_event
event_to_emit.emit(*args, **kwargs)
File "/var/lib/juju/agents/unit-sample-flask-0/charm/venv/ops/framework.py", line 348, in emit
framework._emit(event)
File "/var/lib/juju/agents/unit-sample-flask-0/charm/venv/ops/framework.py", line 860, in _emit
self._reemit(event_path)
File "/var/lib/juju/agents/unit-sample-flask-0/charm/venv/ops/framework.py", line 950, in _reemit
custom_handler(event)
File "/var/lib/juju/agents/unit-sample-flask-0/charm/venv/paas_app_charmer/_gunicorn/charm.py", line 135, in _on_config_changed
self.restart()
File "/var/lib/juju/agents/unit-sample-flask-0/charm/venv/paas_app_charmer/_gunicorn/charm.py", line 197, in restart
self._wsgi_app.restart()
File "/var/lib/juju/agents/unit-sample-flask-0/charm/venv/paas_app_charmer/_gunicorn/wsgi_app.py", line 104, in restart
self._container.add_layer("charm", self._wsgi_layer(), combine=True)
File "/var/lib/juju/agents/unit-sample-flask-0/charm/venv/paas_app_charmer/_gunicorn/wsgi_app.py", line 95, in _wsgi_layer
self._container.push(original_services_file, json.dumps(services), make_dirs=True)
File "/var/lib/juju/agents/unit-sample-flask-0/charm/venv/ops/model.py", line 2390, in push
self._pebble.push(
File "/var/lib/juju/agents/unit-sample-flask-0/charm/venv/ops/pebble.py", line 2362, in push
self._raise_on_path_error(typing.cast('_FilesResponse', resp), path)
File "/var/lib/juju/agents/unit-sample-flask-0/charm/venv/ops/pebble.py", line 2305, in _raise_on_path_error
raise PathError(error['kind'], error['message'])
ops.pebble.PathError: permission-denied - cannot create directory: mkdir /flask/state: permission denied
unit-sample-flask-0: 14:52:15 ERROR juju.worker.uniter.operation hook "config-changed" (via hook dispatching script: dispatch) failed: exit status 1
(repeating a bunch of times)
Additional context
Happy to provide any other logs to help with debugging
Bug Description
Following the tutorial to set up and charm
simple-flask
, after running thejuju deploy ./charm/sample-flask_ubuntu-22.04-amd64.charm sample-flask --resource flask-app-image=localhost:32000/sample-flask:main
the workload fails with the messagehook failed: "config-changed"
.Logs show the error:
ops.pebble.PathError: permission-denied - cannot create directory: mkdir /flask/state: permission denied
I think I've followed the tutorial to a tee and didn't deviate from any of the commands.
To Reproduce
juju deploy ...
step mentioned above.Environment
The environment is the one generated by the command
multipass launch --cpus 4 --memory 8G --disk 50G --name charm-dev charm-dev
, running charmcraft and rockcraft on the latest/edge track. using microk8s.Relevant log output
Additional context
Happy to provide any other logs to help with debugging