Skip to content

OWLS-84881 better handle long domainUID #1979

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 28 commits into from
Oct 15, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
a7f808b
add limits to generated resource names
doxiao Oct 5, 2020
efc37f9
work in progress
doxiao Oct 6, 2020
ba0b808
get server and cluster info from introspector's results
doxiao Oct 7, 2020
a8f993f
new configuration, validation, and unit tests
doxiao Oct 8, 2020
f70ee23
minor change
doxiao Oct 8, 2020
8eac0f0
Merge remote-tracking branch 'origin/develop' into OWLS-84661-long-do…
doxiao Oct 8, 2020
92ba856
fix operator chart validation
doxiao Oct 9, 2020
6cfb6ad
fix chart validation
doxiao Oct 9, 2020
c33dc78
fix hard-coded external service name suffix in integration tests
doxiao Oct 12, 2020
356a9ea
fix more integration test failures
doxiao Oct 12, 2020
7a7dd1f
clean up
doxiao Oct 12, 2020
56b5656
minor doc fixwq
doxiao Oct 12, 2020
8cc643f
Revert "minor doc fixwq"
doxiao Oct 12, 2020
2b8ef85
minor doc fix
doxiao Oct 12, 2020
489b83f
minor fix to test
doxiao Oct 13, 2020
3ffb51f
clean up test constants
doxiao Oct 13, 2020
fe5c03f
minor doc edits based on review comments
doxiao Oct 13, 2020
d305fc4
improve error msg and remove hard-coded suffixes from doc and samples
doxiao Oct 13, 2020
13f69bc
cleanup
doxiao Oct 13, 2020
acdaef1
change the legal checks based on Ryan's suggestion
doxiao Oct 14, 2020
2a61b85
add cluster size padding validation
doxiao Oct 15, 2020
1913258
minor changes to helm validation
doxiao Oct 15, 2020
a6c0a97
only reserve spaces for cluster size wqsmaller than 100
doxiao Oct 15, 2020
ae8afad
one more unit test case
doxiao Oct 15, 2020
65b2bd1
minor changes
doxiao Oct 15, 2020
8e06863
Merge remote-tracking branch 'origin/develop' into OWLS-84661-long-do…
doxiao Oct 15, 2020
20b6964
minor doc change
doxiao Oct 15, 2020
cb14ac4
change a method name
doxiao Oct 15, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs-source/content/faq/namespace-management.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ Note that `domain1` is the name of the domain in the following example output.
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 1m default-scheduler Successfully assigned domain1-introspect-domain-job-bz6rw to slc16ffk
Normal Scheduled 1m default-scheduler Successfully assigned domain1-introspector-bz6rw to slc16ffk

Normal SuccessfulMountVolume 1m kubelet, slc16ffk MountVolume.SetUp succeeded for volume "weblogic-credentials-volume"

Expand Down
4 changes: 2 additions & 2 deletions docs-source/content/faq/oci-lb.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ but initially the external IP is shown as `<pending>`.
$ kubectl -n bob get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
bobs-bookstore-admin-server ClusterIP None <none> 8888/TCP,7001/TCP,30101/TCP 9d
bobs-bookstore-admin-server-external NodePort 10.96.224.13 <none> 7001:32401/TCP 9d
bobs-bookstore-admin-server-ext NodePort 10.96.224.13 <none> 7001:32401/TCP 9d
bobs-bookstore-cluster-cluster-1 ClusterIP 10.96.86.113 <none> 8888/TCP,8001/TCP,31111/TCP 9d
bobs-bookstore-managed-server1 ClusterIP None <none> 8888/TCP,8001/TCP,31111/TCP 9d
bobs-bookstore-managed-server2 ClusterIP None <none> 8888/TCP,8001/TCP,31111/TCP 9d
Expand All @@ -93,7 +93,7 @@ external IP address will be displayed:
$ kubectl -n bob get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
bobs-bookstore-admin-server ClusterIP None <none> 8888/TCP,7001/TCP,30101/TCP 9d
bobs-bookstore-admin-server-external NodePort 10.96.224.13 <none> 7001:32401/TCP 9d
bobs-bookstore-admin-server-ext NodePort 10.96.224.13 <none> 7001:32401/TCP 9d
bobs-bookstore-cluster-cluster-1 ClusterIP 10.96.86.113 <none> 8888/TCP,8001/TCP,31111/TCP 9d
bobs-bookstore-managed-server1 ClusterIP None <none> 8888/TCP,8001/TCP,31111/TCP 9d
bobs-bookstore-managed-server2 ClusterIP None <none> 8888/TCP,8001/TCP,31111/TCP 9d
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -729,13 +729,13 @@ Now that we have created the AKS cluster, installed the operator, and verified t
$ kubectl get svc --watch
```

The final example of servcie output is as following:
The final example of service output is as following:

```bash
$ kubectl get svc --watch
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
domain1-admin-server ClusterIP None <none> 30012/TCP,7001/TCP 2d20h
domain1-admin-server-external NodePort 10.0.182.50 <none> 7001:30701/TCP 2d20h
domain1-admin-server-ext NodePort 10.0.182.50 <none> 7001:30701/TCP 2d20h
domain1-admin-server-external-lb LoadBalancer 10.0.67.79 52.188.176.103 7001:32227/TCP 2d20h
domain1-cluster-1-lb LoadBalancer 10.0.112.43 104.45.176.215 8001:30874/TCP 2d17h
domain1-cluster-cluster-1 ClusterIP 10.0.162.19 <none> 8001/TCP 2d20h
Expand Down Expand Up @@ -933,7 +933,7 @@ The logs are stored in the Azure file share. Follow these steps to access the lo
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
domain1-admin-server ClusterIP None <none> 30012/TCP,7001/TCP 7m3s
domain1-admin-server-external NodePort 10.0.78.211 <none> 7001:30701/TCP 7m3s
domain1-admin-server-ext NodePort 10.0.78.211 <none> 7001:30701/TCP 7m3s
domain1-admin-server-external-lb LoadBalancer 10.0.6.144 40.71.233.81 7001:32758/TCP 7m32s
domain1-cluster-1-lb LoadBalancer 10.0.29.231 52.142.39.152 8001:31022/TCP 7m30s
domain1-cluster-cluster-1 ClusterIP 10.0.80.134 <none> 8001/TCP 1s
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ Here is an example of the output of this command:
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
domain1-admin-server ClusterIP 10.96.206.134 <none> 7001/TCP 23m
domain1-admin-server-external NodePort 10.107.164.241 <none> 30012:30012/TCP 22m
domain1-admin-server-ext NodePort 10.107.164.241 <none> 30012:30012/TCP 22m
domain1-cluster-cluster-1 ClusterIP 10.109.133.168 <none> 8001/TCP 22m
domain1-managed-server1 ClusterIP None <none> 8001/TCP 22m
domain1-managed-server2 ClusterIP None <none> 8001/TCP 22m
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -450,7 +450,7 @@ Here is an example of the output of this command:
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
fmw-domain-admin-server ClusterIP None <none> 7001/TCP 15h
fmw-domain-admin-server-external NodePort 10.101.26.42 <none> 7001:30731/TCP 15h
fmw-domain-admin-server-ext NodePort 10.101.26.42 <none> 7001:30731/TCP 15h
fmw-domain-cluster-cluster-1 ClusterIP 10.107.55.188 <none> 8001/TCP 15h
fmw-domain-managed-server1 ClusterIP None <none> 8001/TCP 15h
fmw-domain-managed-server2 ClusterIP None <none> 8001/TCP 15h
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -658,11 +658,11 @@ Copy the following to a file called `/tmp/mii-sample/mii-initial.yaml` or simila
```
$ kubectl get pods -n sample-domain1-ns --watch
NAME READY STATUS RESTARTS AGE
sample-domain1-introspect-domain-job-lqqj9 0/1 Pending 0 0s
sample-domain1-introspect-domain-job-lqqj9 0/1 ContainerCreating 0 0s
sample-domain1-introspect-domain-job-lqqj9 1/1 Running 0 1s
sample-domain1-introspect-domain-job-lqqj9 0/1 Completed 0 65s
sample-domain1-introspect-domain-job-lqqj9 0/1 Terminating 0 65s
sample-domain1-introspector-lqqj9 0/1 Pending 0 0s
sample-domain1-introspector-lqqj9 0/1 ContainerCreating 0 0s
sample-domain1-introspector-lqqj9 1/1 Running 0 1s
sample-domain1-introspector-lqqj9 0/1 Completed 0 65s
sample-domain1-introspector-lqqj9 0/1 Terminating 0 65s
sample-domain1-admin-server 0/1 Pending 0 0s
sample-domain1-admin-server 0/1 ContainerCreating 0 0s
sample-domain1-admin-server 0/1 Running 0 1s
Expand Down Expand Up @@ -732,14 +732,14 @@ Alternatively, you can run `/tmp/mii-sample/utils/wl-pod-wait.sh -p 3`. This is

NAME VERSION IMAGE READY PHASE
-------------------------------------------- ------- ----- ----- ---------
'sample-domain1-introspect-domain-job-rkdkg' '' '' '' 'Pending'
'sample-domain1-introspector-rkdkg' '' '' '' 'Pending'

@@ [2020-04-30T13:50:45][seconds=3] Info: '0' WebLogic Server pods currently match all criteria, expecting '3'.
@@ [2020-04-30T13:50:45][seconds=3] Info: Introspector and WebLogic Server pods with same namespace and domain-uid:

NAME VERSION IMAGE READY PHASE
-------------------------------------------- ------- ----- ----- ---------
'sample-domain1-introspect-domain-job-rkdkg' '' '' '' 'Running'
'sample-domain1-introspector-rkdkg' '' '' '' 'Running'


@@ [2020-04-30T13:51:50][seconds=68] Info: '0' WebLogic Server pods currently match all criteria, expecting '3'.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ Here are the steps:
NAME VERSION IMAGE READY PHASE
-------------------------------------------- ------- ----------------------- ------ ---------
'sample-domain1-admin-server' '1' 'model-in-image:WLS-v1' 'true' 'Running'
'sample-domain1-introspect-domain-job-wlkpr' '' '' '' 'Pending'
'sample-domain1-introspector-wlkpr' '' '' '' 'Pending'
'sample-domain1-managed-server1' '1' 'model-in-image:WLS-v1' 'true' 'Running'
'sample-domain1-managed-server2' '1' 'model-in-image:WLS-v1' 'true' 'Running'

Expand All @@ -252,7 +252,7 @@ Here are the steps:
NAME VERSION IMAGE READY PHASE
-------------------------------------------- ------- ----------------------- ------ ---------
'sample-domain1-admin-server' '1' 'model-in-image:WLS-v1' 'true' 'Running'
'sample-domain1-introspect-domain-job-wlkpr' '' '' '' 'Running'
'sample-domain1-introspector-wlkpr' '' '' '' 'Running'
'sample-domain1-managed-server1' '1' 'model-in-image:WLS-v1' 'true' 'Running'
'sample-domain1-managed-server2' '1' 'model-in-image:WLS-v1' 'true' 'Running'

Expand All @@ -262,7 +262,7 @@ Here are the steps:
NAME VERSION IMAGE READY PHASE
-------------------------------------------- ------- ----------------------- ------ -----------
'sample-domain1-admin-server' '1' 'model-in-image:WLS-v1' 'true' 'Running'
'sample-domain1-introspect-domain-job-wlkpr' '' '' '' 'Succeeded'
'sample-domain1-introspector-wlkpr' '' '' '' 'Succeeded'
'sample-domain1-managed-server1' '1' 'model-in-image:WLS-v1' 'true' 'Running'
'sample-domain1-managed-server2' '1' 'model-in-image:WLS-v1' 'true' 'Running'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -309,13 +309,13 @@ Here are the steps for this use case:
sample-domain1-admin-server 1/1 Running 0 5d2h
sample-domain1-managed-server1 1/1 Running 1 5d2h
sample-domain1-managed-server2 1/1 Running 2 5d2h
sample-domain2-introspect-domain-job-plssr 0/1 Pending 0 0s
sample-domain2-introspect-domain-job-plssr 0/1 Pending 0 0s
sample-domain2-introspect-domain-job-plssr 0/1 ContainerCreating 0 0s
sample-domain2-introspect-domain-job-plssr 1/1 Running 0 2s
sample-domain2-introspect-domain-job-plssr 0/1 Completed 0 69s
sample-domain2-introspect-domain-job-plssr 0/1 Terminating 0 71s
sample-domain2-introspect-domain-job-plssr 0/1 Terminating 0 71s
sample-domain2-introspector-plssr 0/1 Pending 0 0s
sample-domain2-introspector-plssr 0/1 Pending 0 0s
sample-domain2-introspector-plssr 0/1 ContainerCreating 0 0s
sample-domain2-introspector-plssr 1/1 Running 0 2s
sample-domain2-introspector-plssr 0/1 Completed 0 69s
sample-domain2-introspector-plssr 0/1 Terminating 0 71s
sample-domain2-introspector-plssr 0/1 Terminating 0 71s
sample-domain2-admin-server 0/1 Pending 0 0s
sample-domain2-admin-server 0/1 Pending 0 0s
sample-domain2-admin-server 0/1 ContainerCreating 0 0s
Expand Down Expand Up @@ -352,14 +352,14 @@ Here are the steps for this use case:

NAME VERSION IMAGE READY PHASE
-------------------------------------------- ------- ----- ----- ---------
'sample-domain2-introspect-domain-job-plssr' '' '' '' 'Running'
'sample-domain2-introspector-plssr' '' '' '' 'Running'

@@ [2020-05-13T17:07:03][seconds=64] Info: '0' WebLogic Server pods currently match all criteria, expecting '3'.
@@ [2020-05-13T17:07:03][seconds=64] Info: Introspector and WebLogic Server pods with same namespace and domain-uid:

NAME VERSION IMAGE READY PHASE
-------------------------------------------- ------- ----- ----- -----------
'sample-domain2-introspect-domain-job-plssr' '' '' '' 'Succeeded'
'sample-domain2-introspector-plssr' '' '' '' 'Succeeded'

@@ [2020-05-13T17:07:06][seconds=67] Info: '0' WebLogic Server pods currently match all criteria, expecting '3'.
@@ [2020-05-13T17:07:06][seconds=67] Info: Introspector and WebLogic Server pods with same namespace and domain-uid:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ Here are the steps for this use case:
NAME VERSION IMAGE READY PHASE
-------------------------------------------- ------- ----------------------- ------ ---------
'sample-domain1-admin-server' '2' 'model-in-image:WLS-v1' 'true' 'Running'
'sample-domain1-introspect-domain-job-g5kzn' '' '' '' 'Running'
'sample-domain1-introspector-g5kzn' '' '' '' 'Running'
'sample-domain1-managed-server1' '2' 'model-in-image:WLS-v1' 'true' 'Running'
'sample-domain1-managed-server2' '2' 'model-in-image:WLS-v1' 'true' 'Running'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ description: "You can use the WebLogic Scripting Tool (WLST) to manage a domain
You can use the WebLogic Scripting Tool (WLST) to manage a domain running in Kubernetes. If the Administration Server was configured to expose a T3 channel using the `exposeAdminT3Channel` setting when creating the domain, then the matching T3 service can be used to connect. For example, if the `domainUID` is `domain1`, and the Administration Server name is `admin-server`, then the service would be called:

```
domain1-admin-server-external
domain1-admin-server-ext
```

This service will be in the same namespace as the domain. The external port number can be obtained by checking this service’s `nodePort`:

```
$ kubectl get service domain1-admin-server-external -n domain1 -o jsonpath='{.spec.ports[0].nodePort}'
$ kubectl get service domain1-admin-server-ext -n domain1 -o jsonpath='{.spec.ports[0].nodePort}'
30012
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,7 @@ By setting the `FAIL_BOOT_ON_SITUATIONAL_CONFIG_ERROR` environment variable in t

* If WebLogic Server instance Pods do not come up at all, then:
* Examine your Domain resource status: `kubectl -n MYDOMAINNAMESPACE describe domain MYDOMAIN`
* In the domain's namespace, see if you can find a job named `DOMAIN_UID-introspect-domain-job` and a corresponding pod named something like `DOMAIN_UID-introspect-domain-job-xxxx`. If so, examine:
* In the domain's namespace, see if you can find a job named `DOMAIN_UID-introspector` and a corresponding pod named something like `DOMAIN_UID-introspector-xxxx`. If so, examine:
* `kubectl -n MYDOMAINNAMESPACE describe job INTROSPECTJOBNAME`
* `kubectl -n MYDOMAINNAMESPACE logs INTROSPECTPODNAME`
* Check your operator log for Warning/Error/Severe messages.
Expand Down Expand Up @@ -439,7 +439,7 @@ when `spec.logHome` is configured and `spec.logHomeEnabled` is true.
### Internal design flow

* The operator generates the final configuration overrides, which include the merging of operator-generated overrides and the processing of any customer-provided configuration overrides templates and Secrets, during its introspection phase.
* The operator creates a Kubernetes Job for introspection named `DOMAIN_UID-introspect-domain-job`.
* The operator creates a Kubernetes Job for introspection named `DOMAIN_UID-introspector`.
* The introspector Job's Pod:
* Mounts the Kubernetes ConfigMap and Secrets specified by using the operator Domain `configuration.overridesConfigMap`, `webLogicCredentialsSecret`, and `configuration.secrets` fields.
* Reads the mounted configuration overrides templates from the ConfigMap and expands them to create the actual configuration overrides files for the domain:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ description: "This document describes domain introspection in the Oracle WebLogi
This document describes domain introspection, when it occurs automatically, and how and when to initiate additional introspections of the domain configuration in the Oracle WebLogic Server in Kubernetes environment.

In order to manage the operation of WebLogic domains in Kubernetes, the Oracle WebLogic Kubernetes Operator analyzes the WebLogic
domain configuration using an "introspection" job. This Job will be named `DOMAIN_UID-introspect-domain-job`, will be run in the same namespace as the Domain, and must successfully complete before the operator will begin to start WebLogic Server instances. Because each of the
domain configuration using an "introspection" job. This Job will be named `DOMAIN_UID-introspector`, will be run in the same namespace as the Domain, and must successfully complete before the operator will begin to start WebLogic Server instances. Because each of the
[domain home source types]({{< relref "/userguide/managing-domains/choosing-a-model/_index.md" >}}) are different (for instance, Domain in PV uses a domain home on a PersistentVolume while Model in Image generates the domain home dynamically from a WDT model), the Pod created by this Job will be
as similar as possible to the Pod that will later be generated for the Administration Server. This guarantees that the operator is
analyzing the same WebLogic domain configuration that WebLogic Server instances will use.
Expand Down Expand Up @@ -46,7 +46,7 @@ As with `restartVersion`, the `introspectVersion` field has no required format;

#### Failed introspection

Sometimes the Kubernetes Job, named `DOMAIN_UID-introspect-domain-job`, created for the introspection will fail.
Sometimes the Kubernetes Job, named `DOMAIN_UID-introspector`, created for the introspection will fail.

When introspection fails, the operator will not start any WebLogic Server instances. If this is not the initial introspection and there are already WebLogic Server instances running, then a failed introspection will leave the existing WebLogic Server instances running without making any changes to the operational state of the domain.

Expand Down
Loading