Coder Social home page Coder Social logo

oracle / weblogic-azure Goto Github PK

View Code? Open in Web Editor NEW
8.0 19.0 18.0 15.36 MB

This project offers support for running Oracle WebLogic Server in the Azure Virtual Machines and Azure Kubernetes Service (AKS)

License: Universal Permissive License v1.0

Shell 80.03% Bicep 17.16% HTML 2.08% Python 0.19% Java 0.54%
weblogic kubernetes azure vms aks

weblogic-azure's Introduction

About WebLogic on Microsoft Azure

As part of a broad-ranging partnership between Oracle and Microsoft, this project offers support for running Oracle WebLogic Server in the Azure Virtual Machines and Azure Kubernetes Service (AKS). The partnership includes joint support for a range of Oracle software running on Azure, including Oracle WebLogic, Oracle Linux, and Oracle DB, as well as interoperability between Oracle Cloud Infrastructure (OCI) and Azure.

Installation

The Azure Marketplace WebLogic Server Offering offers a simplified UI and installation experience over the full power of the Azure Resource Manager (ARM) template.

Documentation

Please refer to the README for documentation on WebLogic Server running on an Azure Kubernetes Service

Please refer to the README for documentation on WebLogic Server running on an Azure Virtual Machine

Local Build Setup and Requirements

This project utilizes GitHub Packages for hosting and retrieving some dependencies. To ensure you can smoothly run and build the project in your local environment, specific configuration settings are required.

GitHub Packages requires authentication to download or publish packages. Therefore, you need to configure your Maven settings.xml file to authenticate using your GitHub credentials. The primary reason for this is that GitHub Packages does not support anonymous access, even for public packages.

Please follow these steps:

  1. Create a Personal Access Token (PAT)

    • Go to Personal access tokens.
    • Click on Generate new token.
    • Give your token a descriptive name, set the expiration as needed, and select the scopes (read:packages, write:packages).
    • Click Generate token and make sure to copy the token.
  2. Configure Maven Settings

    • Locate or create the settings.xml file in your .m2 directory(~/.m2/settings.xml).
    • Add the GitHub Package Registry server configuration with your username and the PAT you just created. It should look something like this:
       <settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 
                              https://maven.apache.org/xsd/settings-1.2.0.xsd">
        
      <!-- other settings
      ...
      -->
      
        <servers>
          <server>
            <id>github</id>
            <username>YOUR_GITHUB_USERNAME</username>
            <password>YOUR_PERSONAL_ACCESS_TOKEN</password>
          </server>
        </servers>
      
      <!-- other settings
      ...
      -->
      
       </settings>

Deployment Description

WLS on VMs

Oracle WebLogic Server Single Node

The offer provisions the following Azure resources based on Oracle WebLogic Server base images and an Oracle WebLogic Server Enterprise Edition (WLS) without domain configuration.

  • The offer includes a choice of operating system, JDK, Oracle WebLogic Server versions.
    • OS: Oracle Linux or Red Hat Enterprise Linux
    • JDK: Oracle JDK 8, or 11
    • WLS version: 12.2.1.4, 14.1.1.0
  • Computing resources
    • A VM with the following configurations:
      • Operating system as described in the selected base image.
      • Choice of VM size.
    • An OS disk attached to the VM.
  • Network resources
    • A virtual network and a subnet.
    • A network security group.
    • A network interface.
    • A public IP address assigned to the network interface.
  • Storage resources
    • An Azure Storage Account to store the VM diagnostics profile.
  • Key Software components
    • Oracle WebLogic Server Enterprise Edition. Version as described in the selected base image. The ORACLE_HOME is /u01/app/wls/install/oracle/middleware/oracle_home.
    • Oracle JDK. The version as described in the selected base image. The JAVA_HOME is /u01/app/jdk/jdk-${version}.
    • In addition to the database drivers that come standard with WLS, the offer includes the most recent supported PostgreSQL JDBC driver and Microsoft SQL JDBC driver. The drivers are stored in /u01/app/wls/install/oracle/middleware/oracle_home/wlserver/server/lib/.

Oracle WebLogic Server with Admin Server

The offer provisions Oracle WebLogic Server (WLS) with a domain and Administration Server. All supporting Azure resources are automatically provisioned.

  • The offer includes a choice of operating system, JDK, Oracle WLS versions.
    • OS: Oracle Linux or Red Hat Enterprise Linux
    • JDK: Oracle JDK 8, or 11
    • WLS version: 12.2.1.4, 14.1.1.0
  • Computing resources
    • VM with the followings configuration:
      • A VM to run the Administration Server.
      • Choice of VM size.
    • An OS disk attached to the VM.
  • Network resources
    • A virtual network and a subnet. If desired, you can deploy into a pre-existing virtual network.
    • A network security group if creating a new virtual network.
    • Network interface for VM.
    • Public IP address.
  • Key software components
    • Oracle WLS Enterprise Edition. Version as described in the selected base image. The ORACLE_HOME is /u01/app/wls/install/oracle/middleware/oracle_home.
    • Oracle JDK. The version as described in the selected base image. The JAVA_HOME is /u01/app/jdk/jdk-${version}.
    • A WLS domain with the Administration Server up and running. Admin server sign in with the user name and password provided to the offer. The default domain name is adminDomain, the domain path is /u01/domains/adminDomain/.
  • Database connectivity
    • The offer provides database connectivity for PostgreSQL, Oracle database, Azure SQL, MySQL, or an arbitrary JDBC compliant database.
    • Some database options support Azure Passwordless database connection.
  • Access URLs
    • See the deployment outputs for access URLs.

Oracle WebLogic Server Cluster

The offer provisions Oracle WebLogic Server (WLS) Enterprise Edition with a domain, the Administration Server and a configured cluster. All supporting Azure resources are automatically provisioned.

  • The offer includes a choice of operating system, JDK, WLS versions.
    • OS: Oracle Linux or Red Hat Enterprise Linux
    • JDK: Oracle JDK 8, or 11
    • WLS version: 12.2.1.4, 14.1.1.0
  • Computing resources
    • VMs with the followings configurations:
      • A VM to run the Administration Server and VMs to run Managed Servers.
      • VMs to run Coherence Cache servers.
      • Choice of VM size.
    • An OS disk attached to the VM.
  • Load Balancer
    • If desired, an Azure Application Gateway (agw). The TLS/SSL certificate for the agw can be uploaded, retrieved from a key vault, or self-signed auto-generated.
  • Network resources
    • A virtual network and a subnet. If desired, you can deploy into a pre-existing virtual network.
    • A network security group if creating a new virtual network.
    • Network interfaces for VMs.
    • Public IP addresses assigned to the network interfaces
    • Public IP assigned for agw, if desired.
  • High Availability
    • An Azure Availability Set for the VMs.
  • Key software components
    • WLS Enterprise Edition. Version as described in the selected base image. The ORACLE_HOME is /u01/app/wls/install/oracle/middleware/oracle_home.
    • Oracle JDK. The version as described in the selected base image. The JAVA_HOME is /u01/app/jdk/jdk-${version}*.
    • A WLS domain with the Administration Server up and running. Admin server sign in with the user name and password provided to the offer. The default domain name is wlsd, the domain path is /u01/domains/wlsd/.
    • A configured cluster with Managed Servers running. The number of managed servers is specified in the UI when deploying the offer.
    • Coherence Cache. If you select to enable Coherence Cache, the offer creates a data tier configured with Managed Coherence cache servers.
  • Database connectivity
    • The offer provides database connectivity for PostgreSQL, Oracle database, Azure SQL, MySQL, or an arbitrary JDBC compliant database.
    • Some database options support Azure Passwordless database connection.
  • Access URLs
    • See the deployment outputs for access URLs.

Oracle WebLogic Server Dynamic Cluster

The offer provisions Oracle WebLogic Server (WLS) Enterprise Edition with a domain, the Administration Server and a dynamic cluster. All supporting Azure resources are automatically provisioned.

  • The offer includes a choice of operating system, JDK, WLS versions.
    • OS: Oracle Linux or Red Hat Enterprise Linux
    • JDK: Oracle JDK 8, or 11
    • WLS version: 12.2.1.4, 14.1.1.0
  • The offer includes the choice of the following Oracle HTTP Server (OHS) base images
    • OS: Oracle Linux
    • OHS version 12.2.1.4.0
  • Computing resources
    • VMs for WLS:
      • A VM to run the Administration Server and VMs to run Managed Servers.
      • VMs to run Coherence Cache servers.
      • Choice of VM size.
      • An OS disk attached to the VM.
    • VM for OHS, if desired:
      • Choice of VM size.
      • An OS disk attached to the VM.
  • Load Balancer
    • If desired, an OHS. The TLS/SSL certificate for the OHS can be uploaded, or retrieved from a key vault.
  • Network resources
    • A virtual network and a subnet. If desired, you can deploy into a pre-existing virtual network.
    • A network security group if creating a new virtual network.
    • Network interfaces for VMs.
    • Public IP addresses assigned to the network interfaces.
    • A public IP assigned OHS, if desired.
  • Storage resources
    • An Azure Storage Account and a file share named wlsshare. The mount point is /mnt/wlsshare.
    • The storage account is also used to store the diagnostics profile of the VMs.
    • A private endpoint in the same subnet with the VM, which allows the VM to access the file share.
  • Key software components for WLS
    • WLS Enterprise Edition. Version as described in the selected base image. The ORACLE_HOME is /u01/app/wls/install/oracle/middleware/oracle_home.
    • Oracle JDK. The version as described in the selected base image. The JAVA_HOME is /u01/app/jdk/jdk-${version}.
    • A WLS domain with the Administration Server up and running. Admin server sign in with the user name and password provided to the offer. The default domain name is wlsd, the domain path is /u01/domains/wlsd/.
      • A dynamic cluster with desired number of Managed Servers running. The number of Managed servers is specified by Initial Dynamic Cluster Size. The cluster size is specified by Maximum Dynamic Cluster Size.
      • Coherence Cache. If you select to enable Coherence Cache, the offer creates a data tier configured with Managed Coherence cache servers.
  • Key software components for OHS
    • Version as described in the selected base image. The ORACLE_HOME is /u01/app/ohs/install/oracle/middleware/oracle_home.
    • Oracle JDK. The version as described in the selected base image. The JAVA_HOME is /u01/app/jdk/jdk-${version}.
    • A domain is configured based on the node manager user name and credentials provided by the user. The default domain name is ohsStandaloneDomain, the domain path is /u01/domains/ohsStandaloneDomain/.
    • An Oracle HTTP Server Component with default name ohs_component.
  • Database connectivity
    • The offer provides database connectivity for PostgreSQL, Oracle database, Azure SQL, MySQL, or an arbitrary JDBC compliant database.
    • Some database options support Azure Passwordless database connection.
  • Access URLs
    • See the deployment outputs for access URLs.

WLS on AKS

The offer provisions an Oracle WebLogic Server Enterprise Edition (WLS) and supporting Azure resources. WLS is configured with a domain, the Administration Server and a dynamic cluster set up and running.

  • The offer includes the choice of the following WLS container images
    • Images from Oracle Container Registry (OCR) (General or Patched images)
      • OS: Oracle Linux or Red Hat Enterprise Linux
      • JDK: Oracle JDK 8, or 11
      • WLS version: 12.2.1.4, 14.1.1.0
      • You can specify any arbitrary docker image tag that is available from OCR.
    • An image from your own Azure Container Registry.
  • Computing resources
    • Azure Kubernetes Service cluster
      • Dynamically created AKS cluster with
        • Choice of Node count.
        • Choice of Node size.
        • Network plugin: Azure CNI.
      • If desired, you can also deploy into a pre-existing AKS cluster.
    • An Azure Container Registry. If desired, you can select a pre-existing Azure Container Registry.
  • Network resources
    • A virtual network and a subnet. If desired, you can deploy into a pre-existing virtual network.
    • Public IP addresses assigned to the managed load balancer and Azure Application Gateway, if selected.
  • Load Balancer
    • Choice of Azure Application Gateway (agw) or standard load balancer service. With agw, you can upload TLS/SSL certificate, use a certificates stored in a key vault, or allow a self-signed certificate to be generated and installed.
  • Storage resources
    • An Azure Storage Account and a file share named weblogic if you select to create Persistent Volume using Azure File share service. The mount point is /shared.
  • Monitoring resources
    • If desired, Azure Container Insights and workspace.
  • Key software components
    • Oracle WebLogic Server Enterprise Edition. The ORACLE_HOME is /u01/app/wls/install/oracle/middleware/oracle_home.
    • This offer always deploys WLS using the 'Model in image' domain home source type. For more information, see the documentation from Oracle.
    • WebLogic Kubernetes Operator
    • Oracle JDK. The JAVA_HOME is /u01/app/jdk/jdk-${version}.
    • A WLS domain with the Administration Server up configured based on the provided Administrator user name and credentials. The default domain name is sample-domain1, the domain path is /u01/domains/sample-domain1/.
    • A dynamic cluster with Managed Servers running. The number of initial and maximum number of Managed Servers are configurable.
  • Database connectivity
    • The offer provides database connectivity for PostgreSQL, Oracle database, Azure SQL, MySQL, or an arbitrary JDBC compliant database.
    • Some database options support Azure Passwordless database connection.
  • Access URLs
    • See the deployment outputs for access URLs.

Examples

To get details of how to run Oracle WebLogic Server on Azure Virtual Machines refer to the blog WebLogic on Azure Virtual Machines Major Release Now Available.

To get details of how to run Oracle WebLogic Server on Azure Kubernetes Service refer to the blog Run Oracle WebLogic Server on the Azure Kubernetes Service.

Issues

Issue related to Oracle WebLogic Server on Microsoft Azure implementation are tracked ain the Issues tab of the GitHub project.

Contributing

This project welcomes contributions from the community. Before submitting a pull request, please review our contribution guide.

Security

Please consult the security guide for our responsible security vulnerability disclosure process.

License

Copyright (c) 2021, Oracle and/or its affiliates.

Released under the Universal Permissive License v1.0 as shown at https://oss.oracle.com/licenses/upl/.

weblogic-azure's People

Contributors

backwind1233 avatar edburns avatar galiacheng avatar gnsuryan avatar jacobt123 avatar majguo avatar mriccell avatar rjeberhard avatar robertpatrick avatar sanjaymantoor avatar spavlusieva avatar thirarum avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

weblogic-azure's Issues

Oracle WebLogic Server Dynamic Cluster deployment failed

Problem description

When deploying an Oracle WebLogic Server Dynamic Cluster with "Oracle HTTP Server Load Balancer" enabled and uploading an existing pkcs12 key store, the deployment failed with the following error message:

{
"code": "DeploymentFailed",
"message": "At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/DeployOperations for usage details.",
"details": [
{
"code": "VMExtensionProvisioningError",
"message": "VM has reported a failure when processing extension 'newuserscript'. Error message: "Enable failed: failed to execute command: command terminated with exit status=1\n[stdout]\ncreating OHS domain configuration file ...\nSetting up OHS standalone domain at /u01/domains/ohsStandaloneDomain\n\nInitializing WebLogic Scripting Tool (WLST) ...\n\nJython scans all the jar files it can find at first startup. Depending on the system, this process may take a few minutes to complete, and WLST may not return a prompt right away.\n\nWelcome to WebLogic Server Administration Scripting Shell\n\nType help() for help on available commands\n\n \n\n\nExiting WebLogic Scripting Tool.\n\nOHS standalone domain is configured successfully\nSetting CrashRecoveryEnabled true at /u01/domains/ohsStandaloneDomain/nodemanager/nodemanager.properties\nCreating NodeManager service\nCreating ohs component service\ncurl http://10.0.0.7:8002/weblogic/ready\n10.0.0.7:8002 is reachable\ncurl http://10.0.0.6:8004/weblogic/ready\n10.0.0.6:8004 is reachable\ncurl http://10.0.0.5:8003/weblogic/ready\n10.0.0.5:8003 is reachable\nCreating backup file for existing mod_wl_ohs.conf file\nCreating mod_wl_ohs.conf file as per 10.0.0.7:8002,10.0.0.6:8004,10.0.0.5:8003\nOracle PKI Tool : Version 12.2.1.4.0\nCopyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.\n\nOperation is successfully completed.\nSuccessfully oracle vault is created\ntotal 8\n-rw-------. 1 oracle oracle 194 Apr 1 15:10 cwallet.sso\n-rw-------. 1 oracle oracle 0 Apr 1 15:10 cwallet.sso.lck\n-rw-------. 1 oracle oracle 149 Apr 1 15:10 ewallet.p12\n-rw-------. 1 oracle oracle 0 Apr 1 15:10 ewallet.p12.lck\nOracle PKI Tool : Version 12.2.1.4.0\nCopyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.\n\noracle.security.crypto.core.CipherException: oracle.security.crypto.core.InvalidKeyException: oracle.security.crypto.core.AlgorithmIdentifierException: No class found for OBJECT IDENTIFIER {1 2 840 113549 2 9}\n\n[stderr]\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n\r 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* About to connect() to adminVM port 7001 (#0)\n* Trying 10.0.0.4...\n\r 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to adminVM (10.0.0.4) port 7001 (#0)\n* Server auth using Basic with user 'weblogic'\n> GET /management/weblogic/latest/domainRuntime/serverRuntimes?fields=defaultURL HTTP/1.1\r\n> Authorization: Basic d2VibG9naWM6V2ViTG9naWMxMjM0NTY=\r\n> User-Agent: curl/7.29.0\r\n> Host: adminVM:7001\r\n> X-Requested-By:MyClient\r\n> Accept:application/json\r\n> Content-Type:application/json\r\n> \r\n\r 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0< HTTP/1.1 200 OK\r\n< Date: Fri, 01 Apr 2022 15:10:30 GMT\r\n< Content-Length: 2472\r\n< Content-Type: application/json\r\n< X-ORACLE-DMS-ECID: 513416ee-d799-4af7-b409-016e5cf03d92-00000057\r\n< X-ORACLE-DMS-RID: 0\r\n< Set-Cookie: JSESSIONID=jJHlrY3OTfD3t70eu3vuD36cdu3sKf3__C2BLi8SciNe3_53FQCP!-1625228959; path=/; HttpOnly\r\n< Vary: Accept-Encoding\r\n< \r\n{ [data not shown]\n\r100 2472 100 2472 0 0 1823 0 0:00:01 0:00:01 --:--:-- 1823\n* Connection #0 to host adminVM left intact\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n\r 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\r 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n\r 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\r 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n\r 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\r 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\nUnable to add PKCS12 certificate to Oracle Wallet\n"\r\n\r\nMore information on troubleshooting is available at https://aka.ms/VMExtensionCSELinuxTroubleshoot "
}
]
}

How to reproduce

Follow steps below to reproduce the issue:

  1. Open Oracle WebLogic Server Dynamic Cluster offer
  2. In "Basics" page: Fill in value for the required field(s). Click "Next".
  3. In "TLS/SSL Configuration" page: Click "Next".
  4. In "Oracle HTTP Server Load Balancer" page:
    1. Select "Yes" for "Connect to Oracle HTTP Server?"

    2. Use defaults and fill in value for the required field(s) except "TLS/SSL Configuration Settings".

    3. Generate a pkcs12 key store which includes a private key by referencing Create Identity and Trust Keystores for Self-Signed Certificates

      keytool -genkey -alias servercert -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -validity 365 -keystore identity.p12 -keypass identityKeyPassword -storepass identityStorePassword
      

      Note: In my local env, openjdk 11 is installed, so the default type of the generated key store is pkcs12, details pls see here

    4. Upload "identity.p12" for "TLS/SSL certificate Data file(.jks,.p12)"

    5. Set identityStorePassword for "Password" and "Confirm password"

    6. Select PKCS12 for "type of certificate format(JKS,PKCS12)"

  5. Click "Review + Create"
  6. Click "Create"
  7. Wait until the deployment failed with the error mentioned above.

Workaround

I also tested that the deployment works with another pkcs12 key store (mycert.p12) generated with the following commands:

openssl genrsa -passout pass:<your-password> -out privkey.pem 3072
openssl req -x509 -new -key privkey.pem -out privkey.pub -subj "/C=US"
openssl pkcs12 -passout pass:<your-password> -export -in privkey.pub -inkey privkey.pem -out mycert.p12

Recommended fix

As a result, the recommended fix is to add necessary tips to UI and update the doc as well, so that user can know how to prepare a valid keystore for configuring TLS/SSL of Oracle HTTP Server.

Upgrade versions of 3rd party database drivers in VM base images

Most recent available drivers

Base image offer ids

Oracle tests

  • weblogic-122130-jdk8-ol73
  • weblogic-122130-jdk8-ol74
  • weblogic-122140-jdk8-ol76
  • weblogic-122140-jdk8-rhel76

Microsoft tests

  • weblogic-141100-jdk11-ol76
  • weblogic-141100-jdk11-rhel76
  • weblogic-141100-jdk8-ol76
  • weblogic-141100-jdk8-rhel76

Generate tag `2021-10-13-01-Q4` using pipeline

This issue is to generate tag 2021-10-13-01-Q4 . The tag is used in location variables in the GitHub pages, see #35.

Note: please merge #44 before running the pipeline.

Steps:

  • Add the following GitHub secrets to oracle/weblogic-azure repo
  • Start pipeline "New Tag" with inputs:
    • Branch: main
    • Tag name: 2021-10-13-01-Q4
  • Tag 2021-10-13-01-Q4 creates after the pipeline finishes successfully

Just use the default permission for the Git token.
image

WLS on AKS: upgrade AGIC with 1.5.1

Currently, the WLS on AKS offer is using AGIC 1.4.0, which uses apiextensions.k8s.io/v1beta1. The API is deprecated in AKS v1.16+, unavailable in AKS v1.22+, see AGIC issue 192.

@majguo confirmed that the issue is fixed in 1.5.1, it's time to upgrade the AGIC version.

WLS on AKS: Failed certification

See https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1429446

2021-11-01T04:26:03.5586943Z ##[section]Starting: Run Best Practice Tests
2021-11-01T04:26:03.5729524Z ==============================================================================
2021-11-01T04:26:03.5729819Z Task         : PowerShell
2021-11-01T04:26:03.5730082Z Description  : Run a PowerShell script on Linux, macOS, or Windows
2021-11-01T04:26:03.5730310Z Version      : 2.194.0
2021-11-01T04:26:03.5730506Z Author       : Microsoft Corporation
2021-11-01T04:26:03.5730817Z Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/powershell
2021-11-01T04:26:03.5731148Z ==============================================================================
2021-11-01T04:26:04.6754517Z Generating script.
2021-11-01T04:26:04.7273293Z ========================== Starting Command Output ===========================
2021-11-01T04:26:04.7569972Z ##[command]"C:\Program Files\PowerShell\7\pwsh.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command ". 'D:\a\_temp\d2d8fadf-dc40-4ff1-9391-f128d7c9a418.ps1'"
2021-11-01T04:26:05.1987764Z VERBOSE: Loading module from path 'D:\a\1\test\arm-ttk\arm-ttk.psd1'.
2021-11-01T04:26:05.2014268Z VERBOSE: Loading 'FormatsToProcess' from path 'D:\a\1\test\arm-ttk\arm-ttk.format.ps1xml'.
2021-11-01T04:26:05.5488562Z VERBOSE: Loading module from path 'D:\a\1\test\arm-ttk\arm-ttk.psm1'.
2021-11-01T04:26:05.9677734Z VERBOSE: Exporting function 'Import-Json'.
2021-11-01T04:26:05.9693503Z VERBOSE: Exporting function 'Find-JsonContent'.
2021-11-01T04:26:05.9718768Z VERBOSE: Exporting function 'Expand-AzTemplate'.
2021-11-01T04:26:05.9740102Z VERBOSE: Exporting function 'Test-AzTemplate'.
2021-11-01T04:26:05.9850622Z VERBOSE: Exporting function 'Format-AzTemplate'.
2021-11-01T04:26:05.9862142Z VERBOSE: Exporting function 'Update-TTKCache'.
2021-11-01T04:26:05.9867842Z VERBOSE: Exporting function 'Use-ARMRegEx'.
2021-11-01T04:26:05.9878336Z VERBOSE: Exporting alias 'Test-AzureRMTemplate'.
2021-11-01T04:26:05.9882999Z VERBOSE: Exporting alias '?<ARM_Template_Function>'.
2021-11-01T04:26:05.9895526Z VERBOSE: Exporting alias '?<ARM_Variable>'.
2021-11-01T04:26:05.9900577Z VERBOSE: Exporting alias '?<ARM_BracketOrQuote>'.
2021-11-01T04:26:05.9910226Z VERBOSE: Exporting alias '?<ARM_Parameter>'.
2021-11-01T04:26:05.9914863Z VERBOSE: Exporting alias '?<ARM_API_Version>'.
2021-11-01T04:26:05.9925880Z VERBOSE: Exporting alias '?<ARM_List_Function>'.
2021-11-01T04:26:05.9931110Z VERBOSE: Exporting alias '?<ARM_Template_Expression>'.
2021-11-01T04:26:05.9942388Z VERBOSE: Importing function 'Expand-AzTemplate'.
2021-11-01T04:26:05.9947365Z VERBOSE: Importing function 'Find-JsonContent'.
2021-11-01T04:26:05.9960591Z VERBOSE: Importing function 'Format-AzTemplate'.
2021-11-01T04:26:05.9965383Z VERBOSE: Importing function 'Import-Json'.
2021-11-01T04:26:05.9976077Z VERBOSE: Importing function 'Test-AzTemplate'.
2021-11-01T04:26:05.9983587Z VERBOSE: Importing function 'Update-TTKCache'.
2021-11-01T04:26:06.0274918Z VERBOSE: Importing function 'Use-ARMRegEx'.
2021-11-01T04:26:06.0402045Z VERBOSE: Importing alias '?<ARM_API_Version>'.
2021-11-01T04:26:06.0484892Z VERBOSE: Importing alias '?<ARM_BracketOrQuote>'.
2021-11-01T04:26:06.0489273Z VERBOSE: Importing alias '?<ARM_List_Function>'.
2021-11-01T04:26:06.0490368Z VERBOSE: Importing alias '?<ARM_Parameter>'.
2021-11-01T04:26:06.0492910Z VERBOSE: Importing alias '?<ARM_Template_Expression>'.
2021-11-01T04:26:06.0493829Z VERBOSE: Importing alias '?<ARM_Template_Function>'.
2021-11-01T04:26:06.0494572Z VERBOSE: Importing alias '?<ARM_Variable>'.
2021-11-01T04:26:06.1069978Z VERBOSE: Importing alias 'Test-AzureRMTemplate'.
2021-11-01T04:26:24.0592226Z Validating 20210620-wls-on-aks-20210620-wls-on-aks\createUiDefinition.json
2021-11-01T04:26:24.0600729Z   CreateUIDefinition
2021-11-01T04:26:24.0701220Z     [-] Allowed Values Should Actually Be Allowed (612 ms) 
2021-11-01T04:26:24.0729454Z ##[error]        Could not find dropDownTargets in outputs
2021-11-01T04:26:24.0735038Z 
2021-11-01T04:26:24.0741071Z 
2021-11-01T04:26:24.0779697Z     [+] Controls In Outputs Must Exist (55 ms)
2021-11-01T04:26:24.0791912Z     [-] CreateUIDefinition Must Not Have Blanks (229 ms) 
2021-11-01T04:26:24.0806042Z ##[error]        Empty property: allowedSizes found on line: 343 Index:18931
2021-11-01T04:26:24.0813967Z ##[error]        Empty property: excludedSizes found on line: 344 Index:18989
2021-11-01T04:26:24.0824871Z ##[error]        Empty property: toolTip found on line: 338 Index:18678
2021-11-01T04:26:24.0825417Z 
2021-11-01T04:26:24.0838114Z     [+] CreateUIDefinition Should Have Schema (151 ms)
2021-11-01T04:26:24.0845528Z     [-] Credential Confirmation Should Not Be Hidden (829 ms) 
2021-11-01T04:26:24.0853675Z ##[error]        "hideConfirmation" must not be true for credentials
2021-11-01T04:26:24.0864173Z 
2021-11-01T04:26:24.0867181Z     [+] Handler Must Be Correct (7 ms)
2021-11-01T04:26:24.0877282Z     [+] HideExisting Must Be Correctly Handled (998 ms)
2021-11-01T04:26:24.0883486Z     [+] Location Should Be In Outputs (7 ms)
2021-11-01T04:26:24.0893798Z     [+] Outputs Must Be Present In Template Parameters (120 ms)
2021-11-01T04:26:24.0924994Z     [+] Parameters Without Default Must Exist In CreateUIDefinition (10 ms)
2021-11-01T04:26:24.0937118Z     [-] PasswordBoxes Must Have Min Length (247 ms) 
2021-11-01T04:26:24.0943304Z ##[error]        PasswordBox 'ocrSSOPassword' regex does not have a minimum length of 12
2021-11-01T04:26:24.0953315Z ##[error]        PasswordBox 'uploadedCustomIdentityKeyStorePassphrase' regex does not have a minimum length of 12
2021-11-01T04:26:24.1006501Z ##[error]        PasswordBox 'uploadedPrivateKeyPassPhrase' regex does not have a minimum length of 12
2021-11-01T04:26:24.1046228Z ##[error]        PasswordBox 'uploadedCustomTrustKeyStorePassPhrase' regex does not have a minimum length of 12
2021-11-01T04:26:24.1070501Z ##[error]        PasswordBox 'appGatewaySSLCertPassword' regex does not have a minimum length of 12
2021-11-01T04:26:24.1116100Z ##[error]        PasswordBox 'dbPassword' regex does not have a minimum length of 12
2021-11-01T04:26:24.1128718Z 
2021-11-01T04:26:24.1249287Z     [-] Password Textboxes Must Be Used For Password Parameters (279 ms) 
2021-11-01T04:26:24.1392548Z ##[error]        PasswordBox controls must use secureString or secureObject parameter types.  The Main template parameter 'dbPassword' is a 'string'
2021-11-01T04:26:24.1394787Z 
2021-11-01T04:26:24.1415313Z     [?] Textboxes Are Well Formed (363 ms) 
2021-11-01T04:26:24.1417036Z ##[warning]        TextBox 'userProvidedImagePath' regex does not have a length constraint.
2021-11-01T04:26:24.1427640Z ##[warning]        TextBox 'ocrSSOUserName' regex does not have a length constraint.
2021-11-01T04:26:24.1429182Z ##[warning]        TextBox 'fromOracleImage' regex does not have a length constraint.
2021-11-01T04:26:24.1434672Z ##[warning]        TextBox 'appReplicas' regex does not have a length constraint.
2021-11-01T04:26:24.1436431Z ##[warning]        TextBox 'keyVaultResourceGroup' regex does not have a length constraint.
2021-11-01T04:26:24.1442244Z ##[warning]        TextBox '' regex does not have a length constraint.
2021-11-01T04:26:24.1443588Z ##[warning]        TextBox 'keyVaultResourceGroup' regex does not have a length constraint.
2021-11-01T04:26:24.1448501Z ##[warning]        TextBox 'dnsZoneResourceGroup' regex does not have a length constraint.
2021-11-01T04:26:24.1455482Z ##[warning]        TextBox 'dsConnectionURL' regex does not have a length constraint.
2021-11-01T04:26:24.1465600Z ##[warning]        TextBox 'dsConnectionURL2' regex does not have a length constraint.
2021-11-01T04:26:24.1474179Z ##[warning]        TextBox 'dbTestTableName' regex does not have a length constraint.
2021-11-01T04:26:24.1480754Z 
2021-11-01T04:26:24.1488866Z     [-] Tooltips Should Be Present (383 ms) 
2021-11-01T04:26:24.1500645Z ##[error]        Element missing tooltip: enableAdminT3Tunneling
2021-11-01T04:26:24.1504227Z ##[error]        Element missing tooltip: enableClusterT3Tunneling
2021-11-01T04:26:24.1515645Z ##[error]        Element missing tooltip: nodeVMSizeSelector
2021-11-01T04:26:24.1523223Z ##[error]        Element missing tooltip: enableAzureMonitoring
2021-11-01T04:26:24.1531877Z ##[error]        Element missing tooltip: enableAzureFileShare
2021-11-01T04:26:24.1541744Z ##[error]        Element missing tooltip: validateApplications
2021-11-01T04:26:24.1546672Z ##[error]        Element missing tooltip: enableInternalLB
2021-11-01T04:26:24.1573243Z ##[error]        Element missing tooltip: lbSVC
2021-11-01T04:26:24.1682209Z ##[error]        Element missing tooltip: 
2021-11-01T04:26:24.1698696Z ##[error]        Element missing tooltip: dropDownTargets
2021-11-01T04:26:24.1745533Z ##[error]        Element missing tooltip: 
2021-11-01T04:26:24.1908237Z ##[error]        Element missing tooltip: enableCookieBasedAffinity
2021-11-01T04:26:24.1922030Z 
2021-11-01T04:26:24.1923148Z     [+] Usernames Should Not Have A Default (327 ms)
2021-11-01T04:26:24.1935072Z     [+] Validations Must Have Message (321 ms)
2021-11-01T04:26:24.1945990Z     [+] VMSizes Must Match Template (293 ms)
2021-11-01T04:26:24.1951524Z Validating 20210620-wls-on-aks-20210620-wls-on-aks\mainTemplate.json
2021-11-01T04:26:24.1961452Z   deploymentTemplate
2021-11-01T04:26:24.1965901Z     [+] adminUsername Should Not Be A Literal (1022 ms)
2021-11-01T04:26:24.1981835Z     [+] apiVersions Should Be Recent (960 ms)
2021-11-01T04:26:24.1987296Z     [?] artifacts parameter (15 ms) 
2021-11-01T04:26:24.1999809Z ##[warning]        ENV:SAMPLE_NAME is empty - using placeholder for manual verification: 100-blank-template
2021-11-01T04:26:24.2000674Z 
2021-11-01T04:26:24.2010088Z     [+] CommandToExecute Must Use ProtectedSettings For Secrets (978 ms)
2021-11-01T04:26:24.2015108Z     [+] DependsOn Best Practices (899 ms)
2021-11-01T04:26:24.2025104Z     [+] Deployment Resources Must Not Be Debug (894 ms)
2021-11-01T04:26:24.2030317Z     [+] DeploymentTemplate Must Not Contain Hardcoded Uri (74 ms)
2021-11-01T04:26:24.2040568Z     [+] DeploymentTemplate Schema Is Correct (6 ms)
2021-11-01T04:26:24.2046000Z     [+] Dynamic Variable References Should Not Use Concat (12 ms)
2021-11-01T04:26:24.2056130Z     [-] IDs Should Be Derived From ResourceIDs (1052 ms) 
2021-11-01T04:26:24.2061238Z ##[error]        Property: "const_identityId" must use one of the following expressions for an resourceId property:
2021-11-01T04:26:24.2071336Z             extensionResourceId,resourceId,subscriptionResourceId,tenantResourceId,if,parameters,reference,variables,subscription,guid
2021-11-01T04:26:24.2076958Z ##[error]        .variables.const_identityId not found
2021-11-01T04:26:24.2189851Z ##[error]        .variables.ref_appGatewaySubnet not found
2021-11-01T04:26:24.2191423Z ##[error]        .variables.ref_frontendIPConfiguration not found
2021-11-01T04:26:24.2192434Z ##[error]        .variables.ref_frontendHTTPPort not found
2021-11-01T04:26:24.2193256Z ##[error]        .variables.ref_httpListener not found
2021-11-01T04:26:24.2194709Z ##[error]        .variables.ref_backendAddressPool not found
2021-11-01T04:26:24.2195748Z ##[error]        .variables.ref_backendHttpSettings not found
2021-11-01T04:26:24.2196272Z 
2021-11-01T04:26:24.2197005Z     [-] Location Should Not Be Hardcoded (123 ms) 
2021-11-01T04:26:24.2197857Z ##[error]        The defaultValue of the location parameter in the main template must not be a specific location. 
2021-11-01T04:26:24.2202674Z                          The default value must be [resourceGroup().location], [deployment().location] or 'global'. It is "eastus"
2021-11-01T04:26:24.2215806Z ##[error]        mainTemplate.json must use the location parameter, not resourceGroup().location or deployment().location (except when used as a default value in the main template)
2021-11-01T04:26:24.2216904Z 
2021-11-01T04:26:24.2226659Z     [+] ManagedIdentityExtension must not be used (21 ms)
2021-11-01T04:26:24.2231968Z     [+] Min And Max Value Are Numbers (9 ms)
2021-11-01T04:26:24.2272412Z     [+] Outputs Must Not Contain Secrets (29 ms)
2021-11-01T04:26:24.2285468Z     [+] Parameters Must Be Referenced (2057 ms)
2021-11-01T04:26:24.2302675Z     [+] providers apiVersions Is Not Permitted (17 ms)
2021-11-01T04:26:24.2308716Z     [+] ResourceIds should not contain (10 ms)
2021-11-01T04:26:24.2344257Z     [+] Resources Should Have Location (11 ms)
2021-11-01T04:26:24.2357077Z     [+] Resources Should Not Be Ambiguous (15 ms)
2021-11-01T04:26:24.2362360Z     [+] Secure String Parameters Cannot Have Default (9 ms)
2021-11-01T04:26:24.2374161Z     [-] Template Should Not Contain Blanks (1110 ms) 
2021-11-01T04:26:24.2381006Z ##[error]        Empty property:  {} found on line: 2446 Index:118733
2021-11-01T04:26:24.2390581Z ##[error]        Empty property:  {} found on line: 2496 Index:121449
2021-11-01T04:26:24.2395134Z ##[error]        Empty property:  {} found on line: 4054 Index:190904
2021-11-01T04:26:24.2404670Z ##[error]        Empty property:  {} found on line: 4104 Index:193620
2021-11-01T04:26:24.2413421Z ##[error]        Empty property:  [] found on line: 2690 Index:129444
2021-11-01T04:26:24.2421472Z ##[error]        Empty property:  [] found on line: 2691 Index:129486
2021-11-01T04:26:24.2429217Z ##[error]        Empty property:  [] found on line: 4298 Index:201615
2021-11-01T04:26:24.2437592Z ##[error]        Empty property:  [] found on line: 4299 Index:201657
2021-11-01T04:26:24.2445625Z ##[error]        Empty property:  [] found on line: 6082 Index:286631
2021-11-01T04:26:24.2454159Z ##[error]        Empty property:  [] found on line: 6087 Index:286861
2021-11-01T04:26:24.2462182Z ##[error]        Empty property:  [] found on line: 6088 Index:286926
2021-11-01T04:26:24.2470516Z ##[error]        Empty property:  [] found on line: 6182 Index:291242
2021-11-01T04:26:24.2474415Z 
2021-11-01T04:26:24.2484572Z     [+] Variables Must Be Referenced (54 ms)
2021-11-01T04:26:24.2493144Z     [+] Virtual Machines Should Not Be Preview (1041 ms)
2021-11-01T04:26:24.2502016Z     [+] VM Images Should Use Latest Version (5 ms)
2021-11-01T04:26:24.2510650Z     [+] VM Size Should Be A Parameter (876 ms)
2021-11-01T04:26:24.2514780Z 
2021-11-01T04:26:24.3444029Z ##[error]PowerShell exited with code '1'.
2021-11-01T04:26:24.3870974Z ##[section]Finishing: Run Best Practice Tests

Additional text in Oracle wlazu Getting Started section

Consider this text from Get Started with Oracle WebLogic Server on Microsoft Azure IaaS:

The offers described in this document empower you to start your business applications quickly by automatically provisioning the virtual network, storage, and Linux resources, installing Oracle WebLogic Server, setting up security with a network security group, load balancing with Azure Application Gateway, enabling authentication with Azure Active Directory, and easing the Database connectivity.

Reza requests we should also mention support for ELK and Coherence. Therefore, I suggest the text read as follows instead.

The offers described in this document empower you to start your business applications quickly by automatically provisioning the virtual network, storage, and Linux resources, installing Oracle WebLogic Server, setting up security with a network security group, load balancing with Azure Application Gateway, enabling authentication with Azure Active Directory, and easing connectivity with databases. The offers also support HTTP session caching with Oracle Coherence and distributed cloud-scale logging with Elastic Stack.

Test run

Test run is successful only on main

Oracle WebLogic Server Cluster deployment failed

Problem description

Failed to deploy Oracle WebLogic Server Cluster from Azure portal, the deployment of embedded template clusterLinkedTemplate failed with the following error messages:

{
  "code": "DeploymentFailed",
  "message": "At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/DeployOperations for usage details.",
  "details": [
    {
      "code": "VMExtensionProvisioningError",
      "message": "VM has reported a failure when processing extension 'newuserscript'. Error message: \"Enable failed: processing file downloads failed: failed to download file[1]: failed to download file: unexpected status code: actual=404 expected=200\"\r\n\r\nMore information on troubleshooting is available at https://aka.ms/VMExtensionCSELinuxTroubleshoot "
    },
    {
      "code": "VMExtensionProvisioningError",
      "message": "VM has reported a failure when processing extension 'newuserscript'. Error message: \"Enable failed: processing file downloads failed: failed to download file[1]: failed to download file: unexpected status code: actual=404 expected=200\"\r\n\r\nMore information on troubleshooting is available at https://aka.ms/VMExtensionCSELinuxTroubleshoot "
    }
  ]
}

How to reproduce

Follow steps below to reproduce the issue:

  1. Open Oracle WebLogic Server Cluster offer.
  2. In "Basics" page: Fill in value for the required field(s). Click "Review + Create". Click "Create".
  3. Wait until the deployment of embedded template clusterLinkedTemplate failed.

Potential RCA

The clusterTemplate will look for some files from ../../../../../utilities/custom-hostname-verifier/, which seems to depend on the recent changes of parent pom com.microsoft.azure.iaas:azure-javaee-iaas-parent:

Specifically, the dependent parent pom com.microsoft.azure.iaas:azure-javaee-iaas-parent has been updated to 1.0.15 in order to add utilities directory from WebLogic offers, see PR-24. However, the old version 1.0.13 and its commit hash 13fe6ec487024eb61355d661ab5700ae90cb0a8f are NOT updated accordingly:

It looks like all upstream WebLogic offers that're impacted by the PR-24 should be checked, verified and updated appropriately.

WLS on AKS: Support T3 tunneling

Hello @rjeberhard @mriccell @jacobt123 @edburns I am working on creating a custom T3 channel for the WLS cluster on AKS. I have 2 problems regarding to exposing the T3 channel for public traffic. It would be great to have your suggestions.

Firstly, I would like to list what current offer supports.
The offer only set up default channel for WLS cluster. Also expose public access point to the default channels.

Default channels

  • Admin server
    • Default port: 7001
    • Level 4 traffic routing(TCP, T3): set up Azure load balance service routing to admin server default channel.
    • Level 7 traffic routing(HTTP, HTTPS): set up Azure Application Ingress routing to admin server default channel, with path /console*
  • Cluster
    • Default port: 8001
    • Level 4 traffic routing(TCP, T3): set up Azure load balance service routing to cluster default channel.
    • Level 7 traffic routing(HTTP, HTTPS): set up Azure Application Ingress routing to cluster default channel, with path /

Networking is configurable, customer can set up Azure Load Balancer Service (for L4 traffic) or Azure Application Gateway Ingress (for L7 traffic), or both of them based on their requirements.

My 1st question is how customer use T3 channel? Could you share more customer usage?

Per my understanding, customer uses default/t3 for the following purposes. Please correct me if I am wrong :)
Customer may use the T3 channel for:

  • WLST access
  • External JMS, EJB connection

Customer may use the default channel for:

  • Admin console access
  • Cluster application access

My 2th question is if we set up T3 channel with HTTP enabled, do we expose both channels for public traffic (default + T3Channel)?

My proposal is that, if the customer do not set up T3 channel, then expose the default channel for public access. If T3 channel is enabled, then expose the T3 channel for public access.

Structure looks like

T3 Channel is not set up

  • Admin server
    • Default port: 7001
    • Level 4 traffic routing(TCP, T3): set up Azure load balance service routing to admin server default channel.
    • Level 7 traffic routing(HTTP, HTTPS): set up Azure Application Ingress routing to admin server default channel, with path /console*
  • Cluster
    • Default port: 8001
    • Level 4 traffic routing(TCP, T3): set up Azure load balance service routing to cluster default channel.
    • Level 7 traffic routing(HTTP, HTTPS): set up Azure Application Ingress routing to cluster default channel, with path /

T3 channel is setup

  • Admin server
    • Default port: 7001
    • T3 port: 7005
    • Level 4 traffic routing(TCP, T3), allow customer to select the following options, they can choose both.
      • set up Azure load balance service routing to admin server with default channel.
      • set up Azure load balance service routing to admin server with t3 channel.
    • Level 7 traffic routing(HTTP, HTTPS): set up Azure Application Ingress routing to admin server default channel (port 7001), with path /console*, will not create ingress for t3 channel.
  • Cluster
    • Default port: 8001
    • T3 port: 8011
    • Level 4 traffic routing(TCP, T3): allow customer to select the following options, they can choose both.
      • set up Azure load balance service routing to admin server with default channel.
      • set up Azure load balance service routing to admin server with t3 channel.
    • Level 7 traffic routing(HTTP, HTTPS): set up Azure Application Ingress routing to cluster default channel (port 8001), with path /, will not create ingress service for t3 channel.

We might enhance the offer to allow customizing the ports in the future.

Apply Jianguo's version technique to all offers

Consider this command output

find . -name createUiDefinition.json -exec grep version {} \; -print
    "version": "0.1.2-preview",
                            "text": "Template version ${project.version}"
                        "visible": "[bool('${template.version.visible}')]"
./arm-oraclelinux-wls/src/main/arm/createUiDefinition.json
    "version": "0.1.2-preview",
                            "text": "Template version ${project.version}"
                        "visible": "[bool('${template.version.visible}')]"
./arm-oraclelinux-wls-admin/src/main/arm/createUiDefinition.json
    "version": "0.1.2-preview",
                    "text": "Template version ${project.version}"
                "visible": "[bool('${template.version.visible}')]"
./arm-oraclelinux-wls-dynamic-cluster/arm-oraclelinux-wls-dynamic-cluster/src/main/arm/createUiDefinition.json
    "version": "0.1.2-preview",
                            "text": "Template version ${project.version}"
                        "visible": "[bool('${template.version.visible}')]"
./arm-oraclelinux-wls-cluster/arm-oraclelinux-wls-cluster/src/main/arm/createUiDefinition.json

This shows the query string version technique is not being applied across the board. This issue requests a PR to apply this technique across the board.

Additional follow up for failed certification: const_identityId

Consider this failure message:

##[error]        Property: "const_identityId" must use one of the following expressions for an resourceId property:
            extensionResourceId,resourceId,subscriptionResourceId,tenantResourceId,if,parameters,reference,variables,subscription,guid

I think this is related to the "use idiomatic bicep" comment we heard from the Bicep team. I'm going to ask for an exception for this now, but we do need to fix it.

Python error in `checkApplicationStatus.py': `TypeError: cannot concatenate 'str' and 'int' objects`

{
    "code": "DeploymentScriptError",
    "message": "Unable to use a TTY - input is not a terminal or the right kind of file"
},
{
    "code": "DeploymentScriptError",
    "message": "Traceback (most recent call last):"
},
{
    "code": "DeploymentScriptError",
    "message": "File \"/tmp/checkApplicationStatus.py\", line 58, in <module>"
},
{
    "code": "DeploymentScriptError",
    "message": "print(\"Summary: number of inactive application:\" + inactiveApp + '.')"
},
{
    "code": "DeploymentScriptError",
    "message": "TypeError: cannot concatenate 'str' and 'int' objects"
},

This was apparently introduced by #43.

Update description for "Password for WebLogic Deploy Tooling runtime encrytion [sic]"

Consider this text in the documentation:

Password for WebLogic Deploy Tooling runtime encrytion The deployment uses Weblogic Deploy Tooling, including the capability to encrypt the model. This password is used for that encrption. For more information, see Encrypt Model Tool and the WebLogic Deploy Tooling documentation.

@mriccell asked:

  • Is this the encryption secret to encrypt the domain in MII
  • If that is the case the description is inaccurate
  • It is the Encryption Secret the Operator uses to encrypt and secure the domain in MII domain Home Source Type.

I propose changing the text to read:

The deployment uses the encryption feature of the Operator, including the capability to encrypt the domain. This password is used for that encryption. For more information see Encryption.

Issue deploying OIG on AKS

ISSUE
Setting up on AKS using Azure Storage Account / Fileshare "NFS" receive the following error

MountVolume.SetUp failed for volume "rcu-credentials-volume" : object "oigns"/"oig-rcu-credentials" not registered
MountVolume.SetUp failed for volume "create-fmw-infra-sample-domain-job-cm-volume" : object "oigns"/"governancedomain-create-fmw-infra-sample-domain-job-cm" not registered
MountVolume.SetUp failed for volume "fmw-infra-credentials-volume" : object "oigns"/"oig-domain-credentials" not registered

Files are being created on NFS Fileshare.
image

image

Input parameters being used
export version="create-weblogic-sample-domain-inputs-v1"
export adminPort="7001"
export adminServerName="AdminServer"
export domainUID="governancedomain"
export domainHome="/u01/oracle/user_projects/domains/governancedomain"
export serverStartPolicy="IF_NEEDED"
export clusterName="oim_cluster"
export configuredManagedServerCount="2"
export initialManagedServerReplicas="2"
export managedServerNameBase="oim_server"
export managedServerPort="14000"
export image="/oig:12.2.1.4-jdk8-ol7-220420.0828"
export imagePullPolicy="Always"
export imagePullSecretName="orclcred"
export productionModeEnabled="true"
export weblogicCredentialsSecretName="oig-domain-credentials"
export includeServerOutInPodLog="true"
export logHome="/u01/oracle/user_projects/domains/logs/oimcluster"
export t3ChannelPort="30012"
export exposeAdminT3Channel="false"
export adminNodePort="30701"
export exposeAdminNodePort="true"
export namespace="oigns"
javaOptions=-Dweblogic.StdoutDebugEnabled=false
export persistentVolumeClaimName="governancedomain-domain-pvc"
export domainPVMountPath="/u01/oracle/user_projects"
export createDomainScriptsMountPath="/u01/weblogic"
export createDomainScriptName="create-domain-job.sh"
export createDomainFilesDir="wlst"
export rcuSchemaPrefix="IGDEDG"
export rcuDatabaseURL=":1521/orclpdb1"
export rcuCredentialsSecret="oig-rcu-credentials"
export frontEndHost=""
export frontEndPort="443"

Normal Scheduled 44m default-scheduler Successfully assigned oigns/governancedomain-create-fmw-infra-sample-domain-job-b5sxp to aks-<>-19717952-vmss00000m
Normal Pulling 44m kubelet Pulling image "<>.azurecr.io/oig:12.2.1.4-jdk8-ol7-220420.0828"
Normal Pulled 44m kubelet Successfully pulled image "<>.azurecr.io/oig:12.2.1.4-jdk8-ol7-220420.0828" in 662.110444ms
Normal Created 44m kubelet Created container create-fmw-infra-sample-domain-job
Normal Started 44m kubelet Started container create-fmw-infra-sample-domain-job
Warning FailedMount 38m (x2 over 38m) kubelet MountVolume.SetUp failed for volume "rcu-credentials-volume" : object "oigns"/"oig-rcu-credentials" not registered
Warning FailedMount 38m (x2 over 38m) kubelet MountVolume.SetUp failed for volume "create-fmw-infra-sample-domain-job-cm-volume" : object "oigns"/"governancedomain-create-fmw-infra-sample-domain-job-cm" not registered
Warning FailedMount 38m (x2 over 38m) kubelet MountVolume.SetUp failed for volume "fmw-infra-credentials-volume" : object "oigns"/"oig-domain-credentials" not registered

GitHub Actions hygiene 2021-12

  • Ensure all actions are invocable with repository_dispatch.
  • Ensure all actions have sufficiently distinct types so that they only run when desired.
  • Ensure all actions that run integration tests have integration-test-all type.

Tighten run triggers for workflows

Presently all of our workflows will run whenever any trigger is sent via cURL. This should be tightened to allow running only specific workflows.

Additional follow up for failed certification: empty properties

Consider these failures:

##[error]        Empty property:  {} found on line: 2446 Index:118733
##[error]        Empty property:  {} found on line: 2496 Index:121449
##[error]        Empty property:  {} found on line: 4054 Index:190904
##[error]        Empty property:  {} found on line: 4104 Index:193620
##[error]        Empty property:  [] found on line: 2690 Index:129444
##[error]        Empty property:  [] found on line: 2691 Index:129486
##[error]        Empty property:  [] found on line: 4298 Index:201615
##[error]        Empty property:  [] found on line: 4299 Index:201657
##[error]        Empty property:  [] found on line: 6082 Index:286631
##[error]        Empty property:  [] found on line: 6087 Index:286861
##[error]        Empty property:  [] found on line: 6088 Index:286926
##[error]        Empty property:  [] found on line: 6182 Index:291242

Follow up with Bicep team for how to avoid generating these empty properties.

Application gateway can't be accessed after deployment

Problem description

After a successful deployment of WLS cluster, user can't access Azure Application Gateway deployed along with the cluster:

image

How to reproduce

Follow steps below to reproduce the issue:

  1. Open Oracle WebLogic Server Cluster offer
  2. In "Basics" page: Fill in value for the required fields. Click "Next".
  3. In "TLS/SSL Configuration" page: Click "Next".
  4. In "Azure Application Gateway" page:
    1. Select "Yes" for "Connect to Azure Application Gateway?"
    2. Select "Generate a self-signed certificate" for "Select desired TLS/SSL certificate option"
    3. Click "Add" under section "User assigned managed identity" > Select a user-assigned managed identity > Click "Add"
  5. Click "Review + Create"
  6. Click "Create"
  7. Wait until the deployment completes successfully.
  8. Click "Outputs" of the deployment
  9. Copy value of property "appGatewayURL" and open it in the browser. You will see error message "502 Bad Gateway" displayed.

Additional follow up for failed certification: variables not found

Consider these failures:

##[error]        .variables.const_identityId not found
##[error]        .variables.ref_appGatewaySubnet not found
##[error]        .variables.ref_frontendIPConfiguration not found
##[error]        .variables.ref_frontendHTTPPort not found
##[error]        .variables.ref_httpListener not found
##[error]        .variables.ref_backendAddressPool not found
##[error]        .variables.ref_backendHttpSettings not found

We need to follow up with the Bicep team about these failures.

Support istio integration in wls on aks offer

weblogic operator supports istio integration, see https://oracle.github.io/weblogic-kubernetes-operator/userguide/istio/istio/

From the document, there are several changes to enable istio:

  • install istio in aks
  • enable istio-injection in the operator namespace and domain namespace
  • specify istio configuration in domain yaml
     configuration:
     istio:
       enabled: true
       readinessPort: 8888
       replicationChannelPort: 4564
       localhostBindingsEnabled: false
    

It is easy to introduce above changes to wls offer, and provide the great service mech feature for customer.

WLS on VMs arm-ttk violations

I ran the arm-ttk against the WLS on VMs offers and ran into these violations.

    [-] URIs Should Be Properly Constructed (303 ms)
    [-] apiVersions Should Be Recent (99 ms)
    [-] URIs Should Be Properly Constructed (130 ms)
    [-] URIs Should Be Properly Constructed (184 ms)
    [-] URIs Should Be Properly Constructed (449 ms)
    [-] apiVersions Should Be Recent (44 ms)
    [-] Password params must be secure (1 ms)
    [-] apiVersions Should Be Recent (59 ms)
    [-] URIs Should Be Properly Constructed (156 ms)
    [-] URIs Should Be Properly Constructed (155 ms)
    [-] URIs Should Be Properly Constructed (98 ms)
    [-] URIs Should Be Properly Constructed (447 ms)
    [-] apiVersions Should Be Recent (81 ms)
    [-] URIs Should Be Properly Constructed (135 ms)
    [-] apiVersions Should Be Recent (45 ms)
    [-] Password params must be secure (1 ms)
    [-] apiVersions Should Be Recent (52 ms)

The complete list of violations is in this attached build output.
message.txt
These violations should be fixed before the next round of publishing.

WLS on VMs: cannot load driver class org.postgresql.Driver for datasource

An error said cannot load driver class org.postgresql.Driver for datasource with the latest image.
The image was updated on 10/28
image

Detail errors: see https://github.com/galiacheng/weblogic-azure/runs/4074900902?check_suite_focus=true

ERROR: ***"status":"Failed","error":***"code":"DeploymentFailed","message":"At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/DeployOperations for usage details.","details":[***"code":"Conflict","message":"***\r\n  \"status\": \"Failed\",\r\n  \"error\": ***\r\n    \"code\": \"ResourceDeploymentFailure\",\r\n    \"message\": \"The resource operation completed with terminal provisioning state 'Failed'.\",\r\n    \"details\": [\r\n      ***\r\n        \"code\": \"VMExtensionProvisioningError\",\r\n        \"message\": \"VM has reported a failure when processing extension 'newuserscript'. Error message: \\\"Enable failed: failed to execute command: command terminated with exit status=1\\n[stdout]\\nCreating JDBC data source with name jdbc/WebLogicDB\\n\\nInitializing WebLogic Scripting Tool (WLST) ...\\n\\nWelcome to WebLogic Server Administration Scripting Shell\\n\\nType help() for help on available commands\\n\\nConnecting to t3://adminServerVM:7005 with userid weblogic ...\\nSuccessfully connected to Admin Server \\\"admin\\\" that belongs to domain \\\"adminDomain\\\".\\n\\nWarning: An insecure protocol was used to connect to the server. \\nTo ensure on-the-wire security, the SSL port or Admin port should be used instead.\\n\\nEdit session adminServerVM does not exist. Creating.\\nLocation changed to edit tree. \\t \\nThis is a writable tree with DomainMBean as the root. \\t \\nTo make changes you will need to start an edit session via startEdit(). \\nFor more help, use help('edit').\\n\\nStarting an edit session ...\\nStarted edit session, be sure to save and activate your changes once you are done.\\nSaving all your changes ...\\nSaved all your changes successfully.\\nNo conflicts.\\n\\nPatch:\\n\\n\\nActivating all your changes, this may take a while ... \\nThe edit lock associated with this edit session is released once the activation is completed.\\nThis Exception occurred at Tue Nov 02 01:38:23 UTC 2021.\\nweblogic.application.ModuleException: weblogic.common.resourcepool.ResourceSystemException: Cannot load driver class org.postgresql.Driver for datasource 'jdbc/WebLogicDB'.\\nNo stack trace available.\\nDiscarded all your changes successfully.\\nEdit session is cancelled successfully.\\nCurrent edit tree is being removed; redirecting WLST cursor location to the config runtime tree.\\n\\nException occurs during DB configuration, please check.\\n\\n[stderr]\\n.StateMachineDriver.nextState(StateMachineDriver.java:45)\\n\\tat weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:241)\\n\\tat weblogic.application.internal.SingleModuleDeployment.prepare(SingleModuleDeployment.java:52)\\n\\tat weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:158)\\n\\tat weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:65)\\n\\tat weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:229)\\n\\tat weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:103)\\n\\tat weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:242)\\n\\tat weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:800)\\n\\tat weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1352)\\n\\tat weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:238)\\n\\tat weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:177)\\n\\tat weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:186)\\n\\tat weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.prepare(DeploymentReceiverCallbackDeliverer.java:42)\\n\\tat weblogic.deploy.service.internal.statemachines.targetserver.AwaitingContextUpdateCompletion.callDeploymentReceivers(AwaitingContextUpdateCompletion.java:170)\\n\\tat weblogic.deploy.service.internal.statemachines.targetserver.AwaitingContextUpdateCompletion.handleContextUpdateSuccess(AwaitingContextUpdateCompletion.java:66)\\n\\tat weblogic.deploy.service.internal.statemachines.targetserver.AwaitingContextUpdateCompletion.contextUpdated(AwaitingContextUpdateCompletion.java:32)\\n\\tat weblogic.deploy.service.internal.targetserver.TargetDeploymentService.notifyContextUpdated(TargetDeploymentService.java:233)\\n\\tat weblogic.deploy.service.internal.DeploymentService$1.run(DeploymentService.java:213)\\n\\tat weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:678)\\n\\tat weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352)\\n\\tat weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337)\\n\\tat weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57)\\n\\tat weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)\\n\\tat weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:652)\\n\\tat weblogic.work.ExecuteThread.execute(ExecuteThread.java:420)\\n\\tat weblogic.work.ExecuteThread.run(ExecuteThread.java:360)\\nCaused by: weblogic.common.resourcepool.ResourceSystemException: Cannot load driver class org.postgresql.Driver for datasource 'jdbc/WebLogicDB'.\\n\\tat weblogic.jdbc.common.internal.JDBCUtil.parseException(JDBCUtil.java:328)\\n\\tat weblogic.jdbc.common.internal.ConnectionEnvFactory.loadDriver(ConnectionEnvFactory.java:70)\\n\\tat weblogic.jdbc.common.internal.ConnectionEnvFactory.<init>(ConnectionEnvFactory.java:116)\\n\\tat weblogic.jdbc.common.internal.ConnectionPool.initPooledResourceFactory(ConnectionPool.java:1359)\\n\\tat weblogic.common.resourcepool.ResourcePoolImpl.start(ResourcePoolImpl.java:236)\\n\\tat weblogic.jdbc.common.internal.ConnectionPool.doStart(ConnectionPool.java:1949)\\n\\tat weblogic.jdbc.common.internal.ConnectionPool.start(ConnectionPool.java:268)\\n\\tat weblogic.jdbc.common.internal.ConnectionPoolManager.createAndStartPool(ConnectionPoolManager.java:617)\\n\\tat weblogic.jdbc.common.internal.ConnectionPoolManager.createAndStartPool(ConnectionPoolManager.java:457)\\n\\tat weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:350)\\nProblem invoking WLST - Traceback (innermost last):\\n  File \\\"/u01/tmp/create_datasource.py\\\", line 36, in ?\\njdbc/WebLogicDB configuration failed\\n\\n\\\"\\r\\n\\r\\nMore information on troubleshooting is available at https://aka.ms/VMExtensionCSELinuxTroubleshoot \"\r\n      ***\r\n    ]\r\n  ***\r\n***"***]***
INFO: Command ran in 35.344 seconds (init: 0.144, invoke: 35.200)

We have to fix the base image and ship with the pre-enabled 3rd database drivers.

maven command failed in `arm-oraclelinux-wls-cluster-deletenode`

What happened

Maven command failed: mvn -Ptemplate-validation-tests clean install

What does it affect

This will cause pipeline Test Configured Cluster on VM fail

Exploration

The test cases all passed; however, it throws out error msg as below:

                                            [ERROR] Command execution failed.
org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
    at org.apache.commons.exec.DefaultExecutor.executeInternal (DefaultExecutor.java:404)
    at org.apache.commons.exec.DefaultExecutor.execute (DefaultExecutor.java:166)
    at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:804)
    at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:751)
    at org.codehaus.mojo.exec.ExecMojo.execute (ExecMojo.java:313)

Talked with @galiacheng and after adding logs near here, got error messages as follow:

ConvertFrom-Json: /home/zhengchang/workspace/zhengchang/arm-ttk/arm-ttk/Expand-AzTemplate.ps1:390:77
Line |
 390 |  … plateText | ConvertFrom-Json -ErrorAction Stop -ErrorVariable err } c …
     |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Conversion from JSON failed with error: After parsing a value
     | an unexpected character was encountered: |. Path
     | 'variables.const_outputCliCommands', line 73, position 440.

It could be a problem of arm-ttk, as they fixed a similar issue

What I'm currently doing

Walk around the issue by not running tests for arm-oraclelinux-wls-cluster-deletenode in Test Configured Cluster on VM pipeline.

Make it so "Terms of use" for all offers in Partner Center is plain text, not HTML

When a user deploys one of our offers from the Azure Marketplace, they are presented with a link to review the terms of use, as shown here.

image

Here is an example of such a link. Clicking this link shows the text provided in the Terms and conditions text in the Partner Center, as shown here.

image

As you can see, this text should not be HTML.

To fix this issue, the assignee must go through each of the following offers in Partner Center and remove the HTML from the Terms and conditions text field and re-publish the offers.

Offer ids

  • 20191001-arm-oraclelinux-wls
  • 20191007-arm-oraclelinux-wls-cluster
  • 20191009-arm-oraclelinux-wls-admin
  • 20210620-wls-on-aks
  • 20191021-arm-oraclelinux-wls-dynamic-cluster
  • oraclelinux-wls-cluster

Create plan for closing down wls-eng repos

  • gh-pages
    • make it so microsoft docs that point to old repo are pointing to new repo instead
  • issue tracker
    • move over appropriate issues from old repo to this one
  • CI/CD
    • Ensure @jacobt123 has access to create and update secrets for use in GitHub Actions

Define mapping from GA registry to corresponding entries in CPU registry

GA tag name CPU Tag name
14.1.1.0-8 14.1.1.0-generic-jdk8-ol7
14.1.1.0-11 14.1.1.0-generic-jdk11-ol7
12.2.1.4 12.2.1.4-generic-jdk8-ol7
12.2.1.3 12.2.1.3-generic-jdk8-ol7
14.1.1.0-8-ol8 14.1.1.0-generic-jdk8-ol8
14.1.1.0-11-ol8 14.1.1.0-generic-jdk11-ol8
12.2.1.4-ol8 12.2.1.4-generic-jdk8-ol8
12.2.1.3-ol8 2.2.1.3-generic-jdk8-ol8

Incorrect whitespace observed for smb mount in `/etc/fstab`

The whitespace in /etc/fstab is used as delimiter to separate parameters specified for smb mount. An incorrect whitespace is observed in several files which will make the subsequent ,dir_mode=0777,file_mode=0777,serverino unrecognized after VM reboot, e.g., in https://github.com/oracle/weblogic-azure/blob/main/weblogic-azure-vm/arm-oraclelinux-wls-admin/src/main/scripts/setupAdminDomain.sh#L470:

sudo bash -c "echo \"//${storageAccountName}.file.core.windows.net/wlsshare $mountpointPath cifs nofail,vers=2.1,credentials=/etc/smbcredentials/${storageAccountName}.cred ,dir_mode=0777,file_mode=0777,serverino\" >> /etc/fstab"

This issue caused the intended directory/file permission 0777 for mounted /mnt/wlsshare lost after VM reboot.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.