cs-image-system-docker-runtime-plugin 0.1.7__tar.gz → 0.1.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/.gitignore +5 -2
  2. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/PKG-INFO +7 -4
  3. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/README.md +4 -1
  4. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/pyproject.toml +3 -3
  5. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/src/cs_image_system/docker_runtime/docker_provider_specific_image.py +9 -8
  6. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/src/cs_image_system/docker_runtime/docker_runtime_builders.py +6 -0
  7. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/LICENSE +0 -0
  8. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/src/cs_image_system/docker_runtime/__init__.py +0 -0
  9. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/src/cs_image_system/docker_runtime/bootstrap.py +0 -0
  10. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/src/cs_image_system/docker_runtime/data/image-sources.yml +0 -0
  11. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/src/cs_image_system/docker_runtime/docker_names.py +0 -0
  12. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/src/cs_image_system/docker_runtime/docker_packer_source.py +0 -0
  13. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/src/cs_image_system/docker_runtime/docker_runtime_models.py +0 -0
  14. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/src/cs_image_system/docker_runtime/local_target.py +0 -0
  15. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/src/cs_image_system/docker_runtime/main.py +0 -0
  16. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/src/cs_image_system/docker_runtime/tfmodules/docker_container/main.tf +0 -0
  17. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/src/cs_image_system/docker_runtime/tfmodules/docker_container/outputs.tf +0 -0
  18. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/src/cs_image_system/docker_runtime/tfmodules/docker_container/provider.tf +0 -0
  19. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/src/cs_image_system/docker_runtime/tfmodules/docker_container/variables.tf +0 -0
  20. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/src/cs_image_system/docker_runtime/tfmodules/docker_volume/main.tf +0 -0
  21. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/src/cs_image_system/docker_runtime/tfmodules/docker_volume/outputs.tf +0 -0
  22. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/src/cs_image_system/docker_runtime/tfmodules/docker_volume/provider.tf +0 -0
  23. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/src/cs_image_system/docker_runtime/tfmodules/docker_volume/variables.tf +0 -0
  24. {cs_image_system_docker_runtime_plugin-0.1.7 → cs_image_system_docker_runtime_plugin-0.1.8}/tests/test_docker_runtime.py +0 -0
@@ -13,16 +13,19 @@ build/
13
13
  .venv/
14
14
  .DS_Store
15
15
  packages/**/*.code-workspace
16
- # the IDE rewrites the root workspace file whenever folders are opened: it is the editor's, not the repository's (hygiene XXI)
16
+ # the IDE rewrites the root workspace file whenever folders are opened: it is the editor's, not the repository's
17
17
  /*.code-workspace
18
18
  trial
19
19
  tfmodules/tftest
20
20
  YAML_DUMP.yaml
21
+ # a configuration tree's run-local plaintexts and debug output, wherever a tree
22
+ # sits in this repository (a copy of the frozen fixture included)
23
+ _private/
21
24
  .obsidian
22
25
  .tofu-plugin-cache/
23
26
  _uncommitted/
24
27
  target/
25
- # never publishable, whatever the root (stage 35 refuses them; stage 40's publish-tree checks the policy)
28
+ # never publishable, whatever the root (the public-safe hook refuses them; `just publish-tree` checks the policy)
26
29
  tfplan
27
30
  *.tfstate
28
31
  *.tfstate.backup
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: cs-image-system-docker-runtime-plugin
3
- Version: 0.1.7
3
+ Version: 0.1.8
4
4
  Summary: The docker runtime type: a durable host's container daemon as a place where images bake and instances run
5
5
  Project-URL: Repository, https://github.com/infrastructurebuilder/cs-image-system-3
6
6
  Project-URL: Documentation, https://github.com/infrastructurebuilder/cs-image-system-3/blob/develop/docs/OPERATIONS.md
@@ -9,9 +9,9 @@ Author-email: Mykel Alvis <mykelalvis@infrastructurebuilder.org>
9
9
  License-Expression: Apache-2.0
10
10
  License-File: LICENSE
11
11
  Requires-Python: >=3.13
12
- Requires-Dist: cs-image-system-base==0.1.7
12
+ Requires-Dist: cs-image-system-base==0.1.8
13
13
  Requires-Dist: cs-image-system-contract<0.5,>=0.4
14
- Requires-Dist: cs-image-system-hashicorp-utils==0.1.7
14
+ Requires-Dist: cs-image-system-hashicorp-utils==0.1.8
15
15
  Requires-Dist: pydantic>=2.13
16
16
  Requires-Dist: python-hcl2>=8.1
17
17
  Description-Content-Type: text/markdown
@@ -50,7 +50,10 @@ differs from them in three ways the design records as decisions:
50
50
  (`sha256:...`), and its names are tags: `<repository>:<final name>` and
51
51
  the series' floating `<repository>:<prefix>`, which a child image bakes
52
52
  from when its parent is deferred (the daemon has no "newest image matching
53
- a pattern" query; the tag is that query). A label is fixed when an image
53
+ a pattern" query; the tag is that query). The runtime's builder gives
54
+ each image it makes its repository (`prepare_provider_specific_image`),
55
+ so `DockerProviderSpecificImage.floating_tag()` reads the image's own
56
+ `repository` and asks no run for it. A label is fixed when an image
54
57
  is built, so what the core stamps afterwards (the parent bound after the
55
58
  bake, the fingerprint, a release) is carried by tags that MOVE:
56
59
  `<repository>:<short id>--<key>--<value>`, one per key.
@@ -32,7 +32,10 @@ differs from them in three ways the design records as decisions:
32
32
  (`sha256:...`), and its names are tags: `<repository>:<final name>` and
33
33
  the series' floating `<repository>:<prefix>`, which a child image bakes
34
34
  from when its parent is deferred (the daemon has no "newest image matching
35
- a pattern" query; the tag is that query). A label is fixed when an image
35
+ a pattern" query; the tag is that query). The runtime's builder gives
36
+ each image it makes its repository (`prepare_provider_specific_image`),
37
+ so `DockerProviderSpecificImage.floating_tag()` reads the image's own
38
+ `repository` and asks no run for it. A label is fixed when an image
36
39
  is built, so what the core stamps afterwards (the parent bound after the
37
40
  bake, the fingerprint, a release) is carried by tags that MOVE:
38
41
  `<repository>:<short id>--<key>--<value>`, one per key.
@@ -4,7 +4,7 @@
4
4
 
5
5
  [project]
6
6
  name = "cs-image-system-docker-runtime-plugin"
7
- version = "0.1.7"
7
+ version = "0.1.8"
8
8
  description = "The docker runtime type: a durable host's container daemon as a place where images bake and instances run"
9
9
  readme = "README.md"
10
10
  authors = [{ name = "Mykel Alvis", email = "mykelalvis@infrastructurebuilder.org" }]
@@ -13,8 +13,8 @@ license-files = ["LICENSE"]
13
13
  requires-python = ">=3.13"
14
14
  dependencies = [
15
15
  "cs-image-system-contract>=0.4,<0.5",
16
- "cs-image-system-base==0.1.7",
17
- "cs-image-system-hashicorp-utils==0.1.7",
16
+ "cs-image-system-base==0.1.8",
17
+ "cs-image-system-hashicorp-utils==0.1.8",
18
18
  "python-hcl2>=8.1",
19
19
  "pydantic>=2.13",
20
20
  ]
@@ -6,8 +6,6 @@ import logging
6
6
  from typing import Any
7
7
 
8
8
  from cs_image_system.base.models.provider_specific_image import ProviderSpecificImage
9
- from cs_image_system.base.run_context import current_context # a model holds no context; it fetches the current one
10
- from cs_image_system.contract.context import RunContextProtocol
11
9
 
12
10
  from .docker_names import tag_name
13
11
 
@@ -20,7 +18,14 @@ class DockerProviderSpecificImage(ProviderSpecificImage):
20
18
  our own builds by image id (``sha256:...``). Deferred: the series'
21
19
  floating tag ``<repository>:<prefix>``, which every bake of the series
22
20
  moves to its newest build -- the daemon has no "newest image matching a
23
- name pattern" query, so the tag IS that query."""
21
+ name pattern" query, so the tag IS that query.
22
+
23
+ ``repository`` is where its runtime tags builds: the runtime builder
24
+ that makes the image sets it (``prepare_provider_specific_image``), so
25
+ the image asks no run for it; one made without a runtime keeps the
26
+ plain default."""
27
+
28
+ repository: str = "csis"
24
29
 
25
30
  @classmethod
26
31
  def csis_name(cls) -> str:
@@ -30,11 +35,7 @@ class DockerProviderSpecificImage(ProviderSpecificImage):
30
35
  """``<repository>:<prefix as a tag>`` for a deferred image."""
31
36
  if not self.deferred_name_pattern:
32
37
  return None
33
- ctx: RunContextProtocol = current_context() # typed by the contract; a model holds no context of its own
34
- rtb = ctx.runtime_builders.get(self.runtime)
35
- model = getattr(rtb, "model", None)
36
- repo = model.get_repository() if model is not None and hasattr(model, "get_repository") else "csis"
37
- return f"{repo}:{tag_name(self.deferred_name_pattern)}"
38
+ return f"{self.repository}:{tag_name(self.deferred_name_pattern)}"
38
39
 
39
40
  def get_query_assets(self) -> dict[str, Any] | None:
40
41
  if self.is_resolved():
@@ -166,6 +166,12 @@ class DockerContainerBuilder(ContainerBuilderBase[DockerContainerBuilderModel],
166
166
  def provider_specific_image_class(self) -> type[ProviderSpecificImage]:
167
167
  return DockerProviderSpecificImage
168
168
 
169
+ def prepare_provider_specific_image(self, psi: ProviderSpecificImage) -> None:
170
+ """An image of this runtime knows the repository its builds are
171
+ tagged into: the floating tag of a deferred one is read from it."""
172
+ if isinstance(psi, DockerProviderSpecificImage):
173
+ psi.repository = self.model.get_repository()
174
+
169
175
  # ------------------------------------------------------------ the CLI
170
176
  def docker_binary(self) -> str:
171
177
  """The docker CLI this runtime runs: the ``binary`` of the