Open nobuto-m opened 7 months ago
Do you have any storage enabled on your k8s? This bug makes it sound like you possibly don't.
It was based on the cos-lite tutorial so hostpath storage was used.
As I stated it looked like a race condition.
Hi guys,
I've been affected by this issue as well when running integration tests that use a bundle that includes cos-configuration-k8
. The error I receive is very similar:
Traceback (most recent call last):
File "./src/charm.py", line 473, in <module>
main(COSConfigCharm, use_juju_for_storage=True)
File "/var/lib/juju/agents/unit-cos-configuration-0/charm/venv/ops/main.py", line 429, in main
charm = charm_class(framework)
File "./src/charm.py", line 84, in __init__
self._git_sync_mount_point = self.model.storages["content-from-git"][0].location
File "/var/lib/juju/agents/unit-cos-configuration-0/charm/venv/ops/model.py", line 1792, in location
raw = self._backend.storage_get(self.full_id, "location")
File "/var/lib/juju/agents/unit-cos-configuration-0/charm/venv/ops/model.py", line 2919, in storage_get
out = self._run('storage-get', '-s', storage_name_id, attribute,
File "/var/lib/juju/agents/unit-cos-configuration-0/charm/venv/ops/model.py", line 2695, in _run
raise ModelError(e.stderr)
ops.model.ModelError: ERROR invalid value "content-from-git/1" for option -s: getting filesystem attachment info: filesystem attachment "1" on "unit cos-configuration/0" not provisioned
With a little bit of research and some help from the Observability team's Matrix channel, I think the problem occurs due to install
hook being fired before the storage has been attached. In this case, the charm would not be able to access the storage and thus raise an exception.
I also found a similar issue in vault-k8s
and they have fixed this by try-catch
logic around accessing the storage.
Bug Description
It's a race condition in a deployment and the charm can turn into an error state.
To Reproduce
Environment
prometheus-scrape-config-k8s latest/edge 47
Relevant log output
Additional context
No response