|
1 | 1 | # |
2 | | -# Copyright © 2020-2024, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. |
| 2 | +# Copyright © 2020-2025, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. |
3 | 3 | # SPDX-License-Identifier: Apache-2.0 |
4 | 4 | # |
5 | 5 | from ansible.module_utils.basic import * |
@@ -55,8 +55,30 @@ def addResource(self, yamlfile): |
55 | 55 | elif "nameReference" in yamlblocks[0]: |
56 | 56 | self.add_overlays(Overlay.CONFIGURATION, yamlfile) |
57 | 57 |
|
| 58 | + def processSasBasesOverlays(self, folder): |
| 59 | + sasBasesOverlaysPath = os.path.join(folder, "inject-sas-bases-overlays.yaml") |
| 60 | + if os.path.exists(sasBasesOverlaysPath): |
| 61 | + with open(sasBasesOverlaysPath) as file: |
| 62 | + try: |
| 63 | + yamlblock = yaml.safe_load(file) |
| 64 | + for blockName, entries in yamlblock.items(): |
| 65 | + if isinstance(entries, list): |
| 66 | + try: |
| 67 | + overlay = Overlay(blockName) |
| 68 | + except ValueError: |
| 69 | + continue |
| 70 | + requiredPrefix = "sas-bases/overlays/" |
| 71 | + for entry in entries: |
| 72 | + if entry.startswith(requiredPrefix): |
| 73 | + self.add_overlays(overlay, entry) |
| 74 | + else: |
| 75 | + raise ValueError(f"Invalid {blockName} entry in {sasBasesOverlaysPath}: '{entry}'. Valid entries must start with '{requiredPrefix}'") |
| 76 | + except yaml.YAMLError as exc: |
| 77 | + raise RuntimeError(f"Error parsing {sasBasesOverlaysPath} as yaml") from exc |
58 | 78 |
|
59 | 79 | def traverse(self, folder): |
| 80 | + self.processSasBasesOverlays(folder) |
| 81 | + |
60 | 82 | if os.path.exists(os.path.join(folder, "kustomization.yaml")) or os.path.exists(os.path.join(folder, "kustomization.yml")): |
61 | 83 | kustomizefile = "kustomization.yaml" if os.path.exists(os.path.join(folder, "kustomization.yaml")) else "kustomization.yml" |
62 | 84 | kustomizefilefullpath = os.path.join(folder, kustomizefile) |
|
0 commit comments