Major Themes
-
Auxiliary Image simplification:
- The usage of Model in Image auxiliary images has been substantially simplified.
- In most cases, customers now need only specify the name of the auxiliary image.
-
New Cluster resource:
- The operator now provides a new custom resource, Cluster, which configures a specific WebLogic cluster and provides status information for that cluster.
- This resource can be used with Kubernetes Horizontal Pod Autoscaling (HPA) or similar technologies to scale WebLogic clusters.
-
Status and Events updates:
- The Conditions and Events generated about Domain and Cluster resources have been significantly updated.
- The operator more clearly communicates when the domain or individual clusters have reached the intended state or significant availability for your application workloads.
- Failures are distinguished between those that require customer intervention and those that are potentially temporary and will be retried.
-
Retry updates:
- The operator handling of retries after a failure have been significantly updated.
- Customers can now tune retry intervals and limits, or disable retries, on a per domain basis.
- The time of the first failure, last retry, and the expected time of the next retry can now be easily inferred from Domain resource
.status
.
-
Istio compatibility:
- Domain configurations are always compatible with Istio and other service mesh products.
- Customers are no longer required to enable this support.
Upgrade Notes
-
This release introduces a new API version for the Domain resource,
weblogic.oracle/v9
.- The previous API version,
weblogic.oracle/v8
introduced with Operator 3.0.0 is deprecated, but is still supported.
- The previous API version,
-
This release also introduces a new custom resource, the
weblogic.oracle/v1
Cluster resource.- This Cluster resource configures a specific WebLogic cluster and allows customers to scale that cluster using the Kubernetes Horizontal Pod Autoscaling (HPA) or similar technologies.
- The Cluster resource
.spec
schema is similar to and replaces the formerweblogic.oracle/v8
Domain resource.spec.clusters[*]
content. - The Cluster resource
.status
schema mirrors the content of the Domain resource.status.clusters[*]
content.
-
This release simplifies upgrading the operator.
- The operator added a schema conversion webhook.
- This webhook automates the upgrade of
weblogic.oracle/v8
Domain resources toweblogic.oracle/v9
. - Customers do not need to take any action to begin using the latest Domain schema; however, the team recommends starting with "v9" Domain resources for any new projects.
- This webhook automates the upgrade of
- Customers who install a single WebLogic Kubernetes Operator per Kubernetes cluster (most common use case) can upgrade directly from any 3.x operator release to 4.0.0. The Helm chart for 4.0.0 will automatically install the schema conversion webhook.
- For those customers who install more than one WebLogic Kubernetes Operator in a single Kubernetes cluster:
- You must upgrade every operator to at least version 3.4.1 before upgrading any operator to 4.0.0.
- As the 4.0.0 Helm chart now also installs a singleton schema conversion webhook that is shared by all 4.0.0 operators in the cluster, you will want to use the
webhookOnly
Helm chart option to install this webhook in its own namespace prior to installing any of the 4.0.0 operators, and also use thepreserveWebhook
Helm chart option with each operator to prevent an operator uninstall from uninstalling the shared webhook.
- The operator provides a utility that can be used to convert existing "v8" Domain YAML files to "v9".
- Several [Helm chart default values have been changed]({{< ref "#changes-to-operator-helm-chart-configuration-values" >}}). Customers who upgrade their 3.x installations using the
--reuse-values
option during the Helm upgrade will continue to use the values from their original installation.
- The operator added a schema conversion webhook.
Changes to domain schema
-
Model in Image auxiliary image related.
- Added
.spec.configuration.model.auxiliaryImages
for simplified configuration of auxiliary images. - Added several additional advanced settings related to auxiliary images including
.spec.configuration.model.auxiliaryImageVolumeMountPath
,.spec.configuration.model.auxiliaryImageVolumeMedium
, and.spec.configuration.model.auxiliaryImageVolumeSizeLimit
. - Removed
.spec.serverPod.auxiliaryImages
and.spec.auxiliaryImageVolumes
as part of the simplification effort.
- Added
-
Cluster changes.
- Moved content under
.spec.clusters[*]
to the new Cluster resource.spec
. - Modified
.spec.clusters[*]
to be a list of Cluster resource names. - Removed
allowReplicasBelowMinDynClusterSize
field from.spec.
and.spec.clusters[*]
as cluster minimums must now be configured through autoscaling.
- Moved content under
-
Retry and failure tuning related.
- Added
.spec.failureRetryIntervalSeconds
and.spec.failureRetryLimitMinutes
for configuration of failure retry timing. - Added
.spec.serverPod.maxReadyWaitTimeSeconds
for configuring maximum time before considering servers as stalled during startup.
- Added
-
Condition status updates.
- Added or updated Conditions to clearly reflect the current state of the domain:
- The
Completed
condition is set toTrue
when no failures are detected, plus all expected pods areready
, at their target image(s),restartVersion
, andintrospectVersion
. - The
Available
condition is set toTrue
when a sufficient number of pods areready
. This condition can beTrue
even whenCompleted
isFalse
, aFailed
condition is reported, or a cluster has up tocluster.spec.maxUnavailable
pods that are notready
. - The
Failed
condition is set toTrue
and its.message
field is updated when there is a failure.
- The
- Added
.status.conditions[*].severity
to describe the severity of conditions that represent failures or warnings. - Added fields
.status.initialFailureTime
and.status.lastFailureTime
to enable measuring how long aFailure
condition has been reported. - Removed condition
ServersReady
. Instead useAvailable
orCompleted
. - Removed condition
Progressing
. Instead:- Check
Completed
isTrue
to see when a Domain is fully up-to-date and running. - Check whether
Available
orCompleted
exist to verify that the operator has noticed the Domain resource. - If
Failed
isTrue
, then check its.message
and.severity
to see if retries have stopped.
- Check
- Added or updated Conditions to clearly reflect the current state of the domain:
-
General status updates.
- Added
.status.observedGeneration
for comparison to.metadata.generation
; if the two values match, then the status correctly reflects the status of the latest updates to the Domain resource. - Renamed
.status.lastIntrospectJobProcessedUid
to.status.failedIntrospectionUid
. - Added
.status.serverStatus[*].podReady
and.status.serverStatus[*].podPhase
with additional information about the pod associated with each WebLogic Server instance.
- Added
-
Miscellaneous changes.
- Added
.spec.logHomeLayout
for configuring the directory layout for WebLogic Server logs. - Added
.spec.serverPod.shutdown.waitForAllSessions
to enhance the configuration of server shutdown options. - Removed
.spec.configuration.istio
as this section is no longer required. - Removed previously deprecated fields
.spec.domainHomeInImage
,.spec.configOverrides
, and.spec.configOverrideSecrets
.
These have been replaced with.spec.domainHomeSourceType
,.spec.configuration.overridesConfigMap
, and.spec.configuration.secrets
. - Removed
serverStartState
field from.spec
,.spec.adminServer
,.spec.managedServers[*]
, andspec.clusters[*]
as this field is no longer needed. - Default change for
.spec.adminServer.adminChannelPortForwardingEnabled
totrue
. It previously defaulted tofalse
.
- Added
Changes to operator Helm chart configuration values
-
Changed defaults for configuration values.
- The default for
domainNamespaceSelectionStrategy
is nowLabelSelector
. It was previouslyList
. - The default for
domainNamespaceLabelSelector
is nowweblogic-operator=enabled
. It was previously unspecified. - The default for
enableClusterRoleBinding
is nowtrue
; however, this value is ignored ifdomainNamespaceSelectionStrategy
isDedicated
. It was previouslyfalse
.
- The default for
-
Removed configuration value.
- The previously deprecated value
dedicated
has been removed. Set thedomainNamespaceSelectionStrategy
toDedicated
instead.
- The previously deprecated value
-
New configuration values.
- Added value
createLogStashConfigMap
, defaulttrue
, that configures how an optional Logstash container for the operator is configured. - Added value
webhookOnly
, defaultfalse
, that specifies if this Helm release will install only the schema conversion webhook. - Added value
operatorOnly
, defaultfalse
, that specifies if this Helm release will install only the operator. - Added value
preserveWebhook
, default tofalse
, that specifies if the schema conversion webhook should be orphaned when this Helm release is uninstalled. - Added value
webhookDebugHttpPort
, default31999
, that configures an optional debugging port for the webhook.
- Added value
Minor features and fixes
- The operator added a validating webhook that will help customers detect invalid configurations more quickly.
- The operator's container image is substantially smaller through the use of
jlink
to create a minimal Java JRE.