Skip to content

Commit 63722ec

Browse files
authored
GitHub Release 24.4.3 - Oracle Fusion Middleware Container deployment scripts for release 14.1.2.0.0 (#235)
1 parent ea177cb commit 63722ec

File tree

641 files changed

+64295
-29428
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

641 files changed

+64295
-29428
lines changed

OracleSOASuite/helm-charts/README.md

Lines changed: 598 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Copyright (c) 2024, Oracle and/or its affiliates.
2+
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
3+
#
4+
apiVersion: v1
5+
appVersion: "1.0"
6+
description: A Helm chart to create an Ingress for a WLS domain.
7+
name: ingress-per-domain
8+
version: 0.1.0
Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
# An Ingress per domain chart
2+
This chart is for deploying an Ingress resource in front of an Oracle SOA Suite domain cluster. We support two Ingress types: TRAEFIK and NGINX.
3+
4+
## Prerequisites
5+
- Have Docker and a Kubernetes cluster running and have `kubectl` installed and configured.
6+
- Have Helm installed.
7+
- The corresponding Ingress controller, [Traefik](https://github.com/oracle/weblogic-kubernetes-operator/tree/main/kubernetes/samples/charts/traefik), is installed in the Kubernetes cluster.
8+
- An Oracle SOA Suite domain cluster deployed by `weblogic-operator` is running in the Kubernetes cluster.
9+
10+
## Install ingress controller
11+
### NGINX (kubernetes/ingress-nginx) Ingress Controller.
12+
13+
```bash
14+
$ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
15+
$ helm repo update
16+
$ helm install nginx-ingress -n soans \
17+
--set controller.service.type=NodePort \
18+
--set controller.admissionWebhooks.enabled=false \
19+
ingress-nginx/ingress-nginx
20+
```
21+
22+
### TRAEFIK Ingress Controller
23+
```bash
24+
$ helm repo add traefik https://helm.traefik.io/traefik --force-update
25+
$ kubectl create namespace traefik
26+
$ helm install traefik traefik/traefik \
27+
--namespace traefik \
28+
--values values.yaml \
29+
--set "kubernetes.namespaces={traefik}" \
30+
--set "service.type=NodePort" --wait
31+
```
32+
33+
## Installing the chart
34+
35+
To install the chart with the release name, `soa-traefik-ingress` or `soa-nginx-ingress`, with the given `values.yaml`:
36+
```
37+
38+
# Use helm to install the chart. Use `--namespace` to specify the name of the Soa domain's namespace.
39+
40+
# Using Helm 3.x:
41+
# Traefik:
42+
$ helm install soa-traefik-ingress . --namespace soans --values values.yaml --set "traefik.hostname=$(hostname -f)"
43+
44+
#NGINX
45+
$ helm install soa-nginx-ingress . --namespace soans --values values.yaml --set "nginx.hostname=$(hostname -f)"
46+
47+
```
48+
NOTE: Ingress per domain installing using helm command uses the values from `values.yml` available at `ingress-per-domain/values.yaml`. This values.yaml contains the default values
49+
The inputs provided in the helm install command will overwrite these default values.
50+
> In the value.yaml the default values are: type: "TRAEFIK" , sslType: "NONSSL" and domainType: "soa".
51+
> If you want to use other than these default values then,
52+
> 1. Either modify the value.yaml file with the required values or
53+
> 2. Pass the required values through the helm command line.
54+
>
55+
> For Example : For installing Nginx ingress with SSL Configuration pass "type=NGINX" and "sslType=SSL" on command line.
56+
> $ helm install soa-nginx-ingress . --namespace soans --values values.yaml --set "nginx.hostname=$(hostname -f)" --set type=NGINX --set sslType=SSL
57+
58+
59+
The Ingress resource will be created in the same namespace as the SOA domain cluster.
60+
61+
## Generate Secret to access SSL services
62+
63+
Command to Generate Secret:
64+
```
65+
$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /tmp/tls1.key -out /tmp/tls1.crt -subj "/CN=*"
66+
$ kubectl -n soans create secret tls soainfra-tls-cert --key /tmp/tls1.key --cert /tmp/tls1.crt
67+
68+
```
69+
70+
Sample `values.yaml` for the Traefik and Nginx Ingress:
71+
```
72+
# Load balancer type. Supported values are: TRAEFIK,NGINX
73+
type: TRAEFIK
74+
75+
# SSL configuration Type. Supported Values are : NONSSL,SSL,E2ESSL
76+
sslType: NONSSL
77+
78+
# domainType. Supported values are: osb,soa,soaosb
79+
domainType: soa
80+
81+
#WLS domain as backend to the load balancer
82+
wlsDomain:
83+
domainUID: soainfra
84+
adminServerName: AdminServer
85+
adminServerPort: 7001
86+
adminServerSSLPort: 7002
87+
soaClusterName: soa_cluster
88+
soaManagedServerPort: 8001
89+
soaManagedServerSSLPort: 8002
90+
osbClusterName: osb_cluster
91+
osbManagedServerPort: 9001
92+
osbManagedServerSSLPort: 9002
93+
94+
# Host specific values
95+
hostName:
96+
admin: admin.example.org
97+
soa: soa.example.org
98+
osb: osb.example.org
99+
100+
101+
# Ngnix specific values
102+
nginx:
103+
hostname:
104+
connectTimeout: 1800
105+
readTimeout: 1800
106+
sendTimeout: 1800
107+
cookieExpires: 172800
108+
cookieMaxAge: 172800
109+
110+
traefik:
111+
hostname:
112+
113+
114+
tls:
115+
secretName:
116+
certCommonName: "*.example.org"
117+
validityDays: 365
118+
```
119+
## Uninstalling the chart
120+
To uninstall and delete the `my-ingress` deployment:
121+
```
122+
$ helm delete --purge <soa-traefik-ingress or soa-nginx-ingress >
123+
```
124+
## Configuration
125+
The following table lists the configurable parameters of this chart and their default values.
126+
127+
| Parameter | Description | Default |
128+
| --- | --- | --- |
129+
| `type` | Type of Ingress controller. Legal values are `TRAEFIK` or `NGINX`. | `TRAEFIK` |
130+
| `sslType` | Type of Configuration. values are `NONSSL` , `SSL` and `E2ESSL`. | `NONSSL` |
131+
| `domainType` | Type of SOA Domain. values are `soa` or `osb` or`soaosb`. | `soa` |
132+
| `hostName.admin` | Admin host name. | `admin.org` |
133+
| `hostName.soa` | Soa host name. | `soa.org` |
134+
| `hostName.osb` | Osb host name. | `osb.org` |
135+
| `wlsDomain.domainUID` | DomainUID of the Soa domain. | `soainfra` |
136+
| `wlsDomain.soaClusterName` | Cluster name in the SOA domain. | `soa_cluster` |
137+
| `wlsDomain.osbClusterName` | Cluster name in the OSB domain. | `osb_cluster` |
138+
| `wlsDomain.adminServerPort` | Port number of the Admin servers in the Soa domain cluster . | `7001` |
139+
| `wlsDomain.adminServerSSLPort` | Port number of the Admin servers in the Soa domain cluster . | `7002` |
140+
| `wlsDomain.soaManagedServerPort` | Port number of the managed servers in the Soa domain cluster. | `8001` |
141+
| `wlsDomain.soaManagedServerSSLPort` | SSL Port number of the managed servers in the Soa domain cluster. | `8002` |
142+
| `wlsDomain.osbManagedServerPort` | Port number of the managed servers in the Soa domain cluster. | `9001` |
143+
| `wlsDomain.osbManagedServerSSLPort` | Port number of the managed servers in the Soa domain cluster. | `9002` |
144+
| `tls.secretName` | TLS secretName. | `null` |
145+
| `tls.certCommonName` | Common Name for TLS secret | `*.example.org` |
146+
| `tls.validityDays` | Certificate validity dats | `365` |
147+
148+
>**NOTE:** The input values `domainUID` and `clusterName` will be used to generate the Kubernetes `serviceName` of the WLS cluster with the format `domainUID-cluster-clusterName`.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Copyright (c) 2024, Oracle and/or its affiliates.
2+
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
3+
4+
{{/*
5+
Expand the name of the chart.
6+
*/}}
7+
{{- define "ingress-per-domain.name" -}}
8+
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
9+
{{- end }}
10+
11+
{{/*
12+
Create a default fully qualified app name.
13+
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
14+
If release name contains chart name it will be used as a full name.
15+
*/}}
16+
{{- define "ingress-per-domain.fullname" -}}
17+
{{- if .Values.fullnameOverride }}
18+
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
19+
{{- else }}
20+
{{- $name := default .Chart.Name .Values.nameOverride }}
21+
{{- if contains $name .Release.Name }}
22+
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
23+
{{- else }}
24+
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
25+
{{- end }}
26+
{{- end }}
27+
{{- end }}
28+
29+
{{/*
30+
Create chart name and version as used by the chart label.
31+
*/}}
32+
{{- define "ingress-per-domain.chart" -}}
33+
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
34+
{{- end }}
35+
36+
{{/*
37+
Common labels that should be added on each resource
38+
*/}}
39+
{{- define "common.labels" -}}
40+
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
41+
{{- if eq (default "helm" .Values.creator) "helm" }}
42+
app.kubernetes.io/managed-by: {{ .Release.Service }}
43+
helm.sh/chart: {{ .Chart.Name }}
44+
{{- end -}}
45+
{{- if ((.Values.global).commonLabels) }}
46+
{{ toYaml ((.Values.global).commonLabels) }}
47+
{{- end }}
48+
{{- end -}}
Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
# Copyright (c) 2024, Oracle and/or its affiliates.
2+
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
3+
#
4+
{{- if eq .Values.type "NGINX" }}
5+
{{- if (eq .Values.sslType "E2ESSL")}}
6+
---
7+
apiVersion: v1
8+
kind: Service
9+
metadata:
10+
name: {{ .Values.wlsDomain.domainUID }}-{{ .Values.wlsDomain.adminServerName | lower }}-nginx-e2essl
11+
namespace: {{ .Release.Namespace }}
12+
labels:
13+
{{ include "common.labels" . | indent 4 }}
14+
serviceType: SERVER
15+
weblogic.domainName: {{ .Values.wlsDomain.domainUID }}
16+
weblogic.domainUID: {{ .Values.wlsDomain.domainUID }}
17+
weblogic.serverName: {{ .Values.wlsDomain.adminServerName }}
18+
spec:
19+
ports:
20+
{{- if eq .Values.wlsDomain.secureEnabled true }}
21+
- port: {{ .Values.wlsDomain.adminSecurePort }}
22+
protocol: TCP
23+
targetPort: {{ .Values.wlsDomain.adminSecurePort }}
24+
{{- else }}
25+
- port: {{ .Values.wlsDomain.adminServerSSLPort }}
26+
protocol: TCP
27+
targetPort: {{ .Values.wlsDomain.adminServerSSLPort }}
28+
{{- end }}
29+
selector:
30+
weblogic.domainUID: {{ .Values.wlsDomain.domainUID }}
31+
weblogic.serverName: {{ .Values.wlsDomain.adminServerName }}
32+
type: ClusterIP
33+
34+
---
35+
apiVersion: networking.k8s.io/v1
36+
kind: Ingress
37+
metadata:
38+
name: {{ .Values.wlsDomain.domainUID }}-nginx-e2essl-admin
39+
namespace: {{ .Release.Namespace }}
40+
annotations:
41+
kubernetes.io/ingress.class: 'nginx'
42+
nginx.ingress.kubernetes.io/affinity: 'cookie'
43+
nginx.ingress.kubernetes.io/session-cookie-name: 'sticky'
44+
nginx.ingress.kubernetes.io/ssl-passthrough: 'true'
45+
spec:
46+
tls:
47+
- hosts:
48+
- '{{ .Values.hostName.admin }}'
49+
secretName: {{ .Values.wlsDomain.domainUID }}-tls-cert
50+
rules:
51+
- host: '{{ .Values.hostName.admin }}'
52+
http:
53+
paths:
54+
- path:
55+
pathType: ImplementationSpecific
56+
backend:
57+
service:
58+
name: '{{ .Values.wlsDomain.domainUID }}-{{ .Values.wlsDomain.adminServerName | lower | replace "_" "-" }}-nginx-e2essl'
59+
port:
60+
{{- if eq .Values.wlsDomain.secureEnabled true }}
61+
number: {{ .Values.wlsDomain.adminSecurePort }}
62+
{{- else }}
63+
number: {{ .Values.wlsDomain.adminServerSSLPort }}
64+
{{- end }}
65+
{{- if or (eq .Values.domainType "soa") (eq .Values.domainType "soaosb") }}
66+
67+
---
68+
apiVersion: v1
69+
kind: Service
70+
metadata:
71+
name: '{{ .Values.wlsDomain.domainUID }}-cluster-{{ .Values.wlsDomain.soaClusterName | lower | replace "_" "-" }}-nginx-e2essl'
72+
namespace: {{ .Release.Namespace }}
73+
labels:
74+
{{ include "common.labels" . | indent 4 }}
75+
serviceType: CLUSTER
76+
weblogic.clusterName: {{ .Values.wlsDomain.soaClusterName }}
77+
weblogic.domainName: {{ .Values.wlsDomain.domainUID }}
78+
weblogic.domainUID: {{ .Values.wlsDomain.domainUID }}
79+
spec:
80+
ports:
81+
- port: {{ .Values.wlsDomain.soaManagedServerSSLPort }}
82+
protocol: TCP
83+
targetPort: {{ .Values.wlsDomain.soaManagedServerSSLPort }}
84+
selector:
85+
weblogic.domainUID: {{ .Values.wlsDomain.domainUID }}
86+
weblogic.clusterName: {{ .Values.wlsDomain.soaClusterName }}
87+
type: ClusterIP
88+
89+
---
90+
apiVersion: networking.k8s.io/v1
91+
kind: Ingress
92+
metadata:
93+
name: {{ .Values.wlsDomain.domainUID }}-nginx-e2essl-soa
94+
namespace: {{ .Release.Namespace }}
95+
annotations:
96+
kubernetes.io/ingress.class: 'nginx'
97+
nginx.ingress.kubernetes.io/affinity: 'cookie'
98+
nginx.ingress.kubernetes.io/session-cookie-name: 'sticky'
99+
nginx.ingress.kubernetes.io/ssl-passthrough: 'true'
100+
spec:
101+
tls:
102+
- hosts:
103+
- '{{ .Values.hostName.soa }}'
104+
secretName: {{ .Values.wlsDomain.domainUID }}-tls-cert
105+
rules:
106+
- host: '{{ .Values.hostName.soa }}'
107+
http:
108+
paths:
109+
- path: /
110+
pathType: ImplementationSpecific
111+
backend:
112+
service:
113+
name: '{{ .Values.wlsDomain.domainUID }}-cluster-{{ .Values.wlsDomain.soaClusterName | lower | replace "_" "-" }}-nginx-e2essl'
114+
port:
115+
number: {{ .Values.wlsDomain.soaManagedServerSSLPort }}
116+
{{- end }}
117+
{{- if or (eq .Values.domainType "osb") (eq .Values.domainType "soaosb") }}
118+
119+
---
120+
apiVersion: v1
121+
kind: Service
122+
metadata:
123+
name: '{{ .Values.wlsDomain.domainUID }}-cluster-{{ .Values.wlsDomain.osbClusterName | lower | replace "_" "-" }}-nginx-e2essl'
124+
namespace: {{ .Release.Namespace }}
125+
labels:
126+
{{ include "common.labels" . | indent 4 }}
127+
serviceType: CLUSTER
128+
weblogic.clusterName: {{ .Values.wlsDomain.osbClusterName }}
129+
weblogic.domainName: {{ .Values.wlsDomain.domainUID }}
130+
weblogic.domainUID: {{ .Values.wlsDomain.domainUID }}
131+
spec:
132+
ports:
133+
- port: {{ .Values.wlsDomain.osbManagedServerSSLPort }}
134+
protocol: TCP
135+
targetPort: {{ .Values.wlsDomain.osbManagedServerSSLPort }}
136+
selector:
137+
weblogic.domainUID: {{ .Values.wlsDomain.domainUID }}
138+
weblogic.clusterName: {{ .Values.wlsDomain.osbClusterName }}
139+
type: ClusterIP
140+
141+
---
142+
apiVersion: networking.k8s.io/v1
143+
kind: Ingress
144+
metadata:
145+
name: {{ .Values.wlsDomain.domainUID }}-nginx-e2essl-osb
146+
namespace: {{ .Release.Namespace }}
147+
annotations:
148+
kubernetes.io/ingress.class: 'nginx'
149+
nginx.ingress.kubernetes.io/affinity: 'cookie'
150+
nginx.ingress.kubernetes.io/session-cookie-name: 'sticky'
151+
nginx.ingress.kubernetes.io/ssl-passthrough: 'true'
152+
spec:
153+
tls:
154+
- hosts:
155+
- '{{ .Values.hostName.osb }}'
156+
secretName: {{ .Values.wlsDomain.domainUID }}-tls-cert
157+
rules:
158+
- host: '{{ .Values.hostName.osb }}'
159+
http:
160+
paths:
161+
- path: /
162+
pathType: ImplementationSpecific
163+
backend:
164+
service:
165+
name: '{{ .Values.wlsDomain.domainUID }}-cluster-{{ .Values.wlsDomain.osbClusterName | lower | replace "_" "-" }}-nginx-e2essl'
166+
port:
167+
number: {{ .Values.wlsDomain.osbManagedServerSSLPort }}
168+
{{- end }}
169+
170+
{{- end }}
171+
{{- end }}
172+

0 commit comments

Comments
 (0)