From f37c709cba30ed7e9a03344d53cccb6288d1c50c Mon Sep 17 00:00:00 2001 From: Ryan Eberhard Date: Fri, 21 May 2021 12:51:29 -0400 Subject: [PATCH] Operator 3.2.3 --- documentation/3.2/README.md | 2 +- documentation/3.2/content/_index.md | 10 +- .../content/developerguide/contributing.md | 2 +- .../3.2/content/faq/namespace-management.md | 3 +- documentation/3.2/content/faq/newbie.md | 10 +- documentation/3.2/content/faq/node-heating.md | 2 +- documentation/3.2/content/faq/samplepage.md | 2 + .../3.2/content/quickstart/cleanup.md | 17 + .../3.2/content/quickstart/create-domain.md | 12 +- .../3.2/content/quickstart/get-images.md | 2 +- .../3.2/content/quickstart/install.md | 2 +- .../3.2/content/quickstart/introduction.md | 2 +- .../3.2/content/quickstart/prerequisites.md | 2 +- documentation/3.2/content/release-notes.md | 12 + .../simple/azure-kubernetes-service/_index.md | 2 +- .../azure-kubernetes-service/domain-on-pv.md | 17 +- .../model-in-image.md | 14 +- .../domains/domain-home-in-image/_index.md | 104 +++- .../domains/domain-home-on-pv/_index.md | 16 +- .../fmw-domain-home-in-image/_index.md | 533 ++++++++++++++++++ .../simple/domains/fmw-domain/_index.md | 36 +- .../simple/domains/model-in-image/_index.md | 4 +- .../domains/model-in-image/prerequisites.md | 3 +- .../elastic-stack/weblogic-domain/_index.md | 28 +- .../content/samples/simple/ingress/_index.md | 2 +- .../simple/tanzu-kubernetes-service/_index.md | 14 +- .../3.2/content/security/openshift.md | 4 +- documentation/3.2/content/security/rbac.md | 2 +- .../3.2/content/security/service-accounts.md | 2 +- .../content/userguide/base-images/_index.md | 2 +- .../3.2/content/userguide/cicd/layering.md | 2 +- .../3.2/content/userguide/cicd/tools.md | 2 +- .../userguide/introduction/architecture.md | 2 +- .../content/userguide/introduction/demo.md | 6 +- .../content/userguide/introduction/design.md | 6 +- .../userguide/introduction/introduction.md | 10 +- .../3.2/content/userguide/istio/istio.md | 4 +- .../userguide/managing-domains/_index.md | 2 +- .../accessing-the-domain/admin-console.md | 12 +- .../managing-domains/domain-events.md | 110 +++- .../domain-lifecycle/restarting.md | 10 +- .../domain-lifecycle/scaling.md | 14 +- .../managing-domains/domain-resource.md | 10 +- .../model-in-image/model-files.md | 2 +- .../model-in-image/runtime-updates.md | 4 +- .../managing-domains/model-in-image/usage.md | 4 +- .../persistent-storage/_index.md | 2 +- .../managing-fmw-domains/fmw-infra/_index.md | 2 +- .../userguide/managing-operators/_index.md | 2 +- .../managing-operators/installation/_index.md | 2 +- .../using-the-operator/using-helm.md | 48 +- documentation/charts/index.yaml | 58 +- .../charts/weblogic-operator-3.2.3.tgz | Bin 0 -> 11752 bytes 53 files changed, 981 insertions(+), 196 deletions(-) create mode 100644 documentation/3.2/content/samples/simple/domains/fmw-domain-home-in-image/_index.md create mode 100644 documentation/charts/weblogic-operator-3.2.3.tgz diff --git a/documentation/3.2/README.md b/documentation/3.2/README.md index 49946aedb33..d36310eaede 100644 --- a/documentation/3.2/README.md +++ b/documentation/3.2/README.md @@ -1,4 +1,4 @@ -# Oracle WebLogic Server Kubernetes Operator Documentation +# WebLogic Kubernetes Operator Documentation *** For information on updating and contributing to the operator diff --git a/documentation/3.2/content/_index.md b/documentation/3.2/content/_index.md index b1738c069c7..5b73c6b5b9e 100644 --- a/documentation/3.2/content/_index.md +++ b/documentation/3.2/content/_index.md @@ -1,6 +1,6 @@ -### Oracle WebLogic Server Kubernetes Operator +### WebLogic Kubernetes Operator -The WebLogic Server Kubernetes Operator (the “operator”) supports running your WebLogic Server and Fusion Middleware Infrastructure domains on Kubernetes, an industry standard, cloud neutral deployment platform. It lets you encapsulate your entire WebLogic Server installation and layered applications into a portable set of cloud neutral images and simple resource description files. You can run them on any on-premises or public cloud that supports Kubernetes where you've deployed the operator. +The WebLogic Kubernetes Operator (the “operator”) supports running your WebLogic Server and Fusion Middleware Infrastructure domains on Kubernetes, an industry standard, cloud neutral deployment platform. It lets you encapsulate your entire WebLogic Server installation and layered applications into a portable set of cloud neutral images and simple resource description files. You can run them on any on-premises or public cloud that supports Kubernetes where you've deployed the operator. Furthermore, the operator is well suited to CI/CD processes. You can easily inject changes when moving between environments, such as from test to production. For example, you can externally inject database URLs and credentials during deployment or you can inject arbitrary changes to most WebLogic configurations. @@ -11,7 +11,7 @@ You can: * Supply WebLogic domain configuration using: * _Domain in PV_: Locates WebLogic domain homes in a Kubernetes PersistentVolume (PV). This PV can reside in an NFS file system or other Kubernetes volume types. * _Domain in Image_: Includes a WebLogic domain home in a container image. - * _Model in Image_: Includes [WebLogic Server Deploy Tooling](https://oracle.github.io/weblogic-deploy-tooling/) models and archives in a container image. + * _Model in Image_: Includes [WebLogic Deploy Tooling](https://oracle.github.io/weblogic-deploy-tooling/) models and archives in a container image. * Configure deployment of WebLogic domains as a Kubernetes resource (using a Kubernetes custom resource definition). * Override certain aspects of the WebLogic domain configuration; for example, use a different database password for different deployments. * Start and stop servers and clusters in the domain based on declarative startup parameters and desired states. @@ -30,8 +30,8 @@ using the operator to deploy and run a WebLogic domain container-packaged web ap *** #### Current production release -The [current release of the operator](https://github.com/oracle/weblogic-kubernetes-operator/releases) is 3.2.2. -This release was published on April 27, 2021. See the operator prerequisites and supported environments [here]({{< relref "/userguide/introduction/introduction#operator-prerequisites" >}}). +The [current release of the operator](https://github.com/oracle/weblogic-kubernetes-operator/releases) is 3.2.3. +This release was published on May 21, 2021. See the operator prerequisites and supported environments [here]({{< relref "/userguide/introduction/introduction#operator-prerequisites" >}}). *** diff --git a/documentation/3.2/content/developerguide/contributing.md b/documentation/3.2/content/developerguide/contributing.md index 6c00b96d5ee..e8df5669d68 100644 --- a/documentation/3.2/content/developerguide/contributing.md +++ b/documentation/3.2/content/developerguide/contributing.md @@ -11,7 +11,7 @@ If you want to submit a pull request to fix a bug or enhance an existing feature If you have any questions about a possible submission, feel free to open an issue too. -#### Contributing to the Oracle WebLogic Server Kubernetes Operator repository +#### Contributing to the WebLogic Kubernetes Operator repository Pull requests can be made under The Oracle Contributor Agreement (OCA), which is available at [https://www.oracle.com/technetwork/community/oca-486395.html](https://www.oracle.com/technetwork/community/oca-486395.html). diff --git a/documentation/3.2/content/faq/namespace-management.md b/documentation/3.2/content/faq/namespace-management.md index 3c709de3c36..251102276f3 100644 --- a/documentation/3.2/content/faq/namespace-management.md +++ b/documentation/3.2/content/faq/namespace-management.md @@ -45,10 +45,9 @@ elkIntegrationEnabled: false externalDebugHttpPort: 30999 externalRestEnabled: false externalRestHttpsPort: 31001 -image: ghcr.io/oracle/weblogic-kubernetes-operator:3.2.2 +image: ghcr.io/oracle/weblogic-kubernetes-operator:3.2.3 imagePullPolicy: IfNotPresent internalDebugHttpPort: 30999 -istioEnabled: false javaLoggingLevel: INFO logStashImage: logstash:6.6.0 remoteDebugNodePortEnabled: false diff --git a/documentation/3.2/content/faq/newbie.md b/documentation/3.2/content/faq/newbie.md index fbd3e2ac8c5..c27daf543ca 100644 --- a/documentation/3.2/content/faq/newbie.md +++ b/documentation/3.2/content/faq/newbie.md @@ -5,13 +5,13 @@ draft: false weight: 1 description: "Answers to commonly asked newcomer questions." --- -#### What is the WebLogic Server Kubernetes Operator, how can I get started with it, where is its documentation? +#### What is the WebLogic Kubernetes Operator, how can I get started with it, where is its documentation? It's all [here]({{< relref "/_index.md" >}}). #### How much does it cost? -The WebLogic Server Kubernetes Operator (the “operator”) is open source and free. +The WebLogic Kubernetes Operator (the “operator”) is open source and free. WebLogic Server is not open source. Licensing is required for each running WebLogic Server instance, just as with any deployment of WebLogic Server. Licensing is free for a single developer desktop development environment. @@ -36,7 +36,7 @@ When using the operator, each deployed domain is specified by a domain resource Multiple deployments of the same domain are supported by specifying a unique `domain-uid` string for each deployed domain and specifying a different domain resource. The `domain-uid` is in turn used by the operator as the name-prefix and/or label for the domain's Kubernetes resources that the operator deploys for you. The WebLogic configuration of a domain's deployments optionally can by customized by specifying configuration overrides in the domain resource -- which, for example, is useful for overriding the configuration of a data source URL, user name, or password. -The operator does not specify how a WebLogic domain home configuration is created. You can use WLST, REST, or a very convenient new tool called [WebLogic Server Deploy Tooling](https://oracle.github.io/weblogic-deploy-tooling/) (WDT). WDT allows you to compactly specify WebLogic configuration and deployments (including JMS, data sources, applications, authenticators, and such) using a YAML file and a ZIP file (which include the binaries). The operator [samples]({{< relref "/samples/simple/_index.md" >}}) show how to create domains using WLST and using WDT. +The operator does not specify how a WebLogic domain home configuration is created. You can use WLST, REST, or a very convenient new tool called [WebLogic Deploy Tooling](https://oracle.github.io/weblogic-deploy-tooling/) (WDT). WDT allows you to compactly specify WebLogic configuration and deployments (including JMS, data sources, applications, authenticators, and such) using a YAML file and a ZIP file (which include the binaries). The operator [samples]({{< relref "/samples/simple/_index.md" >}}) show how to create domains using WLST and using WDT. **Q:** Is the Administration Server required? Node Manager? @@ -62,7 +62,7 @@ For an example, see the Quick Start, [Install the operator and ingress controlle * _Access the WebLogic Server Administration Console_: This can be done through a load balancer; see the [Model in Image]({{< relref "/samples/simple/domains/model-in-image/_index.md" >}}) sample. Or, this can be done through a Kubernetes NodePort service; run `$ kubectl explain domain.spec.adminServer.adminService.channels`. -* _Access the WebLogic Server Remote Console_: This can be done using a load balancer or Kubernetes NodePort service; see [Use the Remote Console]({{< relref "/userguide/managing-domains/accessing-the-domain/admin-console.md" >}}). +* _Access the WebLogic Remote Console_: This can be done using a load balancer or Kubernetes NodePort service; see [Use the Remote Console]({{< relref "/userguide/managing-domains/accessing-the-domain/admin-console.md" >}}). **Q:** Are clusters supported on Kubernetes using both multicast and unicast? @@ -114,7 +114,7 @@ For more information, see the [Domain life cycle]({{< relref "/userguide/managin **Q:** Patching: rolling upgrades, handling of one-off-patches and overlays, CPUs, and such. -**A:** For relevant information, see [Apply patched images to a running domain]({{< relref "/userguide/base-images/#apply-patched-images-to-a-running-domain" >}}), [Rolling restarts]({{< relref "/userguide/managing-domains/domain-lifecycle/restarting#overview" >}}), and [CI/CD considerations]({{< relref "/userguide/cicd/_index.md" >}}). +**A:** For relevant information, see [Patch WebLogic Server images]({{< relref "/userguide/base-images/#patch-weblogic-server-images" >}}), [Rolling restarts]({{< relref "/userguide/managing-domains/domain-lifecycle/restarting#overview" >}}), and [CI/CD considerations]({{< relref "/userguide/cicd/_index.md" >}}). *** diff --git a/documentation/3.2/content/faq/node-heating.md b/documentation/3.2/content/faq/node-heating.md index 2b94baa4659..ae9860f5390 100644 --- a/documentation/3.2/content/faq/node-heating.md +++ b/documentation/3.2/content/faq/node-heating.md @@ -6,7 +6,7 @@ weight: 5 description: "The operator creates a Pod for each WebLogic Server instance that is started. The Kubernetes Scheduler then selects a Node for each Pod. Because the default scheduling algorithm gives substantial weight to selecting a Node where the necessary container images have already been pulled, this often results in Kubernetes running many of the Pods for WebLogic Server instances on the same Node while other Nodes are not fairly utilized. This is commonly known as the Node heating problem." --- -The WebLogic Server Kubernetes Operator creates a Pod for each WebLogic Server instance that is started. The [Kubernetes Scheduler](https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/) then selects a Node for each Pod. Because the default scheduling algorithm gives substantial weight to selecting a Node where the necessary container images have already been pulled, this often results in Kubernetes running many of the Pods for WebLogic Server instances on the same Node while other Nodes are not fairly utilized. This is commonly known as the "Node heating problem." +The WebLogic Kubernetes Operator creates a Pod for each WebLogic Server instance that is started. The [Kubernetes Scheduler](https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/) then selects a Node for each Pod. Because the default scheduling algorithm gives substantial weight to selecting a Node where the necessary container images have already been pulled, this often results in Kubernetes running many of the Pods for WebLogic Server instances on the same Node while other Nodes are not fairly utilized. This is commonly known as the "Node heating problem." One solution is to ensure that all necessary container images are available on worker Nodes as part of node provisioning. When the necessary container images are available on each worker Node, the Kubernetes Scheduler will instead select a Node based on other factors such as available CPU and memory or a simple round-robin. diff --git a/documentation/3.2/content/faq/samplepage.md b/documentation/3.2/content/faq/samplepage.md index c8696690fe6..cb137cd7559 100644 --- a/documentation/3.2/content/faq/samplepage.md +++ b/documentation/3.2/content/faq/samplepage.md @@ -32,3 +32,5 @@ proident, sunt in culpa qui officia deserunt mollit anim id est laborum. ### And also this {{< youtube B5UmY2xAJnk >}} + +## Update to draft page to trigger publish job, take 5 diff --git a/documentation/3.2/content/quickstart/cleanup.md b/documentation/3.2/content/quickstart/cleanup.md index 17070dd350a..d62e59ef36f 100644 --- a/documentation/3.2/content/quickstart/cleanup.md +++ b/documentation/3.2/content/quickstart/cleanup.md @@ -73,3 +73,20 @@ weight: 7 ```shell $ kubectl delete namespace traefik ``` + +#### Delete the generated image. + +1. When no longer needed, delete the generated image by using the `docker rmi` command. + Use the following command to delete an image tagged with `domain-home-in-image:12.2.1.4`: + + ```shell + $ docker rmi domain-home-in-image:12.2.1.4 + ``` + +#### Delete the tools directory. + +1. When no longer needed, delete the directory where WebLogic Deploy Tool and WebLogic Image Tool are installed. + + ```shell + $ rm -rf /tmp/dhii-sample/tools/ + ``` diff --git a/documentation/3.2/content/quickstart/create-domain.md b/documentation/3.2/content/quickstart/create-domain.md index 1ede4587b18..d8319076c1c 100644 --- a/documentation/3.2/content/quickstart/create-domain.md +++ b/documentation/3.2/content/quickstart/create-domain.md @@ -22,7 +22,14 @@ weight: 6 with the value specified by the `-d` flag. For example, the command above would create a secret named `sample-domain1-weblogic-credentials`. -1. Create a new image with a domain home by running the [create-domain](http://github.com/oracle/weblogic-kubernetes-operator/blob/main/kubernetes/samples/scripts/create-weblogic-domain/domain-home-in-image/create-domain.sh) script. First, copy the sample [create-domain-inputs.yaml](http://github.com/oracle/weblogic-kubernetes-operator/blob/main/kubernetes/samples/scripts/create-weblogic-domain/domain-home-in-image/create-domain-inputs.yaml) file and update your copy with: +1. Create a new image with a domain home, plus create a domain resource that the operator will use to deploy the image, by running the [create-domain](http://github.com/oracle/weblogic-kubernetes-operator/blob/main/kubernetes/samples/scripts/create-weblogic-domain/domain-home-in-image/create-domain.sh) script. + + The script's behavior is controlled by an inputs file plus command-line options. The script downloads the [WebLogic Image Tool](https://oracle.github.io/weblogic-image-tool/) and [WebLogic Deploy Tool](https://oracle.github.io/weblogic-deploy-tooling/) and uses these tools to create a new image with a domain home. The script also creates a domain resource YAML file that references the image, and, if the `-e` option is specified, deploys the domain resource to Kubernetes. For a detailed understanding of the steps that the `create-domain.sh` script performs for you, see the bulleted items under [Use the script to create a domain]({{< relref "/samples/simple/domains/domain-home-in-image/#use-the-script-to-create-a-domain" >}}) + + {{% notice note %}} The `create-domain.sh` script and its inputs file are for demonstration purposes _only_; its contents and the domain resource file that it generates for you might change without notice. In production, we strongly recommend that you use the WebLogic Image Tool and WebLogic Deploy Tooling (when applicable), and directly work with domain resource files instead. + {{% /notice%}} + + First, copy the sample [create-domain-inputs.yaml](http://github.com/oracle/weblogic-kubernetes-operator/blob/main/kubernetes/samples/scripts/create-weblogic-domain/domain-home-in-image/create-domain-inputs.yaml) file and update your copy with: * `domainUID`: `sample-domain1` * `image`: Leave empty unless you need to tag the new image that the script builds to a different name. For example if you are using a remote cluster that will need to pull the image from a container registry, @@ -44,6 +51,9 @@ weight: 6 respectively, as you provided when creating the Kubernetes Secret in Step 2. {{% /notice %}} + For the detailed steps that the `create-domain.sh` script performs, see [Domain Home In Image]({{< relref "/samples/simple/domains/domain-home-in-image/_index.md" >}}). + + 1. Confirm that the operator started the servers for the domain: a. Use `kubectl` to show that the Domain was created: diff --git a/documentation/3.2/content/quickstart/get-images.md b/documentation/3.2/content/quickstart/get-images.md index b83ee96a9f4..8c808537507 100644 --- a/documentation/3.2/content/quickstart/get-images.md +++ b/documentation/3.2/content/quickstart/get-images.md @@ -10,7 +10,7 @@ weight: 3 1. Pull the operator image: ```shell - $ docker pull ghcr.io/oracle/weblogic-kubernetes-operator:3.2.2 + $ docker pull ghcr.io/oracle/weblogic-kubernetes-operator:3.2.3 ``` 1. Pull the Traefik ingress controller image: diff --git a/documentation/3.2/content/quickstart/install.md b/documentation/3.2/content/quickstart/install.md index 89229346f94..a4e4dcc1c8d 100644 --- a/documentation/3.2/content/quickstart/install.md +++ b/documentation/3.2/content/quickstart/install.md @@ -50,7 +50,7 @@ $ helm install traefik-operator traefik/traefik \ ```shell $ helm install sample-weblogic-operator kubernetes/charts/weblogic-operator \ --namespace sample-weblogic-operator-ns \ - --set image=ghcr.io/oracle/weblogic-kubernetes-operator:3.2.2 \ + --set image=ghcr.io/oracle/weblogic-kubernetes-operator:3.2.3 \ --set serviceAccount=sample-weblogic-operator-sa \ --set "enableClusterRoleBinding=true" \ --set "domainNamespaceSelectionStrategy=LabelSelector" \ diff --git a/documentation/3.2/content/quickstart/introduction.md b/documentation/3.2/content/quickstart/introduction.md index 4e4fc4b77d7..dff3ae42afa 100644 --- a/documentation/3.2/content/quickstart/introduction.md +++ b/documentation/3.2/content/quickstart/introduction.md @@ -5,7 +5,7 @@ draft: false weight: 1 --- -Use this Quick Start guide to create a WebLogic Server deployment in a Kubernetes cluster with the Oracle WebLogic Server Kubernetes Operator. Please note that this walk-through is for demonstration purposes only, not for use in production. +Use this Quick Start guide to create a WebLogic Server deployment in a Kubernetes cluster with the WebLogic Kubernetes Operator. Please note that this walk-through is for demonstration purposes only, not for use in production. These instructions assume that you are already familiar with Kubernetes. If you need more detailed instructions, please refer to the [User guide]({{< relref "/userguide/_index.md" >}}). diff --git a/documentation/3.2/content/quickstart/prerequisites.md b/documentation/3.2/content/quickstart/prerequisites.md index 855258360a6..96078000fa0 100644 --- a/documentation/3.2/content/quickstart/prerequisites.md +++ b/documentation/3.2/content/quickstart/prerequisites.md @@ -12,5 +12,5 @@ The operator uses Helm to create and deploy the necessary resources and then run You should clone this repository to your local machine so that you have access to the various sample files mentioned throughout this guide: ```shell -$ git clone --branch v3.2.2 https://github.com/oracle/weblogic-kubernetes-operator +$ git clone --branch v3.2.3 https://github.com/oracle/weblogic-kubernetes-operator ``` diff --git a/documentation/3.2/content/release-notes.md b/documentation/3.2/content/release-notes.md index cdb91ad44a1..bc033c61894 100644 --- a/documentation/3.2/content/release-notes.md +++ b/documentation/3.2/content/release-notes.md @@ -8,6 +8,7 @@ draft: false | Date | Version | Introduces backward incompatibilities? | Change | | --- | --- | --- | --- | +| May 21, 2021 | v3.2.3 | no | Resolved several issues, including an issue related to preserving the operator-generated internal certificate, corrected the monitoring exporter integration to include the Administration Server, enhanced the model-in-image support to not require the use of configuration overrides, and updated the domain-home-in-image samples to support the WebLogic Image Tool. | | April 27, 2021 | v3.2.2 | no | Resolved a set of issues with many related to reducing the operator's network utilization. | | April 5, 2021 | v3.2.1 | no | Updated several dependencies, including the Oracle Linux base for the container image. | | March 31, 2021 | v3.2.0 | no | Online updates for dynamic changes for Model in Image, injection of the WebLogic Monitoring Exporter, other features, and a significant number of additional fixes. | @@ -39,6 +40,17 @@ draft: false ### Change log +#### Operator 3.2.3 + +* Resolved an issue related to preserving the operator-generated internal certificate ([#2374](https://github.com/oracle/weblogic-kubernetes-operator/pull/2374)). +* Corrected the monitoring exporter integration to include the Administration Server ([#2365](https://github.com/oracle/weblogic-kubernetes-operator/pull/2365)). +* Enhanced the model-in-image support to not require the use of configuration overrides ([#2344](https://github.com/oracle/weblogic-kubernetes-operator/pull/2344)). +* Resolved an issue related to model-in-image domains performing a rolling restart when there had been no change to the model ([#2348](https://github.com/oracle/weblogic-kubernetes-operator/pull/2348)). +* Resolved an issue related to RCU schema password updates ([#2357](https://github.com/oracle/weblogic-kubernetes-operator/pull/2357)). +* Resolved an issue related to namespace starting and stopping events ([#2345](https://github.com/oracle/weblogic-kubernetes-operator/pull/2345)). +* Added support for several new events related to rolling restarts ([#2364](https://github.com/oracle/weblogic-kubernetes-operator/pull/2364)). +* Added support for customer-defined labels and annotations on the operator's pod ([#2370](https://github.com/oracle/weblogic-kubernetes-operator/pull/2370)). + #### Operator 3.2.2 * Resolved an issue where the operator would retry Kubernetes API requests that timed out without a backoff causing increased network utilization ([#2300](https://github.com/oracle/weblogic-kubernetes-operator/pull/2300)). diff --git a/documentation/3.2/content/samples/simple/azure-kubernetes-service/_index.md b/documentation/3.2/content/samples/simple/azure-kubernetes-service/_index.md index 5574a6d7987..ebb1092da88 100644 --- a/documentation/3.2/content/samples/simple/azure-kubernetes-service/_index.md +++ b/documentation/3.2/content/samples/simple/azure-kubernetes-service/_index.md @@ -18,7 +18,7 @@ description: "Sample for using the operator to set up a WLS cluster on the Azure ### Introduction -This sample demonstrates how to use the [Oracle WebLogic Server Kubernetes Operator]({{< relref "/_index.md" >}}) (hereafter "the operator") to set up a WebLogic Server (WLS) cluster on the Azure Kubernetes Service (AKS). After going through the steps, your WLS domain runs on an AKS cluster. You have several options for managing the cluster, depending on which [domain home source type]({{< relref "/userguide/managing-domains/choosing-a-model/_index.md" >}}) you choose. With Domain in PV, you can manage your WLS domain by accessing the WebLogic Server Administration Console or WLST. With Model in Image, you use the operator to perform WLS administrative operations. +This sample demonstrates how to use the [WebLogic Kubernetes Operator]({{< relref "/_index.md" >}}) (hereafter "the operator") to set up a WebLogic Server (WLS) cluster on the Azure Kubernetes Service (AKS). After going through the steps, your WLS domain runs on an AKS cluster. You have several options for managing the cluster, depending on which [domain home source type]({{< relref "/userguide/managing-domains/choosing-a-model/_index.md" >}}) you choose. With Domain in PV, you can manage your WLS domain by accessing the WebLogic Server Administration Console or WLST. With Model in Image, you use the operator to perform WLS administrative operations. #### Azure Kubernetes Service cluster diff --git a/documentation/3.2/content/samples/simple/azure-kubernetes-service/domain-on-pv.md b/documentation/3.2/content/samples/simple/azure-kubernetes-service/domain-on-pv.md index 518eac4a15f..7dea9d1decb 100644 --- a/documentation/3.2/content/samples/simple/azure-kubernetes-service/domain-on-pv.md +++ b/documentation/3.2/content/samples/simple/azure-kubernetes-service/domain-on-pv.md @@ -5,13 +5,13 @@ weight: 2 description: "Sample for creating a WebLogic domain home on an existing PV or PVC on the Azure Kubernetes Service." --- -This sample demonstrates how to use the [Oracle WebLogic Server Kubernetes Operator](/weblogic-kubernetes-operator/) (hereafter "the operator") to set up a WebLogic Server (WLS) cluster on the Azure Kubernetes Service (AKS) using the model in persistence volume approach. After going through the steps, your WLS domain runs on an AKS cluster instance and you can manage your WLS domain by accessing the WebLogic Server Administration Console. +This sample demonstrates how to use the [WebLogic Kubernetes Operator](/weblogic-kubernetes-operator/) (hereafter "the operator") to set up a WebLogic Server (WLS) cluster on the Azure Kubernetes Service (AKS) using the model in persistence volume approach. After going through the steps, your WLS domain runs on an AKS cluster instance and you can manage your WLS domain by accessing the WebLogic Server Administration Console. #### Contents - [Prerequisites](#prerequisites) - [Create an AKS cluster](#create-the-aks-cluster) - - [Install WebLogic Server Kubernetes Operator](#install-weblogic-server-kubernetes-operator-into-the-aks-cluster) + - [Install WebLogic Kubernetes Operator](#install-weblogic-kubernetes-operator-into-the-aks-cluster) - [Create WebLogic domain](#create-weblogic-domain) - [Automation](#automation) - [Deploy sample application](#deploy-sample-application) @@ -24,12 +24,12 @@ This sample demonstrates how to use the [Oracle WebLogic Server Kubernetes Opera {{< readfile file="/samples/simple/azure-kubernetes-service/includes/create-aks-cluster-body-01.txt" >}} -##### Clone WebLogic Server Kubernetes Operator repository +##### Clone WebLogic Kubernetes Operator repository -Clone the [Oracle WebLogic Server Kubernetes Operator repository](https://github.com/oracle/weblogic-kubernetes-operator) to your machine. We will use several scripts in this repository to create a WebLogic domain. This sample was tested with v3.1.1, but should work with the latest release. +Clone the [WebLogic Kubernetes Operator repository](https://github.com/oracle/weblogic-kubernetes-operator) to your machine. We will use several scripts in this repository to create a WebLogic domain. This sample was tested with v3.1.1, but should work with the latest release. ```shell -$ git clone --branch v3.2.2 https://github.com/oracle/weblogic-kubernetes-operator.git +$ git clone --branch v3.2.3 https://github.com/oracle/weblogic-kubernetes-operator.git ``` {{% notice info %}} The following sections of the sample instructions will guide you, step-by-step, through the process of setting up a WebLogic cluster on AKS - remaining as close as possible to a native Kubernetes experience. This lets you understand and customize each step. If you wish to have a more automated experience that abstracts some lower level details, you can skip to the [Automation](#automation) section. @@ -42,9 +42,9 @@ $ git clone --branch v3.2.2 https://github.com/oracle/weblogic-kubernetes-operat {{< readfile file="/samples/simple/azure-kubernetes-service/includes/create-aks-cluster-storage.txt" >}} -#### Install WebLogic Server Kubernetes Operator into the AKS cluster +#### Install WebLogic Kubernetes Operator into the AKS cluster -The Oracle WebLogic Server Kubernetes Operator is an adapter to integrate WebLogic Server and Kubernetes, allowing Kubernetes to serve as a container infrastructure hosting WLS instances. The operator runs as a Kubernetes Pod and stands ready to perform actions related to running WLS on Kubernetes. +The WebLogic Kubernetes Operator is an adapter to integrate WebLogic Server and Kubernetes, allowing Kubernetes to serve as a container infrastructure hosting WLS instances. The operator runs as a Kubernetes Pod and stands ready to perform actions related to running WLS on Kubernetes. Kubernetes Operators use [Helm](https://helm.sh/) to manage Kubernetes applications. The operator’s Helm chart is located in the `kubernetes/charts/weblogic-operator` directory. Please install the operator by running the corresponding command. @@ -144,6 +144,9 @@ weblogic-operator-secrets Opaque ##### Create WebLogic Domain We will use the `kubernetes/samples/scripts/create-weblogic-domain/domain-home-on-pv/create-domain.sh` script to create the WLS domain in the persistent volume we created previously. +{{% notice note %}} The `create-domain.sh` script and its inputs file are for demonstration purposes _only_; its contents and the domain resource file that it generates for you might change without notice. In production, we strongly recommend that you use the WebLogic Image Tool and WebLogic Deploy Tooling (when applicable), and directly work with domain resource files instead. +{{% /notice%}} + We need to set up the domain configuration for the WebLogic domain. 1. Check if resources are ready. diff --git a/documentation/3.2/content/samples/simple/azure-kubernetes-service/model-in-image.md b/documentation/3.2/content/samples/simple/azure-kubernetes-service/model-in-image.md index 9ac8a49f235..5fc5f6e7970 100644 --- a/documentation/3.2/content/samples/simple/azure-kubernetes-service/model-in-image.md +++ b/documentation/3.2/content/samples/simple/azure-kubernetes-service/model-in-image.md @@ -5,13 +5,13 @@ weight: 3 description: "Sample for creating a WebLogic cluster on the Azure Kubernetes Service with model in image approach." --- -This sample demonstrates how to use the [Oracle WebLogic Server Kubernetes Operator](/weblogic-kubernetes-operator/) (hereafter "the operator") to set up a WebLogic Server (WLS) cluster on the Azure Kubernetes Service (AKS) using the model in image approach. After going through the steps, your WLS domain runs on an AKS cluster instance and you can manage your WLS domain by interacting with the operator. +This sample demonstrates how to use the [WebLogic Kubernetes Operator](/weblogic-kubernetes-operator/) (hereafter "the operator") to set up a WebLogic Server (WLS) cluster on the Azure Kubernetes Service (AKS) using the model in image approach. After going through the steps, your WLS domain runs on an AKS cluster instance and you can manage your WLS domain by interacting with the operator. #### Contents - [Prerequisites](#prerequisites) - [Create an AKS cluster](#create-the-aks-cluster) - - [Install WebLogic Server Kubernetes Operator](#install-weblogic-server-kubernetes-operator) + - [Install WebLogic Kubernetes Operator](#install-weblogic-kubernetes-operator) - [Create Docker image](#create-docker-image) - [Create WebLogic domain](#create-weblogic-domain) - [Invoke the web application](#invoke-the-web-application) @@ -25,12 +25,12 @@ This sample demonstrates how to use the [Oracle WebLogic Server Kubernetes Opera {{< readfile file="/samples/simple/azure-kubernetes-service/includes/create-aks-cluster-body-01.txt" >}} -##### Clone WebLogic Server Kubernetes Operator repository +##### Clone WebLogic Kubernetes Operator repository -Clone the [Oracle WebLogic Server Kubernetes Operator repository](https://github.com/oracle/weblogic-kubernetes-operator) to your machine. We will use several scripts in this repository to create a WebLogic domain. This sample was tested with v3.1.1, but should work with the latest release. +Clone the [WebLogic Kubernetes Operator repository](https://github.com/oracle/weblogic-kubernetes-operator) to your machine. We will use several scripts in this repository to create a WebLogic domain. This sample was tested with v3.1.1, but should work with the latest release. ```shell -$ git clone --branch v3.2.2 https://github.com/oracle/weblogic-kubernetes-operator.git +$ git clone --branch v3.2.3 https://github.com/oracle/weblogic-kubernetes-operator.git ``` ```shell $ cd weblogic-kubernetes-operator @@ -41,9 +41,9 @@ $ cd weblogic-kubernetes-operator **Note**: If you run into VM size failure, see [Troubleshooting - Virtual Machine size is not supported]({{< relref "/samples/simple/azure-kubernetes-service/troubleshooting#virtual-machine-size-is-not-supported" >}}). -#### Install WebLogic Server Kubernetes Operator +#### Install WebLogic Kubernetes Operator -The Oracle WebLogic Server Kubernetes Operator is an adapter to integrate WebLogic Server and Kubernetes, allowing Kubernetes to serve as a container infrastructure hosting WLS instances. The operator runs as a Kubernetes Pod and stands ready to perform actions related to running WLS on Kubernetes. +The WebLogic Kubernetes Operator is an adapter to integrate WebLogic Server and Kubernetes, allowing Kubernetes to serve as a container infrastructure hosting WLS instances. The operator runs as a Kubernetes Pod and stands ready to perform actions related to running WLS on Kubernetes. Create a namespace and service account for the operator. diff --git a/documentation/3.2/content/samples/simple/domains/domain-home-in-image/_index.md b/documentation/3.2/content/samples/simple/domains/domain-home-in-image/_index.md index 81c43b56157..48aeb8a6b07 100644 --- a/documentation/3.2/content/samples/simple/domains/domain-home-in-image/_index.md +++ b/documentation/3.2/content/samples/simple/domains/domain-home-in-image/_index.md @@ -2,10 +2,10 @@ title: "Domain home in image" date: 2019-02-23T17:32:31-05:00 weight: 3 -description: "Sample for creating a WebLogic domain home inside an image, and the Domain YAML file for deploying the generated WebLogic domain." +description: "Sample for creating a WebLogic domain home inside an image, and the domain resource YAML file for deploying the generated WebLogic domain." --- -The sample scripts demonstrate the creation of a WebLogic domain home in an image using one of the domain home in image samples in the Oracle WebLogic Server images [GitHub project](https://github.com/oracle/docker-images/tree/master/OracleWebLogic/samples). The sample scripts have the option of putting the WebLogic domain log, server logs, server output files, and the Node Manager logs on an existing Kubernetes PersistentVolume (PV) and PersistentVolumeClaim (PVC). The scripts also generate the domain YAML file, which can then be used by the scripts or used manually to start the Kubernetes artifacts of the corresponding domain, including the WebLogic Server pods and services. +The sample scripts demonstrate the creation of a WebLogic domain home in an image using [WebLogic Image Tool](https://oracle.github.io/weblogic-image-tool/) (WIT). The sample scripts have the option of putting the WebLogic domain log, server logs, server output files, and the Node Manager logs on an existing Kubernetes PersistentVolume (PV) and PersistentVolumeClaim (PVC). The scripts also generate the domain resource YAML file, which can then be used by the scripts or used manually to start the Kubernetes artifacts of the corresponding domain, including the WebLogic Server pods and services. #### Prerequisites @@ -13,8 +13,8 @@ Before you begin, read this document, [Domain resource]({{< relref "/userguide/m The following prerequisites must be met prior to running the create domain script: -* The WebLogic Deploy Tooling (WDT) sample requires that `JAVA_HOME` is set to a Java JDK version 1.8 or later. -* The operator requires either Oracle WebLogic Server 12.2.1.3.0 with patch 29135930 applied, or Oracle WebLogic Server 12.2.1.4.0, or Oracle WebLogic Server 14.1.1.0.0. The existing WebLogic Server image, `container-registry.oracle.com/middleware/weblogic:12.2.1.3`, has all the necessary patches applied. For details on how to obtain or create the image, see [WebLogic Server images]({{< relref "/userguide/base-images/_index.md#create-or-obtain-weblogic-server-images" >}}). +* The WebLogic Image Tool requires that `JAVA_HOME` is set to a Java JDK version 8 or later. +* The operator requires an image with either Oracle WebLogic Server 12.2.1.3.0 with patch 29135930 applied, or Oracle WebLogic Server 12.2.1.4.0, or Oracle WebLogic Server 14.1.1.0.0. The existing WebLogic Server image, `container-registry.oracle.com/middleware/weblogic:12.2.1.3`, has all the necessary patches applied. For details on how to obtain or create the image, see [WebLogic Server images]({{< relref "/userguide/base-images/_index.md#create-or-obtain-weblogic-server-images" >}}). * Create a Kubernetes Namespace for the domain unless you intend to use the default namespace. * If `logHomeOnPV` is enabled, create the Kubernetes PersistentVolume where the log home will be hosted, and the Kubernetes PersistentVolumeClaim for the domain in the same Kubernetes Namespace. For samples to create a PV and PVC, see [Create sample PV and PVC]({{< relref "/samples/simple/storage/_index.md" >}}). * Create a Kubernetes Secret for the WebLogic administrator credentials that contains the fields `username` and `password`, and make sure that the secret name matches the value specified for `weblogicCredentialsSecretName`; see [Configuration parameters](#configuration-parameters) below. For example: @@ -46,7 +46,8 @@ $ cd kubernetes/samples/scripts/create-weblogic-domain/domain-home-in-image ``` Make a copy of the `create-domain-inputs.yaml` file, update it with the correct values, -and run the create script, pointing it at your inputs file and an output directory: +and run the create script, pointing it at your inputs file and an output directory, +along with user name and password for the WebLogic administrator: ```shell $ ./create-domain.sh \ @@ -55,14 +56,47 @@ $ ./create-domain.sh \ -i create-domain-inputs.yaml \ -o / ``` +{{% notice note %}} The `create-domain.sh` script and its inputs file are for demonstration purposes _only_; its contents and the domain resource file that it generates for you might change without notice. In production, we strongly recommend that you use the WebLogic Image Tool and WebLogic Deploy Tooling (when applicable), and directly work with domain resource files instead. +{{% /notice%}} The script will perform the following steps: * Create a directory for the generated properties and Kubernetes YAML files for this domain if it does not already exist. The pathname is `//weblogic-domains/`. If the directory already exists, its contents will be removed. -* Create a properties file, `domain.properties`, in the directory that is created above. This properties file will be used to create a sample WebLogic Server domain. -* Clone the WebLogic docker-images project into the directory that is derived from the `domainHomeImageBuildPath` property using `git clone https://github.com/oracle/docker-images.git`. By default, the script always cleans up the directory and clones it again on every run. You need to specify the `-k` option if you want to use a previously cloned project. Note that if the specified `domainHomeImageBuildPath` is empty, the script will still clone the project even if the `-k` option is specified. -* Replace the built-in user name and password in the `properties/docker-build/domain_security.properties` file with the `username` and `password` that are supplied on the command line using the `-u` and `-p` options. These credentials need to match the WebLogic domain administrator credentials in the secret that is specified using the `weblogicCredentialsSecretName` property in the `create-domain-inputs.yaml` file. -* Build a container image based on the Docker sample, [Example Image with a WebLogic Server Domain using the Oracle WebLogic Scripting Tooling (WLST)](https://github.com/oracle/docker-images/tree/master/OracleWebLogic/samples/12213-domain-home-in-image) or [Example Image with a WebLogic Server Domain using the Oracle WebLogic Deploy Tooling (WDT)](https://github.com/oracle/docker-images/tree/master/OracleWebLogic/samples/12213-domain-home-in-image-wdt). It will create a sample WebLogic Server domain in a container image. + +* Create a properties file, `domain.properties`, in the directory that is created above. + This properties file will be used to create a sample WebLogic Server domain. + The `domain.properties` file will be removed upon successful completion of the script. + +* Download the latest [WebLogic Deploy Tooling](https://oracle.github.io/weblogic-deploy-tooling) (WDT) and [WebLogic Image Tool](https://oracle.github.io/weblogic-image-tool/) installer ZIP files to your `/tmp/dhii-sample/tools` directory. + WIT is required to create your Domain in Image container images, and WDT is required if using `wdt` mode. + Visit the GitHub [WebLogic Deploy Tooling Releases](https://github.com/oracle/weblogic-deploy-tooling/releases) and [WebLogic Image Tool Releases](https://github.com/oracle/weblogic-image-tool/releases) web pages to determine the latest release version for each. + +* Set up the WebLogic Image Tool in the `/imagetool` directory, where `` is the + directory specified in the `toolsDir` parameter in the inputs YAML file. Set the + WIT cache store location to the `/imagetool-cache` directory and + put a `wdt_` entry in the tool's cache, which points to the path of the WDT ZIP file installer. + For more information about the WIT cache, see the + [WIT Cache documentation](https://oracle.github.io/weblogic-image-tool/userguide/tools/cache/). + +* If the optional `-n` option and an encryption key is provided, invoke the WDT + [Encrypt Model Tool](https://oracle.github.io/weblogic-deploy-tooling/userguide/tools/encrypt/) + in a container running the image specified in `domainHomeImageBase` parameter in your inputs file + to encrypt the password properties in `domain.properties` file. Note that this password encryption + step is skipped if the value of the `mode` parameter in the inputs YAML file is `wlst` because + the feature is provided by WDT. + +* Invoke the [WebLogic Image Tool](https://oracle.github.io/weblogic-image-tool) to create a + new WebLogic Server domain based on the WebLogic image specified in the `domainHomeImageBase` parameter + from your inputs file. The new WebLogic Server domain is created using one of the + following options based on the value of the `mode` parameter in the inputs YAML file: + * If the value of the `mode` parameter is `wdt`, the WDT model specified in the `createDomainWdtModel` + parameter and the WDT variables in `domain.properties` file are used by the WebLogic Image Tool to create + the new WebLogic Server domain. + * If the value of the `mode` parameter is `wlst`, the offline WLST + script specified in the `createDomainWlstScript` parameter is run to create the new WebLogic Server domain. + +* The generated image is tagged with the `image` parameter provided in your inputs file. + {{% notice warning %}} Oracle strongly recommends storing the image containing the domain home as private in the registry (for example, Oracle Cloud Infrastructure Registry, GitHub Container Registry, and such) because @@ -71,31 +105,29 @@ The script will perform the following steps: For more information, see [WebLogic domain in image protection]({{}}). {{% /notice %}} -* Create a tag that refers to the generated image. -* Create a Kubernetes domain YAML file, `domain.yaml`, in the directory that is created above. This YAML file can be used to create the Kubernetes resource using the `kubectl create -f` or `kubectl apply -f` command. +* Create a Kubernetes domain resource YAML file, `domain.yaml`, in the directory that is created above. This YAML file can be used to create the Kubernetes resource using the `kubectl create -f` or `kubectl apply -f` command. ```shell $ kubectl apply -f //weblogic-domains//domain.yaml ``` As a convenience, using the `-e` option, the script can optionally create the domain object, which in turn results in the creation of the corresponding WebLogic Server pods and services. This option should be used in a single node Kubernetes cluster only. -For a multi-node Kubernetes cluster, make sure that the generated image is available on all nodes before creating the Domain YAML file using the `kubectl apply -f` command. +For a multi-node Kubernetes cluster, make sure that the generated image is available on all nodes before creating the domain resource YAML file using the `kubectl apply -f` command. The usage of the create script is as follows: ```shell $ sh create-domain.sh -h ``` -``` -usage: create-domain.sh -o dir -i file -u username -p password [-k] [-e] [-h] +```text +usage: create-domain.sh -o dir -i file -u username -p password [-n encryption-key] [-e] [-v] [-h] -i Parameter inputs file, must be specified. - -o Ouput directory for the generated properties and YAML files, must be specified. - -u User name used in building the image for WebLogic domain in image. - -p Password used in building the image for WebLogic domain in image. + -o Output directory for the generated properties and YAML files, must be specified. + -u WebLogic administrator user name for the WebLogic domain. + -p WebLogic administrator Password for the WebLogic domain. -e Also create the resources in the generated YAML files, optional. -v Validate the existence of persistentVolumeClaim, optional. - -k Keep what has been previously cloned from https://github.com/oracle/docker-images.git, optional. - If not specified, this script will always remove the existing project and clone again. + -n Encryption key for encrypting passwords in the WDT model and properties files, optional. -h Help ``` @@ -139,14 +171,16 @@ The following parameters can be provided in the inputs file. | `adminServerName` | Name of the Administration Server. | `admin-server` | | `clusterName` | Name of the WebLogic cluster instance to generate for the domain. | `cluster-1` | | `configuredManagedServerCount` | Number of Managed Server instances to generate for the domain. | `5` | -| `domainHomeImageBase` | Base WebLogic binary image used to build the WebLogic domain image. The operator requires either Oracle WebLogic Server 12.2.1.3.0 with patch 29135930 applied, or Oracle WebLogic Server 12.2.1.4.0, or Oracle WebLogic Server 14.1.1.0.0. The existing WebLogic Server image, `container-registry.oracle.com/middleware/weblogic:12.2.1.3`, has all the necessary patches applied. For details on how to obtain or create the image, see [WebLogic Server images]({{< relref "/userguide/base-images/_index.md#create-or-obtain-weblogic-server-images" >}}). | `container-registry.oracle.com/middleware/weblogic:12.2.1.3` | -| `domainHomeImageBuildPath` | Location of the WebLogic "domain home in image" image in the `https://github.com/oracle/docker-images.git` project. If not specified, use `./docker-images/OracleWebLogic/samples/12213-domain-home-in-image`. Another possible value is `./docker-images/OracleWebLogic/samples/12213-domain-home-in-image-wdt` which uses WDT, instead of WLST, to generate the domain configuration. | `./docker-images/OracleWebLogic/samples/12213-domain-home-in-image` | +| `createDomainWdtModel` | WDT model YAML file that the create domain script uses to create a WebLogic domain when using wdt `mode`. This value is ignored when the `mode` is set to `wlst`. | `wdt/wdt_model_dynamic.yaml` | +| `createDomainWlstScript` | WLST script that the create domain script uses to create a WebLogic domain when using wlst `mode`. This value is ignored when the `mode` is set to `wdt` (which is the default `mode`). | `wlst/create-wls-domain.py` | +| `domainHome` | Domain home directory of the WebLogic domain to be created in the generated WebLogic Server image. | `/u01/oracle/user_projects/domains/` | +| `domainHomeImageBase` | Base WebLogic binary image used to build the WebLogic domain image. The operator requires either Oracle WebLogic Server 12.2.1.3.0 with patch 29135930 applied, or Oracle WebLogic Server 12.2.1.4.0, or Oracle WebLogic Server 14.1.1.0.0. The existing WebLogic Server image, `container-registry.oracle.com/middleware/weblogic:12.2.1.3`, has all the necessary patches applied. For details on how to obtain or create the image, see [WebLogic Server images]({{< relref "/userguide/managing-domains/domain-in-image/base-images/_index.md#creating-or-obtaining-weblogic-server-images" >}}). | `container-registry.oracle.com/middleware/weblogic:12.2.1.3` | | `domainPVMountPath` | Mount path of the domain persistent volume. This parameter is required if `logHomeOnPV` is true. Otherwise, it is ignored. | `/shared` | | `domainUID` | Unique ID that will be used to identify this particular domain. Used as the name of the generated WebLogic domain as well as the name of the Domain. This ID must be unique across all domains in a Kubernetes cluster. This ID cannot contain any character that is not valid in a Kubernetes Service name. | `domain1` | | `exposeAdminNodePort` | Boolean indicating if the Administration Server is exposed outside of the Kubernetes cluster. | `false` | | `exposeAdminT3Channel` | Boolean indicating if the T3 administrative channel is exposed outside the Kubernetes cluster. | `false` | | `httpAccessLogInLogHome` | Boolean indicating if server HTTP access log files should be written to the same directory as `logHome` if `logHomeOnPV` is true. Otherwise, server HTTP access log files will be written to the directory specified in the WebLogic domain home configuration. | `true` | -| `image` | WebLogic Server image that the operator uses to start the domain. The create domain scripts generate a WebLogic Server image with a domain home in it. By default, the scripts tag the generated WebLogic Server image as either `domain-home-in-image` or `domain-home-in-image-wdt` based on the `domainHomeImageBuildPath` property, and use it plus the tag that is obtained from the `domainHomeImageBase` to set the `image` element in the generated domain YAML file. If this property is set, the create domain scripts will use the value specified, instead of the default value, to tag the generated image and set the `image` in the domain YAML file. A unique value is required for each domain that is created using the scripts. If you are running the sample scripts from a machine that is remote to the Kubernetes cluster where the domain is going to be running, you need to set this property to the image name that is intended to be used in a registry local to that Kubernetes cluster. You also need to push the `image` to that registry before starting the domain using the `kubectl create -f` or `kubectl apply -f` command. | | +| `image` | WebLogic Server image that the operator uses to start the domain. The create domain scripts generate a WebLogic Server image with a domain home in it. By default, the scripts tag the generated WebLogic Server image as `domain-home-in-image`, and use it plus the tag that is obtained from the `domainHomeImageBase` to set the `image` element in the generated domain resource YAML file. If this property is set, the create domain scripts will use the value specified, instead of the default value, to tag the generated image and set the `image` in the domain resource YAML file. A unique value is required for each domain that is created using the scripts. If you are running the sample scripts from a machine that is remote to the Kubernetes cluster where the domain is going to be running, you need to set this property to the image name that is intended to be used in a registry local to that Kubernetes cluster. You also need to push the `image` to that registry before starting the domain using the `kubectl create -f` or `kubectl apply -f` command. | `domain-home-in-image:`| | `imagePullPolicy` | WebLogic Server image pull policy. Legal values are `IfNotPresent`, `Always`, or `Never`. | `IfNotPresent` | | `imagePullSecretName` | Name of the Kubernetes Secret to access the container registry to pull the WebLogic Server image. The presence of the secret will be validated when this parameter is specified. | | | `includeServerOutInPodLog` | Boolean indicating whether to include the server `.out` int the pod's stdout. | `true` | @@ -157,6 +191,7 @@ The following parameters can be provided in the inputs file. | `managedServerNameBase` | Base string used to generate Managed Server names. | `managed-server` | | `managedServerPort` | Port number for each Managed Server. | `8001` | | `managedServerSSLPort` | SSL port number for each Managed Server. | `8002` | +| `mode` | Whether to use the WDT model specified in `createDomainWdtModel` or the offline WLST script specified in `createDomainWlstScript` to create a WebLogic domain. Legal values are `wdt` or `wlst`. | `wdt` | | `namespace` | Kubernetes Namespace in which to create the domain. | `default` | | `persistentVolumeClaimName` | Name of the persistent volume claim. If not specified, the value is derived from the `domainUID` as `-weblogic-sample-pvc`. This parameter is required if `logHomeOnPV` is true. Otherwise, it is ignored. | `domain1-weblogic-sample-pvc` | | `productionModeEnabled` | Boolean indicating if production mode is enabled for the domain. | `true` | @@ -165,10 +200,13 @@ The following parameters can be provided in the inputs file. | `t3PublicAddress` | Public address for the T3 channel. This should be set to the public address of the Kubernetes cluster. This would typically be a load balancer address.

For development environments only, in a single server (all-in-one) Kubernetes Deployment, this may be set to the address of the master, or at the very least, it must be set to the address of one of the worker nodes. | If not provided, the script will attempt to set it to the IP address of the Kubernetes cluster. | | `weblogicCredentialsSecretName` | Name of the Kubernetes Secret for the Administration Server user name and password. | `domain1-weblogic-credentials` | | `serverPodCpuRequest`, `serverPodMemoryRequest`, `serverPodCpuCLimit`, `serverPodMemoryLimit` | The maximum amount of compute resources allowed, and minimum amount of compute resources required, for each server pod. Please refer to the Kubernetes documentation on `Managing Compute Resources for Containers` for details. | Resource requests and resource limits are not specified. | +| `toolsDir` | The directory where WebLogic Deploy Tool and WebLogic Image Tool are installed. The script will install these tools to this directory if they are not already installed. | `/tmp/dhii-sample/tools` | +| `wdtVersion` | Version of the WebLogic Deploy Tool to be installed by the script. This can be a specific version, such as 1.9.10, or `LATEST`. | `LATEST` | +| `witVersion` | Version of the WebLogic Image Tool to be installed by the script. This can be a specific version, such as 1.9.10, or `LATEST`. | `LATEST` | -Note that the names of the Kubernetes resources in the generated YAML files may be formed with the value of some of the properties specified in the `create-inputs.yaml` file. Those properties include the `adminServerName`, `clusterName`, and `managedServerNameBase`. If those values contain any characters that are invalid in a Kubernetes Service name, those characters are converted to valid values in the generated YAML files. For example, an uppercase letter is converted to a lowercase letter and an underscore `("_")` is converted to a hyphen `("-")`. +Note that the names of the Kubernetes resources in the generated YAML files may be formed with the value of some of the properties specified in the inputs YAML file. Those properties include the `adminServerName`, `clusterName`, and `managedServerNameBase`. If those values contain any characters that are invalid in a Kubernetes Service name, those characters are converted to valid values in the generated YAML files. For example, an uppercase letter is converted to a lowercase letter and an underscore `("_")` is converted to a hyphen `("-")`. -The sample demonstrates how to create a WebLogic domain home and associated Kubernetes resources for a domain that has only one cluster. In addition, the sample provides the capability for users to supply their own scripts to create the domain home for other use cases. Also, the generated domain YAML file can be modified to cover more use cases. +The sample demonstrates how to create a WebLogic domain home and associated Kubernetes resources for a domain that has only one cluster. In addition, the sample provides the capability for users to supply their own scripts to create the domain home for other use cases. Also, the generated domain resource YAML file can be modified to cover more use cases. #### Verify the results @@ -444,3 +482,21 @@ The generated YAML file in the `//weblogic-domains/}}). +* Make sure the WebLogic Kubernetes Operator is running. +* The operator requires an image with Oracle WebLogic Server 12.2.1.3.0 with patch 29135930 applied, or Oracle WebLogic Server 12.2.1.4.0, or Oracle WebLogic Server 14.1.1.0.0. The existing WebLogic Server image, `container-registry.oracle.com/middleware/weblogic:12.2.1.3`, has all the necessary patches applied. For details on how to obtain or create the image, see [WebLogic Server images]({{< relref "/userguide/base-images/_index.md#create-or-obtain-weblogic-server-images" >}}). * Create a Kubernetes Namespace for the domain unless you intend to use the default namespace. * In the same Kubernetes Namespace, create the Kubernetes PersistentVolume (PV) where the domain home will be hosted, and the Kubernetes PersistentVolumeClaim (PVC) for the domain. For samples to create a PV and PVC, see [Create sample PV and PVC]({{< relref "/samples/simple/storage/_index.md" >}}). By default, the `create-domain.sh` script creates a domain with the `domainUID` set to `domain1` and expects the PVC `domain1-weblogic-sample-pvc` to be present. You can create `domain1-weblogic-sample-pvc` using [create-pv-pvc.sh](https://github.com/oracle/weblogic-kubernetes-operator/blob/main/kubernetes/samples/scripts/create-weblogic-domain-pv-pvc/create-pv-pvc.sh) with an inputs file that has the `domainUID` set to `domain1`. * Create the Kubernetes Secrets `username` and `password` of the administrative account in the same Kubernetes Namespace as the domain. @@ -51,13 +51,15 @@ $ ./create-domain.sh \ -i create-domain-inputs.yaml \ -o / ``` +{{% notice note %}} The `create-domain.sh` script and its inputs file are for demonstration purposes _only_; its contents and the domain resource file that it generates for you might change without notice. In production, we strongly recommend that you use the WebLogic Image Tool and WebLogic Deploy Tooling (when applicable), and directly work with domain resource files instead. +{{% /notice%}} The script will perform the following steps: * Create a directory for the generated Kubernetes YAML files for this domain if it does not already exist. The pathname is `//weblogic-domains/`. If the directory already exists, then its contents must be removed before using this script. * Create a Kubernetes Job that will start up a utility WebLogic Server container and run offline WLST scripts, or WebLogic Deploy Tool (WDT) scripts, to create the domain on the shared storage. * Run and wait for the job to finish. -* Create a Kubernetes domain YAML file, `domain.yaml`, in the directory that is created above. This YAML file can be used to create the Kubernetes resource using the `kubectl create -f` or `kubectl apply -f` command: +* Create a Kubernetes domain resource YAML file, `domain.yaml`, in the directory that is created above. This YAML file can be used to create the Kubernetes resource using the `kubectl create -f` or `kubectl apply -f` command: ```shell $ kubectl apply -f //weblogic-domains//domain.yaml ``` @@ -133,7 +135,7 @@ The following parameters can be provided in the inputs file. Note that the names of the Kubernetes resources in the generated YAML files may be formed with the value of some of the properties specified in the `create-inputs.yaml` file. Those properties include the `adminServerName`, `clusterName`, and `managedServerNameBase`. If those values contain any characters that are invalid in a Kubernetes Service name, those characters are converted to valid values in the generated YAML files. For example, an uppercase letter is converted to a lowercase letter and an underscore `("_")` is converted to a hyphen `("-")`. -The sample demonstrates how to create a WebLogic domain home and associated Kubernetes resources for a domain that only has one cluster. In addition, the sample provides the capability for users to supply their own scripts to create the domain home for other use cases. The generated domain YAML file could also be modified to cover more use cases. +The sample demonstrates how to create a WebLogic domain home and associated Kubernetes resources for a domain that only has one cluster. In addition, the sample provides the capability for users to supply their own scripts to create the domain home for other use cases. The generated domain resource YAML file could also be modified to cover more use cases. #### Verify the results @@ -438,7 +440,7 @@ Look for lines similar to: ``` weblogic-operator1 pod/weblogic-operator- ``` - If you do not find something similar in the output, the WebLogic Server Kubernetes Operator might not have been installed completely. Review the operator [installation instructions]({{< relref "/userguide/managing-operators/installation/_index.md" >}}). + If you do not find something similar in the output, the WebLogic Kubernetes Operator might not have been installed completely. Review the operator [installation instructions]({{< relref "/userguide/managing-operators/installation/_index.md" >}}). **Message**: `ERROR: Unable to create folder /shared/domains` diff --git a/documentation/3.2/content/samples/simple/domains/fmw-domain-home-in-image/_index.md b/documentation/3.2/content/samples/simple/domains/fmw-domain-home-in-image/_index.md new file mode 100644 index 00000000000..cad7c0edec2 --- /dev/null +++ b/documentation/3.2/content/samples/simple/domains/fmw-domain-home-in-image/_index.md @@ -0,0 +1,533 @@ +--- +title: "FMW Infrastructure domain home in image" +date: 2019-04-18T07:32:31-05:00 +weight: 6 +description: "Sample for creating an FMW Infrastructure domain home inside an image, and the domain resource YAML file for deploying the generated WebLogic domain." +--- + + +The sample scripts demonstrate the creation of a FMW Infrastructure domain home in an image using +[WebLogic Image Tool](https://oracle.github.io/weblogic-image-tool/) (WIT). +The sample scripts have the option of putting the WebLogic domain log, server logs, server output files, +and the Node Manager logs on an existing Kubernetes PersistentVolume (PV) and PersistentVolumeClaim (PVC). +The scripts also generate the domain resource YAML file, which can then be used by the scripts or used manually +to start the Kubernetes artifacts of the corresponding domain, including the WebLogic Server pods and services. + +#### Prerequisites + +Before you begin, read this document, [Domain resource]({{< relref "/userguide/managing-domains/domain-resource/_index.md" >}}). + +The following prerequisites must be met prior to running the create domain script: + +* Make sure the WebLogic Kubernetes Operator is running. +* The operator requires an image with either FMW Infrastructure 12.2.1.3.0 with patch 29135930 applied or FMW Infrastructure 12.2.1.4.0. + For details on how to obtain or create the image, refer to + [FMW Infrastructure domains]({{< relref "/userguide/managing-fmw-domains/fmw-infra/#obtaining-the-fmw-infrastructure-image" >}}). +* Create a Kubernetes Namespace for the domain unless you intend to use the default namespace. +* If `logHomeOnPV` is enabled, create the Kubernetes PersistentVolume where the log home will be hosted, and the Kubernetes PersistentVolumeClaim for the domain in the same Kubernetes Namespace. For samples to create a PV and PVC, see [Create sample PV and PVC]({{< relref "/samples/simple/storage/_index.md" >}}). +* Create the Kubernetes Secrets `username` and `password` of the administrative account in the same Kubernetes + namespace as the domain. +* Unless you are creating a Restricted-JRF domain, you also need to: + * Configure access to your database. For details, see [here]({{< relref "/userguide/managing-fmw-domains/fmw-infra/_index.md#configuring-access-to-your-database" >}}). + * Create a Kubernetes Secret with the RCU credentials. For details, refer to this [document](https://github.com/oracle/weblogic-kubernetes-operator/blob/main/kubernetes/samples/scripts/create-rcu-credentials/README.md). + +#### Use the script to create a domain + +The sample for creating domains is in this directory: + +```shell +$ cd kubernetes/samples/scripts/create-fmw-infrastructure-domain/domain-home-in-image +``` +Make a copy of the `create-domain-inputs.yaml` file, update it with the correct values. +If `fwmDomainType` is `JRF`, also update the input files with configurations for accessing the RCU database schema, +including `rcuSchemaPrefix`, `rcuSchemaPassword`, `rcuDatabaseURL`, and `rcuCredentialSecrets`. +Run the create script, pointing it at your inputs file and an output directory, along with user name and password for the WebLogic administrator, +and if creating a JFR FMW domain, also provide the password for the RCU schema: + +```shell +$ ./create-domain.sh \ + -u \ + -p \ + -q \ + -i create-domain-inputs.yaml \ + -o / +``` +{{% notice note %}} The `create-domain.sh` script and its inputs file are for demonstration purposes _only_; its contents and the domain resource file that it generates for you might change without notice. In production, we strongly recommend that you use the WebLogic Image Tool and WebLogic Deploy Tooling (when applicable), and directly work with domain resource files instead. +{{% /notice%}} + +The script will perform the following steps: + +* Create a directory for the generated Kubernetes YAML files for this domain if it does not + already exist. The path name is `//weblogic-domains/`. + If the directory already exists, its contents must be removed before using this script. + +* Create a properties file, `domain.properties`, in the directory that is created above. + This properties file will be used to create a sample FMW Infrastructure domain. + The `domain.properties` file will be removed upon successful completion of the script. + +* Download the latest [WebLogic Deploy Tooling](https://oracle.github.io/weblogic-deploy-tooling/) (WDT) and [WebLogic Image Tool](https://oracle.github.io/weblogic-image-tool/) installer ZIP files to your `/tmp/dhii-sample/tools` directory. + WIT is required to create your Domain in Image container images, and WDT is required if using `wdt` mode. + Visit the GitHub [WebLogic Deploy Tooling Releases](https://github.com/oracle/weblogic-deploy-tooling/releases) and [WebLogic Image Tool Releases](https://github.com/oracle/weblogic-image-tool/releases) web pages to determine the latest release version for each. + +* Set up the WebLogic Image Tool in the `/imagetool` directory, where `` is the + directory specified in the `toolsDir` parameter in the inputs YAML file. Set the + WIT cache store location to the `/imagetool-cache` directory and + put a `wdt_` entry in the tool's cache, which points to the path of the WDT ZIP file installer. + For more information about the WIT cache, see the + [WIT Cache documentation](https://oracle.github.io/weblogic-image-tool/userguide/tools/cache/). + +* If the optional `-n` option and an encryption key is provided, invoke the WDT + [Encrypt Model Tool](https://oracle.github.io/weblogic-deploy-tooling/userguide/tools/encrypt/) + in a container running the image specified in `domainHomeImageBase` parameter in your inputs file + to encrypt the password properties in `domain.properties` file. Note that this password encryption + step is skipped if the value of the `mode` parameter in the inputs YAML file is `wlst` because + the feature is provided by WDT. + +* Invoke the [WebLogic Image Tool](https://oracle.github.io/weblogic-image-tool/) to create a new + FWM Infrastructure domain based on the FMW Infrastructure image specified in the `domainHomeImageBase` + parameter from your inputs file. The new WebLogic Server domain is created using one of the + following options based on the value of the `mode` parameter in the inputs YAML file: + * If the value of the `mode` parameter is `wdt`, the WDT model specified in the `createDomainWdtModel` + parameter and the WDT variables in `domain.properties` file are used by the WebLogic Image Tool to create + the new WebLogic Server domain. + * If the value of the `mode` parameter is `wlst`, the offline WLST + script specified in the `createDomainWlstScript` parameter is run to create the new WebLogic Server domain. + +* The generated image is tagged with the `image` parameter provided in your inputs file. + + {{% notice warning %}} + Oracle strongly recommends storing the image containing the domain home as private + in the registry (for example, Oracle Cloud Infrastructure Registry, GitHub Container Registry, and such) because + this image contains sensitive information about the domain, including keys and + credentials that are used to access external resources (for example, the data source password). + For more information, see + [WebLogic domain in image protection]({{}}). + {{% /notice %}} + +* Create a Kubernetes domain resource YAML file, `domain.yaml`, in the directory that is created above. + This YAML file can be used to create the Kubernetes resource using the `kubectl create -f` + or `kubectl apply -f` command: + + ```shell + $ kubectl apply -f //weblogic-domains//domain.yaml + ``` + +As a convenience, using the `-e` option, the script can optionally create the domain object, +which in turn results in the creation of the corresponding WebLogic Server pods and services as well. + +The usage of the create script is as follows: + +```shell +$ sh create-domain.sh -h +``` +```text +usage: create-domain.sh -o dir -i file -u username -p password [-q rcuSchemaPassword] [-n encryption-key] [-e] [-v] [-h] + -i Parameter inputs file, must be specified. + -o Output directory for the generated YAML files, must be specified. + -u WebLogic administrator user name for the WebLogic domain. + -p WebLogic administrator Password for the WebLogic domain. + -q Password for the RCU schema. Required for JRF FMW domain type. + -e Also create the resources in the generated YAML files, optional. + -v Validate the existence of persistentVolumeClaim, optional. + -n Encryption key for encrypting passwords in the WDT model and properties files, optional. + -h Help +``` + +If you copy the sample scripts to a different location, make sure that you copy everything in +the `/kubernetes/samples/scripts` directory together +into the target directory, maintaining the original directory hierarchy. + +The default domain created by the script has the following characteristics: + +* An Administration Server named `admin-server` listening on port `7001`. +* A configured cluster named `cluster-1` of size 3. +* Three Managed Servers, named `managed-server1`, `managed-server2`, and so on, listening on port `8001`. +* Log files that are located in `/shared/logs/`. +* No applications deployed. +* No data sources or JMS resources. +* A T3 channel. + +The domain creation inputs can be customized by editing `create-domain-inputs.yaml`. + +#### Configuration parameters +The following parameters can be provided in the inputs file. + +| Parameter | Definition | Default | +| --- | --- | --- | +| `adminPort` | Port number of the Administration Server inside the Kubernetes cluster. | `7001` | +| `adminNodePort` | Port number of the Administration Server outside the Kubernetes cluster. | `30701` | +| `adminServerName` | Name of the Administration Server. | `admin-server` | +| `clusterName` | Name of the WebLogic cluster instance to generate for the domain. | `cluster-1` | +| `configuredManagedServerCount` | Number of Managed Server instances to generate for the domain. This value is ignored when using WDT with a model that creates configured cluster where the number of Managed Server instances is determined by the WDT model specified by `createDomainWdtModel`. | `5` | +| `createDomainWdtModel` | WDT model YAML file that the create domain script uses to create a WebLogic domain when using wdt `mode`. This value is ignored when the `mode` is set to `wlst`. | `wdt/wdt_model_configured.yaml` or `wdt/wdt_model_restricted_jrf_configured.yaml` depending on the value of `fmwDomainType` | +| `createDomainWlstScript` | WLST script that the create domain script uses to create a WebLogic domain when using wlst `mode`. This value is ignored when the `mode` is set to `wdt` (which is the default `mode`). | `../../common/createFMWJRFDomain.py` or `../../common/createFMWRestrictedJRFDomain.py` depending on the value of `fmwDomainType` | +| `domainHome` | Domain home directory of the WebLogic domain to be created in the generated WebLogic Server image. | `/u01/oracle/user_projects/domains/` | +| `domainHomeImageBase` | Base OracleFMWInfrastructure binary image used to build the OracleFMWInfrastructure domain image. The operator requires FMW Infrastructure 12.2.1.3.0 with patch 29135930 applied or FMW Infrastructure 12.2.1.4.0. For details on how to obtain or create the image, see [FMW Infrastructure domains]({{< relref "/userguide/managing-fmw-domains/fmw-infra/#obtaining-the-fmw-infrastructure-image" >}}). | `container-registry.oracle.com/middleware/fmw-infrastructure:12.2.1.4` | +| `domainPVMountPath` | Mount path of the domain persistent volume. | `/shared` | +| `domainUID` | Unique ID that will be used to identify this particular domain. Used as the name of the generated WebLogic domain as well as the name of the Domain. This ID must be unique across all domains in a Kubernetes cluster. This ID cannot contain any character that is not valid in a Kubernetes Service name. | `domain1` | +| `exposeAdminNodePort` | Boolean indicating if the Administration Server is exposed outside of the Kubernetes cluster. | `false` | +| `exposeAdminT3Channel` | Boolean indicating if the T3 administrative channel is exposed outside the Kubernetes cluster. | `false` | +| `fmwDomainType` | FMW Infrastructure Domain Type. Legal values are `JRF` or `RestrictedJRF`. | `JRF` | +| `httpAccessLogInLogHome` | Boolean indicating if server HTTP access log files should be written to the same directory as `logHome`. Otherwise, server HTTP access log files will be written to the directory specified in the WebLogic domain home configuration. | `true` | +| `image` | Oracle FMW Infrastructure Server image that the operator uses to start the domain. The create domain scripts generate a Oracle FMW Infrastructure Server image with a domain home in it. By default, the scripts tag the generated Oracle FMW Infrastructure Server image as `domain-home-in-image`, and use it plus the tag that is obtained from the `domainHomeImageBase` to set the `image` element in the generated domain resource YAML file. If this property is set, the create domain scripts will use the value specified, instead of the default value, to tag the generated image and set the `image` in the domain resource YAML file. A unique value is required for each domain that is created using the scripts. If you are running the sample scripts from a machine that is remote to the Kubernetes cluster where the domain is going to be running, you need to set this property to the image name that is intended to be used in a registry local to that Kubernetes cluster. You also need to push the `image` to that registry before starting the domain using the `kubectl create -f` or `kubectl apply -f` command. | `domain-home-in-image:`| +| `imagePullPolicy` | Oracle FMW Infrastructure Server image pull policy. Legal values are `IfNotPresent`, `Always`, or `Never`. | `IfNotPresent` | +| `imagePullSecretName` | Name of the Kubernetes Secret to access the container registry to pull the WebLogic Server image. The presence of the secret will be validated when this parameter is specified. | | +| `includeServerOutInPodLog` | Boolean indicating whether to include the server `.out` in the pod's `stdout`. | `true` | +| `initialManagedServerReplicas` | Number of Managed Servers to start initially for the domain. | `1` | +| `javaOptions` | Java options for starting the Administration Server and Managed Servers. A Java option can have references to one or more of the following pre-defined variables to obtain WebLogic domain information: `$(DOMAIN_NAME)`, `$(DOMAIN_HOME)`, `$(ADMIN_NAME)`, `$(ADMIN_PORT)`, and `$(SERVER_NAME)`. | `-Dweblogic.StdoutDebugEnabled=false` | +| `logHome` | The in-pod location for the domain log, server logs, server out, Node Manager log, introspector out, and server HTTP access log files. If not specified, the value is derived from the `domainUID` as `/shared/logs/`. | `/shared/logs/domain1` | +| `managedServerNameBase` | Base string used to generate Managed Server names. | `managed-server` | +| `managedServerPort` | Port number for each Managed Server. | `8001` | +| `mode` | Whether to use the WDT model specified in `createDomainWdtModel` or the offline WLST script specified in `createDomainWlstScript` to create a WebLogic domain. Legal values are `wdt` or `wlst`. | `wdt` | +| `namespace` | Kubernetes Namespace in which to create the domain. | `default` | +| `persistentVolumeClaimName` | Name of the persistent volume claim. If not specified, the value is derived from the `domainUID` as `-weblogic-sample-pvc`. | `domain1-weblogic-sample-pvc` | +| `productionModeEnabled` | Boolean indicating if production mode is enabled for the domain. | `true` | +| `serverStartPolicy` | Determines which WebLogic Server instances will be started. Legal values are `NEVER`, `IF_NEEDED`, `ADMIN_ONLY`. | `IF_NEEDED` | +| `t3ChannelPort` | Port for the T3 channel of the network access point. | `30012` | +| `t3PublicAddress` | Public address for the T3 channel. This should be set to the public address of the Kubernetes cluster. This would typically be a load balancer address.

For development environments only, in a single server (all-in-one) Kubernetes Deployment, this may be set to the address of the master, or at the very least, it must be set to the address of one of the worker nodes. | If not provided, the script will attempt to set it to the IP address of the Kubernetes cluster. | +| `weblogicCredentialsSecretName` | Name of the Kubernetes Secret for the Administration Server user name and password. If not specified, then the value is derived from the `domainUID` as `-weblogic-credentials`. | `domain1-weblogic-credentials` | +| `serverPodCpuRequest`, `serverPodMemoryRequest`, `serverPodCpuCLimit`, `serverPodMemoryLimit` | The maximum amount of compute resources allowed, and minimum amount of compute resources required, for each server pod. Please refer to the Kubernetes documentation on `Managing Compute Resources for Containers` for details. | Resource requests and resource limits are not specified. | +| `rcuCredentialsSecret` | The Kubernetes Secret containing the database credentials. | `domain1-rcu-credentials` | +| `rcuDatabaseURL` | The database URL. | `database:1521/service` | +| `rcuSchemaPrefix` | The schema prefix to use in the database, for example `SOA1`. You may wish to make this the same as the domainUID in order to simplify matching domains to their RCU schemas. | `domain1` | +| `toolsDir` | The directory where WebLogic Deploy Tool and WebLogic Image Tool are installed. The script will install these tools to this directory if they are not already installed. | `/tmp/dhii-sample/tools` | +| `wdtVersion` | Version of the WebLogic Deploy Tool to be installed by the script. This can be a specific version, such as 1.9.10, or `LATEST`. | `LATEST` | +| `witVersion` | Version of the WebLogic Image Tool to be installed by the script. This can be a specific version, such as 1.9.10, or `LATEST`. | `LATEST` | + +Note that the names of the Kubernetes resources in the generated YAML files may be formed with the +value of some of the properties specified in the inputs YAML file. Those properties include +the `adminServerName`, `clusterName`, and `managedServerNameBase`. If those values contain any +characters that are invalid in a Kubernetes Service name, those characters are converted to +valid values in the generated YAML files. For example, an uppercase letter is converted to a +lowercase letter and an underscore `("_")` is converted to a hyphen `("-")`. + +The sample demonstrates how to create a FMW Infrastructure domain home and associated Kubernetes resources for a domain +that has one cluster only. In addition, the sample provides the capability for users to supply their own scripts +to create the domain home for other use cases. The generated domain resource YAML file could also be modified to cover more use cases. + +#### Verify the results + +The create script will verify that the domain was created, and will report failure if there was any error. +However, it may be desirable to manually verify the domain, even if just to gain familiarity with the +various Kubernetes objects that were created by the script. + +Note that the example results below use the `default` Kubernetes Namespace. If you are using a different +namespace, you need to replace `NAMESPACE` in the example `kubectl` commands with the actual Kubernetes Namespace. + +##### Generated YAML files with the default inputs + +The content of the generated `domain.yaml`: + +```yaml +# Copyright (c) 2017, 2021, Oracle and/or its affiliates. +# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. +# +# This is an example of how to define a Domain resource. +# +apiVersion: "weblogic.oracle/v8" +kind: Domain +metadata: + name: fmwdomain + namespace: default + labels: + weblogic.domainUID: fmwdomain +spec: + # The WebLogic Domain Home + domainHome: /u01/oracle/user_projects/domains/fmwdomain + + # The domain home source type + # Set to PersistentVolume for domain-in-pv, Image for domain-in-image, or FromModel for model-in-image + domainHomeSourceType: Image + + # The WebLogic Server image that the Operator uses to start the domain + image: "domain-home-in-image:12.2.1.4" + + # imagePullPolicy defaults to "Always" if image version is :latest + imagePullPolicy: "IfNotPresent" + + # Identify which Secret contains the credentials for pulling an image + #imagePullSecrets: + #- name: + + # Identify which Secret contains the WebLogic Admin credentials (note that there is an example of + # how to create that Secret at the end of this file) + webLogicCredentialsSecret: + name: fmwdomain-weblogic-credentials + + # Whether to include the server out file into the pod's stdout, default is true + includeServerOutInPodLog: true + + # Whether to enable log home + # logHomeEnabled: false + + # Whether to write HTTP access log file to log home + # httpAccessLogInLogHome: true + + # The in-pod location for domain log, server logs, server out, introspector out, and Node Manager log files + # logHome: /shared/logs/domain1 + # An (optional) in-pod location for data storage of default and custom file stores. + # If not specified or the value is either not set or empty (e.g. dataHome: "") then the + # data storage directories are determined from the WebLogic domain home configuration. + dataHome: "" + + # serverStartPolicy legal values are "NEVER", "IF_NEEDED", or "ADMIN_ONLY" + # This determines which WebLogic Servers the Operator will start up when it discovers this Domain + # - "NEVER" will not start any server in the domain + # - "ADMIN_ONLY" will start up only the administration server (no managed servers will be started) + # - "IF_NEEDED" will start all non-clustered servers, including the administration server and clustered servers up to the replica count + serverStartPolicy: "IF_NEEDED" + + serverPod: + # an (optional) list of environment variable to be set on the servers + env: + - name: JAVA_OPTIONS + value: "-Dweblogic.StdoutDebugEnabled=false" + - name: USER_MEM_ARGS + value: "-Djava.security.egd=file:/dev/./urandom -Xms256m -Xmx1024m " + # volumes: + # - name: weblogic-domain-storage-volume + # persistentVolumeClaim: + # claimName: weblogic-sample-pvc + # volumeMounts: + # - mountPath: /shared + # name: weblogic-domain-storage-volume + + # adminServer is used to configure the desired behavior for starting the administration server. + adminServer: + # serverStartState legal values are "RUNNING" or "ADMIN" + # "RUNNING" means the listed server will be started up to "RUNNING" mode + # "ADMIN" means the listed server will be start up to "ADMIN" mode + serverStartState: "RUNNING" + adminService: + channels: + # The Admin Server's NodePort + - channelName: default + nodePort: 30701 + # Uncomment to export the T3Channel as a service + # - channelName: T3Channel + serverPod: + # an (optional) list of environment variable to be set on the admin servers + env: + - name: USER_MEM_ARGS + value: "-Djava.security.egd=file:/dev/./urandom -Xms512m -Xmx1024m " + + # clusters is used to configure the desired behavior for starting member servers of a cluster. + # If you use this entry, then the rules will be applied to ALL servers that are members of the named clusters. + clusters: + - clusterName: cluster-1 + serverStartState: "RUNNING" + serverPod: + # Instructs Kubernetes scheduler to prefer nodes for new cluster members where there are not + # already members of the same cluster. + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 100 + podAffinityTerm: + labelSelector: + matchExpressions: + - key: "weblogic.clusterName" + operator: In + values: + - $(CLUSTER_NAME) + topologyKey: "kubernetes.io/hostname" + replicas: 1 + # The number of managed servers to start for unlisted clusters + # replicas: 1 + + # Istio + # configuration: + # istio: + # enabled: + # readinessPort: +``` + +#### Verify the domain + +To confirm that the domain was created, use this command: + +```shell +$ kubectl describe domain DOMAINUID -n NAMESPACE +``` + +Replace `DOMAINUID` with the `domainUID` and `NAMESPACE` with the actual namespace. + +Here is an example of the output of this command: + +``` +Name: fmwdomain +Namespace: default +Labels: weblogic.domainUID=fmwdomain +Annotations: kubectl.kubernetes.io/last-applied-configuration: + {"apiVersion":"weblogic.oracle/v8","kind":"Domain","metadata":{"annotations":{},"labels":{"weblogic.domainUID":"fmwdomain"},"name":"fmwdom... +API Version: weblogic.oracle/v8 +Kind: Domain +Metadata: + Creation Timestamp: 2021-05-11T17:13:56Z + Generation: 1 + Resource Version: 39039230 + Self Link: /apis/weblogic.oracle/v8/namespaces/default/domains/fmwdomain + UID: 447a6d1f-cb6f-4884-82bf-c7b3dd1f898d +Spec: + Admin Server: + Admin Service: + Channels: + Channel Name: default + Node Port: 30701 + Server Pod: + Env: + Name: USER_MEM_ARGS + Value: -Djava.security.egd=file:/dev/./urandom -Xms512m -Xmx1024m + Server Start State: RUNNING + Clusters: + Cluster Name: cluster-1 + Replicas: 1 + Server Pod: + Affinity: + Pod Anti Affinity: + Preferred During Scheduling Ignored During Execution: + Pod Affinity Term: + Label Selector: + Match Expressions: + Key: weblogic.clusterName + Operator: In + Values: + $(CLUSTER_NAME) + Topology Key: kubernetes.io/hostname + Weight: 100 + Server Start State: RUNNING + Data Home: + Domain Home: /u01/oracle/user_projects/domains/fmwdomain + Domain Home Source Type: Image + Image: domain-home-in-image:12.2.1.4 + Image Pull Policy: IfNotPresent + Include Server Out In Pod Log: true + Server Pod: + Env: + Name: JAVA_OPTIONS + Value: -Dweblogic.StdoutDebugEnabled=false + Name: USER_MEM_ARGS + Value: -Djava.security.egd=file:/dev/./urandom -Xms256m -Xmx1024m + Server Start Policy: IF_NEEDED + Web Logic Credentials Secret: + Name: fmwdomain-weblogic-credentials +Status: + Clusters: + Cluster Name: cluster-1 + Maximum Replicas: 3 + Minimum Replicas: 0 + Ready Replicas: 1 + Replicas: 1 + Replicas Goal: 1 + Conditions: + Last Transition Time: 2021-05-11T17:16:42.202063Z + Reason: ServersReady + Status: True + Type: Available + Introspect Job Failure Count: 0 + Replicas: 1 + Servers: + Desired State: RUNNING + Health: + Activation Time: 2021-05-11T17:15:43.355000Z + Overall Health: ok + Subsystems: + Subsystem Name: ServerRuntime + Symptoms: + Node Name: alai-1 + Server Name: admin-server + State: RUNNING + Cluster Name: cluster-1 + Desired State: RUNNING + Health: + Activation Time: 2021-05-11T17:16:36.586000Z + Overall Health: ok + Subsystems: + Subsystem Name: ServerRuntime + Symptoms: + Node Name: alai-1 + Server Name: managed-server1 + State: RUNNING + Cluster Name: cluster-1 + Desired State: SHUTDOWN + Server Name: managed-server2 + Cluster Name: cluster-1 + Desired State: SHUTDOWN + Server Name: managed-server3 + Start Time: 2021-05-11T17:13:56.329656Z +Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal DomainProcessingCompleted 59m Successfully completed processing domain resource fmwdomain +``` + +In the `Status` section of the output, the available servers and clusters are listed. +Note that if this command is issued very soon after the script finishes, there may be +no servers available yet, or perhaps only the Administration Server but no Managed Servers. +The operator will start up the Administration Server first and wait for it to become ready +before starting the Managed Servers. + +#### Verify the pods + +Use the following command to see the pods running the servers: + +```shell +$ kubectl get pods -n NAMESPACE +``` + +Here is an example of the output of this command: + +```shell +$ kubectl get pods +``` +``` +NAME READY STATUS RESTARTS AGE +fmwdomain-admin-server 1/1 Running 0 14m +fmwdomain-managed-server1 1/1 Running 0 12m +``` + +#### Verify the services + +Use the following command to see the services for the domain: + +```shell +$ kubectl get services -n NAMESPACE +``` + +Here is an example of the output of this command: +```shell +$ kubectl get services +``` +``` +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +fmwdomain-admin-server ClusterIP None 7001/TCP 15h +fmwdomain-admin-server-ext NodePort 10.101.26.42 7001:30731/TCP 15h +fmwdomain-cluster-cluster-1 ClusterIP 10.107.55.188 8001/TCP 15h +fmwdomain-managed-server1 ClusterIP None 8001/TCP 15h +``` + +#### Delete the domain + +The generated YAML file in the `//weblogic-domains/` directory can be used to delete the Kubernetes resource. Use the following command to delete the domain: + +```shell +$ kubectl delete -f domain.yaml +``` + +#### Delete the generated image. + +When no longer needed, delete the generated image. +If the image is in a local repository, use the following command to delete an image tagged with `domain-home-in-image:12.2.1.4`: + +```shell +$ docker rmi domain-home-in-image:12.2.1.4 +``` + +#### Delete the tools directory. + +When no longer needed, delete the directory where WebLogic Deploy Tool and WebLogic Image Tool are installed. +By default, they are installed under `/tmp/dhii-sample/tools` directory. + +```shell +$ rm -rf /tmp/dhii-sample/tools/ +``` diff --git a/documentation/3.2/content/samples/simple/domains/fmw-domain/_index.md b/documentation/3.2/content/samples/simple/domains/fmw-domain/_index.md index ad2d5e4fc02..4b2d8d91158 100644 --- a/documentation/3.2/content/samples/simple/domains/fmw-domain/_index.md +++ b/documentation/3.2/content/samples/simple/domains/fmw-domain/_index.md @@ -1,15 +1,15 @@ --- -title: "FMW Infrastructure domain" +title: "FMW Infrastructure domain on a PV" date: 2019-04-18T07:32:31-05:00 weight: 5 description: "Sample for creating an FMW Infrastructure domain home on an existing PV or -PVC, and the Domain YAML file for deploying the generated WebLogic domain." +PVC, and the domain resource YAML file for deploying the generated WebLogic domain." --- The sample scripts demonstrate the creation of an FMW Infrastructure domain home on an existing Kubernetes PersistentVolume (PV) and PersistentVolumeClaim (PVC). The scripts -also generate the domain YAML file, which can then be used to start the Kubernetes +also generate the domain resource YAML file, which can then be used to start the Kubernetes artifacts of the corresponding domain. Optionally, the scripts start up the domain, and WebLogic Server pods and services. @@ -19,8 +19,10 @@ Before you begin, read this document, [Domain resource]({{< relref "/userguide/m The following prerequisites must be met prior to running the create domain script: -* Make sure the WebLogic Server Kubernetes Operator is running. -* The operator requires FMW Infrastructure 12.2.1.3.0 with patch 29135930 applied or FMW Infrastructure 12.2.1.4.0. For details on how to obtain or create the image, refer to [FMW Infrastructure domains]({{< relref "/userguide/managing-domains/fmw-infra/_index.md#obtaining-the-fmw-infrastructure-docker-image" >}}). +* Make sure the WebLogic Kubernetes Operator is running. +* The operator requires an image with either FMW Infrastructure 12.2.1.3.0 with patch 29135930 applied or FMW Infrastructure 12.2.1.4.0. + For details on how to obtain or create the image, refer to + [FMW Infrastructure domains]({{< relref "/userguide/managing-fmw-domains/fmw-infra/#obtaining-the-fmw-infrastructure-image" >}}). * Create a Kubernetes Namespace for the domain unless you intend to use the default namespace. * In the same Kubernetes Namespace, create the Kubernetes PersistentVolume (PV) where the domain home will be hosted, and the Kubernetes PersistentVolumeClaim (PVC) for the domain. For samples @@ -32,12 +34,18 @@ The following prerequisites must be met prior to running the create domain scrip with an inputs file that has the `domainUID` set to `domain1`. * Create the Kubernetes Secrets `username` and `password` of the administrative account in the same Kubernetes namespace as the domain. -* Configure access to your database. For details, see [here]({{< relref "/userguide/managing-fmw-domains/fmw-infra/_index.md#configuring-access-to-your-database" >}}). -* Create a Kubernetes Secret with the RCU credentials. For details, refer to this [document](https://github.com/oracle/weblogic-kubernetes-operator/blob/main/kubernetes/samples/scripts/create-rcu-credentials/README.md). +* Unless you are creating a Restricted-JRF domain, you also need to: + * Configure access to your database. For details, see [here]({{< relref "/userguide/managing-fmw-domains/fmw-infra/_index.md#configuring-access-to-your-database" >}}). + * Create a Kubernetes Secret with the RCU credentials. For details, refer to this [document](https://github.com/oracle/weblogic-kubernetes-operator/blob/main/kubernetes/samples/scripts/create-rcu-credentials/README.md). #### Use the script to create a domain -Make a copy of the `create-domain-inputs.yaml` file, and run the create script, pointing it at +The sample for creating domains is in this directory: + +```shell +$ cd kubernetes/samples/scripts/create-fmw-infrastructure-domain/domain-home-on-pv +``` +Make a copy of the `create-domain-inputs.yaml` file, update it with the correct values, and run the create script, pointing it at your inputs file and an output directory: ```shell @@ -46,6 +54,9 @@ $ ./create-domain.sh \ -o / ``` +{{% notice note %}} The `create-domain.sh` script and its inputs file are for demonstration purposes _only_; its contents and the domain resource file that it generates for you might change without notice. In production, we strongly recommend that you use the WebLogic Image Tool and WebLogic Deploy Tooling (when applicable), and directly work with domain resource files instead. +{{% /notice%}} + The script will perform the following steps: * Create a directory for the generated Kubernetes YAML files for this domain if it does not @@ -54,7 +65,7 @@ The script will perform the following steps: * Create a Kubernetes Job that will start up a utility FMW Infrastructure container and run offline WLST scripts to create the domain on the shared storage. * Run and wait for the job to finish. -* Create a Kubernetes domain YAML file, `domain.yaml`, in the directory that is created above. +* Create a Kubernetes domain resource YAML file, `domain.yaml`, in the directory that is created above. This YAML file can be used to create the Kubernetes resource using the `kubectl create -f` or `kubectl apply -f` command: @@ -116,8 +127,9 @@ The following parameters can be provided in the inputs file. | `domainUID` | Unique ID that will be used to identify this particular domain. Used as the name of the generated WebLogic domain as well as the name of the Domain. This ID must be unique across all domains in a Kubernetes cluster. This ID cannot contain any character that is not valid in a Kubernetes Service name. | `domain1` | | `exposeAdminNodePort` | Boolean indicating if the Administration Server is exposed outside of the Kubernetes cluster. | `false` | | `exposeAdminT3Channel` | Boolean indicating if the T3 administrative channel is exposed outside the Kubernetes cluster. | `false` | +| `fmwDomainType` | FMW Infrastructure Domain Type. Legal values are `JRF` or `RestrictedJRF`. | `JRF` | | `httpAccessLogInLogHome` | Boolean indicating if server HTTP access log files should be written to the same directory as `logHome`. Otherwise, server HTTP access log files will be written to the directory specified in the WebLogic domain home configuration. | `true` | -| `image` | WebLogic Server image. The operator requires FMW Infrastructure 12.2.1.3.0 with patch 29135930 applied or FMW Infrastructure 12.2.1.4.0. For details on how to obtain or create the image, see [FMW Infrastructure domains]({{< relref "/userguide/managing-fmw-domains/fmw-infra/_index.md#obtaining-the-fmw-infrastructure-docker-image" >}}). | `container-registry.oracle.com/middleware/fmw-infrastructure:12.2.1.4` | +| `image` | FMW Infrastructure image. The operator requires FMW Infrastructure 12.2.1.3.0 with patch 29135930 applied or FMW Infrastructure 12.2.1.4.0. For details on how to obtain or create the image, see [FMW Infrastructure domains]({{< relref "/userguide/managing-fmw-domains/fmw-infra/#obtaining-the-fmw-infrastructure-image" >}}). | `container-registry.oracle.com/middleware/fmw-infrastructure:12.2.1.4` | | `imagePullPolicy` | WebLogic Server image pull policy. Legal values are `IfNotPresent`, `Always`, or `Never`. | `IfNotPresent` | | `imagePullSecretName` | Name of the Kubernetes Secret to access the container registry to pull the WebLogic Server image. The presence of the secret will be validated when this parameter is specified. | | | `includeServerOutInPodLog` | Boolean indicating whether to include the server `.out` in the pod's `stdout`. | `true` | @@ -140,14 +152,14 @@ The following parameters can be provided in the inputs file. Note that the names of the Kubernetes resources in the generated YAML files may be formed with the value of some of the properties specified in the `create-inputs.yaml` file. Those properties include -the `adminServerName`, `clusterName` and `managedServerNameBase`. If those values contain any +the `adminServerName`, `clusterName`, and `managedServerNameBase`. If those values contain any characters that are invalid in a Kubernetes Service name, those characters are converted to valid values in the generated YAML files. For example, an uppercase letter is converted to a lowercase letter and an underscore `("_")` is converted to a hyphen `("-")`. The sample demonstrates how to create a WebLogic domain home and associated Kubernetes resources for a domain that has one cluster only. In addition, the sample provides the capability for users to supply their own scripts -to create the domain home for other use cases. The generated domain YAML file could also be modified to cover more use cases. +to create the domain home for other use cases. The generated domain resource YAML file could also be modified to cover more use cases. #### Verify the results diff --git a/documentation/3.2/content/samples/simple/domains/model-in-image/_index.md b/documentation/3.2/content/samples/simple/domains/model-in-image/_index.md index d048e172da6..d4afccb4d19 100644 --- a/documentation/3.2/content/samples/simple/domains/model-in-image/_index.md +++ b/documentation/3.2/content/samples/simple/domains/model-in-image/_index.md @@ -146,5 +146,5 @@ For more information, see the [Cannot pull image FAQ]({{}}) user documentation - - [Oracle WebLogic Server Deploy Tooling](https://oracle.github.io/weblogic-deploy-tooling/) - - [Oracle WebLogic Image Tool](https://oracle.github.io/weblogic-image-tool/) + - [WebLogic Deploy Tooling](https://oracle.github.io/weblogic-deploy-tooling/) + - [WebLogic Image Tool](https://oracle.github.io/weblogic-image-tool/) diff --git a/documentation/3.2/content/samples/simple/domains/model-in-image/prerequisites.md b/documentation/3.2/content/samples/simple/domains/model-in-image/prerequisites.md index 5e8baea0be9..d03f0452f05 100644 --- a/documentation/3.2/content/samples/simple/domains/model-in-image/prerequisites.md +++ b/documentation/3.2/content/samples/simple/domains/model-in-image/prerequisites.md @@ -23,7 +23,7 @@ weight: 1 $ cd /tmp ``` ```shell - $ git clone --branch v3.2.2 https://github.com/oracle/weblogic-kubernetes-operator.git + $ git clone --branch v3.2.3 https://github.com/oracle/weblogic-kubernetes-operator.git ``` > **Note**: We will refer to the top directory of the operator source tree as `/tmp/weblogic-kubernetes-operator`; however, you can use a different location. @@ -44,7 +44,6 @@ weight: 1 {{< rawhtml >}} {{< /rawhtml >}} - 1. Make sure an operator is set up to manage namespace `sample-domain1-ns`. Also, make sure a Traefik ingress controller is managing the same namespace and listening on port 30305. For example, follow the same steps as the [Quick Start](https://oracle.github.io/weblogic-kubernetes-operator/quickstart/) guide up through the [Prepare for a domain]({{< relref "/quickstart/prepare.md" >}}) step. diff --git a/documentation/3.2/content/samples/simple/elastic-stack/weblogic-domain/_index.md b/documentation/3.2/content/samples/simple/elastic-stack/weblogic-domain/_index.md index 528e0fa34e2..ab63ed77d42 100644 --- a/documentation/3.2/content/samples/simple/elastic-stack/weblogic-domain/_index.md +++ b/documentation/3.2/content/samples/simple/elastic-stack/weblogic-domain/_index.md @@ -11,10 +11,10 @@ This document describes to how to configure a WebLogic domain to use Fluentd to Here's the general mechanism for how this works: -* `fluentd` runs as a separate container in the Administration Server and Managed Server pods -* The log files reside on a volume that is shared between the `weblogic-server` and `fluentd` containers -* `fluentd` tails the domain logs files and exports them to Elasticsearch -* A `ConfigMap` contains the filter and format rules for exporting log records +* `fluentd` runs as a separate container in the Administration Server and Managed Server pods. +* The log files reside on a volume that is shared between the `weblogic-server` and `fluentd` containers. +* `fluentd` tails the domain logs files and exports them to Elasticsearch. +* A `ConfigMap` contains the filter and format rules for exporting log records. ##### Sample code @@ -37,8 +37,8 @@ The sample Elasticsearch configuration is: #### Configure log files to use a volume The domain log files must be written to a volume that can be shared between the `weblogic-server` and `fluentd` containers. The following elements are required to accomplish this: -* `logHome` must be a path that can be shared between containers -* `logHomeEnabled` must be set to `true` so that the logs will be written outside the pod and persist across pod restarts +* `logHome` must be a path that can be shared between containers. +* `logHomeEnabled` must be set to `true` so that the logs will be written outside the pod and persist across pod restarts. * A `volume` must be defined on which the log files will reside. In the example, `emptyDir` is a volume that gets created empty when a pod is created. It will persist across pod restarts but deleting the pod would delete the `emptyDir` content. * The `volumeMounts` mounts the named volume created with `emptyDir` and establishes the base path for accessing the volume. @@ -75,11 +75,11 @@ Create a `ConfigMap` named `fluentd-config` in the namespace of the domain. The Here's an explanation of some elements defined in the `ConfigMap`: -* The `@type tail` indicates that `tail` will be used to obtain updates to the log file -* The `path` of the log file is obtained from the `LOG_PATH` environment variable that is defined in the `fluentd` container -* The `tag` value of log records is obtained from the `DOMAIN_UID` environment variable that is defined in the `fluentd` container -* The `` section defines how to interpret and tag each element of a log record -* The `` section contains the configuration information for connecting to Elasticsearch and defines the index name of each record to be the `domainUID` +* The `@type tail` indicates that `tail` will be used to obtain updates to the log file. +* The `path` of the log file is obtained from the `LOG_PATH` environment variable that is defined in the `fluentd` container. +* The `tag` value of log records is obtained from the `DOMAIN_UID` environment variable that is defined in the `fluentd` container. +* The `` section defines how to interpret and tag each element of a log record. +* The `` section contains the configuration information for connecting to Elasticsearch and defines the index name of each record to be the `domainUID`. The following is an example of how to create the `ConfigMap`: ```shell @@ -165,9 +165,9 @@ Add a container to the domain that will run `fluentd` in the Administration Serv Notice the container definition: -* Defines a `LOG_PATH` environment variable that points to the log location of `bobbys-front-end` -* Defines `ELASTICSEARCH_HOST`, `ELASTICSEARCH_PORT`, `ELASTICSEARCH_USER`, and `ELASTICSEARCH_PASSWORD` environment variables that are all retrieving their values from the secret `bobs-bookstore-weblogic-credentials` -* Has volume mounts for the `fluentd-config` `ConfigMap` and the volume containing the domain logs +* Defines a `LOG_PATH` environment variable that points to the log location of `bobbys-front-end`. +* Defines `ELASTICSEARCH_HOST`, `ELASTICSEARCH_PORT`, `ELASTICSEARCH_USER`, and `ELASTICSEARCH_PASSWORD` environment variables that are all retrieving their values from the secret `bobs-bookstore-weblogic-credentials`. +* Has volume mounts for the `fluentd-config` `ConfigMap` and the volume containing the domain logs. **NOTE**: For brevity, only the paths to the relevant configuration being added is shown. A complete example of a domain definition is at the end of this document. diff --git a/documentation/3.2/content/samples/simple/ingress/_index.md b/documentation/3.2/content/samples/simple/ingress/_index.md index 928a33b889f..e026f7d7650 100644 --- a/documentation/3.2/content/samples/simple/ingress/_index.md +++ b/documentation/3.2/content/samples/simple/ingress/_index.md @@ -6,7 +6,7 @@ description: "Ingress controllers and load balancer sample scripts." --- -The Oracle WebLogic Server Kubernetes Operator supports NGINX, Traefik, Voyager, and Apache. We provide samples that demonstrate how to install and configure each one. +The WebLogic Kubernetes Operator supports NGINX, Traefik, Voyager, and Apache. We provide samples that demonstrate how to install and configure each one. {{% notice note %}} For production environments, we recommend NGINX, Voyager, Traefik (2.2.1 or later) ingress controllers, Apache, or the load balancer provided by your cloud provider. diff --git a/documentation/3.2/content/samples/simple/tanzu-kubernetes-service/_index.md b/documentation/3.2/content/samples/simple/tanzu-kubernetes-service/_index.md index 850808526f2..8d9c5a0ab4a 100644 --- a/documentation/3.2/content/samples/simple/tanzu-kubernetes-service/_index.md +++ b/documentation/3.2/content/samples/simple/tanzu-kubernetes-service/_index.md @@ -6,7 +6,7 @@ description: "Sample for using the operator to set up a WLS cluster on the Tanzu --- -This sample demonstrates how to use the Oracle [WebLogic Server Kubernetes Operator](/weblogic-kubernetes-operator/) (hereafter “the operator”) to set up a WebLogic Server (WLS) cluster on the Tanzu Kubernetes Grid (TKG). +This sample demonstrates how to use the [WebLogic Kubernetes Operator](/weblogic-kubernetes-operator/) (hereafter “the operator”) to set up a WebLogic Server (WLS) cluster on the Tanzu Kubernetes Grid (TKG). After performing the sample steps, your WLS domain with a Model in Image domain source type runs on a TKG Kubernetes cluster instance. After the domain has been provisioned, you can monitor it using the WebLogic Server Administration console. TKG is a managed Kubernetes Service that lets you quickly deploy and manage Kubernetes clusters. To learn more, see the [Tanzu Kubernetes Grid (TKG)](https://docs.vmware.com/en/VMware-Tanzu-Kubernetes-Grid/1.2/vmware-tanzu-kubernetes-grid-12/GUID-index.html) overview page. @@ -16,7 +16,7 @@ TKG is a managed Kubernetes Service that lets you quickly deploy and manage Kube - [Prerequisites](#prerequisites) - [Create a Tanzu Kubernetes cluster](#create-a-tanzu-kubernetes-cluster) - [Oracle Container Registry](#oracle-container-registry) - - [Install WebLogic Server Kubernetes Operator](#install-weblogic-server-kubernetes-operator) + - [Install WebLogic Kubernetes Operator](#install-weblogic-kubernetes-operator) - [Create an image](#create-an-image) - [Create WebLogic domain](#create-weblogic-domain) - [Invoke the web application](#invoke-the-web-application) @@ -25,7 +25,7 @@ TKG is a managed Kubernetes Service that lets you quickly deploy and manage Kube This sample assumes the following prerequisite environment setup: -* WebLogic Server Kubernetes Operator: This document was tested with version v3.1.0. +* WebLogic Kubernetes Operator: This document was tested with version v3.1.0. * Operating System: GNU/Linux. * [Git](https://git-scm.com/downloads); use `git --version` to test if `git` works. This document was tested with version 2.17.1. * TKG CLI; use `tkg version` to test if TKG works. This document was tested with version v1.1.3. @@ -52,18 +52,18 @@ k8s-cluster-101-md-0-577b7dc766-p2gkz Ready 2d20h v1.18.6+vmwa You will need an Oracle Container Registry account. The following steps will direct you to accept the Oracle Standard Terms and Restrictions to pull the WebLogic Server images. Make note of your Oracle Account password and email. This sample pertains to 12.2.1.4, but other versions may work as well. -#### Install WebLogic Server Kubernetes Operator +#### Install WebLogic Kubernetes Operator -The Oracle WebLogic Server Kubernetes Operator is an adapter to integrate WebLogic Server and Kubernetes, allowing Kubernetes to serve as a container infrastructure hosting WLS instances. +The WebLogic Kubernetes Operator is an adapter to integrate WebLogic Server and Kubernetes, allowing Kubernetes to serve as a container infrastructure hosting WLS instances. The operator runs as a Kubernetes Pod and stands ready to perform actions related to running WLS on Kubernetes. -Clone the Oracle WebLogic Server Kubernetes Operator repository to your machine. We will use several scripts in this repository to create a WebLogic domain. +Clone the WebLogic Kubernetes Operator repository to your machine. We will use several scripts in this repository to create a WebLogic domain. Kubernetes Operators use [Helm](https://helm.sh/) to manage Kubernetes applications. The operator’s Helm chart is located in the `kubernetes/charts/weblogic-operator` directory. Install the operator by running the following commands. Clone the repository. ```shell -$ git clone --branch v3.2.2 https://github.com/oracle/weblogic-kubernetes-operator.git +$ git clone --branch v3.2.3 https://github.com/oracle/weblogic-kubernetes-operator.git ``` ```shell $ cd weblogic-kubernetes-operator diff --git a/documentation/3.2/content/security/openshift.md b/documentation/3.2/content/security/openshift.md index 852f92fe060..5724ce07275 100644 --- a/documentation/3.2/content/security/openshift.md +++ b/documentation/3.2/content/security/openshift.md @@ -7,7 +7,7 @@ description: "OpenShift information for the operator" #### Security requirements to run WebLogic in OpenShift -WebLogic Server Kubernetes Operator images starting with version 3.1 and +WebLogic Kubernetes Operator images starting with version 3.1 and WebLogic Server images obtained from Oracle Container Registry after August 2020 have an `oracle` user with UID 1000 with the default group set to `root`. @@ -103,7 +103,7 @@ using the following command: $ oc create -f uid1000.yaml ``` -After you have created the security context constraint, you can install the WebLogic Server Kubernetes Operator. +After you have created the security context constraint, you can install the WebLogic Kubernetes Operator. Make sure you use the same service account to which you granted permission in the security context constraint (`weblogic-operator` in the preceding example). The operator will then run with UID 1000, and any WebLogic domain it creates will also run with UID 1000. diff --git a/documentation/3.2/content/security/rbac.md b/documentation/3.2/content/security/rbac.md index 3fa325e404d..939a0183eec 100644 --- a/documentation/3.2/content/security/rbac.md +++ b/documentation/3.2/content/security/rbac.md @@ -65,7 +65,7 @@ $ kubectl -n weblogic-operator-ns \ ``` ```shell $ kubectl -n domain1-ns \ - describe rolebinding weblogic-operator-rolebinding-namespace \ + describe rolebinding weblogic-operator-rolebinding-namespace ``` ##### Kubernetes Role and RoleBinding naming conventions diff --git a/documentation/3.2/content/security/service-accounts.md b/documentation/3.2/content/security/service-accounts.md index 3c8062a0f7b..291075abe87 100644 --- a/documentation/3.2/content/security/service-accounts.md +++ b/documentation/3.2/content/security/service-accounts.md @@ -6,7 +6,7 @@ description: "Kubernetes ServiceAccounts for the operator" --- -#### WebLogic Server Kubernetes Operator ServiceAccounts +#### WebLogic Kubernetes Operator ServiceAccounts When the operator is installed, the Helm chart property, `serviceAccount`, can be specified where the value contains the name of the Kubernetes `ServiceAccount` diff --git a/documentation/3.2/content/userguide/base-images/_index.md b/documentation/3.2/content/userguide/base-images/_index.md index 9cfa5ad744c..0c86cae1505 100644 --- a/documentation/3.2/content/userguide/base-images/_index.md +++ b/documentation/3.2/content/userguide/base-images/_index.md @@ -90,7 +90,7 @@ Additional information about using this image is available in the Oracle Contain #### Create a custom image with patches applied -The Oracle WebLogic Server Kubernetes Operator and WebLogic Server 12.2.1.3.0 image requires patch 29135930. +The WebLogic Kubernetes Operator and WebLogic Server 12.2.1.3.0 image requires patch 29135930. This patch has some prerequisite patches that will also need to be applied. The WebLogic Server 12.2.1.4.0 image does not require any patches. To create and customize the WebLogic Server image, and apply the required patches, use the [WebLogic Image Tool](https://oracle.github.io/weblogic-image-tool/). diff --git a/documentation/3.2/content/userguide/cicd/layering.md b/documentation/3.2/content/userguide/cicd/layering.md index 5d31035e062..4b80497aada 100644 --- a/documentation/3.2/content/userguide/cicd/layering.md +++ b/documentation/3.2/content/userguide/cicd/layering.md @@ -3,7 +3,7 @@ title: "Container image layering" date: 2019-04-11T13:15:32-04:00 weight: 1 draft: false -description: "Learn about Container image layering and why it is important." +description: "Learn about container image layering and why it is important." --- diff --git a/documentation/3.2/content/userguide/cicd/tools.md b/documentation/3.2/content/userguide/cicd/tools.md index df8d6187f47..c24da983249 100644 --- a/documentation/3.2/content/userguide/cicd/tools.md +++ b/documentation/3.2/content/userguide/cicd/tools.md @@ -45,7 +45,7 @@ Other than the tools themselves, there are three components to the WDT tools: - (Docker) A sample for creating a domain in a container image with WDT can be found [here](https://github.com/oracle/weblogic-deploy-tooling/tree/master/samples/docker-domain). - (Kubernetes) A similar sample of creating a domain in an image with WDT - can be found in the WebLogic Server Kubernetes Operator project for creating a + can be found in the WebLogic Kubernetes Operator project for creating a [domain-in-image with WDT](https://oracle.github.io/weblogic-kubernetes-operator/samples/simple/domains/domain-home-in-image/). - (Kubernetes) A [Model in Image sample]({{< relref "/samples/simple/domains/model-in-image/_index.md" >}}) for supplying an image that contains a WDT model only, diff --git a/documentation/3.2/content/userguide/introduction/architecture.md b/documentation/3.2/content/userguide/introduction/architecture.md index 4fd523741a6..236db8b4efe 100644 --- a/documentation/3.2/content/userguide/introduction/architecture.md +++ b/documentation/3.2/content/userguide/introduction/architecture.md @@ -17,7 +17,7 @@ The operator consists of the following parts: The operator is packaged in a [container image](https://github.com/orgs/oracle/packages/container/package/weblogic-kubernetes-operator) which you can access using the following `docker pull` commands: ```shell -$ docker pull ghcr.io/oracle/weblogic-kubernetes-operator:3.2.2 +$ docker pull ghcr.io/oracle/weblogic-kubernetes-operator:3.2.3 ``` For more details on acquiring the operator image and prerequisites for installing the operator, consult the [Quick Start guide]({{< relref "/quickstart/_index.md" >}}). diff --git a/documentation/3.2/content/userguide/introduction/demo.md b/documentation/3.2/content/userguide/introduction/demo.md index 3ea96869805..9758df6ffd9 100644 --- a/documentation/3.2/content/userguide/introduction/demo.md +++ b/documentation/3.2/content/userguide/introduction/demo.md @@ -3,9 +3,9 @@ title: "Demo" date: 2019-02-23T20:51:59-05:00 draft: false weight: 2 -description: "Watch a video demonstration of the WebLogic Server Kubernetes Operator." +description: "Watch a video demonstration of the WebLogic Kubernetes Operator." --- -This video provides a demonstration of the WebLogic Server Kubernetes Operator. +This video provides a demonstration of the WebLogic Kubernetes Operator. -{{< youtube yVdr4GmpxqY >}}This video provides a demonstration of the WebLogic Server Kubernetes Operator. +{{< youtube yVdr4GmpxqY >}}This video provides a demonstration of the WebLogic Kubernetes Operator. diff --git a/documentation/3.2/content/userguide/introduction/design.md b/documentation/3.2/content/userguide/introduction/design.md index 0a3ba72b0c7..b9757a7c328 100644 --- a/documentation/3.2/content/userguide/introduction/design.md +++ b/documentation/3.2/content/userguide/introduction/design.md @@ -3,10 +3,10 @@ title: "Design philosophy" date: 2019-02-23T20:51:51-05:00 draft: false weight: 4 -description: "The Oracle WebLogic Server Kubernetes Operator (the “operator”) is designed to fulfill a similar role to that which a human operator would fill in a traditional data center deployment. It contains a set of useful built-in knowledge about how to perform various life cycle operations on a domain correctly." +description: "The WebLogic Kubernetes Operator (the “operator”) is designed to fulfill a similar role to that which a human operator would fill in a traditional data center deployment. It contains a set of useful built-in knowledge about how to perform various life cycle operations on a domain correctly." --- -The Oracle WebLogic Server Kubernetes Operator (the “operator”) is designed to fulfill a similar role to that which a human operator would fill in a traditional data center deployment. It contains a set of useful built-in knowledge about how to perform various life cycle operations on a domain correctly. +The WebLogic Kubernetes Operator (the “operator”) is designed to fulfill a similar role to that which a human operator would fill in a traditional data center deployment. It contains a set of useful built-in knowledge about how to perform various life cycle operations on a domain correctly. Human operators are typically responsible for starting and stopping environments, performing scaling operations, performing manual tasks associated with disaster recovery and high availability needs and coordinating actions with other operators in other data centers. It is envisaged that the operator will have similar responsibilities in a Kubernetes environment. @@ -16,7 +16,7 @@ Human operators may manage more than one domain, and the operator is also design Like a human operator, the operator is designed to be event-based. It waits for a significant event to occur, or for a scheduled time to perform some action, and then takes the appropriate action. Examples of significant events include being made aware of a new domain that needs to be managed, receiving a request to scale up a WebLogic cluster, or applying a WebLogic Server patch or an application while preserving cluster availability. -There are some operator tasks, such as initiating backups, that are presently not implemented by the Oracle WebLogic Server Kubernetes Operator. We welcome any feedback or requirements as this helps us to properly create our roadmap. +There are some operator tasks, such as initiating backups, that are presently not implemented by the WebLogic Kubernetes Operator. We welcome any feedback or requirements as this helps us to properly create our roadmap. The operator is designed with security in mind from the outset. Some examples of the specific security practices we follow are: diff --git a/documentation/3.2/content/userguide/introduction/introduction.md b/documentation/3.2/content/userguide/introduction/introduction.md index 496a5dbc004..242fb7a52bd 100644 --- a/documentation/3.2/content/userguide/introduction/introduction.md +++ b/documentation/3.2/content/userguide/introduction/introduction.md @@ -6,7 +6,7 @@ description: "Review the operator prerequisites and supported environments." --- An operator is an application-specific controller that extends Kubernetes to create, configure, and manage instances -of complex applications. The Oracle WebLogic Server Kubernetes Operator follows the standard Kubernetes operator pattern, and +of complex applications. The WebLogic Kubernetes Operator follows the standard Kubernetes operator pattern, and simplifies the management and operation of WebLogic domains and deployments. You can have one or more operators in your Kubernetes cluster that manage one or more WebLogic domains each. @@ -16,7 +16,7 @@ Detailed instructions are available [here]({{< relref "/userguide/managing-opera ### Operator prerequisites -For the current production release 3.2.2: +For the current production release 3.2.3: * Kubernetes 1.16.15+, 1.17.13+, 1.18.10+, and 1.19.7+ (check with `kubectl version`). * Flannel networking v0.9.1-amd64 or later (check with `docker images | grep flannel`), Calico networking v3.16.1 or later, @@ -51,7 +51,7 @@ Container Services for use with Kubernetes* on OCI Compute, and on "Authorized C ### Microsoft Azure Kubernetes Service -[Azure Kubernetes Service (AKS)](https://docs.microsoft.com/en-us/azure/aks/) is a hosted Kubernetes environment. The WebLogic Server Kubernetes +[Azure Kubernetes Service (AKS)](https://docs.microsoft.com/en-us/azure/aks/) is a hosted Kubernetes environment. The WebLogic Kubernetes Operator, Oracle WebLogic Sever 12c, and Oracle Fusion Middleware Infrastructure 12c are fully supported and certified on Azure Kubernetes Service (as per the documents referenced above). @@ -67,7 +67,7 @@ AKS support and limitations: ### VMware Tanzu Kubernetes Service -Tanzu Kubernetes Grid (TKG) is a managed Kubernetes Service that lets you quickly deploy and manage Kubernetes clusters. The WebLogic Server Kubernetes +Tanzu Kubernetes Grid (TKG) is a managed Kubernetes Service that lets you quickly deploy and manage Kubernetes clusters. The WebLogic Kubernetes Operator and Oracle WebLogic Sever are fully supported and certified on VMware Tanzu Kubernetes Grid Multicloud 1.1.3 (with vSphere 6.7U3). TKG support and limitations: @@ -82,7 +82,7 @@ TKG support and limitations: [Oracle Linux Cloud Native Environment](https://docs.oracle.com/en/operating-systems/olcne/) is a fully integrated suite for the development and management of cloud-native applications. Based on Open Container Initiative (OCI) and Cloud Native Computing Foundation (CNCF) standards, Oracle Linux Cloud Native Environment delivers a simplified framework for installations, updates, upgrades, and configuration of key features for orchestrating microservices. -WebLogic Server and the WebLogic Server Kubernetes Operator are certified and supported on Oracle Linux Cloud Native Environment. Operator 2.6.0 provides certified support of OLCNE 1.1 with Kubernetes 1.17.0. +WebLogic Server and the WebLogic Kubernetes Operator are certified and supported on Oracle Linux Cloud Native Environment. Operator 2.6.0 provides certified support of OLCNE 1.1 with Kubernetes 1.17.0. ### OpenShift diff --git a/documentation/3.2/content/userguide/istio/istio.md b/documentation/3.2/content/userguide/istio/istio.md index 361ecc8dd6b..085ca278cc1 100644 --- a/documentation/3.2/content/userguide/istio/istio.md +++ b/documentation/3.2/content/userguide/istio/istio.md @@ -6,7 +6,7 @@ weight: 6 #### Overview -WebLogic Server Kubernetes Operator version 2.6 and later, includes support for Istio 1.4.2 and later. +WebLogic Kubernetes Operator version 2.6 and later, includes support for Istio 1.4.2 and later. This support lets you run the operator, and WebLogic domains managed by the operator, with Istio sidecar injection enabled. You can use Istio gateways and virtual services to access applications deployed in these domains. @@ -21,7 +21,7 @@ The current support for Istio has these limitations: * It is tested with Istio 1.4.2 and later (up to 1.7.x); it is tested with both single and multicluster installations of Istio. - **NOTE**: The WebLogic Server Kubernetes Operator creates Kubernetes headless Services for the domain; Istio 1.6.x does not work with headless Services. See [Headless service broken in 1.6.0](https://github.com/istio/istio/issues/24082). Instead, use Istio version 1.7 and higher. + **NOTE**: The WebLogic Kubernetes Operator creates Kubernetes headless Services for the domain; Istio 1.6.x does not work with headless Services. See [Headless service broken in 1.6.0](https://github.com/istio/istio/issues/24082). Instead, use Istio version 1.7 and higher. * You cannot expose any of the default channels; any attempt will result in an error when deploying the domain. * If the `istio-ingressgateway` service in your environment does not have an `EXTERNAL-IP` defined, diff --git a/documentation/3.2/content/userguide/managing-domains/_index.md b/documentation/3.2/content/userguide/managing-domains/_index.md index 5108b012f75..e6c04ad80ee 100644 --- a/documentation/3.2/content/userguide/managing-domains/_index.md +++ b/documentation/3.2/content/userguide/managing-domains/_index.md @@ -109,7 +109,7 @@ When a domain resource or WebLogic domain configuration violates the limits, the ### Creating and managing WebLogic domains You can locate a WebLogic domain either in a persistent volume (PV) or in an image. -For examples of each, see the [WebLogic Server Kubernetes Operator samples]({{< relref "/samples/simple/domains/_index.md" >}}). +For examples of each, see the [WebLogic Kubernetes Operator samples]({{< relref "/samples/simple/domains/_index.md" >}}). If you want to create your own container images, for example, to choose a specific set of patches or to create a domain with a specific configuration or applications deployed, then you can create the domain custom resource diff --git a/documentation/3.2/content/userguide/managing-domains/accessing-the-domain/admin-console.md b/documentation/3.2/content/userguide/managing-domains/accessing-the-domain/admin-console.md index 438e9fc4460..57cb41473c1 100644 --- a/documentation/3.2/content/userguide/managing-domains/accessing-the-domain/admin-console.md +++ b/documentation/3.2/content/userguide/managing-domains/accessing-the-domain/admin-console.md @@ -3,14 +3,14 @@ title: "Use the Remote Console" date: 2019-02-23T17:39:15-05:00 draft: false weight: 2 -description: "Use the Oracle WebLogic Server Remote Console to manage a domain running in Kubernetes." +description: "Use the WebLogic Remote Console to manage a domain running in Kubernetes." --- -The Oracle WebLogic Server Remote Console is a lightweight, open source console that does not need to be collocated with a WebLogic Server domain. -You can install and run the Remote Console anywhere. For an introduction, read the blog, ["The NEW WebLogic Server Remote Console"](https://blogs.oracle.com/weblogicserver/new-weblogic-server-remote-console). -For detailed documentation, see the [Oracle WebLogic Server Remote Console](https://github.com/oracle/weblogic-remote-console) GitHub project. +The WebLogic Remote Console is a lightweight, open source console that does not need to be collocated with a WebLogic Server domain. +You can install and run the Remote Console anywhere. For an introduction, read the blog, ["The NEW WebLogic Remote Console"](https://blogs.oracle.com/weblogicserver/new-weblogic-server-remote-console). +For detailed documentation, see the [WebLogic Remote Console](https://github.com/oracle/weblogic-remote-console) GitHub project. -A major benefit of using the Remote Console is that it runs in your browser and can be used to connect to different WebLogic Server instances. +A major benefit of using the Remote Console is that it runs in your browser or a desktop application, and can be used to connect to different WebLogic Server instances. You can use the Remote Console with WebLogic Server _slim_ installers, available on the [OTN](https://www.oracle.com/middleware/technologies/weblogic-server-installers-downloads.html) or [OSDC](https://edelivery.oracle.com/osdc/faces/Home.jspx;jsessionid=LchBX6sgzwv5MwSaamMxrIIk-etWJLb0IyCet9mcnqAYnINXvWzi!-1201085350). Slim installers reduce the size of WebLogic Server downloads, installations, container images, and Kubernetes pods. @@ -18,7 +18,7 @@ For example, a WebLogic Server 12.2.1.4 slim installer download is approximately The Remote Console is deployed as a standalone Java program, which can connect to multiple WebLogic Server Administration Servers using REST APIs. -You connect to the Remote Console using a web browser and, when prompted, supply the WebLogic Server login credentials +You connect to the Remote Console and, when prompted, supply the WebLogic Server login credentials along with the URL of the WebLogic Server Administration Server's administration port to which you want to connect. **Note**: An Administration Server administration port typically is the same as its default port unless either an SSL port or an administration port is configured and enabled. diff --git a/documentation/3.2/content/userguide/managing-domains/domain-events.md b/documentation/3.2/content/userguide/managing-domains/domain-events.md index 6429b90e213..18126180049 100644 --- a/documentation/3.2/content/userguide/managing-domains/domain-events.md +++ b/documentation/3.2/content/userguide/managing-domains/domain-events.md @@ -27,9 +27,22 @@ The operator generates these event types in a domain namespace, which indicate t * `DomainDeleted`: An existing domain has been deleted. * `DomainProcessingStarting`: The operator has started to process a new domain or to update an existing domain. This event may be a result of a `DomainCreate`, `DomainChanged`, or `DomainDeleted` event, or a result of a retry after a failed attempt. * `DomainProcessingFailed`: The operator has encountered a problem while it was processing the domain resource. The failure either could be a configuration error or a Kubernetes API error. - * `DomainProcessingRetrying`: The operator is going to retry the processing of a domain after it encountered an failure. + * `DomainProcessingRetrying`: The operator is going to retry the processing of a domain after it encountered a failure. * `DomainProcessingCompleted`: The operator successfully completed the processing of a domain resource. * `DomainProcessingAborted`: The operator stopped processing a domain when the operator encountered a fatal error or a failure that persisted after the specified maximum number of retries. + * `DomainRollStarting`: The operator has detected domain resource or Model in Image model + updates that require it to perform a rolling restart of the domain. + If the domain roll is due to a change to domain resource fields + `image`, `imagePullPolicy`, `livenessProbe`, `readinessProbe`, `restartVersion`, + `domainHome`, `includeServerOutInPodLog`, or `logHome`, then + the event message reports the field name plus its old and new values. + If the domain roll is due to other domain resource changes that cause servers to be restarted + (see [full list of fields that cause servers to be restarted]({{< relref "/userguide/managing-domains/domain-lifecycle/startup#fields-that-cause-servers-to-be-restarted" >}})), + then the event message simply reports that the domain resource has changed. + If the domain roll is due to a Model in Image model update, + then the event message reports there has been a change in the WebLogic domain configuration without the details. + * `DomainRollCompleted`: The operator has successfully completed a rolling restart of a domain. + * `PodCycleStarting`: The operator has started to replace a server pod after it detects that the current pod does not conform to the current domain resource or WebLogic domain configuration. * `DomainValidationError`: A validation error or warning is found in a domain resource. Please refer to the event message for details. * `NamespaceWatchingStarted`: The operator has started watching for domains in a namespace. * `NamespaceWatchingStopped`: The operator has stopped watching for domains in a namespace. Note that the creation of this event in a domain namespace is the operator's best effort only; the event will not be generated if the required Kubernetes privilege is removed when a namespace is no longer managed by the operator. @@ -285,3 +298,98 @@ Source: Type: Normal Events: ``` + +Example of the sequence of operator generated events in a domain rolling restart after the domain resource's `image` and `logHomeEnabled` changed, which is the output of the command `kubectl get events -n sample-domain1-ns --selector=weblogic.domainUID=sample-domain1,weblogic.createdByOperator=true --sort-by=lastTimestamp'. + +``` +LAST SEEN TYPE REASON OBJECT MESSAGE +2m58s Normal DomainChanged domain/sample-domain1 Domain resource sample-domain1 was changed +2m58s Normal DomainProcessingStarting domain/sample-domain1 Creating or updating Kubernetes presence for WebLogic Domain with UID sample-domain1 +2m58s Normal DomainRollStarting domain/sample-domain1 Rolling restart WebLogic server pods in domain sample-domain1 because: 'image' changed from 'oracle/weblogic' to 'oracle/weblogic:14.1.1.0', + 'logHome' changed from 'null' to '/shared/logs/sample-domain1' +2m58s Normal PodCycleStarting domain/sample-domain1 Replacing pod sample-domain1-adminserver because: In container 'weblogic-server': + 'image' changed from 'oracle/weblogic' to 'oracle/weblogic:14.1.1.0', + env 'LOG_HOME' changed from 'null' to '/shared/logs/sample-domain1' +2m7s Normal PodCycleStarting domain/sample-domain1 Replacing pod sample-domain1-managed-server1 because: In container 'weblogic-server': + 'image' changed from 'oracle/weblogic' to 'oracle/weblogic:14.1.1.0', + env 'LOG_HOME' changed from 'null' to '/shared/logs/sample-domain1' +71s Normal PodCycleStarting domain/sample-domain1 Replacing pod sample-domain1-managed-server2 because: In container 'weblogic-server': + 'image' changed from 'oracle/weblogic' to 'oracle/weblogic:14.1.1.0', + env 'LOG_HOME' changed from 'null' to '/shared/logs/sample-domain1' +19s Normal DomainRollCompleted domain/sample-domain1 Rolling restart of domain sample-domain1 completed +19s Normal DomainProcessingCompleted domain/sample-domain1 Successfully completed processing domain resource sample-domain1 + +``` + +Example of a `DomainRollStarting` event: + +``` +Name: sample-domain1.DomainRollStarting.7d33e9b787e9c318 +Namespace: sample-domain1-ns +Labels: weblogic.createdByOperator=true + weblogic.domainUID=sample-domain1 +Annotations: +API Version: v1 +Count: 1 +Event Time: +First Timestamp: 2021-05-18T02:00:24Z +Involved Object: + API Version: weblogic.oracle/v8 + Kind: Domain + Name: sample-domain1 + Namespace: sample-domain1-ns + UID: 5df7dcda-d606-4509-9a06-32f25e16e166 +Kind: Event +Last Timestamp: 2021-05-18T02:00:24Z +Message: Rolling restart WebLogic server pods in domain sample-domain1 because: 'image' changed from 'oracle/weblogic' to 'oracle/weblogic:14.1.1.0', + 'logHome' changed from 'null' to '/shared/logs/sample-domain1' +Metadata: + Creation Timestamp: 2021-05-18T02:00:24Z + Resource Version: 12842363 + Self Link: /api/v1/namespaces/sample-domain1-ns/events/sample-domain1.DomainRollStarting.7d33e9b787e9c318 + UID: 6ec92655-9d06-43b1-8b26-c01ebccadecf +Reason: DomainRollStarting +Reporting Component: weblogic.operator +Reporting Instance: weblogic-operator-fc4ccc8b5-rh4v6 +Source: +Type: Normal +Events: + +``` + +Example of a `PodCycleStarting` event: + +``` +Name: sample-domain1.PodCycleStarting.7d34bc3232231f49 +Namespace: sample-domain1-ns +Labels: weblogic.createdByOperator=true + weblogic.domainUID=sample-domain1 +Annotations: +API Version: v1 +Count: 1 +Event Time: +First Timestamp: 2021-05-18T02:01:18Z +Involved Object: + API Version: weblogic.oracle/v8 + Kind: Domain + Name: sample-domain1 + Namespace: sample-domain1-ns + UID: 5df7dcda-d606-4509-9a06-32f25e16e166 +Kind: Event +Last Timestamp: 2021-05-18T02:01:18Z +Message: Replacing pod sample-domain1-managed-server1 because: In container 'weblogic-server': + 'image' changed from 'oracle/weblogic' to 'oracle/weblogic:14.1.1.0', + env 'LOG_HOME' changed from 'null' to '/shared/logs/sample-domain1' +Metadata: + Creation Timestamp: 2021-05-18T02:01:18Z + Resource Version: 12842530 + Self Link: /api/v1/namespaces/sample-domain1-ns/events/sample-domain1.PodCycleStarting.7d34bc3232231f49 + UID: 4c6a203e-9b93-4b46-b9e3-1a448b52c7ca +Reason: PodCycleStarting +Reporting Component: weblogic.operator +Reporting Instance: weblogic-operator-fc4ccc8b5-rh4v6 +Source: +Type: Normal +Events: + +``` \ No newline at end of file diff --git a/documentation/3.2/content/userguide/managing-domains/domain-lifecycle/restarting.md b/documentation/3.2/content/userguide/managing-domains/domain-lifecycle/restarting.md index eccc2a96ce3..813a5c093d9 100644 --- a/documentation/3.2/content/userguide/managing-domains/domain-lifecycle/restarting.md +++ b/documentation/3.2/content/userguide/managing-domains/domain-lifecycle/restarting.md @@ -21,7 +21,7 @@ The following types of server restarts are supported by the operator: * Rolling restarts - a coordinated and controlled shut down of all of the servers in a domain or cluster while ensuring that service to the end user is not interrupted. - * Operator initiated - where the WebLogic Server Kubernetes Operator can detect some types of changes and will automatically initiate rolling restarts of pods in a domain or cluster. + * Operator initiated - where the WebLogic Kubernetes Operator can detect some types of changes and will automatically initiate rolling restarts of pods in a domain or cluster. * Manually initiated - required when certain changes in the Oracle WebLogic Server in Kubernetes environment cannot be detected by the operator, so a rolling restart must be manually initiated. @@ -51,8 +51,8 @@ Changes to the WebLogic domain configuration may require either a rolling or ful For Domain in Image, you may only perform a rolling restart if both the WebLogic configuration changes between the present image and a new image are dynamic and you have [followed the CI/CD guidelines]({{< relref "/userguide/cicd/mutate-the-domain-layer">}}) to create an image with compatible encryption keys. -Otherwise, use of a new image that does not have compatible encryption keys or any non-dynamic configuration changes require a full domain restart. - +Otherwise, use of a new image that does not have compatible encryption keys or any non-dynamic configuration changes require a full domain restart. + * If you create a new image with a new name, then you must avoid a rolling restart, which can cause unexpected behavior for the running domain due to configuration inconsistencies as seen by the various servers, by following the steps in [Avoiding a rolling restart when changing image field on a Domain](#avoiding-a-rolling-restart-when-changing-image-field-on-a-domain). * If you create a new image with the same name, then you must manually initiate a full domain restart. See [Full domain restarts]({{< relref "/userguide/managing-domains/domain-lifecycle/startup/_index.md#full-domain-restarts">}}). @@ -96,7 +96,7 @@ Changes to configuration overrides include: * Changing the Domain YAML file's `configuration.secrets` to point to a different list of Secrets * Changing the contents of the ConfigMap referenced by `configuration.overridesConfigMap` * Changing the contents to any of the Secrets referenced by `configuration.secrets` - + The changes to the above fields or contents of related resources are not processed automatically. Instead, these fields are processed only when you [initiate operator introspection]({{< relref "/userguide/managing-domains/domain-lifecycle/introspection.md" >}}). The operator then will apply the new configuration overrides dynamically or only apply the overrides when WebLogic Server instances restart, depending on the strategy that you select. {{% notice note %}} Changes to configuration overrides distributed to running WebLogic Server instances can only take effect if the corresponding WebLogic configuration MBean attribute is "dynamic". For instance, the Data Source "passwordEncrypted" attribute is dynamic while the "Url" attribute is non-dynamic. @@ -188,7 +188,7 @@ d. Update the `image` field of the Domain YAML file, specifying the new image na ```yaml domain: spec: - image: ghcr.io/oracle/weblogic-updated:3.2.2 + image: ghcr.io/oracle/weblogic-updated:3.2.3 ``` e. The operator will now initiate a rolling restart, which will apply the updated image, for all the servers in the domain. diff --git a/documentation/3.2/content/userguide/managing-domains/domain-lifecycle/scaling.md b/documentation/3.2/content/userguide/managing-domains/domain-lifecycle/scaling.md index 174db828822..eebb6527f62 100644 --- a/documentation/3.2/content/userguide/managing-domains/domain-lifecycle/scaling.md +++ b/documentation/3.2/content/userguide/managing-domains/domain-lifecycle/scaling.md @@ -94,7 +94,7 @@ The example ClusterRole definition below grants `get`, `list`, `patch` and `upda ```yaml kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1beta1 +apiVersion: rbac.authorization.k8s.io/v1 metadata: name: weblogic-domain-cluster-role rules: @@ -108,7 +108,7 @@ rules: ``` ##### Operator REST endpoints -The WebLogic Server Kubernetes Operator can expose both an internal and external REST HTTPS endpoint. +The WebLogic Kubernetes Operator can expose both an internal and external REST HTTPS endpoint. The internal REST endpoint is only accessible from within the Kubernetes cluster. The external REST endpoint is accessible from outside the Kubernetes cluster. The internal REST endpoint is enabled by default and thus always available, whereas the external REST endpoint @@ -137,7 +137,7 @@ In response to a change to either `replicas` field, in the Domain, the operator The WebLogic Diagnostics Framework (WLDF) is a suite of services and APIs that collect and surface metrics that provide visibility into server and application performance. To support automatic scaling of WebLogic clusters in Kubernetes, WLDF provides the Policies and Actions component, which lets you write policy expressions for automatically executing scaling operations on a cluster. These policies monitor one or more types of WebLogic Server metrics, such as memory, idle threads, and CPU load. When the configured threshold -in a policy is met, the policy is triggered, and the corresponding scaling action is executed. The WebLogic Server Kubernetes Operator project provides a shell script, [`scalingAction.sh`](https://github.com/oracle/weblogic-kubernetes-operator/blob/main/operator/scripts/scaling/scalingAction.sh), +in a policy is met, the policy is triggered, and the corresponding scaling action is executed. The WebLogic Kubernetes Operator project provides a shell script, [`scalingAction.sh`](https://github.com/oracle/weblogic-kubernetes-operator/blob/main/operator/scripts/scaling/scalingAction.sh), for use as a Script Action, which illustrates how to issue a request to the operator’s REST endpoint. ##### Configure automatic scaling of WebLogic clusters in Kubernetes with WLDF @@ -187,7 +187,7 @@ Set this to `https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT}` when * `wls_domain_namespace` - Kubernetes Namespace in which the WebLogic domain is defined, default=`default` -* `operator_service_name` - WebLogic Server Kubernetes Operator Service name of the REST endpoint, default=`internal-weblogic-operator-service` +* `operator_service_name` - WebLogic Kubernetes Operator Service name of the REST endpoint, default=`internal-weblogic-operator-service` * `operator_service_account` - Kubernetes Service Account name for the operator, default=`weblogic-operator` @@ -218,7 +218,7 @@ In the example ClusterRoleBinding definition below, the WebLogic domain is deplo ```yaml kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1beta1 +apiVersion: rbac.authorization.k8s.io/v1 metadata: name: weblogic-domain-cluster-role rules: @@ -233,7 +233,7 @@ rules: # creating role-bindings for cluster role # kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1beta1 +apiVersion: rbac.authorization.k8s.io/v1 metadata: name: domain-cluster-rolebinding subjects: @@ -250,7 +250,7 @@ roleRef: # creating role-bindings # kind: RoleBinding -apiVersion: rbac.authorization.k8s.io/v1beta1 +apiVersion: rbac.authorization.k8s.io/v1 metadata: name: weblogic-domain-operator-rolebinding namespace: weblogic-operator diff --git a/documentation/3.2/content/userguide/managing-domains/domain-resource.md b/documentation/3.2/content/userguide/managing-domains/domain-resource.md index 1ab4ed2d2c4..d3c6e8118dd 100644 --- a/documentation/3.2/content/userguide/managing-domains/domain-resource.md +++ b/documentation/3.2/content/userguide/managing-domains/domain-resource.md @@ -30,7 +30,7 @@ Many of the samples accompanying the operator project include scripts to generat The following prerequisites must be fulfilled before proceeding with the creation of a domain resource: * Create a Kubernetes Namespace for the Domain unless the intention is to use the default namespace. -* Make sure the WebLogic Server Kubernetes Operator is running and is configured to monitor the namespace. +* Make sure the WebLogic Kubernetes Operator is running and is configured to monitor the namespace. * Make sure any resources that the domain resource references are deployed to the same namespace. For example, all domain resources have a `spec.webLogicCredentialsSecret` field that references a Kubernetes Secret containing the `username` and `password` of the WebLogic server administrative account. * Make sure a domain resource configuration and its corresponding WebLogic configuration [meet Kubernetes resource name restrictions]({{< relref "/userguide/managing-domains/_index.md#meet-kubernetes-resource-name-restrictions" >}}). @@ -73,18 +73,10 @@ The Domain type is defined by a Kubernetes CustomResourceDefinition (CRD) and, l The operator installs the CRD for the Domain type when the operator first starts. Customers may also choose to install the CRD in advance by using one of the provided YAML files. Installing the CRD in advance allows you to run the operator without giving it privilege (through Kubernetes roles and bindings) to access or update the CRD or other cluster-scoped resources. This may be necessary in environments where the operator cannot have cluster-scoped privileges, such as OpenShift Dedicated. The operator's role based access control (RBAC) requirements are documented [here]({{< relref "/security/rbac.md" >}}). -For Kubernetes 1.16 and later: - ```shell $ kubectl create -f kubernetes/crd/domain-crd.yaml ``` -For Kubernetes 1.15 and earlier: - -```shell -$ kubectl create -f kubernetes/crd/domain-v1beta1-crd.yaml -``` - After the CustomResourceDefinition is installed, either by the operator or using one of the `create` commands above, you can verify that the CRD is installed correctly using: ```shell diff --git a/documentation/3.2/content/userguide/managing-domains/model-in-image/model-files.md b/documentation/3.2/content/userguide/managing-domains/model-in-image/model-files.md index 43ab8820536..ce4a7e28de7 100644 --- a/documentation/3.2/content/userguide/managing-domains/model-in-image/model-files.md +++ b/documentation/3.2/content/userguide/managing-domains/model-in-image/model-files.md @@ -68,7 +68,7 @@ For a description of model file macro references to secrets and environment vari - All password fields in a model should use a secret macro. Passwords should not be directly included in property or model files because the files may appear in logs or debugging. - - Model files encrypted with the WDT [Encrypt Model Tool](https://oracle.github.io/weblogic-deploy-tooling/userguide/tools/encrypt/)) are not supported. Use secrets instead. + - Model files encrypted with the WDT [Encrypt Model Tool](https://oracle.github.io/weblogic-deploy-tooling/userguide/tools/encrypt/) are not supported. Use secrets instead. - You can use model macros to reference arbitrary environment variables from model files. This is useful for handling plain text mutable values that you can define using an `env` stanza in your Domain YAML file, and is also useful for accessing the built in `DOMAIN_UID` environment variable. See [Using environment variables in model files](#using-environment-variables-in-model-files). diff --git a/documentation/3.2/content/userguide/managing-domains/model-in-image/runtime-updates.md b/documentation/3.2/content/userguide/managing-domains/model-in-image/runtime-updates.md index d34db20f79d..d2c16764be0 100644 --- a/documentation/3.2/content/userguide/managing-domains/model-in-image/runtime-updates.md +++ b/documentation/3.2/content/userguide/managing-domains/model-in-image/runtime-updates.md @@ -30,7 +30,7 @@ description = "Updating a running Model in Image domain's images and model files If you want to make a WebLogic domain home configuration update to a running Model in Image domain, and you want the update to survive WebLogic Server pod restarts, -then you must modify your existing model and instruct the WebLogic Server Kubernetes Operator to propagate the change. +then you must modify your existing model and instruct the WebLogic Kubernetes Operator to propagate the change. If instead you make a direct runtime WebLogic configuration update of a Model in Image domain using the WebLogic Server Administration Console or WLST scripts, @@ -918,7 +918,7 @@ the Domain `spec.introspectVersion`. Here are some common ways to alter either o fi ``` - - You can use a WebLogic Server Kubernetes Operator sample script that invokes + - You can use a WebLogic Kubernetes Operator sample script that invokes the same commands that are described in the previous bulleted item. - See `patch-restart-version.sh` and `patch-introspect-version.sh` in the `kubernetes/samples/scripts/create-weblogic-domain/model-in-image/utils/` diff --git a/documentation/3.2/content/userguide/managing-domains/model-in-image/usage.md b/documentation/3.2/content/userguide/managing-domains/model-in-image/usage.md index 96cbf837b3e..e22abf1c5c5 100644 --- a/documentation/3.2/content/userguide/managing-domains/model-in-image/usage.md +++ b/documentation/3.2/content/userguide/managing-domains/model-in-image/usage.md @@ -10,7 +10,7 @@ This document describes what's needed to create and deploy a typical Model in Im ### Contents - - [WebLogic Server Kubernetes Operator](#weblogic-server-kubernetes-operator) + - [WebLogic Kubernetes Operator](#weblogic-kubernetes-operator) - [WebLogic Server image](#weblogic-server-image) - [Optional WDT model ConfigMap](#optional-wdt-model-configmap) - [Required runtime encryption secret](#required-runtime-encryption-secret) @@ -19,7 +19,7 @@ This document describes what's needed to create and deploy a typical Model in Im - [Always use external state](#always-use-external-state) - [Requirements for JRF domain types](#requirements-for-jrf-domain-types) -### WebLogic Server Kubernetes Operator +### WebLogic Kubernetes Operator Deploy the operator and ensure that it is monitoring the desired namespace for your Model in Image domain. See [Manage operators]({{< relref "/userguide/managing-operators/_index.md" >}}) and [Quick Start]({{< relref "/quickstart/_index.md" >}}). diff --git a/documentation/3.2/content/userguide/managing-domains/persistent-storage/_index.md b/documentation/3.2/content/userguide/managing-domains/persistent-storage/_index.md index 36929d343ad..2b9b6da5ed1 100644 --- a/documentation/3.2/content/userguide/managing-domains/persistent-storage/_index.md +++ b/documentation/3.2/content/userguide/managing-domains/persistent-storage/_index.md @@ -26,7 +26,7 @@ The PersistentVolume for the domain must be created using the appropriate tools $ mkdir -m 777 -p /path/to/domain1PersistentVolume ``` -**Note regarding NFS**: In the current GA version, the OCI Container Engine for Kubernetes supports network block storage that can be shared across nodes with access permission RWOnce (meaning that only one can write, others can read only). At this time, the WebLogic on Kubernetes domain created by the WebLogic Server Kubernetes Operator, requires a shared file system to store the WebLogic domain configuration, which MUST be accessible from all the pods across the nodes. As a workaround, you need to install an NFS server on one node and share the file system across all the nodes. +**Note regarding NFS**: In the current GA version, the OCI Container Engine for Kubernetes supports network block storage that can be shared across nodes with access permission RWOnce (meaning that only one can write, others can read only). At this time, the WebLogic on Kubernetes domain created by the WebLogic Kubernetes Operator, requires a shared file system to store the WebLogic domain configuration, which MUST be accessible from all the pods across the nodes. As a workaround, you need to install an NFS server on one node and share the file system across all the nodes. Currently, we recommend that you use NFS version 3.0 for running WebLogic Server on OCI Container Engine for Kubernetes. During certification, we found that when using NFS 4.0, the servers in the WebLogic domain went into a failed state intermittently. Because multiple threads use NFS (default store, diagnostics store, Node Manager, logging, and `domain_home`), there are issues when accessing the file store. These issues are removed by changing the NFS to version 3.0. diff --git a/documentation/3.2/content/userguide/managing-fmw-domains/fmw-infra/_index.md b/documentation/3.2/content/userguide/managing-fmw-domains/fmw-infra/_index.md index 528e4a15271..3b16c792d4a 100644 --- a/documentation/3.2/content/userguide/managing-fmw-domains/fmw-infra/_index.md +++ b/documentation/3.2/content/userguide/managing-fmw-domains/fmw-infra/_index.md @@ -61,7 +61,7 @@ following limitations currently exist for FMW Infrastructure domains: #### Obtaining the FMW Infrastructure image -The Oracle WebLogic Server Kubernetes Operator requires patch 29135930. +The WebLogic Kubernetes Operator requires patch 29135930. The standard pre-built FMW Infrastructure image, `container-registry.oracle.com/middleware/fmw-infrastrucutre:12.2.1.3`, already has this patch applied. For detailed instructions on how to log in to the Oracle Container Registry and accept license agreement, see this [document]({{< relref "/userguide/base-images/_index.md#obtain-standard-images-from-the-oracle-container-registry" >}}). The FMW Infrastructure 12.2.1.4.0 images do not require patches. diff --git a/documentation/3.2/content/userguide/managing-operators/_index.md b/documentation/3.2/content/userguide/managing-operators/_index.md index 0f40ce28948..46607bdc3a9 100644 --- a/documentation/3.2/content/userguide/managing-operators/_index.md +++ b/documentation/3.2/content/userguide/managing-operators/_index.md @@ -61,7 +61,7 @@ For more detailed information, see the [REST interface configuration]({{}}). +Note that the operator Helm chart is available from the GitHub chart repository. For more details, see [Alternatively, install the operator Helm chart from the GitHub chart repository]({{< relref "/userguide/managing-operators/installation/_index.md#alternatively-install-the-operator-helm-chart-from-the-github-chart-repository" >}}). #### Useful Helm operations @@ -102,7 +102,7 @@ javaLoggingLevel: "FINE" ##### `image` Specifies the container image containing the operator code. -Defaults to `ghcr.io/oracle/weblogic-kubernetes-operator:3.2.2`. +Defaults to `ghcr.io/oracle/weblogic-kubernetes-operator:3.2.3`. Example: ```yaml @@ -128,8 +128,38 @@ imagePullSecrets: - name: "my-image-pull-secret" ``` +##### `annotations` +Specifies a set of key-value annotations that will be added to each pod running the operator. If no customer defined annotations are required, then omit this property. + +Example: +```yaml +annotations: + stage: production +``` + +You may also specify annotations [using the `--set` parameter to the Helm install command](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing), as follows: + +``` +--set annotations.stage=production +``` + +##### `labels` +Specifies a set of key-value labels that will be added to each pod running the operator. The Helm chart will automatically add any required labels, so the customer is not required to define those here. If no customer defined labels are required, then omit this property. + +Example: +```yaml +labels: + sidecar.istio.io/inject: "false" +``` + +You may also specify labels [using the `--set` parameter to the Helm install command](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing), as follows: + +``` +--set labels."sidecar\.istio\.io/inject"=false +``` + ##### `nodeSelector` -Allows you to run the operator Pod on a Node whose labels match the specified `nodeSelector` labels. You can use this optional feature if you want the operator Pod to run on a Node with particular labels. See [Assign Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) in the Kubernetes documentation for more details. This is not required if the operator Pod can run on any Node. +Allows you to run the operator Pod on a Node whose labels match the specified `nodeSelector` labels. You can use this optional feature if you want the operator Pod to run on a Node with particular labels. For more details, see [Assign Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) in the Kubernetes documentation for more details. This is not required if the operator Pod can run on any Node. Example: ```yaml @@ -137,8 +167,8 @@ nodeSelector: disktype: ssd ``` -##### `nodeAffinity` -Allows you to constrain the operator Pod to be scheduled on a Node with certain labels; it is conceptually similar to `nodeSelector`. `nodeAffinity` provides advanced capabilities to limit Pod placement on specific Nodes. See [Assign Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity) in the Kubernetes documentation for more details. This is optional and not required if the operator Pod can run on any Node or when using `nodeSelector`. +##### `affinity` +Allows you to constrain the operator Pod to be scheduled on a Node with certain labels; it is conceptually similar to `nodeSelector`. `affinity` provides advanced capabilities to limit Pod placement on specific Nodes. For more details, see [Assign Pods to Nodes](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity) in the Kubernetes documentation for more details. This is optional and not required if the operator Pod can run on any Node or when using `nodeSelector`. Example: ```yaml @@ -233,7 +263,7 @@ You must include the `default` namespace in the list if you want the operator to This value is ignored if `dedicated` is set to `true`. Then, the operator will manage only domains in its own namespace. {{% /notice %}} -For more information about managing `domainNamespaces`, see [Managing domain namespaces]({{< relref "/faq/namespace-management.md" >}}). +For more details about managing `domainNamespaces`, see [Managing domain namespaces]({{< relref "/faq/namespace-management.md" >}}). ##### `domainNamespaceLabelSelector` Specifies a [label selector](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors) that will be used when searching for namespaces that the operator will manage. @@ -260,7 +290,7 @@ domainNamespaceLabelSelector: environment notin (production,systemtest) {{% notice note %}} To specify the above sample on the Helm command line, escape spaces and commas as follows: -```yaml +``` --set "domainNamespaceLabelSelector=environment\\ notin\\ (production\\,systemtest)" ``` {{% /notice %}} @@ -322,7 +352,7 @@ Prior to the operator 3.1.0 release, the suffixes are hard-coded to `-introspect {{% /notice %}} {{% notice note %}} -In order to work with Kubernetes limits to resource names, the resultant names for the domain introspector job and the external service should not be more than 63 characters (see [Meet Kubernetes resource name restrictions]({{< relref "/userguide/managing-domains/_index.md#meet-kubernetes-resource-name-restrictions" >}})). +In order to work with Kubernetes limits to resource names, the resultant names for the domain introspector job and the external service should not be more than 63 characters. For more details, see [Meet Kubernetes resource name restrictions]({{< relref "/userguide/managing-domains/_index.md#meet-kubernetes-resource-name-restrictions" >}}). {{% /notice %}} ##### `clusterSizePaddingValidationEnabled` @@ -657,4 +687,4 @@ To recover: #### Deleting and recreating a namespace that an operator manages without informing the operator If you create a new domain in a namespace that is deleted and recreated, the domain does not start up until you notify the operator. -For more information about the problem and solutions, see [Managing domain namespaces]({{}}). +For more details about the problem and solutions, see [Managing domain namespaces]({{}}). diff --git a/documentation/charts/index.yaml b/documentation/charts/index.yaml index 6380a446b68..14e58fbcd0f 100644 --- a/documentation/charts/index.yaml +++ b/documentation/charts/index.yaml @@ -1,9 +1,19 @@ apiVersion: v1 entries: weblogic-operator: + - apiVersion: v1 + appVersion: 3.2.3 + created: "2021-05-21T12:49:05.241006-04:00" + description: Helm chart for configuring the WebLogic operator. + digest: 7a51397c11fdca27a23150abd7816c330009aca791e6013f959c69226b7bd89b + name: weblogic-operator + type: application + urls: + - https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-3.2.3.tgz + version: 3.2.3 - apiVersion: v1 appVersion: 3.2.2 - created: "2021-04-27T14:19:25.599076-04:00" + created: "2021-05-21T12:49:05.240209-04:00" description: Helm chart for configuring the WebLogic operator. digest: a4101539f527fd8ac80cfaa5314e8ba10a28f5bba462b75932a9bed1b83874bf name: weblogic-operator @@ -13,7 +23,7 @@ entries: version: 3.2.2 - apiVersion: v1 appVersion: 3.2.1 - created: "2021-04-27T14:19:25.59823-04:00" + created: "2021-05-21T12:49:05.238813-04:00" description: Helm chart for configuring the WebLogic operator. digest: 002da958caed9fe625e11b075a5c6df28be956854a0b41dae46f0108a70f9321 name: weblogic-operator @@ -23,7 +33,7 @@ entries: version: 3.2.1 - apiVersion: v1 appVersion: 3.2.0 - created: "2021-04-27T14:19:25.596658-04:00" + created: "2021-05-21T12:49:05.237634-04:00" description: Helm chart for configuring the WebLogic operator. digest: e1c9192b3590d10b8426b7e7bcae27213d9f2296ef4f2cf547e198fd2d89ab1b name: weblogic-operator @@ -33,7 +43,7 @@ entries: version: 3.2.0 - apiVersion: v1 appVersion: 3.1.4 - created: "2021-04-27T14:19:25.594349-04:00" + created: "2021-05-21T12:49:05.235856-04:00" description: Helm chart for configuring the WebLogic operator. digest: 9695fd3c29cd4f006f8e75ae0053683c9aa7213440525002f4f3d36eb8d86633 name: weblogic-operator @@ -43,7 +53,7 @@ entries: version: 3.1.4 - apiVersion: v1 appVersion: 3.1.3 - created: "2021-04-27T14:19:25.593037-04:00" + created: "2021-05-21T12:49:05.234638-04:00" description: Helm chart for configuring the WebLogic operator. digest: e306bd590dbe84400c6b5bb7a64325330e597223dff63792bb5811c9cfae10ac name: weblogic-operator @@ -53,7 +63,7 @@ entries: version: 3.1.3 - apiVersion: v1 appVersion: 3.1.2 - created: "2021-04-27T14:19:25.591744-04:00" + created: "2021-05-21T12:49:05.233387-04:00" description: Helm chart for configuring the WebLogic operator. digest: 2d8b77038ba870cc66ddd45e07a593a5ac3159c8b9531b5309688028b5268a5f name: weblogic-operator @@ -63,7 +73,7 @@ entries: version: 3.1.2 - apiVersion: v1 appVersion: 3.1.1 - created: "2021-04-27T14:19:25.590511-04:00" + created: "2021-05-21T12:49:05.232018-04:00" description: Helm chart for configuring the WebLogic operator. digest: d839cb7bbce4421a59cd9c3df64b1df8649eeebcb6c6b7be34fec25ad00aa141 name: weblogic-operator @@ -73,7 +83,7 @@ entries: version: 3.1.1 - apiVersion: v1 appVersion: 3.1.0 - created: "2021-04-27T14:19:25.589323-04:00" + created: "2021-05-21T12:49:05.230842-04:00" description: Helm chart for configuring the WebLogic operator. digest: 9e105bec11bab249973370a4d5e653f9104cd9fbaaa0c2090fb173805fb3a692 name: weblogic-operator @@ -82,7 +92,7 @@ entries: - https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-3.1.0.tgz version: 3.1.0 - apiVersion: v1 - created: "2021-04-27T14:19:25.588109-04:00" + created: "2021-05-21T12:49:05.229704-04:00" description: Helm chart for configuring the WebLogic operator. digest: 9dad4d85a6165dbfc57d0baadb5186a5c43c718a1a3ee2dbd6e886fe660cd65a name: weblogic-operator @@ -90,7 +100,7 @@ entries: - https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-3.0.4.tgz version: 3.0.4 - apiVersion: v1 - created: "2021-04-27T14:19:25.587069-04:00" + created: "2021-05-21T12:49:05.228796-04:00" description: Helm chart for configuring the WebLogic operator. digest: 83a0ac84a033ddd9939d4bc5884cc60b22225d7326c43ce8e54a6f403b453814 name: weblogic-operator @@ -98,7 +108,7 @@ entries: - https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-3.0.3.tgz version: 3.0.3 - apiVersion: v1 - created: "2021-04-27T14:19:25.586061-04:00" + created: "2021-05-21T12:49:05.227966-04:00" description: Helm chart for configuring the WebLogic operator. digest: fa3af5d21f858ff93cc7d58664a6eb0a920207af09e4c669a7ffb12e9e15b88d name: weblogic-operator @@ -106,7 +116,7 @@ entries: - https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-3.0.2.tgz version: 3.0.2 - apiVersion: v1 - created: "2021-04-27T14:19:25.585055-04:00" + created: "2021-05-21T12:49:05.227089-04:00" description: Helm chart for configuring the WebLogic operator. digest: aa2b2afe75305bd69f6b07d61e64a37d3bfd249074c81f6a999cef6b4a217fd0 name: weblogic-operator @@ -114,7 +124,7 @@ entries: - https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-3.0.1.tgz version: 3.0.1 - apiVersion: v1 - created: "2021-04-27T14:19:25.583993-04:00" + created: "2021-05-21T12:49:05.226054-04:00" description: Helm chart for configuring the WebLogic operator. digest: 6540a3a7c6a1c34fcf2ff66679947a1964a35e61232b2a8dea3da087a2d5411d name: weblogic-operator @@ -122,7 +132,7 @@ entries: - https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-3.0.0.tgz version: 3.0.0 - apiVersion: v1 - created: "2021-04-27T14:19:25.583053-04:00" + created: "2021-05-21T12:49:05.22525-04:00" description: Helm chart for configuring the WebLogic operator. digest: 5f4cd8f4f3282b52b5e90a1169f26986e8272671845053606ade9c855fb04151 name: weblogic-operator @@ -130,7 +140,7 @@ entries: - https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-3.0.0-rc1.tgz version: 3.0.0-rc1 - apiVersion: v1 - created: "2021-04-27T14:19:25.582071-04:00" + created: "2021-05-21T12:49:05.223802-04:00" description: Helm chart for configuring the WebLogic operator. digest: e3596b2380b264a0a70ba438858ca9af102a79689bf2e21e237eb63ea2997d66 name: weblogic-operator @@ -138,7 +148,7 @@ entries: - https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-2.6.0.tgz version: 2.6.0 - apiVersion: v1 - created: "2021-04-27T14:19:25.581022-04:00" + created: "2021-05-21T12:49:05.222935-04:00" description: Helm chart for configuring the WebLogic operator. digest: fe41421b7dc45dc8a3b2888d3a626a37f5d3c8e1fa292fb6699deedc5e1db33d name: weblogic-operator @@ -146,7 +156,7 @@ entries: - https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-2.5.0.tgz version: 2.5.0 - apiVersion: v1 - created: "2021-04-27T14:19:25.579763-04:00" + created: "2021-05-21T12:49:05.222042-04:00" description: Helm chart for configuring the WebLogic operator. digest: b36bd32083f67453a62d089a2c09ce38e6655d88ac8a7b38691230c55c40e672 name: weblogic-operator @@ -154,7 +164,7 @@ entries: - https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-2.4.0.tgz version: 2.4.0 - apiVersion: v1 - created: "2021-04-27T14:19:25.578662-04:00" + created: "2021-05-21T12:49:05.221169-04:00" description: Helm chart for configuring the WebLogic operator. digest: a3eafe4c2c6ff49384e56421201e59a3737d651af8d5b605b87a19eb1f6f1dc3 name: weblogic-operator @@ -162,7 +172,7 @@ entries: - https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-2.3.1.tgz version: 2.3.1 - apiVersion: v1 - created: "2021-04-27T14:19:25.575413-04:00" + created: "2021-05-21T12:49:05.217446-04:00" description: Helm chart for configuring the WebLogic operator. digest: cbc6caaa6eb28e3c7e906ede14b2ae511a0b35fc12a8e3ab629155b09993e8b2 name: weblogic-operator @@ -170,7 +180,7 @@ entries: - https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-2.3.0.tgz version: 2.3.0 - apiVersion: v1 - created: "2021-04-27T14:19:25.574427-04:00" + created: "2021-05-21T12:49:05.216373-04:00" description: Helm chart for configuring the WebLogic operator. digest: 23d5a1c554fa8211cc1e86b7ade09460917cb2069e68fb4bfdddafc8db44fdcd name: weblogic-operator @@ -178,7 +188,7 @@ entries: - https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-2.2.1.tgz version: 2.2.1 - apiVersion: v1 - created: "2021-04-27T14:19:25.573359-04:00" + created: "2021-05-21T12:49:05.215422-04:00" description: Helm chart for configuring the WebLogic operator. digest: bba303686cb55d84fe8c0d693a2436e7e686b028085b56e012f6381699a3911f name: weblogic-operator @@ -186,7 +196,7 @@ entries: - https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-2.2.0.tgz version: 2.2.0 - apiVersion: v1 - created: "2021-04-27T14:19:25.572277-04:00" + created: "2021-05-21T12:49:05.214157-04:00" description: Helm chart for configuring the WebLogic operator. digest: 391e23c0969ada5f0cd2a088ddc6f11f237f57521801ed3925db2149a8437a0d name: weblogic-operator @@ -194,11 +204,11 @@ entries: - https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-2.1.tgz version: "2.1" - apiVersion: v1 - created: "2021-04-27T14:19:25.571372-04:00" + created: "2021-05-21T12:49:05.213151-04:00" description: Helm chart for configuring the WebLogic operator. digest: 298acda78ab73db6b7ba6f2752311bfa40c65874e03fb196b70976192211c1a5 name: weblogic-operator urls: - https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-2.0.1.tgz version: 2.0.1 -generated: "2021-04-27T14:19:25.570167-04:00" +generated: "2021-05-21T12:49:05.211759-04:00" diff --git a/documentation/charts/weblogic-operator-3.2.3.tgz b/documentation/charts/weblogic-operator-3.2.3.tgz new file mode 100644 index 0000000000000000000000000000000000000000..2f3e9d9d7609a741f3888e9a985b48da710a5c5c GIT binary patch literal 11752 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 Kz|s2vPyqn_85}PF literal 0 HcmV?d00001