19
19
_DEFAULT_USER_ID : int = 1000
20
20
_DEFAULT_GROUP_ID : int = 100
21
21
_DEFAULT_INGRESS_PROXY_BODY_SIZE : str = "500m"
22
-
23
- # The ingress class
24
- _INGRESS_CLASS : str = "nginx"
25
- # The ingress domain must be provided.
26
- ingress_domain : str = os .environ ["INGRESS_DOMAIN" ]
27
- # The ingress TLS secret is optional.
22
+ # The default ingress domain (must be provided).
23
+ # The user can provide an alternative via the CR.
24
+ _DEFAULT_INGRESS_DOMAIN : str = os .environ ["INGRESS_DOMAIN" ]
25
+ # The ingress TLS secret.
28
26
# If provided it is used as the Ingress secret
29
27
# and cert-manager is avoided.
30
- ingress_tls_secret : Optional [str ] = os .environ .get ("INGRESS_TLS_SECRET" )
28
+ # The uer can provide their own via the CR.
29
+ _DEFAULT_INGRESS_TLS_SECRET : Optional [str ] = os .environ .get ("INGRESS_TLS_SECRET" )
30
+ # The ingress class
31
+ _DEFAULT_INGRESS_CLASS : str = "nginx"
32
+
31
33
# The cert-manager issuer,
32
- # expected if a TLS certificate is not defined.
34
+ # expected if a INGRESS_TLS_SECRET is not defined.
33
35
ingress_cert_issuer : Optional [str ] = os .environ .get ("INGRESS_CERT_ISSUER" )
34
36
35
37
# Application node selection
@@ -322,8 +324,10 @@ def create(spec: Dict[str, Any], name: str, namespace: str, **_: Any) -> Dict[st
322
324
"ingressProxyBodySize" , _DEFAULT_INGRESS_PROXY_BODY_SIZE
323
325
)
324
326
327
+ ingress_class = material .get ("ingressClass" , _DEFAULT_INGRESS_CLASS )
328
+ ingress_domain = material .get ("ingressDomain" , _DEFAULT_INGRESS_DOMAIN )
329
+ ingress_tls_secret = material .get ("ingressTlsSecret" , _DEFAULT_INGRESS_TLS_SECRET )
325
330
ingress_path = f"/{ name } "
326
- tls_secret = ingress_tls_secret if ingress_tls_secret else f"{ name } -tls"
327
331
328
332
ingress_body : Dict [Any , Any ] = {
329
333
"kind" : "Ingress" ,
@@ -332,12 +336,12 @@ def create(spec: Dict[str, Any], name: str, namespace: str, **_: Any) -> Dict[st
332
336
"name" : name ,
333
337
"labels" : {"app" : name },
334
338
"annotations" : {
335
- "kubernetes.io/ingress.class" : _INGRESS_CLASS ,
339
+ "kubernetes.io/ingress.class" : ingress_class ,
336
340
"nginx.ingress.kubernetes.io/proxy-body-size" : f"{ ingress_proxy_body_size } " ,
337
341
},
338
342
},
339
343
"spec" : {
340
- "tls" : [{"hosts" : [ingress_domain ], "secretName" : tls_secret }],
344
+ "tls" : [{"hosts" : [ingress_domain ], "secretName" : ingress_tls_secret }],
341
345
"rules" : [
342
346
{
343
347
"host" : ingress_domain ,
0 commit comments