@@ -155,6 +155,10 @@ def set_helm_values(self, all_values: dict[str, Any], propertyType: PropertyType
155
155
def owns_manifest_named (self , manifest_name : str ) -> bool :
156
156
pass
157
157
158
+ @abc .abstractmethod
159
+ def deployable_details_for_container (self , container_name : str | None ) -> "DeployableDetails | None" :
160
+ pass
161
+
158
162
159
163
@dataclass (unsafe_hash = True )
160
164
class SidecarDetails (DeployableDetails ):
@@ -187,6 +191,9 @@ def owns_manifest_named(self, manifest_name: str) -> bool:
187
191
188
192
return manifest_name .startswith (self .name )
189
193
194
+ def deployable_details_for_container (self , container_name : str | None ) -> DeployableDetails | None :
195
+ return self if container_name is not None and container_name .startswith (self .name ) else None
196
+
190
197
191
198
@dataclass (unsafe_hash = True )
192
199
class SubComponentDetails (DeployableDetails ):
@@ -201,6 +208,12 @@ def __post_init__(self):
201
208
def owns_manifest_named (self , manifest_name : str ) -> bool :
202
209
return manifest_name .startswith (self .name )
203
210
211
+ def deployable_details_for_container (self , container_name : str | None ) -> DeployableDetails :
212
+ for sidecar in self .sidecars :
213
+ if sidecar .deployable_details_for_container (container_name ) is not None :
214
+ return sidecar
215
+ return self
216
+
204
217
205
218
@dataclass (unsafe_hash = True )
206
219
class ComponentDetails (DeployableDetails ):
@@ -265,6 +278,12 @@ def owns_manifest_named(self, manifest_name: str) -> bool:
265
278
266
279
return manifest_name .startswith (self .name )
267
280
281
+ def deployable_details_for_container (self , container_name : str | None ) -> DeployableDetails :
282
+ for sidecar in self .sidecars :
283
+ if sidecar .deployable_details_for_container (container_name ) is not None :
284
+ return sidecar
285
+ return self
286
+
268
287
269
288
all_components_details = [
270
289
ComponentDetails (
0 commit comments