qontract-reconcile 0.10.2.dev77__py3-none-any.whl → 0.10.2.dev79__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qontract-reconcile
3
- Version: 0.10.2.dev77
3
+ Version: 0.10.2.dev79
4
4
  Summary: Collection of tools to reconcile services with their desired state as defined in the app-interface DB.
5
5
  Project-URL: homepage, https://github.com/app-sre/qontract-reconcile
6
6
  Project-URL: repository, https://github.com/app-sre/qontract-reconcile
@@ -208,8 +208,8 @@ reconcile/external_resources/secrets_sync.py,sha256=50fK4fzgSz-K8uy5_DQQWA_ju_rT
208
208
  reconcile/external_resources/state.py,sha256=gF3ACdl7YiUlbQ4uEGrD6i_Txxqr6mT9f8IFlTQ-8dY,13176
209
209
  reconcile/fleet_labeler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
210
210
  reconcile/fleet_labeler/dependencies.py,sha256=Ta-SLnrHRN4OBAmhE_mTk1P7y1X7AInIiQsIYaY6hY0,2910
211
- reconcile/fleet_labeler/integration.py,sha256=5etCwHDTOEeOXHPr9FEB5TaVPphI3sef5fiHq7BR-1Y,7253
212
- reconcile/fleet_labeler/merge_request.py,sha256=j6RFAr5lujeL73fzhshoBe1JS4dK-EsfROKr9fENoAw,1131
211
+ reconcile/fleet_labeler/integration.py,sha256=jlgHR9U95x4paAckyqlD0FlFn1b-RhBJNYT4htKkrlk,7262
212
+ reconcile/fleet_labeler/merge_request.py,sha256=Mg_ueGj3ZMYIOT6yz2nb8jlpoR1V7fSkCIbljCtnmCc,1137
213
213
  reconcile/fleet_labeler/meta.py,sha256=DF7O4T9wvQ7-xTWXvuNw1OG_F0SBmRrjFBtVy9wWh9U,146
214
214
  reconcile/fleet_labeler/metrics.py,sha256=wx9BmXLsN67m-aSsf81iB7Ehj5SzUsS2WB75isUReZg,662
215
215
  reconcile/fleet_labeler/ocm.py,sha256=GGsz-bq1g8BJVVMCfI2kSwZCyngbQoZ3i3k8fO608KA,2506
@@ -224,7 +224,7 @@ reconcile/glitchtip_project_alerts/integration.py,sha256=BgMx-NyV9mTuv7Sotb2OioC
224
224
  reconcile/glitchtip_project_dsn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
225
225
  reconcile/glitchtip_project_dsn/integration.py,sha256=2iugub-kHYkHNK33n0v9_TeWonuxCPah_VkoTPvaajE,8077
226
226
  reconcile/gql_definitions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
227
- reconcile/gql_definitions/introspection.json,sha256=dhwQvjxcy9059f2opu1-Nv2KWO2givEsMzEcoAZhwB0,2238565
227
+ reconcile/gql_definitions/introspection.json,sha256=EtGe57eM0V8WCKw-tzPwCo3EVlhM7EM-qhTlLDu_SzQ,2238029
228
228
  reconcile/gql_definitions/acs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
229
229
  reconcile/gql_definitions/acs/acs_instances.py,sha256=L91WW9LbhJbBSrECqShQpFtjoBOsmNIYLRpMbx1io5o,2181
230
230
  reconcile/gql_definitions/acs/acs_policies.py,sha256=bN5i4mks10Z23KJSj7jqp966Osq2dps4d-sPH9gjxEA,7008
@@ -288,7 +288,7 @@ reconcile/gql_definitions/common/pipeline_providers.py,sha256=9rpsqPuvj82B4ki56x
288
288
  reconcile/gql_definitions/common/quay_instances.py,sha256=toBkdYYVTmEafezAHZKgaW-mQ29xEW6jeronzsAlNyI,1786
289
289
  reconcile/gql_definitions/common/quay_orgs.py,sha256=NhA8kqvVUDbrsryEvEL5mlIv5R3T4XNhSRXtfL_yptY,1788
290
290
  reconcile/gql_definitions/common/reserved_networks.py,sha256=yP9qSQCaSQcva-ZgTnZp09qH27ur5_qK080ToIs04MY,2560
291
- reconcile/gql_definitions/common/saas_files.py,sha256=Z_ESsBaZVfSyCYN9RrNaOAQyUll6Cgh7hHGQcTPkenY,17792
291
+ reconcile/gql_definitions/common/saas_files.py,sha256=DA6aJspbuoSkVHlFI4HQ-YjdE5iN3eVg1k2lNtW0840,16863
292
292
  reconcile/gql_definitions/common/saas_target_namespaces.py,sha256=4VYP2VbwY8WVwtSFk2-jsUNhSmRD3X4FWKxetOKvmd0,2835
293
293
  reconcile/gql_definitions/common/saasherder_settings.py,sha256=nqQLcMwYxLseqq0BEcVvmrpIj2eQq0h8XDSpLN6GGCw,1793
294
294
  reconcile/gql_definitions/common/slack_workspaces.py,sha256=2o0kgi4QiaRuNmZJnc_By4F6NsKIdRaXkrufRQw7Nok,1753
@@ -551,7 +551,7 @@ reconcile/typed_queries/pagerduty_instances.py,sha256=zxCNxMak4iikryePaRi71lTADV
551
551
  reconcile/typed_queries/quay.py,sha256=3IMy9jjHF2f9t47EXZOQVA3p0nFkWFhaFhxhvib-71o,644
552
552
  reconcile/typed_queries/repos.py,sha256=8A93dKDt6igT4ClqMjt7YUTsoP4qh1Wnm0W3xsMgj48,824
553
553
  reconcile/typed_queries/reserved_networks.py,sha256=XY9y3amtIQT0n06O0Toubqr_UmylJ2ELAv9-BJCK890,345
554
- reconcile/typed_queries/saas_files.py,sha256=JTs865Bqt4KuVh-_ze8IKLe_V1RRBnR7w2nveaUXXLw,14194
554
+ reconcile/typed_queries/saas_files.py,sha256=O2kd0nSFfMgnbXvSv9oMIdlBGZg7XlOU3y2CWg1W2DQ,14001
555
555
  reconcile/typed_queries/slack.py,sha256=r30lspctHloyygPn8_DVybxPwUWwiBpvBRRXiTVcQYk,251
556
556
  reconcile/typed_queries/slo_documents.py,sha256=YMdox_-lBRqrdxamPhdnUlRTY_Ro35ptsupq7OaynUQ,362
557
557
  reconcile/typed_queries/smtp.py,sha256=aSLglYa5bHKmlGwKkxq2RZqyMWuAf0a4S_mOuhDa084,542
@@ -738,9 +738,9 @@ reconcile/utils/runtime/meta.py,sha256=dWdKS9eHVuowFkTK4lgXJ723vS1y9giOMzePUKnHn
738
738
  reconcile/utils/runtime/runner.py,sha256=I30KRrX1UQbHc_Ir1cIZX3OfNSdoHKdnDSPAEB69Ilk,7944
739
739
  reconcile/utils/runtime/sharding.py,sha256=r0ieUtNed7NvknSw6qQrCkKpVXE1shuHGnfFcnpA_k4,16142
740
740
  reconcile/utils/saasherder/__init__.py,sha256=3U8plqMAPRE1kjwZ5YnIsYsggTf4_gS7flRUEuXVBAs,343
741
- reconcile/utils/saasherder/interfaces.py,sha256=M9NG3tFDMdd4t44NTGwDqpiZ-Tt0qMEsXiqsYszXbT4,9180
741
+ reconcile/utils/saasherder/interfaces.py,sha256=2Fjc34Us5q166P6bWVmSEBeYNTnWAPrI9EHwYUnEeuw,9098
742
742
  reconcile/utils/saasherder/models.py,sha256=JaOz_DEtudJZhiDe90kaBlJkppFufn81V92oK9PHYx0,10208
743
- reconcile/utils/saasherder/saasherder.py,sha256=1H6ZpyveYiqTrggsQT4LvWd1J0vacbFV6_iSjjnlQ6k,87144
743
+ reconcile/utils/saasherder/saasherder.py,sha256=13LeAw12QR7wg4eU92iDsNXTCSCBrBp6LKvACn8ndp0,86834
744
744
  reconcile/utils/terraform/__init__.py,sha256=zNbiyTWo35AT1sFTElL2j_AA0jJ_yWE_bfFn-nD2xik,250
745
745
  reconcile/utils/terraform/config.py,sha256=5UVrd563TMcvi4ooa5JvWVDW1I3bIWg484u79evfV_8,164
746
746
  reconcile/utils/terraform/config_client.py,sha256=gRL1rQ0AqvShei_rcGqC3HDYGskOFKE1nPrJyJE9yno,4676
@@ -786,7 +786,7 @@ tools/saas_promotion_state/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
786
786
  tools/saas_promotion_state/saas_promotion_state.py,sha256=UfwwRLS5Ya4_Nh1w5n1dvoYtchQvYE9yj1VANt2IKqI,3925
787
787
  tools/sre_checkpoints/__init__.py,sha256=CDaDaywJnmRCLyl_NCcvxi-Zc0hTi_3OdwKiFOyS39I,145
788
788
  tools/sre_checkpoints/util.py,sha256=zEDbGr18ZeHNQwW8pUsr2JRjuXIPz--WAGJxZo9sv_Y,894
789
- qontract_reconcile-0.10.2.dev77.dist-info/METADATA,sha256=F9mP1rH9xCxwwAfw3JvwbEgzbmx7fS6Zbq8gkoxS_5A,24565
790
- qontract_reconcile-0.10.2.dev77.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
791
- qontract_reconcile-0.10.2.dev77.dist-info/entry_points.txt,sha256=5i9l54La3vQrDLAdwDKQWC0iG4sV9RRfOb1BpvzOWLc,698
792
- qontract_reconcile-0.10.2.dev77.dist-info/RECORD,,
789
+ qontract_reconcile-0.10.2.dev79.dist-info/METADATA,sha256=60Q1QohZz4pk4aCZ-CPMJbA4Q0YnfgOnLVWp7hlfKZc,24565
790
+ qontract_reconcile-0.10.2.dev79.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
791
+ qontract_reconcile-0.10.2.dev79.dist-info/entry_points.txt,sha256=5i9l54La3vQrDLAdwDKQWC0iG4sV9RRfOb1BpvzOWLc,698
792
+ qontract_reconcile-0.10.2.dev79.dist-info/RECORD,,
@@ -187,4 +187,4 @@ class FleetLabelerIntegration(QontractReconcileIntegration[NoParams]):
187
187
  desired_content = self._render_yaml_file(
188
188
  current_content, cluster_ids_to_delete, sorted_clusters_to_add
189
189
  )
190
- vcs.open_merge_request(path=spec.path, content=desired_content)
190
+ vcs.open_merge_request(path=f"data{spec.path}", content=desired_content)
@@ -24,7 +24,7 @@ class FleetLabelerUpdates(MergeRequestBase):
24
24
  ):
25
25
  self._path = path
26
26
  self._content = content
27
- self.name = f"[Fleet Labeler] Update cluster inventory for {path}"
27
+ self._title = f"[Fleet Labeler] Update cluster inventory for {path}"
28
28
 
29
29
  super().__init__()
30
30
 
@@ -32,11 +32,11 @@ class FleetLabelerUpdates(MergeRequestBase):
32
32
 
33
33
  @property
34
34
  def title(self) -> str:
35
- return self.name
35
+ return self._title
36
36
 
37
37
  @property
38
38
  def description(self) -> str:
39
- return self.name
39
+ return self._title
40
40
 
41
41
  def process(self, gitlab_cli: GitLabApi) -> None:
42
42
  msg = "update cluster inventory"
@@ -293,15 +293,6 @@ query SaasFiles {
293
293
  }
294
294
  name
295
295
  }
296
- image {
297
- org {
298
- name
299
- instance {
300
- url
301
- }
302
- }
303
- name
304
- }
305
296
  images {
306
297
  org {
307
298
  name
@@ -517,20 +508,6 @@ class SaasResourceTemplateTargetImageV1(ConfiguredBaseModel):
517
508
  name: str = Field(..., alias="name")
518
509
 
519
510
 
520
- class SaasResourceTemplateTargetV2_SaasResourceTemplateTargetImageV1_QuayOrgV1_QuayInstanceV1(ConfiguredBaseModel):
521
- url: str = Field(..., alias="url")
522
-
523
-
524
- class SaasResourceTemplateTargetV2_SaasResourceTemplateTargetImageV1_QuayOrgV1(ConfiguredBaseModel):
525
- name: str = Field(..., alias="name")
526
- instance: SaasResourceTemplateTargetV2_SaasResourceTemplateTargetImageV1_QuayOrgV1_QuayInstanceV1 = Field(..., alias="instance")
527
-
528
-
529
- class SaasResourceTemplateTargetV2_SaasResourceTemplateTargetImageV1(ConfiguredBaseModel):
530
- org: SaasResourceTemplateTargetV2_SaasResourceTemplateTargetImageV1_QuayOrgV1 = Field(..., alias="org")
531
- name: str = Field(..., alias="name")
532
-
533
-
534
511
  class SaasResourceTemplateTargetV2(ConfiguredBaseModel):
535
512
  path: Optional[str] = Field(..., alias="path")
536
513
  name: Optional[str] = Field(..., alias="name")
@@ -542,8 +519,7 @@ class SaasResourceTemplateTargetV2(ConfiguredBaseModel):
542
519
  parameters: Optional[Json] = Field(..., alias="parameters")
543
520
  secret_parameters: Optional[list[SaasResourceTemplateTargetV2_SaasSecretParametersV1]] = Field(..., alias="secretParameters")
544
521
  upstream: Optional[SaasResourceTemplateTargetUpstreamV1] = Field(..., alias="upstream")
545
- image: Optional[SaasResourceTemplateTargetImageV1] = Field(..., alias="image")
546
- images: Optional[list[SaasResourceTemplateTargetV2_SaasResourceTemplateTargetImageV1]] = Field(..., alias="images")
522
+ images: Optional[list[SaasResourceTemplateTargetImageV1]] = Field(..., alias="images")
547
523
  disable: Optional[bool] = Field(..., alias="disable")
548
524
  delete: Optional[bool] = Field(..., alias="delete")
549
525
 
@@ -22391,18 +22391,6 @@
22391
22391
  "isDeprecated": false,
22392
22392
  "deprecationReason": null
22393
22393
  },
22394
- {
22395
- "name": "image",
22396
- "description": null,
22397
- "args": [],
22398
- "type": {
22399
- "kind": "OBJECT",
22400
- "name": "SaasResourceTemplateTargetImage_v1",
22401
- "ofType": null
22402
- },
22403
- "isDeprecated": false,
22404
- "deprecationReason": null
22405
- },
22406
22394
  {
22407
22395
  "name": "disable",
22408
22396
  "description": null,
@@ -26,7 +26,6 @@ from reconcile.gql_definitions.common.saas_files import (
26
26
  SaasResourceTemplateTargetPromotionV1,
27
27
  SaasResourceTemplateTargetUpstreamV1,
28
28
  SaasResourceTemplateTargetV2,
29
- SaasResourceTemplateTargetV2_SaasResourceTemplateTargetImageV1,
30
29
  SaasResourceTemplateTargetV2_SaasSecretParametersV1,
31
30
  SaasResourceTemplateV2_SaasSecretParametersV1,
32
31
  SaasSecretParametersV1,
@@ -65,10 +64,7 @@ class SaasResourceTemplateTarget(ConfiguredBaseModel):
65
64
  list[SaasResourceTemplateTargetV2_SaasSecretParametersV1] | None
66
65
  ) = Field(..., alias="secretParameters")
67
66
  upstream: SaasResourceTemplateTargetUpstreamV1 | None = Field(..., alias="upstream")
68
- image: SaasResourceTemplateTargetImageV1 | None = Field(..., alias="image")
69
- images: (
70
- list[SaasResourceTemplateTargetV2_SaasResourceTemplateTargetImageV1] | None
71
- ) = Field(..., alias="images")
67
+ images: list[SaasResourceTemplateTargetImageV1] | None = Field(..., alias="images")
72
68
  disable: bool | None = Field(..., alias="disable")
73
69
  delete: bool | None = Field(..., alias="delete")
74
70
 
@@ -323,9 +323,6 @@ class SaasResourceTemplateTarget(HasParameters, HasSecretParameters, Protocol):
323
323
  @property
324
324
  def upstream(self) -> SaasResourceTemplateTargetUpstream | None: ...
325
325
 
326
- @property
327
- def image(self) -> SaasResourceTemplateTargetImage | None: ...
328
-
329
326
  @property
330
327
  def images(self) -> Sequence[SaasResourceTemplateTargetImage] | None: ...
331
328
 
@@ -560,7 +560,7 @@ class SaasHerder: # pylint: disable=too-many-public-methods
560
560
  resource_template_name: str,
561
561
  target: SaasResourceTemplateTarget,
562
562
  ) -> None:
563
- if target.image and target.upstream:
563
+ if target.images and target.upstream:
564
564
  logging.error(
565
565
  f"[{saas_file_name}/{resource_template_name}] image used with upstream"
566
566
  )
@@ -572,7 +572,7 @@ class SaasHerder: # pylint: disable=too-many-public-methods
572
572
  resource_template_name: str,
573
573
  target: SaasResourceTemplateTarget,
574
574
  ) -> None:
575
- if target.image and is_commit_sha(target.ref):
575
+ if target.images and is_commit_sha(target.ref):
576
576
  logging.error(
577
577
  f"[{saas_file_name}/{resource_template_name}] "
578
578
  f'Attempt to use the "image" directive with commit sha: {target.ref}. '
@@ -1440,7 +1440,7 @@ class SaasHerder: # pylint: disable=too-many-public-methods
1440
1440
  for target in rt.targets:
1441
1441
  try:
1442
1442
  # don't trigger if there is a linked upstream job or container image
1443
- if target.upstream or target.image:
1443
+ if target.upstream or target.images:
1444
1444
  continue
1445
1445
 
1446
1446
  desired_commit_sha = self._get_commit_sha(
@@ -1620,12 +1620,8 @@ class SaasHerder: # pylint: disable=too-many-public-methods
1620
1620
  for rt in saas_file.resource_templates:
1621
1621
  for target in rt.targets:
1622
1622
  try:
1623
- if not (target.image or target.images):
1623
+ if not target.images:
1624
1624
  continue
1625
- if target.image and target.images:
1626
- raise TriggerSpecContainerImageError(
1627
- '"image" and "images" are mutually exclusive. Do not set both in the same saas target.'
1628
- )
1629
1625
  commit_sha = self._get_commit_sha(
1630
1626
  url=rt.url,
1631
1627
  ref=target.ref,
@@ -1634,7 +1630,7 @@ class SaasHerder: # pylint: disable=too-many-public-methods
1634
1630
  image_auth = self._initiate_image_auth(saas_file)
1635
1631
  desired_image_tag = commit_sha[: rt.hash_length or self.hash_length]
1636
1632
 
1637
- all_images = [target.image] if target.image else target.images or []
1633
+ all_images = target.images or []
1638
1634
  image_registries = [
1639
1635
  f"{image.org.instance.url}/{image.org.name}/{image.name}"
1640
1636
  for image in all_images