qontract-reconcile 0.10.1rc591__py3-none-any.whl → 0.10.1rc593__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.1rc591.dist-info → qontract_reconcile-0.10.1rc593.dist-info}/METADATA +1 -1
- {qontract_reconcile-0.10.1rc591.dist-info → qontract_reconcile-0.10.1rc593.dist-info}/RECORD +14 -14
- reconcile/aus/advanced_upgrade_service.py +8 -0
- reconcile/aus/aus_label_source.py +1 -0
- reconcile/gql_definitions/advanced_upgrade_service/aus_clusters.py +1 -0
- reconcile/gql_definitions/advanced_upgrade_service/aus_organization.py +1 -0
- reconcile/gql_definitions/common/clusters.py +11 -0
- reconcile/gql_definitions/fragments/upgrade_policy.py +1 -0
- reconcile/test/test_openshift_upgrade_watcher.py +2 -1
- reconcile/utils/aws_api.py +14 -1
- tools/qontract_cli.py +8 -0
- {qontract_reconcile-0.10.1rc591.dist-info → qontract_reconcile-0.10.1rc593.dist-info}/WHEEL +0 -0
- {qontract_reconcile-0.10.1rc591.dist-info → qontract_reconcile-0.10.1rc593.dist-info}/entry_points.txt +0 -0
- {qontract_reconcile-0.10.1rc591.dist-info → qontract_reconcile-0.10.1rc593.dist-info}/top_level.txt +0 -0
{qontract_reconcile-0.10.1rc591.dist-info → qontract_reconcile-0.10.1rc593.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.1rc593
|
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.1rc591.dist-info → qontract_reconcile-0.10.1rc593.dist-info}/RECORD
RENAMED
@@ -118,8 +118,8 @@ reconcile/terraform_vpc_peerings.py,sha256=rnDH1u93OyzrBM8Hib0HwSnlxZtx4ScRQaZAc
|
|
118
118
|
reconcile/vault_replication.py,sha256=79GZ_kCimPoQcxkdhkWTQxPOAa46E0mNhf05s_Mk5so,17385
|
119
119
|
reconcile/vpc_peerings_validator.py,sha256=Kv22HJVlTW9l9GB2eXwjPWqdDbr_VuvQBNPttox6s5o,7177
|
120
120
|
reconcile/aus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
121
|
-
reconcile/aus/advanced_upgrade_service.py,sha256=
|
122
|
-
reconcile/aus/aus_label_source.py,sha256=
|
121
|
+
reconcile/aus/advanced_upgrade_service.py,sha256=PkVcXBMrveW5euvqjEBO4e5-9KDb_6hszLI2GrWpx2w,21378
|
122
|
+
reconcile/aus/aus_label_source.py,sha256=qoP8Fgxuu1tCuhG6ixCWve7Ll-KD6a79E2uLAmC0ifw,4184
|
123
123
|
reconcile/aus/base.py,sha256=Qdktz7W7J9TWVCYJZHwyKoIf4sVI7W9o_WwzsOBxLfQ,44912
|
124
124
|
reconcile/aus/cluster_version_data.py,sha256=j4UyEBi5mQuvPq5Lo7a_L_0blxvH790wJV07uAiikFU,7126
|
125
125
|
reconcile/aus/metrics.py,sha256=fIew-rzi_kYuI5Gxn3-4bQVIr2oNibiKPyGnhB-xKU4,3538
|
@@ -174,8 +174,8 @@ reconcile/gql_definitions/acs/acs_instances.py,sha256=L91WW9LbhJbBSrECqShQpFtjoB
|
|
174
174
|
reconcile/gql_definitions/acs/acs_policies.py,sha256=Z6Z7duvS9W4cbciBED4oK40Vg9QyYti3zXvoEXM-fak,4422
|
175
175
|
reconcile/gql_definitions/acs/acs_rbac.py,sha256=cZsIlCWliPQdQHgmBsIMx54fJNOtkdRXLzmOKZmJNHk,3009
|
176
176
|
reconcile/gql_definitions/advanced_upgrade_service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
177
|
-
reconcile/gql_definitions/advanced_upgrade_service/aus_clusters.py,sha256=
|
178
|
-
reconcile/gql_definitions/advanced_upgrade_service/aus_organization.py,sha256=
|
177
|
+
reconcile/gql_definitions/advanced_upgrade_service/aus_clusters.py,sha256=z-duZbkMLU1B7P7PSzjUQYVOr2ccP6rvpQLjgzHCj-4,4244
|
178
|
+
reconcile/gql_definitions/advanced_upgrade_service/aus_organization.py,sha256=_H8jhf_kzFj5AWa8auawXIwFmrQw3a1RK6MOi4qQ6zA,3242
|
179
179
|
reconcile/gql_definitions/app_interface_metrics_exporter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
180
180
|
reconcile/gql_definitions/app_interface_metrics_exporter/onboarding_status.py,sha256=uVEEqU6YYmKsNTo6EWlFnoVmqha2rvBDx-wiD64VmG0,1679
|
181
181
|
reconcile/gql_definitions/aws_ami_cleanup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -204,7 +204,7 @@ reconcile/gql_definitions/common/app_interface_repo_settings.py,sha256=rud0rz9NI
|
|
204
204
|
reconcile/gql_definitions/common/app_interface_state_settings.py,sha256=VXIK0Hmyv6GTShI86IGkjxyHGwufqUBAh617XKUAKaI,2507
|
205
205
|
reconcile/gql_definitions/common/app_interface_vault_settings.py,sha256=w8quvdG0cSq71ZyJokPPp7MyMpoDb6-HLQ3o9JHVGRQ,1771
|
206
206
|
reconcile/gql_definitions/common/aws_vpcs.py,sha256=Dss9dQ3xagnz3Ltg1e9mtG2PAmQGBbUzKCmmzvuN28s,1892
|
207
|
-
reconcile/gql_definitions/common/clusters.py,sha256=
|
207
|
+
reconcile/gql_definitions/common/clusters.py,sha256=b9RLeV4H-y1aAPotySaid6IMT6-jPNE1smu70eSDYH4,23201
|
208
208
|
reconcile/gql_definitions/common/clusters_minimal.py,sha256=yZpjS9qWyusCEiWtD8wzf0tak298uQyxiN4lC6KNo4s,4475
|
209
209
|
reconcile/gql_definitions/common/clusters_with_peering.py,sha256=7ORLr469qEmsqescriARsZrJyQaB0JOFP6UVVlFWfk0,11548
|
210
210
|
reconcile/gql_definitions/common/github_orgs.py,sha256=rZ0pDAA2_9hF9N-ykRZIxPtEmczTSjuA_k3nkp0k1W0,2039
|
@@ -243,7 +243,7 @@ reconcile/gql_definitions/fragments/resource_requests_requirements.py,sha256=TFK
|
|
243
243
|
reconcile/gql_definitions/fragments/resource_values.py,sha256=-N2lNRhWp8PgocmIeX3U9f3l90Q97N2lXoq1pXdb_LE,742
|
244
244
|
reconcile/gql_definitions/fragments/saas_target_namespace.py,sha256=y4hA73Vchi3I1UW94r7CmecZe6KoHkCMEVuoiAF2xnc,3660
|
245
245
|
reconcile/gql_definitions/fragments/terraform_state.py,sha256=S5QuTR9YlvUObiU7hevS9ybxZEssWoRGqCR9YtGwePs,1024
|
246
|
-
reconcile/gql_definitions/fragments/upgrade_policy.py,sha256=
|
246
|
+
reconcile/gql_definitions/fragments/upgrade_policy.py,sha256=cVza8zfra1E3yBsHiS-hKbys17fvv572GFnKshJjluE,1246
|
247
247
|
reconcile/gql_definitions/fragments/user.py,sha256=84RGYYSYnZmyrwHlCX89-EgAu7UaLFOTMQXobmHCfz8,939
|
248
248
|
reconcile/gql_definitions/fragments/vault_secret.py,sha256=8xoQJNx1jKw_1yradq1iLEYWzuOHra1bEHHU7WHKxqo,833
|
249
249
|
reconcile/gql_definitions/gitlab_members/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -437,7 +437,7 @@ reconcile/test/test_openshift_resources_base.py,sha256=LtlR9x3o7KkSEw0JN0fZhinFe
|
|
437
437
|
reconcile/test/test_openshift_saas_deploy.py,sha256=YLJGkc--u5aP0UkQ-b9ZGEFGS2gw25jjcSgknQdI3Ic,5892
|
438
438
|
reconcile/test/test_openshift_saas_deploy_change_tester.py,sha256=1yVe54Hx9YdVjn6qdnKge5Sa_s732c-8uZqCnuT1gGI,12871
|
439
439
|
reconcile/test/test_openshift_tekton_resources.py,sha256=RtRWsdm51S13OSkENC9nY_rOH0QELSCaO5tjF0XqIDI,11222
|
440
|
-
reconcile/test/test_openshift_upgrade_watcher.py,sha256=
|
440
|
+
reconcile/test/test_openshift_upgrade_watcher.py,sha256=0GDQ_YFHIX8DbkbDYSuLv9uZeeg4NwP1vlOqvSaZvN4,7183
|
441
441
|
reconcile/test/test_prometheus_rules_tester.py,sha256=Qc9J4k0lSVie361lGr_cOy0EaBTD5LDqGZf7CYVFKr8,5677
|
442
442
|
reconcile/test/test_quay_membership.py,sha256=e29Giz5S9ckFgjpTO8PBo8qVPocIQmy4WqsRhgTFd9A,2643
|
443
443
|
reconcile/test/test_quay_mirror.py,sha256=UBLQDtet5WkWnh98ev5cI3yAflQl07awg2dXTefqoUk,6311
|
@@ -534,7 +534,7 @@ reconcile/typed_queries/terraform_tgw_attachments/aws_accounts.py,sha256=T5HSeyB
|
|
534
534
|
reconcile/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
535
535
|
reconcile/utils/aggregated_list.py,sha256=pkYoBj7WwmaNgEefETqEOFTnQMcUzHE3mdsVdzGYj60,3372
|
536
536
|
reconcile/utils/amtool.py,sha256=JV5-to_e_FaIcvJWTKYA9d6L3LwzwijM0MjUWn83eD4,2204
|
537
|
-
reconcile/utils/aws_api.py,sha256=
|
537
|
+
reconcile/utils/aws_api.py,sha256=Wy040GBQ3HrWmtxe1QAx3zl1I3phVDVjXEx_OITEcOw,69191
|
538
538
|
reconcile/utils/aws_helper.py,sha256=E8NHkStoHRmvLVjRll2f5kGtU3i3f7ekp5V6nrn7B_M,1691
|
539
539
|
reconcile/utils/binary.py,sha256=3IBnwjKakHM367skPPvG6yVSQYjKt5muQlFNdoa63DU,2352
|
540
540
|
reconcile/utils/config.py,sha256=aId5zrPjM_84u_T4yTRE_Psu3zo5-5_JCR6_7Wgv5UQ,990
|
@@ -682,7 +682,7 @@ tools/app_interface_metrics_exporter.py,sha256=zkwkxdAUAxjdc-pzx2_oJXG25fo0Fnyd5
|
|
682
682
|
tools/app_interface_reporter.py,sha256=upA-J-n-HXHKVDINRuMR7vTt-iJvQORKUVi9D3leQto,17738
|
683
683
|
tools/glitchtip_access_reporter.py,sha256=oPBnk_YoDuljU3v0FaChzOwwnk4vap1xEE67QEjzdqs,2948
|
684
684
|
tools/glitchtip_access_revalidation.py,sha256=8kbBJk04mkq28kWoRDDkfCGIF3GRg3pJrFAh1sW0dbk,2821
|
685
|
-
tools/qontract_cli.py,sha256=
|
685
|
+
tools/qontract_cli.py,sha256=X6F63x-1m7iuPvnrxRqkav3ZUaU-tC4fmaouhVGy1TQ,107850
|
686
686
|
tools/sd_app_sre_alert_report.py,sha256=e9vAdyenUz2f5c8-z-5WY0wv-SJ9aePKDH2r4IwB6pc,5063
|
687
687
|
tools/cli_commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
688
688
|
tools/cli_commands/gpg_encrypt.py,sha256=w8hl4jIEWk5wKbEFN6fVEOwUJGmdlvOqYodW3XSN7mU,4978
|
@@ -693,8 +693,8 @@ tools/test/test_app_interface_metrics_exporter.py,sha256=SX7qL3D1SIRKFo95FoQztvf
|
|
693
693
|
tools/test/test_qontract_cli.py,sha256=OvalpVRfY4pNmpMaWHHYqBjV68b1eGQjX8SCyTAXb1w,3501
|
694
694
|
tools/test/test_sd_app_sre_alert_report.py,sha256=v363r9zM7__0kR5K6mvJoGFcM9BvE33fWAayrqkpojA,2116
|
695
695
|
tools/test/test_sre_checkpoints.py,sha256=SKqPPTl9ua0RFdSSofnoQX-JZE6dFLO3LRhfQzqtfh8,2607
|
696
|
-
qontract_reconcile-0.10.
|
697
|
-
qontract_reconcile-0.10.
|
698
|
-
qontract_reconcile-0.10.
|
699
|
-
qontract_reconcile-0.10.
|
700
|
-
qontract_reconcile-0.10.
|
696
|
+
qontract_reconcile-0.10.1rc593.dist-info/METADATA,sha256=Lfkt4RPQCrWJAcp1p0WBo6W__DgrMYySGwnLQTWNFUw,2349
|
697
|
+
qontract_reconcile-0.10.1rc593.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
698
|
+
qontract_reconcile-0.10.1rc593.dist-info/entry_points.txt,sha256=rTjAv28I_CHLM8ID3OPqMI_suoQ9s7tFbim4aYjn9kk,376
|
699
|
+
qontract_reconcile-0.10.1rc593.dist-info/top_level.txt,sha256=l5ISPoXzt0SdR4jVdkfa7RPSKNc8zAHYWAnR-Dw8Ey8,24
|
700
|
+
qontract_reconcile-0.10.1rc593.dist-info/RECORD,,
|
@@ -364,6 +364,9 @@ class ClusterUpgradePolicyLabelSet(BaseModel):
|
|
364
364
|
mutexes: Optional[CSV] = Field(alias=aus_label_key("mutexes"))
|
365
365
|
sector: Optional[str] = Field(alias=aus_label_key("sector"))
|
366
366
|
blocked_versions: Optional[CSV] = Field(alias=aus_label_key("blocked-versions"))
|
367
|
+
version_gate_approvals: Optional[CSV] = Field(
|
368
|
+
alias=aus_label_key("version-gate-approvals")
|
369
|
+
)
|
367
370
|
_schedule_validator = validator("schedule", allow_reuse=True)(cron_validator)
|
368
371
|
|
369
372
|
def build_labels_dict(self) -> dict[str, str]:
|
@@ -388,6 +391,7 @@ def build_cluster_upgrade_policy_label_set(
|
|
388
391
|
mutexes: Optional[list[str]] = None,
|
389
392
|
sector: Optional[str] = None,
|
390
393
|
blocked_versions: Optional[list[str]] = None,
|
394
|
+
version_gate_approvals: Optional[list[str]] = None,
|
391
395
|
) -> ClusterUpgradePolicyLabelSet:
|
392
396
|
return ClusterUpgradePolicyLabelSet(**{
|
393
397
|
aus_label_key("workloads"): ",".join(workloads),
|
@@ -398,6 +402,9 @@ def build_cluster_upgrade_policy_label_set(
|
|
398
402
|
aus_label_key("blocked-versions"): ",".join(blocked_versions)
|
399
403
|
if blocked_versions
|
400
404
|
else None,
|
405
|
+
aus_label_key("version-gate-approvals"): ",".join(version_gate_approvals)
|
406
|
+
if version_gate_approvals
|
407
|
+
else None,
|
401
408
|
})
|
402
409
|
|
403
410
|
|
@@ -410,6 +417,7 @@ def _build_policy_from_labels(labels: LabelContainer) -> ClusterUpgradePolicyV1:
|
|
410
417
|
policy_labelset = build_labelset(labels, ClusterUpgradePolicyLabelSet)
|
411
418
|
return ClusterUpgradePolicyV1(
|
412
419
|
workloads=policy_labelset.workloads,
|
420
|
+
versionGateApprovals=policy_labelset.version_gate_approvals,
|
413
421
|
schedule=policy_labelset.schedule,
|
414
422
|
conditions=ClusterUpgradePolicyConditionsV1(
|
415
423
|
soakDays=policy_labelset.soak_days,
|
@@ -52,6 +52,7 @@ class AUSClusterUpgradePolicyLabelSource(LabelSource):
|
|
52
52
|
mutexes=policy.conditions.mutexes,
|
53
53
|
sector=policy.conditions.sector,
|
54
54
|
blocked_versions=policy.conditions.blocked_versions,
|
55
|
+
version_gate_approvals=policy.version_gate_approvals,
|
55
56
|
).build_labels_dict()
|
56
57
|
|
57
58
|
|
@@ -62,6 +62,7 @@ fragment AWSVPC on AWSVPC_v1 {
|
|
62
62
|
fragment ClusterUpgradePolicyV1 on ClusterUpgradePolicy_v1 {
|
63
63
|
workloads
|
64
64
|
schedule
|
65
|
+
versionGateApprovals
|
65
66
|
conditions {
|
66
67
|
mutexes
|
67
68
|
soakDays
|
@@ -186,7 +187,13 @@ query Clusters($name: String) {
|
|
186
187
|
availability_zones
|
187
188
|
oidc_endpoint_url
|
188
189
|
account {
|
190
|
+
name
|
189
191
|
uid
|
192
|
+
terraformUsername
|
193
|
+
automationToken {
|
194
|
+
... VaultSecret
|
195
|
+
}
|
196
|
+
resourcesDefaultRegion
|
190
197
|
rosa {
|
191
198
|
ocm_environments {
|
192
199
|
ocm {
|
@@ -473,7 +480,11 @@ class RosaOcmSpecV1(ConfiguredBaseModel):
|
|
473
480
|
|
474
481
|
|
475
482
|
class ClusterSpecROSAV1_AWSAccountV1(ConfiguredBaseModel):
|
483
|
+
name: str = Field(..., alias="name")
|
476
484
|
uid: str = Field(..., alias="uid")
|
485
|
+
terraform_username: Optional[str] = Field(..., alias="terraformUsername")
|
486
|
+
automation_token: VaultSecret = Field(..., alias="automationToken")
|
487
|
+
resources_default_region: str = Field(..., alias="resourcesDefaultRegion")
|
477
488
|
rosa: Optional[RosaOcmSpecV1] = Field(..., alias="rosa")
|
478
489
|
|
479
490
|
|
@@ -34,4 +34,5 @@ class ClusterUpgradePolicyConditionsV1(ConfiguredBaseModel):
|
|
34
34
|
class ClusterUpgradePolicyV1(ConfiguredBaseModel):
|
35
35
|
workloads: list[str] = Field(..., alias="workloads")
|
36
36
|
schedule: str = Field(..., alias="schedule")
|
37
|
+
version_gate_approvals: Optional[list[str]] = Field(..., alias="versionGateApprovals")
|
37
38
|
conditions: ClusterUpgradePolicyConditionsV1 = Field(..., alias="conditions")
|
@@ -8,13 +8,14 @@ import pytest
|
|
8
8
|
from reconcile import openshift_upgrade_watcher as ouw
|
9
9
|
from reconcile.gql_definitions.common.clusters import ClusterV1
|
10
10
|
from reconcile.test.fixtures import Fixtures
|
11
|
+
from reconcile.utils.models import data_default_none
|
11
12
|
|
12
13
|
fxt = Fixtures("openshift_upgrade_watcher")
|
13
14
|
|
14
15
|
|
15
16
|
def load_cluster(path: str) -> ClusterV1:
|
16
17
|
content = fxt.get_anymarkup(path)
|
17
|
-
return ClusterV1(**content)
|
18
|
+
return ClusterV1(**data_default_none(ClusterV1, content))
|
18
19
|
|
19
20
|
|
20
21
|
@pytest.fixture
|
reconcile/utils/aws_api.py
CHANGED
@@ -50,6 +50,7 @@ if TYPE_CHECKING:
|
|
50
50
|
)
|
51
51
|
from mypy_boto3_iam import IAMClient
|
52
52
|
from mypy_boto3_iam.type_defs import AccessKeyMetadataTypeDef
|
53
|
+
from mypy_boto3_organizations import OrganizationsClient
|
53
54
|
from mypy_boto3_rds import RDSClient
|
54
55
|
from mypy_boto3_rds.type_defs import (
|
55
56
|
DBInstanceMessageTypeDef,
|
@@ -70,7 +71,9 @@ else:
|
|
70
71
|
FilterTypeDef
|
71
72
|
) = Route53Client = ResourceRecordSetTypeDef = ResourceRecordTypeDef = (
|
72
73
|
HostedZoneTypeDef
|
73
|
-
) = RDSClient = DBInstanceMessageTypeDef = UpgradeTargetTypeDef =
|
74
|
+
) = RDSClient = DBInstanceMessageTypeDef = UpgradeTargetTypeDef = (
|
75
|
+
OrganizationsClient
|
76
|
+
) = object
|
74
77
|
|
75
78
|
|
76
79
|
class InvalidResourceTypeError(Exception):
|
@@ -350,6 +353,12 @@ class AWSApi: # pylint: disable=too-many-public-methods
|
|
350
353
|
session = self.get_session(account_name)
|
351
354
|
return self.get_session_client(session, "logs", region_name)
|
352
355
|
|
356
|
+
def _account_organizations_client(
|
357
|
+
self, account_name: str, region_name: Optional[str] = None
|
358
|
+
) -> OrganizationsClient:
|
359
|
+
session = self.get_session(account_name)
|
360
|
+
return self.get_session_client(session, "organizations", region_name)
|
361
|
+
|
353
362
|
def init_users(self):
|
354
363
|
self.users = {}
|
355
364
|
for account, s in self.sessions.items():
|
@@ -1729,6 +1738,10 @@ class AWSApi: # pylint: disable=too-many-public-methods
|
|
1729
1738
|
return versions[0]["ValidUpgradeTarget"]
|
1730
1739
|
return []
|
1731
1740
|
|
1741
|
+
def get_organization_billing_account(self, account_name: str) -> str:
|
1742
|
+
org = self._account_organizations_client(account_name)
|
1743
|
+
return org.describe_organization()["Organization"]["MasterAccountId"]
|
1744
|
+
|
1732
1745
|
|
1733
1746
|
def aws_config_file_path() -> Optional[str]:
|
1734
1747
|
config_file_path = os.path.expanduser(
|
tools/qontract_cli.py
CHANGED
@@ -1309,9 +1309,17 @@ def rosa_create_cluster_command(ctx, cluster_name):
|
|
1309
1309
|
print("must be a rosa cluster.")
|
1310
1310
|
sys.exit(1)
|
1311
1311
|
|
1312
|
+
settings = queries.get_app_interface_settings()
|
1313
|
+
account = cluster.spec.account
|
1314
|
+
with AWSApi(
|
1315
|
+
1, [account.dict(by_alias=True)], settings=settings, init_users=False
|
1316
|
+
) as aws_api:
|
1317
|
+
billing_account = aws_api.get_organization_billing_account(account.name)
|
1318
|
+
|
1312
1319
|
print(
|
1313
1320
|
" ".join([
|
1314
1321
|
"rosa create cluster",
|
1322
|
+
f"--billing-account {billing_account}",
|
1315
1323
|
f"--cluster-name {cluster.name}",
|
1316
1324
|
"--sts",
|
1317
1325
|
("--private" if cluster.spec.private else ""),
|
File without changes
|
File without changes
|
{qontract_reconcile-0.10.1rc591.dist-info → qontract_reconcile-0.10.1rc593.dist-info}/top_level.txt
RENAMED
File without changes
|