@@ -24,6 +24,7 @@ class PreviewContext:
24
24
"APPLICATION_NAME" : lambda context : context .gitops_config .application_name ,
25
25
"PREVIEW_ID" : lambda context : context .preview_id ,
26
26
"PREVIEW_ID_HASH" : lambda context : GitOpsConfig .create_preview_id_hash (context .preview_id ),
27
+ "PREVIEW_ID_HASH_SHORT" : lambda context : GitOpsConfig .create_preview_id_hash_short (context .preview_id ),
27
28
}
28
29
29
30
def __init__ (self , path : str , value_template : str ):
@@ -72,7 +73,8 @@ def __post_init__(self) -> None:
72
73
assert isinstance (self .application_name , str ), "application_name of wrong type!"
73
74
assert isinstance (self .preview_host_template , str ), "preview_host_template of wrong type!"
74
75
self .__assert_variables (
75
- self .preview_host_template , {"APPLICATION_NAME" , "PREVIEW_ID_HASH" , "PREVIEW_ID" , "PREVIEW_NAMESPACE" }
76
+ self .preview_host_template ,
77
+ {"APPLICATION_NAME" , "PREVIEW_ID_HASH" , "PREVIEW_ID_HASH_SHORT" , "PREVIEW_ID" , "PREVIEW_NAMESPACE" },
76
78
)
77
79
assert isinstance (self .preview_template_organisation , str ), "preview_template_organisation of wrong type!"
78
80
assert isinstance (self .preview_template_repository , str ), "preview_template_repository of wrong type!"
@@ -88,7 +90,8 @@ def __post_init__(self) -> None:
88
90
self .preview_target_namespace_template , str
89
91
), "preview_target_namespace_template of wrong type!"
90
92
self .__assert_variables (
91
- self .preview_target_namespace_template , {"APPLICATION_NAME" , "PREVIEW_ID_HASH" , "PREVIEW_ID" }
93
+ self .preview_target_namespace_template ,
94
+ {"APPLICATION_NAME" , "PREVIEW_ID_HASH" , "PREVIEW_ID_HASH_SHORT" , "PREVIEW_ID" },
92
95
)
93
96
assert isinstance (
94
97
self .preview_target_max_namespace_length , int
@@ -104,6 +107,7 @@ def get_preview_host(self, preview_id: str) -> str:
104
107
preview_host = self .preview_host_template
105
108
preview_host = preview_host .replace ("${APPLICATION_NAME}" , self .application_name )
106
109
preview_host = preview_host .replace ("${PREVIEW_ID_HASH}" , self .create_preview_id_hash (preview_id ))
110
+ preview_host = preview_host .replace ("${PREVIEW_ID_HASH_SHORT}" , self .create_preview_id_hash_short (preview_id ))
107
111
preview_host = preview_host .replace ("${PREVIEW_ID}" , self .__sanitize (preview_id ))
108
112
preview_host = preview_host .replace ("${PREVIEW_NAMESPACE}" , self .get_preview_namespace (preview_id ))
109
113
return preview_host
@@ -112,6 +116,9 @@ def get_preview_namespace(self, preview_id: str) -> str:
112
116
preview_namespace = self .preview_target_namespace_template
113
117
preview_namespace = preview_namespace .replace ("${APPLICATION_NAME}" , self .application_name )
114
118
preview_namespace = preview_namespace .replace ("${PREVIEW_ID_HASH}" , self .create_preview_id_hash (preview_id ))
119
+ preview_namespace = preview_namespace .replace (
120
+ "${PREVIEW_ID_HASH_SHORT}" , self .create_preview_id_hash_short (preview_id )
121
+ )
115
122
116
123
current_length = len (preview_namespace ) - len ("${PREVIEW_ID}" )
117
124
remaining_length = self .preview_target_max_namespace_length - current_length
@@ -160,6 +167,10 @@ def is_preview_template_equal_target(self) -> bool:
160
167
def create_preview_id_hash (preview_id : str ) -> str :
161
168
return hashlib .sha256 (preview_id .encode ("utf-8" )).hexdigest ()[:8 ]
162
169
170
+ @staticmethod
171
+ def create_preview_id_hash_short (preview_id : str ) -> str :
172
+ return GitOpsConfig .create_preview_id_hash (preview_id )[:3 ]
173
+
163
174
@staticmethod
164
175
def from_yaml (yaml : Any ) -> "GitOpsConfig" :
165
176
return _GitOpsConfigYamlParser (yaml ).parse ()
@@ -302,7 +313,11 @@ def __parse_v1(self) -> GitOpsConfig:
302
313
preview_target_organisation = config .preview_target_organisation ,
303
314
preview_target_repository = config .preview_target_repository ,
304
315
preview_target_branch = config .preview_target_branch ,
305
- preview_target_namespace_template = add_var_dollar (config .preview_target_namespace_template ),
316
+ preview_target_namespace_template = add_var_dollar (
317
+ self .__get_string_value_or_default (
318
+ "previewConfig.target.namespace" , "{APPLICATION_NAME}-{PREVIEW_ID}-{PREVIEW_ID_HASH}-preview" ,
319
+ )
320
+ ),
306
321
preview_target_max_namespace_length = 63 ,
307
322
replacements = replacements ,
308
323
)
@@ -359,7 +374,7 @@ def __parse_v2(self) -> GitOpsConfig:
359
374
preview_target_repository = preview_target_repository ,
360
375
preview_target_branch = preview_target_branch ,
361
376
preview_target_namespace_template = self .__get_string_value_or_default (
362
- "previewConfig.target.namespace" , "${APPLICATION_NAME}-${PREVIEW_ID}-${PREVIEW_ID_HASH }-preview" ,
377
+ "previewConfig.target.namespace" , "${APPLICATION_NAME}-${PREVIEW_ID}-${PREVIEW_ID_HASH_SHORT }-preview" ,
363
378
),
364
379
preview_target_max_namespace_length = preview_target_max_namespace_length ,
365
380
replacements = replacements ,
0 commit comments