qontract-reconcile 0.10.1rc852__py3-none-any.whl → 0.10.1rc854__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.
- {qontract_reconcile-0.10.1rc852.dist-info → qontract_reconcile-0.10.1rc854.dist-info}/METADATA +1 -1
- {qontract_reconcile-0.10.1rc852.dist-info → qontract_reconcile-0.10.1rc854.dist-info}/RECORD +11 -11
- reconcile/gql_definitions/advanced_upgrade_service/aus_clusters.py +5 -0
- reconcile/gql_definitions/advanced_upgrade_service/aus_organization.py +5 -0
- reconcile/gql_definitions/fragments/aus_organization.py +7 -0
- reconcile/ocm_upgrade_scheduler_org_updater.py +2 -0
- reconcile/utils/mr/ocm_upgrade_scheduler_org_updates.py +4 -0
- tools/cli_commands/systems_and_tools.py +57 -6
- {qontract_reconcile-0.10.1rc852.dist-info → qontract_reconcile-0.10.1rc854.dist-info}/WHEEL +0 -0
- {qontract_reconcile-0.10.1rc852.dist-info → qontract_reconcile-0.10.1rc854.dist-info}/entry_points.txt +0 -0
- {qontract_reconcile-0.10.1rc852.dist-info → qontract_reconcile-0.10.1rc854.dist-info}/top_level.txt +0 -0
{qontract_reconcile-0.10.1rc852.dist-info → qontract_reconcile-0.10.1rc854.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: qontract-reconcile
|
3
|
-
Version: 0.10.
|
3
|
+
Version: 0.10.1rc854
|
4
4
|
Summary: Collection of tools to reconcile services with their desired state as defined in the app-interface DB.
|
5
5
|
Home-page: https://github.com/app-sre/qontract-reconcile
|
6
6
|
Author: Red Hat App-SRE Team
|
{qontract_reconcile-0.10.1rc852.dist-info → qontract_reconcile-0.10.1rc854.dist-info}/RECORD
RENAMED
@@ -60,7 +60,7 @@ reconcile/ocm_github_idp.py,sha256=glwXMsIBcl38-OmDDQCpe0YoLLXfoRgVQmqwXMEXjds,3
|
|
60
60
|
reconcile/ocm_groups.py,sha256=CluPyvmwE5JOZS2HQSReC1sD8L1ChhnJlAg8lcwdtxc,3395
|
61
61
|
reconcile/ocm_machine_pools.py,sha256=oY4oLPm5Y_ajBV8KFg2LuBQvsZl-CxTjSxEyxg4b2OI,16634
|
62
62
|
reconcile/ocm_update_recommended_version.py,sha256=IYkfLXIprOW1jguZeELcGP1iBPuj-b53R-FTqKulMl8,4204
|
63
|
-
reconcile/ocm_upgrade_scheduler_org_updater.py,sha256=
|
63
|
+
reconcile/ocm_upgrade_scheduler_org_updater.py,sha256=sQSicCyU-TPtIBYsSn97qzYiQLFaMmOMSFr1OP6tOck,4308
|
64
64
|
reconcile/openshift_base.py,sha256=mE_NuKgEFsZDeA3kUo4iMsvIF1wN5yemUHeuE0M9fbY,49735
|
65
65
|
reconcile/openshift_cluster_bots.py,sha256=eRPYZqWMKFNxLlSN0QG97V5t1iIESQ0BbGaiaQP5VB0,10940
|
66
66
|
reconcile/openshift_clusterrolebindings.py,sha256=QfSy1Ik8eEY5XObc1Q4xyhqyErZenJmbPv_u9wcDNNo,5864
|
@@ -204,8 +204,8 @@ reconcile/gql_definitions/acs/acs_instances.py,sha256=L91WW9LbhJbBSrECqShQpFtjoB
|
|
204
204
|
reconcile/gql_definitions/acs/acs_policies.py,sha256=bN5i4mks10Z23KJSj7jqp966Osq2dps4d-sPH9gjxEA,7008
|
205
205
|
reconcile/gql_definitions/acs/acs_rbac.py,sha256=cZsIlCWliPQdQHgmBsIMx54fJNOtkdRXLzmOKZmJNHk,3009
|
206
206
|
reconcile/gql_definitions/advanced_upgrade_service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
207
|
-
reconcile/gql_definitions/advanced_upgrade_service/aus_clusters.py,sha256=
|
208
|
-
reconcile/gql_definitions/advanced_upgrade_service/aus_organization.py,sha256=
|
207
|
+
reconcile/gql_definitions/advanced_upgrade_service/aus_clusters.py,sha256=RpOrRYJnC6qgf5AvfB80Knp2Ww9R0viuxYVg_LetglY,4366
|
208
|
+
reconcile/gql_definitions/advanced_upgrade_service/aus_organization.py,sha256=zU-WJ9CASV1Ok-1jUro6K426v3ug5YNR1XoXmV7SwQ8,3364
|
209
209
|
reconcile/gql_definitions/app_interface_metrics_exporter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
210
210
|
reconcile/gql_definitions/app_interface_metrics_exporter/onboarding_status.py,sha256=uVEEqU6YYmKsNTo6EWlFnoVmqha2rvBDx-wiD64VmG0,1679
|
211
211
|
reconcile/gql_definitions/aws_account_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -277,7 +277,7 @@ reconcile/gql_definitions/external_resources/external_resources_modules.py,sha25
|
|
277
277
|
reconcile/gql_definitions/external_resources/external_resources_namespaces.py,sha256=UyOAUY1rROenjTz6y-uSEFjrEwhh-lPsIQPbi6EQLFg,40915
|
278
278
|
reconcile/gql_definitions/external_resources/external_resources_settings.py,sha256=989_pG9NWKB5BPvdwqjqZUYp_2qf-xYmJ9c9kq8Kmfw,2886
|
279
279
|
reconcile/gql_definitions/fragments/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
280
|
-
reconcile/gql_definitions/fragments/aus_organization.py,sha256=
|
280
|
+
reconcile/gql_definitions/fragments/aus_organization.py,sha256=uBKbTuBa3CZmTXR5HOcGhRcu2U9kM93KbYmoWTxcpB0,4767
|
281
281
|
reconcile/gql_definitions/fragments/aws_account_common.py,sha256=3-7ZAP6GSff7Z2Syz2VQCLY4IySqBOSVmceaRiVNQpw,2385
|
282
282
|
reconcile/gql_definitions/fragments/aws_account_managed.py,sha256=zXbux0Bb7QZ37fU4LLMKB4m0rT3Y8bD10C1TuOsH_ZQ,1470
|
283
283
|
reconcile/gql_definitions/fragments/aws_account_sso.py,sha256=ITR3PLz4Iq1SiWAoYGWPDuHJnAmTyZ0QQqs2Zsi8pxA,979
|
@@ -754,7 +754,7 @@ reconcile/utils/mr/glitchtip_access_reporter.py,sha256=dTv6FRpLnR2Itxw0oZ-ShKp8h
|
|
754
754
|
reconcile/utils/mr/labels.py,sha256=9QRTRjZAtq45zELd9SwavaraczMjwjn5no3RK1YxFTg,825
|
755
755
|
reconcile/utils/mr/notificator.py,sha256=2Xyg5Xh3xFQITdTmZ8Nry5qe0uC_w_On4uMPdlN5Bl4,2998
|
756
756
|
reconcile/utils/mr/ocm_update_recommended_version.py,sha256=p_aVP0TGrlKk9WBwgQnYWqUDsED_Hg6G5Bqj0UvtRwA,1536
|
757
|
-
reconcile/utils/mr/ocm_upgrade_scheduler_org_updates.py,sha256=
|
757
|
+
reconcile/utils/mr/ocm_upgrade_scheduler_org_updates.py,sha256=m2MGZP7OC9cQASZJ5VKfQjkW25kRQNW3ZAfApX7kKkk,2996
|
758
758
|
reconcile/utils/mr/user_maintenance.py,sha256=cHPBn8zrReWLHalyk-EFdkFJe9zjVjRoZhT4t2zZfGE,3956
|
759
759
|
reconcile/utils/ocm/__init__.py,sha256=xv7CJp7K9LCQfa4gL_W0MMCOD1P4qOy8t5aZj1xXNUE,808
|
760
760
|
reconcile/utils/ocm/addons.py,sha256=IHlqOO12TAdYwwU6Oedz3ussF1kELj9EI5GxPP6LKi8,7376
|
@@ -811,7 +811,7 @@ tools/sd_app_sre_alert_report.py,sha256=e9vAdyenUz2f5c8-z-5WY0wv-SJ9aePKDH2r4IwB
|
|
811
811
|
tools/template_validation.py,sha256=-U-lTGeLaci8yWPEblCJeev2DOlY1jM9QOOh-O1zts8,3376
|
812
812
|
tools/cli_commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
813
813
|
tools/cli_commands/gpg_encrypt.py,sha256=w8hl4jIEWk5wKbEFN6fVEOwUJGmdlvOqYodW3XSN7mU,4978
|
814
|
-
tools/cli_commands/systems_and_tools.py,sha256=
|
814
|
+
tools/cli_commands/systems_and_tools.py,sha256=CSBxM-rzUn_-RuLJpSqSSd0TsKzrG4OPSRmcwVdA40s,16856
|
815
815
|
tools/cli_commands/cost_report/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
816
816
|
tools/cli_commands/cost_report/aws.py,sha256=bdvbT3bDymBOMx4Ve4kt154MeGiGusTSpOpMMFrQ4SM,5191
|
817
817
|
tools/cli_commands/cost_report/cost_management_api.py,sha256=tFzjaZ3RSVJeAUsfSWXHiQlMVbV8dFcXibK158ODQcA,2549
|
@@ -834,8 +834,8 @@ tools/test/test_app_interface_metrics_exporter.py,sha256=SX7qL3D1SIRKFo95FoQztvf
|
|
834
834
|
tools/test/test_qontract_cli.py,sha256=_D61RFGAN5x44CY1tYbouhlGXXABwYfxKSWSQx3Jrss,4941
|
835
835
|
tools/test/test_sd_app_sre_alert_report.py,sha256=v363r9zM7__0kR5K6mvJoGFcM9BvE33fWAayrqkpojA,2116
|
836
836
|
tools/test/test_sre_checkpoints.py,sha256=SKqPPTl9ua0RFdSSofnoQX-JZE6dFLO3LRhfQzqtfh8,2607
|
837
|
-
qontract_reconcile-0.10.
|
838
|
-
qontract_reconcile-0.10.
|
839
|
-
qontract_reconcile-0.10.
|
840
|
-
qontract_reconcile-0.10.
|
841
|
-
qontract_reconcile-0.10.
|
837
|
+
qontract_reconcile-0.10.1rc854.dist-info/METADATA,sha256=FNdlNh3I5vJN_daQGIkW10vxGmMPVgD7hTkV_V7JCXI,2273
|
838
|
+
qontract_reconcile-0.10.1rc854.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
839
|
+
qontract_reconcile-0.10.1rc854.dist-info/entry_points.txt,sha256=GKQqCl2j2X1BJQ69een6rHcR26PmnxnONLNOQB-nRjY,491
|
840
|
+
qontract_reconcile-0.10.1rc854.dist-info/top_level.txt,sha256=l5ISPoXzt0SdR4jVdkfa7RPSKNc8zAHYWAnR-Dw8Ey8,24
|
841
|
+
qontract_reconcile-0.10.1rc854.dist-info/RECORD,,
|
@@ -24,6 +24,7 @@ from reconcile.gql_definitions.fragments.upgrade_policy import ClusterUpgradePol
|
|
24
24
|
DEFINITION = """
|
25
25
|
fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
|
26
26
|
name
|
27
|
+
labels
|
27
28
|
environment {
|
28
29
|
... OCMEnvironment
|
29
30
|
}
|
@@ -75,6 +76,10 @@ fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
|
|
75
76
|
upgradePolicyAllowedWorkloads
|
76
77
|
upgradePolicyClusters {
|
77
78
|
name
|
79
|
+
serverUrl
|
80
|
+
spec {
|
81
|
+
id
|
82
|
+
}
|
78
83
|
upgradePolicy {
|
79
84
|
... ClusterUpgradePolicyV1
|
80
85
|
}
|
@@ -23,6 +23,7 @@ from reconcile.gql_definitions.fragments.aus_organization import AUSOCMOrganizat
|
|
23
23
|
DEFINITION = """
|
24
24
|
fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
|
25
25
|
name
|
26
|
+
labels
|
26
27
|
environment {
|
27
28
|
... OCMEnvironment
|
28
29
|
}
|
@@ -74,6 +75,10 @@ fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
|
|
74
75
|
upgradePolicyAllowedWorkloads
|
75
76
|
upgradePolicyClusters {
|
76
77
|
name
|
78
|
+
serverUrl
|
79
|
+
spec {
|
80
|
+
id
|
81
|
+
}
|
77
82
|
upgradePolicy {
|
78
83
|
... ClusterUpgradePolicyV1
|
79
84
|
}
|
@@ -70,8 +70,14 @@ class OpenShiftClusterManagerSectorV1(ConfiguredBaseModel):
|
|
70
70
|
dependencies: Optional[list[OpenShiftClusterManagerSectorDependenciesV1]] = Field(..., alias="dependencies")
|
71
71
|
|
72
72
|
|
73
|
+
class OpenShiftClusterManagerUpgradePolicyClusterSpecV1(ConfiguredBaseModel):
|
74
|
+
q_id: str = Field(..., alias="id")
|
75
|
+
|
76
|
+
|
73
77
|
class OpenShiftClusterManagerUpgradePolicyClusterV1(ConfiguredBaseModel):
|
74
78
|
name: str = Field(..., alias="name")
|
79
|
+
server_url: Optional[str] = Field(..., alias="serverUrl")
|
80
|
+
spec: Optional[OpenShiftClusterManagerUpgradePolicyClusterSpecV1] = Field(..., alias="spec")
|
75
81
|
upgrade_policy: ClusterUpgradePolicyV1 = Field(..., alias="upgradePolicy")
|
76
82
|
|
77
83
|
|
@@ -82,6 +88,7 @@ class AusClusterHealthCheckV1(ConfiguredBaseModel):
|
|
82
88
|
|
83
89
|
class AUSOCMOrganization(ConfiguredBaseModel):
|
84
90
|
name: str = Field(..., alias="name")
|
91
|
+
labels: Optional[Json] = Field(..., alias="labels")
|
85
92
|
environment: OCMEnvironment = Field(..., alias="environment")
|
86
93
|
org_id: str = Field(..., alias="orgId")
|
87
94
|
access_token_client_id: Optional[str] = Field(..., alias="accessTokenClientId")
|
@@ -37,6 +37,8 @@ class CreateOCMUpgradeSchedulerOrgUpdates(MergeRequestBase):
|
|
37
37
|
for update in self.updates_info["updates"]:
|
38
38
|
action = update["action"]
|
39
39
|
cluster_name = update["cluster"]
|
40
|
+
cluster_id = update["id"]
|
41
|
+
cluster_server_url = update["url"]
|
40
42
|
upgrade_policy = update.get("policy")
|
41
43
|
|
42
44
|
if action == "add":
|
@@ -47,6 +49,8 @@ class CreateOCMUpgradeSchedulerOrgUpdates(MergeRequestBase):
|
|
47
49
|
continue
|
48
50
|
item = {
|
49
51
|
"name": cluster_name,
|
52
|
+
"serverUrl": cluster_server_url,
|
53
|
+
"spec": {"id": cluster_id},
|
50
54
|
"upgradePolicy": upgrade_policy,
|
51
55
|
}
|
52
56
|
upgrade_policy_clusters.append(item)
|
@@ -3,11 +3,16 @@
|
|
3
3
|
|
4
4
|
from typing import (
|
5
5
|
Any,
|
6
|
+
Optional,
|
6
7
|
Self,
|
7
8
|
)
|
8
9
|
|
9
10
|
from pydantic import BaseModel
|
10
11
|
|
12
|
+
from reconcile.aus.base import get_orgs_for_environment
|
13
|
+
from reconcile.gql_definitions.advanced_upgrade_service.aus_organization import (
|
14
|
+
DEFINITION as AUS_ORGANIZATION_DEFINITION,
|
15
|
+
)
|
11
16
|
from reconcile.gql_definitions.common.app_code_component_repos import (
|
12
17
|
DEFINITION as CODE_COMPONENTS_DEFINITION,
|
13
18
|
)
|
@@ -47,6 +52,9 @@ from reconcile.gql_definitions.dynatrace_token_provider.dynatrace_bootstrap_toke
|
|
47
52
|
from reconcile.gql_definitions.dynatrace_token_provider.dynatrace_bootstrap_tokens import (
|
48
53
|
DynatraceEnvironmentV1,
|
49
54
|
)
|
55
|
+
from reconcile.gql_definitions.fragments.aus_organization import (
|
56
|
+
OpenShiftClusterManagerUpgradePolicyClusterV1,
|
57
|
+
)
|
50
58
|
from reconcile.gql_definitions.fragments.ocm_environment import OCMEnvironment
|
51
59
|
from reconcile.gql_definitions.gitlab_members.gitlab_instances import (
|
52
60
|
DEFINITION as GITLAB_INSTANCES_DEFINITION,
|
@@ -136,7 +144,9 @@ class SystemTool(BaseModel):
|
|
136
144
|
enumeration: str
|
137
145
|
|
138
146
|
@classmethod
|
139
|
-
def init_from_model(
|
147
|
+
def init_from_model(
|
148
|
+
cls, model: Any, enumeration: Any, parent: Optional[str] = None
|
149
|
+
) -> Self:
|
140
150
|
match model:
|
141
151
|
case GitlabInstanceV1():
|
142
152
|
return cls.init_from_gitlab(model, enumeration)
|
@@ -154,6 +164,10 @@ class SystemTool(BaseModel):
|
|
154
164
|
return cls.init_from_jira_server(model, enumeration)
|
155
165
|
case OCMEnvironment():
|
156
166
|
return cls.init_from_ocm_environment(model, enumeration)
|
167
|
+
case OpenShiftClusterManagerUpgradePolicyClusterV1():
|
168
|
+
return cls.init_from_ocm_org_upgrade_policy_cluster(
|
169
|
+
model, enumeration, parent
|
170
|
+
)
|
157
171
|
case PagerDutyInstanceV1():
|
158
172
|
return cls.init_from_pagerduty_instance(model, enumeration)
|
159
173
|
case QuayInstanceV1():
|
@@ -265,6 +279,24 @@ class SystemTool(BaseModel):
|
|
265
279
|
enumeration=enumeration,
|
266
280
|
)
|
267
281
|
|
282
|
+
@classmethod
|
283
|
+
def init_from_ocm_org_upgrade_policy_cluster(
|
284
|
+
cls,
|
285
|
+
c: OpenShiftClusterManagerUpgradePolicyClusterV1,
|
286
|
+
enumeration: Any,
|
287
|
+
parent: Optional[str] = None,
|
288
|
+
) -> Self:
|
289
|
+
return cls(
|
290
|
+
system_type="openshift",
|
291
|
+
system_id=c.spec.q_id if c.spec else "",
|
292
|
+
name=c.name,
|
293
|
+
url=c.server_url,
|
294
|
+
description=f"cluster {c.name} in organization {parent}"
|
295
|
+
if parent
|
296
|
+
else c.name,
|
297
|
+
enumeration=enumeration,
|
298
|
+
)
|
299
|
+
|
268
300
|
@classmethod
|
269
301
|
def init_from_pagerduty_instance(
|
270
302
|
cls, p: PagerDutyInstanceV1, enumeration: Any
|
@@ -362,12 +394,18 @@ class SystemToolInventory:
|
|
362
394
|
def __init__(self) -> None:
|
363
395
|
self.systems_and_tools: list[SystemTool] = []
|
364
396
|
|
365
|
-
def append(
|
366
|
-
self
|
397
|
+
def append(
|
398
|
+
self, model: Any, enumeration: Any, parent: Optional[str] = None
|
399
|
+
) -> None:
|
400
|
+
self.systems_and_tools.append(
|
401
|
+
SystemTool.init_from_model(model, enumeration, parent=parent)
|
402
|
+
)
|
367
403
|
|
368
|
-
def update(
|
404
|
+
def update(
|
405
|
+
self, models: list[Any], enumeration: Any, parent: Optional[str] = None
|
406
|
+
) -> None:
|
369
407
|
for m in models:
|
370
|
-
self.append(m, enumeration)
|
408
|
+
self.append(m, enumeration, parent=parent)
|
371
409
|
|
372
410
|
@property
|
373
411
|
def data(self) -> list[dict[str, Any]]:
|
@@ -408,7 +446,20 @@ def get_systems_and_tools_inventory() -> SystemToolInventory:
|
|
408
446
|
inventory.update(get_dynatrace_environments(), DYNATRACE_ENVIRONMENTS_DEFINITION)
|
409
447
|
inventory.update(get_glitchtip_instances(), GLITCHTIP_INSTANCES_DEFINITION)
|
410
448
|
inventory.update(get_jira_servers(), JIRA_SERVERS_DEFINITION)
|
411
|
-
|
449
|
+
ocm_environments = get_ocm_environments()
|
450
|
+
inventory.update(ocm_environments, OCM_ENVIRONMENTS_DEFINITION)
|
451
|
+
for ocm_env in ocm_environments:
|
452
|
+
ocm_env_orgs = get_orgs_for_environment(
|
453
|
+
"", ocm_env.name, query_func=gql_api.query
|
454
|
+
)
|
455
|
+
for ocm_org in ocm_env_orgs:
|
456
|
+
if ocm_org.labels and "systems_and_tools_report" in ocm_org.labels:
|
457
|
+
inventory.update(
|
458
|
+
ocm_org.upgrade_policy_clusters or [],
|
459
|
+
AUS_ORGANIZATION_DEFINITION,
|
460
|
+
parent=f"{ocm_org.name} ({ocm_env.name})",
|
461
|
+
)
|
462
|
+
|
412
463
|
inventory.update(
|
413
464
|
get_pagerduty_instances(gql_api.query), PAGERDUTY_INSTANCES_DEFINITION
|
414
465
|
)
|
File without changes
|
File without changes
|
{qontract_reconcile-0.10.1rc852.dist-info → qontract_reconcile-0.10.1rc854.dist-info}/top_level.txt
RENAMED
File without changes
|