This section provides information about how to extend an existing ingress (Non-SSL and SSL termination) to enable additional application URL access for Oracle SOA Suite domains.
The ingress per domain created in the steps in Set up a load balancer exposes the application paths defined in template YAML files present at ${WORKDIR}/charts/ingress-per-domain/templates/
.
To extend an existing ingress with additional application URL access:
Update the template YAML file at ${WORKDIR}/charts/ingress-per-domain/templates/
to define additional path rules.
For example, to extend an existing NGINX-based ingress with additional paths /path1
and /path2
of an Oracle SOA Suite cluster, update nginx-ingress.yaml
(for the supported Kubernetes versions up to 1.18.x) with additional paths:
Note: For Kubernetes versions, 1.19+, you need to update the
nginx-ingress-k8s1.19.yaml
file.
# Copyright (c) 2020, 2021, Oracle and/or its affiliates.
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
{{- if eq .Values.type "NGINX" }}
---
apiVersion: extensions/v1beta1
kind: Ingress
.
.
spec:
rules:
- host: '{{ .Values.nginx.hostname }}'
http:
paths:
# Add new paths -- start
- path: /path1
backend:
serviceName: '{{ .Values.wlsDomain.domainUID }}-cluster-{{ .Values.wlsDomain.soaClusterName | lower | replace "_" "-" }}'
servicePort: {{ .Values.wlsDomain.soaManagedServerPort }}
- path: /path2
backend:
serviceName: '{{ .Values.wlsDomain.domainUID }}-cluster-{{ .Values.wlsDomain.soaClusterName | lower | replace "_" "-" }}'
servicePort: {{ .Values.wlsDomain.soaManagedServerPort }}
# Add new paths -- end
- path: /console
backend:
serviceName: '{{ .Values.wlsDomain.domainUID }}-{{ .Values.wlsDomain.adminServerName | lower | replace "_" "-" }}'
servicePort: {{ .Values.wlsDomain.adminServerPort }}
.
.
{{- end }}
Get the Helm release name for the ingress installed in your domain namespace:
$ helm ls -n <domain_namespace>
For example, in the soans
namespace:
$ helm ls -n soans
Sample output, showing the Helm release name for a NGINX-based ingress as soa-nginx-ingress
:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
soa-nginx-ingress soans 1 2021-02-17 13:42:03.252742314 +0000 UTC deployed ingress-per-domain-0.1.0 1.0
$
To extend the existing ingress per domain with additional paths defined in the template YAML, use the helm upgrade
command:
$ cd ${WORKDIR}
$ helm upgrade <helm_release_for_ingress> \
charts/ingress-per-domain \
--namespace <domain_namespace> \
--reuse-values
Note:
helm_release_for_ingress
is the ingress name used in the corresponding helm install command for the ingress installation.
Sample command for a NGINX-based ingress soa-nginx-ingress
in the soans
namespace:
$ cd ${WORKDIR}
$ helm upgrade soa-nginx-ingress \
charts/ingress-per-domain \
--namespace soans \
--reuse-values
This will upgrade the existing ingress to pick up the additional paths updated in the template YAML.
Verify that additional paths are updated into the existing ingress.
a. Get the existing ingress deployed in the domain namespace:
$ kubectl get ingress -n <domain_namespace>
For example, in the soans
namespace:
$ kubectl get ingress -n soans
Sample output, showing the existing ingress as soainfra-nginx
:
NAME CLASS HOSTS ADDRESS PORTS AGE
soainfra-nginx <none> domain1.org 10.109.211.160 80, 443 xxd
b. Describe the ingress object and verify that new paths are available and pointing to desired backends.
Sample command and output, showing path and backend details for /path1
and /path2
:
$ kubectl describe ingress soainfra-nginx -n soans|grep path
/path1 soainfra-cluster-soa-cluster:8001 (172.17.0.19:8001,172.17.0.20:8001)
/path2 soainfra-cluster-soa-cluster:8001 (172.17.0.19:8001,172.17.0.20:8001)