Saturday, March 16, 2024

Weblogic k8s - create model image

 HOWTO

 

GitHub 

Steps to do 

  • Install WIT 
  • Prepare WDT model 
  • Create auxiliary image via WIT
  • Create domain  via kubectl

 

Weblogic Deploy Tool - discover domain

 HOWTO

GitHub

Install WDT 

 

dave@dave:/app$ tar xzvf weblogic-deploy.tar.gz 
weblogic-deploy/etc/logging.properties
weblogic-deploy/lib/python/compare_model.py
weblogic-deploy/lib/python/encrypt.py
weblogic-deploy/lib/python/update.py
weblogic-deploy/lib/python/deploy.py
weblogic-deploy/lib/python/create.py
weblogic-deploy/lib/python/extract_resource.py
weblogic-deploy/lib/python/discover.py
weblogic-deploy/lib/python/__init__.py
weblogic-deploy/lib/python/wlsdeploy/util/model_context.py
weblogic-deploy/lib/python/wlsdeploy/util/exit_code.py
weblogic-deploy/lib/python/wlsdeploy/util/weblogic_roles_helper.py
weblogic-deploy/lib/python/wlsdeploy/util/getcreds.py
weblogic-deploy/lib/python/wlsdeploy/util/model_config.py
weblogic-deploy/lib/python/wlsdeploy/util/unicode_helper.py
weblogic-deploy/lib/python/wlsdeploy/util/variables.py
weblogic-deploy/lib/python/wlsdeploy/util/cla_helper.py
weblogic-deploy/lib/python/wlsdeploy/util/validate_configuration.py
weblogic-deploy/lib/python/wlsdeploy/util/__init__.py
weblogic-deploy/lib/python/wlsdeploy/util/model.py
weblogic-deploy/lib/python/wlsdeploy/util/target_configuration_helper.py
weblogic-deploy/lib/python/wlsdeploy/util/string_utils.py
weblogic-deploy/lib/python/wlsdeploy/util/weblogic_helper.py
weblogic-deploy/lib/python/wlsdeploy/util/model_translator.py
weblogic-deploy/lib/python/wlsdeploy/util/target_configuration.py
weblogic-deploy/lib/python/wlsdeploy/util/cla_utils.py
weblogic-deploy/lib/python/wlsdeploy/util/model_helper.py
weblogic-deploy/lib/python/wlsdeploy/util/enum.py
weblogic-deploy/lib/python/wlsdeploy/util/tool_main.py
weblogic-deploy/lib/python/wlsdeploy/util/env_helper.py
weblogic-deploy/lib/python/wlsdeploy/util/path_utils.py
weblogic-deploy/lib/python/wlsdeploy/util/dictionary_utils.py
weblogic-deploy/lib/python/wlsdeploy/__init__.py
weblogic-deploy/lib/python/wlsdeploy/json/__init__.py
weblogic-deploy/lib/python/wlsdeploy/json/json_translator.py
weblogic-deploy/lib/python/wlsdeploy/yaml/__init__.py
weblogic-deploy/lib/python/wlsdeploy/yaml/yaml_translator.py
weblogic-deploy/lib/python/wlsdeploy/aliases/flattened_folder.py
weblogic-deploy/lib/python/wlsdeploy/aliases/wlst_modes.py
weblogic-deploy/lib/python/wlsdeploy/aliases/alias_entries.py
weblogic-deploy/lib/python/wlsdeploy/aliases/location_context.py
weblogic-deploy/lib/python/wlsdeploy/aliases/validation_codes.py
weblogic-deploy/lib/python/wlsdeploy/aliases/__init__.py
weblogic-deploy/lib/python/wlsdeploy/aliases/aliases.py
weblogic-deploy/lib/python/wlsdeploy/aliases/password_utils.py
weblogic-deploy/lib/python/wlsdeploy/aliases/alias_utils.py
weblogic-deploy/lib/python/wlsdeploy/aliases/alias_jvmargs.py
weblogic-deploy/lib/python/wlsdeploy/aliases/model_constants.py
weblogic-deploy/lib/python/wlsdeploy/aliases/alias_constants.py
weblogic-deploy/lib/python/wlsdeploy/exception/exception_types.py
weblogic-deploy/lib/python/wlsdeploy/exception/__init__.py
weblogic-deploy/lib/python/wlsdeploy/exception/exception_helper.py
weblogic-deploy/lib/python/wlsdeploy/logging/platform_logger.py
weblogic-deploy/lib/python/wlsdeploy/logging/__init__.py
weblogic-deploy/lib/python/wlsdeploy/logging/log_collector.py
weblogic-deploy/lib/python/wlsdeploy/tool/validate/validator.py
weblogic-deploy/lib/python/wlsdeploy/tool/validate/crd_sections_validator.py
weblogic-deploy/lib/python/wlsdeploy/tool/validate/__init__.py
weblogic-deploy/lib/python/wlsdeploy/tool/validate/content_validator.py
weblogic-deploy/lib/python/wlsdeploy/tool/validate/validation_utils.py
weblogic-deploy/lib/python/wlsdeploy/tool/discover/multi_tenant_discoverer.py
weblogic-deploy/lib/python/wlsdeploy/tool/discover/multi_tenant_resources_discoverer.py
weblogic-deploy/lib/python/wlsdeploy/tool/discover/coherence_resources_discoverer.py
weblogic-deploy/lib/python/wlsdeploy/tool/discover/discoverer.py
weblogic-deploy/lib/python/wlsdeploy/tool/discover/global_resources_discoverer.py
weblogic-deploy/lib/python/wlsdeploy/tool/discover/__init__.py
weblogic-deploy/lib/python/wlsdeploy/tool/discover/deployments_discoverer.py
weblogic-deploy/lib/python/wlsdeploy/tool/discover/jms_resources_discoverer.py
weblogic-deploy/lib/python/wlsdeploy/tool/discover/custom_folder_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/discover/multi_tenant_topology_discoverer.py
weblogic-deploy/lib/python/wlsdeploy/tool/discover/topology_discoverer.py
weblogic-deploy/lib/python/wlsdeploy/tool/discover/domain_info_discoverer.py
weblogic-deploy/lib/python/wlsdeploy/tool/discover/resources_discoverer.py
weblogic-deploy/lib/python/wlsdeploy/tool/discover/common_resources_discoverer.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/beaninfo_constants.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/results_file.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/filters/wko_filter.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/filters/__init__.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/filters/model_traverse.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/filters/wko_final_filter.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/targeting_types.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/attribute_setter.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/target_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/mbean_utils.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/targets/model_crd_folder.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/targets/__init__.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/targets/file_template_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/targets/crd_file_updater.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/targets/additional_output_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/targets/schema_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/targets/model_crd_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/saml2_security_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/topology_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/model_context_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/filter_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/__init__.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/archive_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/appmodule_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/default_authenticator_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/rcu_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/credential_map_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/credential_injector.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/string_output_stream.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/library_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/variable_injector.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/variable_injector_functions.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/k8s_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/wlst_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/util/topology_profiles.py
weblogic-deploy/lib/python/wlsdeploy/tool/prepare/__init__.py
weblogic-deploy/lib/python/wlsdeploy/tool/prepare/model_preparer.py
weblogic-deploy/lib/python/wlsdeploy/tool/deploy/jms_resources_deployer.py
weblogic-deploy/lib/python/wlsdeploy/tool/deploy/datasource_deployer.py
weblogic-deploy/lib/python/wlsdeploy/tool/deploy/deployer.py
weblogic-deploy/lib/python/wlsdeploy/tool/deploy/deployer_utils.py
weblogic-deploy/lib/python/wlsdeploy/tool/deploy/resources_deployer.py
weblogic-deploy/lib/python/wlsdeploy/tool/deploy/applications_deployer.py
weblogic-deploy/lib/python/wlsdeploy/tool/deploy/__init__.py
weblogic-deploy/lib/python/wlsdeploy/tool/deploy/multi_tenant_resources_deployer.py
weblogic-deploy/lib/python/wlsdeploy/tool/deploy/common_resources_deployer.py
weblogic-deploy/lib/python/wlsdeploy/tool/deploy/model_deployer.py
weblogic-deploy/lib/python/wlsdeploy/tool/deploy/log_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/deploy/odl_deployer.py
weblogic-deploy/lib/python/wlsdeploy/tool/deploy/wldf_resources_deployer.py
weblogic-deploy/lib/python/wlsdeploy/tool/deploy/coherence_resources_deployer.py
weblogic-deploy/lib/python/wlsdeploy/tool/deploy/topology_updater.py
weblogic-deploy/lib/python/wlsdeploy/tool/deploy/applications_version_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/__init__.py
weblogic-deploy/lib/python/wlsdeploy/tool/compare/model_comparer.py
weblogic-deploy/lib/python/wlsdeploy/tool/compare/__init__.py
weblogic-deploy/lib/python/wlsdeploy/tool/extract/__init__.py
weblogic-deploy/lib/python/wlsdeploy/tool/extract/domain_resource_extractor.py
weblogic-deploy/lib/python/wlsdeploy/tool/modelhelp/__init__.py
weblogic-deploy/lib/python/wlsdeploy/tool/modelhelp/model_help_utils.py
weblogic-deploy/lib/python/wlsdeploy/tool/modelhelp/model_crd_section_printer.py
weblogic-deploy/lib/python/wlsdeploy/tool/modelhelp/model_help_printer.py
weblogic-deploy/lib/python/wlsdeploy/tool/modelhelp/model_sample_printer.py
weblogic-deploy/lib/python/wlsdeploy/tool/encrypt/__init__.py
weblogic-deploy/lib/python/wlsdeploy/tool/encrypt/encryption_utils.py
weblogic-deploy/lib/python/wlsdeploy/tool/create/domain_typedef.py
weblogic-deploy/lib/python/wlsdeploy/tool/create/rcudbinfo_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/create/wlsroles_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/create/__init__.py
weblogic-deploy/lib/python/wlsdeploy/tool/create/security_provider_creator.py
weblogic-deploy/lib/python/wlsdeploy/tool/create/domain_creator.py
weblogic-deploy/lib/python/wlsdeploy/tool/create/custom_folder_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/create/ssl_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/create/creator.py
weblogic-deploy/lib/python/wlsdeploy/tool/create/atp_helper.py
weblogic-deploy/lib/python/wlsdeploy/tool/create/opss_helper.py
weblogic-deploy/lib/python/validate.py
weblogic-deploy/lib/python/model_help.py
weblogic-deploy/lib/python/variable_inject.py
weblogic-deploy/lib/python/prepare_model.py
weblogic-deploy/lib/typedefs/JRF.json
weblogic-deploy/lib/typedefs/JRF-Compact.json
weblogic-deploy/lib/typedefs/WLS.json
weblogic-deploy/lib/typedefs/RestrictedJRF.json
weblogic-deploy/lib/targets/vz/target.json
weblogic-deploy/lib/targets/vz/vz_filter.py
weblogic-deploy/lib/targets/wko4-pv/target.json
weblogic-deploy/lib/targets/wko4/target.json
weblogic-deploy/lib/targets/wko-pv/target.json
weblogic-deploy/lib/targets/vz-dii/target.json
weblogic-deploy/lib/targets/k8s/target.json
weblogic-deploy/lib/targets/k8s/k8s_operator_filter.py
weblogic-deploy/lib/targets/wko4-dii/target.json
weblogic-deploy/lib/targets/vz-pv/target.json
weblogic-deploy/lib/targets/wko-dii/target.json
weblogic-deploy/lib/targets/templates/wko-domain.yaml
weblogic-deploy/lib/targets/templates/vz-application-v1.yaml
weblogic-deploy/lib/targets/templates/wko-domain-v4.yaml
weblogic-deploy/lib/targets/wko/target.json
weblogic-deploy/lib/targets/wko/wko_operator_filter.py
weblogic-deploy/bin/discoverDomain.cmd
weblogic-deploy/bin/deployApps.cmd
weblogic-deploy/bin/extractDomainResource.cmd
weblogic-deploy/bin/injectVariables.cmd
weblogic-deploy/bin/prepareModel.cmd
weblogic-deploy/bin/updateDomain.cmd
weblogic-deploy/bin/validateModel.cmd
weblogic-deploy/bin/createDomain.cmd
weblogic-deploy/bin/modelHelp.cmd
weblogic-deploy/bin/shared.cmd
weblogic-deploy/bin/encryptModel.cmd
weblogic-deploy/bin/archiveHelper.cmd
weblogic-deploy/bin/compareModel.cmd
weblogic-deploy/bin/shared.sh
weblogic-deploy/bin/extractDomainResource.sh
weblogic-deploy/bin/prepareModel.sh
weblogic-deploy/bin/deployApps.sh
weblogic-deploy/bin/modelHelp.sh
weblogic-deploy/bin/encryptModel.sh
weblogic-deploy/bin/createDomain.sh
weblogic-deploy/bin/compareModel.sh
weblogic-deploy/bin/discoverDomain.sh
weblogic-deploy/bin/archiveHelper.sh
weblogic-deploy/bin/injectVariables.sh
weblogic-deploy/bin/updateDomain.sh
weblogic-deploy/bin/validateModel.sh
weblogic-deploy/lib/
weblogic-deploy/lib/injectors/
weblogic-deploy/lib/variable_keywords.json
weblogic-deploy/lib/tool.properties
weblogic-deploy/lib/injectors/host.json
weblogic-deploy/lib/injectors/target.json
weblogic-deploy/lib/injectors/url.json
weblogic-deploy/lib/injectors/port.json
weblogic-deploy/lib/injectors/credentials.json
weblogic-deploy/lib/injectors/topology.json
weblogic-deploy/samples/
weblogic-deploy/samples/model_variable_injector.json
weblogic-deploy/samples/custom_injector.json
weblogic-deploy/LICENSE.txt
weblogic-deploy/VERSION.txt
weblogic-deploy/lib/weblogic-deploy-core.jar
weblogic-deploy/lib/antlr4-runtime-4.9.3.jar
weblogic-deploy/lib/snakeyaml-2.2.jar
weblogic-deploy/lib/picocli-4.7.5.jar

Discover domain
dave@dave:/app/weblogic-deploy/bin$ ./discoverDomain.sh -oracle_home /app/weblogic -domain_home /app/domains/myDomain/ -archive_file /git/weblogic/wdt/DiscoveredMyDomain.zip -model_file /git/weblogic/wdt/DiscoveredMyDomain.yaml
JDK version is 11.0.21+9-LTS-193
JAVA_HOME = /usr/java/jdk-11
WLST_EXT_CLASSPATH = /app/weblogic-deploy/lib/weblogic-deploy-core.jar
CLASSPATH = /app/weblogic-deploy/lib/weblogic-deploy-core.jar
WLST_PROPERTIES = -Dcom.oracle.cie.script.throwException=true -Djava.util.logging.config.class=oracle.weblogic.deploy.logging.WLSDeployLoggingConfig 
/app/weblogic/oracle_common/common/bin/wlst.sh /app/weblogic-deploy/lib/python/discover.py -oracle_home /app/weblogic -domain_home /app/domains/myDomain/ -archive_file /git/weblogic/wdt/DiscoveredMyDomain.zip -model_file /git/weblogic/wdt/DiscoveredMyDomain.yaml

Initializing WebLogic Scripting Tool (WLST) ...

Jython 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.

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

####<Mar 16, 2024 6:35:46 PM> <INFO> <WebLogicDeployToolingVersion> <logVersionInfo> <WLSDPLY-01750> <The WebLogic Deploy Tooling discoverDomain version is 3.5.4:.43d3afb:Mar 14, 2024 11:55 UTC>
####<Mar 16, 2024 6:35:46 PM> <INFO> <WLSDeployLoggingConfig> <logLoggingDirectory> <WLSDPLY-01755> <The discoverDomain program will write its log to directory /app/weblogic-deploy/logs>
####<Mar 16, 2024 6:35:46 PM> <INFO> <DomainTypedef> <__init__> <WLSDPLY-12328> <Domain type WLS type definition file /app/weblogic-deploy/lib/typedefs/WLS.json version WLS_14 does not contain a postCreateRcuSchemasScript section>
####<Mar 16, 2024 6:35:46 PM> <INFO> <DomainTypedef> <__init__> <WLSDPLY-12321> <Domain type WLS type definition file /app/weblogic-deploy/lib/typedefs/WLS.json version WLS_14 does not contain a postCreateDomainScript section>
####<Mar 16, 2024 6:35:46 PM> <INFO> <DomainTypedef> <__init__> <WLSDPLY-12328> <Domain type WLS type definition file /app/weblogic-deploy/lib/typedefs/WLS.json version WLS_14 does not contain a postCreateRcuSchemasScript section>
####<Mar 16, 2024 6:35:46 PM> <INFO> <DomainTypedef> <__init__> <WLSDPLY-12321> <Domain type WLS type definition file /app/weblogic-deploy/lib/typedefs/WLS.json version WLS_14 does not contain a postCreateDomainScript section>
####<Mar 16, 2024 6:35:46 PM> <INFO> <ModelContext> <__copy_from_args> <WLSDPLY-01050> <WebLogic version for aliases is 14.1.1.0.0>
####<Mar 16, 2024 6:35:46 PM> <INFO> <discover> <main> <WLSDPLY-06024> <No variable file provided. Model passwords will contain the token '-- FIX ME --'>
####<Mar 16, 2024 6:35:49 PM> <INFO> <discover> <_get_domain_name> <WLSDPLY-06022> <Discover domain myDomain>
####<Mar 16, 2024 6:35:49 PM> <INFO> <TopologyDiscoverer> <discover> <WLSDPLY-06600> <Discovering domain model topology>
####<Mar 16, 2024 6:35:49 PM> <INFO> <Discoverer> <discover_domain_mbean> <WLSDPLY-06644> <Adding Domain Log>
####<Mar 16, 2024 6:35:49 PM> <INFO> <TopologyDiscoverer> <_get_nm_properties> <WLSDPLY-06627> <Discovering NM Properties>
####<Mar 16, 2024 6:35:50 PM> <INFO> <TopologyDiscoverer> <get_clusters> <WLSDPLY-06601> <Discovering 1 clusters>
####<Mar 16, 2024 6:35:50 PM> <INFO> <TopologyDiscoverer> <get_clusters> <WLSDPLY-06602> <Adding Cluster cluster1>
####<Mar 16, 2024 6:35:50 PM> <INFO> <TopologyDiscoverer> <get_servers> <WLSDPLY-06603> <Discovering 1 servers>
####<Mar 16, 2024 6:35:50 PM> <INFO> <TopologyDiscoverer> <get_servers> <WLSDPLY-06604> <Adding Server myadmin>
####<Mar 16, 2024 6:35:50 PM> <INFO> <TopologyDiscoverer> <get_server_templates> <WLSDPLY-06605> <Discovering 1 server templates>
####<Mar 16, 2024 6:35:50 PM> <INFO> <TopologyDiscoverer> <get_server_templates> <WLSDPLY-06606> <Adding cluster1-template Server Template>
####<Mar 16, 2024 6:35:51 PM> <INFO> <TopologyDiscoverer> <discover_security_configuration> <WLSDPLY-06622> <Adding Security Configuration>
####<Mar 16, 2024 6:35:52 PM> <INFO> <TopologyDiscoverer> <get_embedded_ldap_configuration> <WLSDPLY-06639> <Skipping Embedded LDAP Server Configuration>
####<Mar 16, 2024 6:35:52 PM> <INFO> <ResourcesDiscoverer> <discover> <WLSDPLY-06300> <Discovering domain model resources>
####<Mar 16, 2024 6:35:52 PM> <INFO> <DeploymentsDiscoverer> <discover> <WLSDPLY-06380> <Discovering domain model deployments>
####<Mar 16, 2024 6:35:52 PM> <INFO> <DeploymentsDiscoverer> <get_applications> <WLSDPLY-06391> <Discovering 1 Applications>
####<Mar 16, 2024 6:35:52 PM> <INFO> <DeploymentsDiscoverer> <get_applications> <WLSDPLY-06392> <Adding Application basicWebappEjb>
####<Mar 16, 2024 6:35:52 PM> <INFO> <DeploymentsDiscoverer> <add_application_to_archive> <WLSDPLY-06394> <Add application basicWebappEjb binary /u01/oracle/user_projects/domains/basicWebappEjb.war to archive>
####<Mar 16, 2024 6:35:52 PM> <WARNING> <DeploymentsDiscoverer> <_disconnect_target> <WLSDPLY-06395> <Cannot add application binary for application basicWebappEjb to archive file. The application was removed from target cluster1 : WLSDeployArchive /git/weblogic/wdt/DiscoveredMyDomain.zip unable to add file /u01/oracle/user_projects/domains/basicWebappEjb.war to the archive because the file does not exist>
####<Mar 16, 2024 6:35:52 PM> <INFO> <MultiTenantDiscoverer> <discover> <WLSDPLY-06700> <Discover Multi-tenant>
####<Mar 16, 2024 6:35:52 PM> <INFO> <MultiTenantTopologyDiscoverer> <discover> <WLSDPLY-06709> <Discover Multi-tenant Topology>
####<Mar 16, 2024 6:35:52 PM> <INFO> <MultiTenantResourcesDiscoverer> <discover> <WLSDPLY-06707> <Discover Multi-tenant Resources>
####<Mar 16, 2024 6:35:52 PM> <INFO> <filter_helper> <apply_filters> <WLSDPLY-20017> <No filter configuration file /app/weblogic-deploy/lib/model_filters.json>
####<Mar 16, 2024 6:35:52 PM> <INFO> <filter_helper> <apply_filters> <WLSDPLY-20016> <No filters of type discover found in filter configuration file /app/weblogic-deploy/lib/model_filters.json>
####<Mar 16, 2024 6:35:52 PM> <INFO> <variable_injector> <inject_variables_keyword_file> <WLSDPLY-19519> <No variables were inserted into the model during variable replacement>
####<Mar 16, 2024 6:35:52 PM> <INFO> <Validator> <__validate_model_file> <WLSDPLY-05002> <Performing validation in TOOL mode for WebLogic Server version 14.1.1.0.0 and WLST OFFLINE mode>
####<Mar 16, 2024 6:35:52 PM> <INFO> <Validator> <__validate_model_file> <WLSDPLY-05003> <Performing model validation on the /git/weblogic/wdt/DiscoveredMyDomain.yaml model file>
####<Mar 16, 2024 6:35:52 PM> <INFO> <Validator> <__validate_model_file> <WLSDPLY-05005> <Performing archive validation on the /git/weblogic/wdt/DiscoveredMyDomain.zip archive file>
####<Mar 16, 2024 6:35:52 PM> <INFO> <Validator> <__validate_model_section> <WLSDPLY-05008> <Validating the domainInfo section of the model file>
####<Mar 16, 2024 6:35:52 PM> <INFO> <Validator> <__validate_model_section> <WLSDPLY-05008> <Validating the topology section of the model file>
####<Mar 16, 2024 6:35:52 PM> <INFO> <Validator> <__validate_single_path_in_archive> <WLSDPLY-05031> <Attribute FileName in model location topology:/Log references a relative file location myDomain.log.  This makes the model subject to failure unless the tool invoked from the correct location to resolve the relative path to the file. It is recommended to use a path token if the absolute path is expected to change between systems.>
####<Mar 16, 2024 6:35:52 PM> <INFO> <Validator> <__validate_model_section> <WLSDPLY-05008> <Validating the resources section of the model file>
####<Mar 16, 2024 6:35:52 PM> <INFO> <Validator> <__validate_model_section> <WLSDPLY-05009> <Model file /git/weblogic/wdt/DiscoveredMyDomain.yaml does not contain a resources section, validation of resources was skipped.>
####<Mar 16, 2024 6:35:52 PM> <INFO> <Validator> <__validate_model_section> <WLSDPLY-05008> <Validating the appDeployments section of the model file>

Issue Log for discoverDomain version 3.5.4 running WebLogic version 14.1.1.0.0 offline mode:

WARNING Messages:

        1. WLSDPLY-06395: Cannot add application binary for application basicWebappEjb to archive file. The application was removed from target cluster1 : WLSDeployArchive /git/weblogic/wdt/DiscoveredMyDomain.zip unable to add file /u01/oracle/user_projects/domains/basicWebappEjb.war to the archive because the file does not exist

Total:   SEVERE :    0  WARNING :    1

discoverDomain.sh completed but with some issues (exit code = 1)

Created model file
$ cat  /git/weblogic/wdt/DiscoveredMyDomain.yaml 
# This model was created using the WebLogic Deploy Tooling 3.5.4 discoverDomain tool
# running in OFFLINE mode against a domain using WebLogic Server 14.1.1.0.0.
# 
domainInfo:
    AdminUserName: --FIX ME--
    AdminPassword: --FIX ME--
topology:
    Name: myDomain
    AdminServerName: myadmin
    Log:
        FileName: myDomain.log
    NMProperties:
        DomainsFile: /u01/oracle/user_projects/domains/myDomain/nodemanager/nodemanager.domains
        LogFile: /u01/oracle/user_projects/domains/myDomain/nodemanager/nodemanager.log
        JavaHome: /usr/lib/jvm/jdk-11-oracle-x64
        NodeManagerHome: /u01/oracle/user_projects/domains/myDomain/nodemanager
    Cluster:
        cluster1:
            DynamicServers:
                DynamicClusterSize: 2
                MaxDynamicClusterSize: 2
                ServerNamePrefix: MS
                ServerTemplate: cluster1-template
                CalculatedListenPorts: false
                MaximumDynamicServerCount: 2
    Server:
        myadmin: {}
    ServerTemplate:
        cluster1-template:
            Cluster: cluster1
            ListenPort: 8001
            JTAMigratableTarget:
                Cluster: cluster1
                MigrationPolicy: manual
appDeployments:
    Application:
        basicWebappEjb:
            SourcePath: /u01/oracle/user_projects/domains/basicWebappEjb.war
            ModuleType: war
            SecurityDDModel: DDOnly

Archive file for wldeploy
$ jar tvf /git/weblogic/wdt/DiscoveredMyDomain.zip
28381726 Sat Mar 16 18:43:28 CET 2024 wlsdeploy/applications/basicWebappEjb.war

run extract model
ave@dave:/app/weblogic-deploy/bin$ ./extractDomainResource.sh -oracle_home /app/weblogic -domain_home /app/domains/myDomain/ -model_file  /git/weblogic/wdt/DiscoveredMyDomain.yaml  -output_dir  /git/weblogic/wdt/resource -target wko
JDK version is 11.0.21+9-LTS-193
JAVA_HOME = /usr/java/jdk-11
CLASSPATH = /app/weblogic-deploy/lib/weblogic-deploy-core.jar:/app/weblogic/wlserver/server/lib/weblogic.jar
JAVA_PROPERTIES = -Djava.util.logging.config.class=oracle.weblogic.deploy.logging.WLSDeployLoggingConfig -Dpython.cachedir.skip=true -Dpython.console= 
/usr/java/jdk-11/bin/java -cp /app/weblogic-deploy/lib/weblogic-deploy-core.jar:/app/weblogic/wlserver/server/lib/weblogic.jar           -Djava.util.logging.config.class=oracle.weblogic.deploy.logging.WLSDeployLoggingConfig -Dpython.cachedir.skip=true -Dpython.console=            -Dpython.path=/app/weblogic/wlserver/common/wlst/modules/jython-modules.jar/Lib           org.python.util.jython           /app/weblogic-deploy/lib/python/extract_resource.py -oracle_home /app/weblogic -domain_home /app/domains/myDomain/ -model_file /git/weblogic/wdt/DiscoveredMyDomain.yaml -output_dir /git/weblogic/wdt/resource -target wko
####<Mar 16, 2024 6:54:07 PM> <INFO> <WebLogicDeployToolingVersion> <logVersionInfo> <WLSDPLY-01750> <The WebLogic Deploy Tooling extractDomainResource version is 3.5.4:.43d3afb:Mar 14, 2024 11:55 UTC>
####<Mar 16, 2024 6:54:07 PM> <INFO> <WLSDeployLoggingConfig> <logLoggingDirectory> <WLSDPLY-01755> <The extractDomainResource program will write its log to directory /app/weblogic-deploy/logs>
####<Mar 16, 2024 6:54:08 PM> <INFO> <DomainTypedef> <__init__> <WLSDPLY-12328> <Domain type WLS type definition file /app/weblogic-deploy/lib/typedefs/WLS.json version WLS_14 does not contain a postCreateRcuSchemasScript section>
####<Mar 16, 2024 6:54:08 PM> <INFO> <DomainTypedef> <__init__> <WLSDPLY-12321> <Domain type WLS type definition file /app/weblogic-deploy/lib/typedefs/WLS.json version WLS_14 does not contain a postCreateDomainScript section>
####<Mar 16, 2024 6:54:08 PM> <INFO> <DomainTypedef> <__init__> <WLSDPLY-12328> <Domain type WLS type definition file /app/weblogic-deploy/lib/typedefs/WLS.json version WLS_14 does not contain a postCreateRcuSchemasScript section>
####<Mar 16, 2024 6:54:08 PM> <INFO> <DomainTypedef> <__init__> <WLSDPLY-12321> <Domain type WLS type definition file /app/weblogic-deploy/lib/typedefs/WLS.json version WLS_14 does not contain a postCreateDomainScript section>
####<Mar 16, 2024 6:54:08 PM> <INFO> <ModelContext> <__copy_from_args> <WLSDPLY-01050> <WebLogic version for aliases is 14.1.1.0.0>
####<Mar 16, 2024 6:54:08 PM> <INFO> <filter_helper> <apply_filters> <WLSDPLY-20016> <No filters of type extract found in filter configuration file /app/weblogic-deploy/lib/targets/wko/target.json>
####<Mar 16, 2024 6:54:08 PM> <INFO> <Validator> <__validate_model_file> <WLSDPLY-05002> <Performing validation in TOOL mode for WebLogic Server version 14.1.1.0.0 and WLST OFFLINE mode>
####<Mar 16, 2024 6:54:08 PM> <INFO> <Validator> <__validate_model_file> <WLSDPLY-05003> <Performing model validation on the /git/weblogic/wdt/DiscoveredMyDomain.yaml model file>
####<Mar 16, 2024 6:54:08 PM> <INFO> <Validator> <__validate_model_section> <WLSDPLY-05008> <Validating the domainInfo section of the model file>
####<Mar 16, 2024 6:54:08 PM> <INFO> <Validator> <__validate_model_section> <WLSDPLY-05008> <Validating the topology section of the model file>
####<Mar 16, 2024 6:54:08 PM> <INFO> <Validator> <__validate_single_path_in_archive> <WLSDPLY-05031> <Attribute FileName in model location topology:/Log references a relative file location myDomain.log.  This makes the model subject to failure unless the tool invoked from the correct location to resolve the relative path to the file. It is recommended to use a path token if the absolute path is expected to change between systems.>
####<Mar 16, 2024 6:54:09 PM> <INFO> <Validator> <__validate_model_section> <WLSDPLY-05008> <Validating the resources section of the model file>
####<Mar 16, 2024 6:54:09 PM> <INFO> <Validator> <__validate_model_section> <WLSDPLY-05009> <Model file /git/weblogic/wdt/DiscoveredMyDomain.yaml does not contain a resources section, validation of resources was skipped.>
####<Mar 16, 2024 6:54:09 PM> <INFO> <Validator> <__validate_model_section> <WLSDPLY-05008> <Validating the appDeployments section of the model file>
####<Mar 16, 2024 6:54:09 PM> <INFO> <Validator> <__validate_single_path_in_archive> <WLSDPLY-05025> <Attribute SourcePath in model location appDeployments:/Application/basicWebappEjb references archive entry wlsdeploy/applications/basicWebappEjb.war but the archive file was not provided>
####<Mar 16, 2024 6:54:09 PM> <INFO> <vz_config_helper> <_create_file> <WLSDPLY-01662> <Creating target configuration file /git/weblogic/wdt/resource/wko-domain.yaml>
####<Mar 16, 2024 6:54:09 PM> <INFO> <crd_file_updater> <update_from_model> <WLSDPLY-01675> <Updating target output file "/git/weblogic/wdt/resource/wko-domain.yaml" from the kubernetes section of the model>

Issue Log for extractDomainResource version 3.5.4 running WebLogic version 14.1.1.0.0 offline mode:

Total:   SEVERE :    0  WARNING :    0

extractDomainResource.sh completed successfully (exit code = 0)

extract domain - created model
$ cat resource/wko-domain.yaml
apiVersion: weblogic.oracle/v8
kind: Domain
metadata:
    name: mydomain
    namespace: mydomain
    labels:
        weblogic.domainUID: mydomain
spec:
    domainHome: /app/domains/myDomain/
    domainHomeSourceType: FromModel
    image: '{{{imageName}}}'
    # Add any credential secrets that are required to pull the image
    imagePullSecrets: []
    webLogicCredentialsSecret:
        name: mydomain-weblogic-credentials
    serverPod:
        env:
          - name: JAVA_OPTIONS
            value: -Dweblogic.StdoutDebugEnabled=false
          - name: USER_MEM_ARGS
            value: '-Djava.security.egd=file:/dev/./urandom -Xms64m -Xmx256m '
    clusters:
      - clusterName: cluster1
        # replicas: 99  # Set a specific replica count for this cluster
        serverPod:
            affinity:
                podAntiAffinity:
                    preferredDuringSchedulingIgnoredDuringExecution:
                      - weight: 100
                        podAffinityTerm:
                            labelSelector:
                                matchExpressions:
                                  - key: weblogic.clusterName
                                    operator: In
                                    values:
                                      - $(CLUSTER_NAME)
                            topologyKey: kubernetes.io/hostname
    configuration:
        istio:
            enabled: false
        introspectorJobActiveDeadlineSeconds: 900
        model:
            domainType: WLS
            modelHome: '{{{modelHome}}}'
            runtimeEncryptionSecret: mydomain-runtime-encryption-secret

Weblogic dynamic clusters

HOWTO 

Previously, the WebLogic Kubernetes Operator supported configured clusters only.  That is, the operator could only manage and scale Managed Servers defined for a configured cluster.  Now, this limitation has been removed. By supporting dynamic clusters, the operator can easily scale the number of Managed Server instances based on a server template instead of requiring that you first manually configure them.

 

Creating a Dynamic Cluster in a WebLogic Domain in Kubernetes

 

The WebLogic Server team has been actively working to integrate WebLogic Server in Kubernetes, WebLogic Server Certification on Kubernetes.  The Oracle WebLogic Kubernetes Operator provides a mechanism for creating and managing any number of WebLogic domains, automates domain startup, allows scaling of WebLogic clusters, manages load balancing for web applications deployed in WebLogic clusters, and provides integration with Elasticsearch, Logstash, and Kibana. The operator is currently available as an open source project at https://oracle.github.io/weblogic-kubernetes-operator.  

 To create a WebLogic domain, see scripts

The following parameters of the input file are used when creating a dynamic cluster:

 

Parameter

Definition

Default

clusterName

The name of the WebLogic cluster instance to generate for the domain.

cluster-1

clusterType

The type of WebLogic cluster. Legal values are "CONFIGURED" or "DYNAMIC".

CONFIGURED

configuredManagedServerCount

 

The number of Managed Server instances to generate for the domain.

2

initialManagedServerReplicas

The number of Managed Servers to start initially for the domain.

2

managedServerNameBase

Base string used to generate Managed Server names.  Used as the server name prefix in a server template for dynamic clusters.

managed-server

 

 

 

The following example configuration will create a dynamic cluster named ‘cluster-1’ with four defined Managed Servers (managed-server1 … managed-server4) in which the operator will initially start up two Managed Servers instances, managed-server1and managed-server2:

 

# Type of WebLogic Cluster

# Legal values are "CONFIGURED" or "DYNAMIC"

clusterType: DYNAMIC

 

# Cluster name

clusterName: cluster-1

 

# Number of Managed Servers to generate for the domain

configuredManagedServerCount: 4

 

# Number of Managed Servers to initially start for the domain

initialManagedServerReplicas: 2

 

    # Base string used to generate Managed Server names

managedServerNameBase: managed-server



 

Weblogic k8s operator - domain debugging

 HOWTO

Describe domain
$  kubectl -n sample-domain1-ns describe domain sample-domain1
Name:         sample-domain1
Namespace:    sample-domain1-ns
Labels:       weblogic.domainUID=sample-domain1
Annotations:  <none>
API Version:  weblogic.oracle/v9
Kind:         Domain
Metadata:
  Creation Timestamp:  2024-03-16T07:20:03Z
  Generation:          2
  Resource Version:    2948
  UID:                 8dc5eb07-aeca-43dc-adb9-086bd97e61c9
Spec:
  Clusters:
    Name:  sample-domain1-cluster-1
  Configuration:
    Model:
      Auxiliary Images:
        Image:                       phx.ocir.io/weblogick8s/quick-start-aux-image:v1
      Domain Type:                   WLS
      Runtime Encryption Secret:     sample-domain1-runtime-encryption-secret
    Override Distribution Strategy:  Dynamic
  Domain Home:                       /u01/domains/sample-domain1
  Domain Home Source Type:           FromModel
  Failure Retry Interval Seconds:    120
  Failure Retry Limit Minutes:       1440
  Http Access Log In Log Home:       true
  Image:                             container-registry.oracle.com/middleware/weblogic:14.1.1.0-11
  Image Pull Policy:                 IfNotPresent
  Image Pull Secrets:
    Name:                             weblogic-repo-credentials
  Include Server Out In Pod Log:      true
  Introspect Version:                 1
  Max Cluster Concurrent Shutdown:    1
  Max Cluster Concurrent Startup:     0
  Max Cluster Unavailable:            1
  Replace Variables In Java Options:  false
  Replicas:                           1
  Restart Version:                    1
  Server Pod:
    Env:
      Name:   JAVA_OPTIONS
      Value:  -Dweblogic.StdoutDebugEnabled=false
      Name:   USER_MEM_ARGS
      Value:  -Djava.security.egd=file:/dev/./urandom -Xms256m -Xmx512m 
    Resources:
      Requests:
        Cpu:            250m
        Memory:         768Mi
  Server Start Policy:  IfNeeded
  Web Logic Credentials Secret:
    Name:  sample-domain1-weblogic-credentials
Status:
  Clusters:
    Cluster Name:  cluster-1
    Conditions:
      Last Transition Time:  2024-03-16T07:44:51.848598Z
      Status:                True
      Type:                  Available
      Last Transition Time:  2024-03-16T07:44:51.848653Z
      Status:                True
      Type:                  Completed
    Label Selector:          weblogic.domainUID=sample-domain1,weblogic.clusterName=cluster-1
    Maximum Replicas:        5
    Minimum Replicas:        0
    Observed Generation:     2
    Ready Replicas:          1
    Replicas:                1
    Replicas Goal:           1
  Conditions:
    Last Transition Time:    2024-03-16T07:44:51.848475Z
    Status:                  True
    Type:                    Available
    Last Transition Time:    2024-03-16T07:44:51.848361Z
    Status:                  True
    Type:                    Completed
  Failed Introspection UID:  0bd431ef-b6ba-4d8e-93bd-611be705e03c
  Observed Generation:       2
  Replicas:                  1
  Servers:
    Health:
      Overall Health:  Not available
      Subsystems:
    Node Name:     minikube
    Pod Phase:     Running
    Pod Ready:     True
    Server Name:   admin-server
    State:         RUNNING
    State Goal:    RUNNING
    Cluster Name:  cluster-1
    Health:
      Overall Health:  Not available
      Subsystems:
    Node Name:     minikube
    Pod Phase:     Running
    Pod Ready:     True
    Server Name:   managed-server1
    State:         RUNNING
    State Goal:    RUNNING
    Cluster Name:  cluster-1
    Server Name:   managed-server2
    State:         SHUTDOWN
    State Goal:    SHUTDOWN
    Cluster Name:  cluster-1
    Server Name:   managed-server3
    State:         SHUTDOWN
    State Goal:    SHUTDOWN
    Cluster Name:  cluster-1
    Server Name:   managed-server4
    State:         SHUTDOWN
    State Goal:    SHUTDOWN
    Cluster Name:  cluster-1
    Server Name:   managed-server5
    State:         SHUTDOWN
    State Goal:    SHUTDOWN
  Start Time:      2024-03-16T07:20:04.243627Z
Events:
  Type     Reason       Age                 From               Message
  ----     ------       ----                ----               -------
  Normal   Created      25m                 weblogic.operator  Domain sample-domain1 was created.

Describe cluster
$ kubectl -n sample-domain1-ns describe cluster sample-domain1-cluster-1
Name:         sample-domain1-cluster-1
Namespace:    sample-domain1-ns
Labels:       weblogic.domainUID=sample-domain1
Annotations:  <none>
API Version:  weblogic.oracle/v1
Kind:         Cluster
Metadata:
  Creation Timestamp:  2024-03-16T07:20:04Z
  Generation:          2
  Resource Version:    3292
  UID:                 79c20a7a-1193-41d9-bdc4-2bf78d8350c0
Spec:
  Cluster Name:  cluster-1
  Replicas:      1
Status:
  Cluster Name:  cluster-1
  Conditions:
    Last Transition Time:  2024-03-16T07:51:07.078447Z
    Status:                False
    Type:                  Available
    Last Transition Time:  2024-03-16T07:51:07.078558Z
    Status:                False
    Type:                  Completed
  Label Selector:          weblogic.domainUID=sample-domain1,weblogic.clusterName=cluster-1
  Maximum Replicas:        5
  Minimum Replicas:        0
  Observed Generation:     2
  Ready Replicas:          1
  Replicas:                1
  Replicas Goal:           1
Events:
  Type     Reason              Age                 From               Message
  ----     ------              ----                ----               -------
  Normal   ClusterCreated      21m (x7 over 32m)   weblogic.operator  Cluster resource sample-domain1-cluster-1 was created.
  Normal   ClusterChanged      19m                 weblogic.operator  Cluster resource sample-domain1-cluster-1 was changed.
  Normal   ClusterAvailable    73s (x10 over 18m)  weblogic.operator  Cluster sample-domain1-cluster-1 is available: a sufficient number of its servers have reached the ready state.
  Normal   ClusterCompleted    73s (x10 over 18m)  weblogic.operator  Cluster sample-domain1-cluster-1 is complete because all of the following are true: there is no failure detected, there are no pending server shutdowns, and all servers expected to be running are ready and at their target image, auxiliary images, restart version, and introspect version.
  Warning  ClusterIncomplete   57s (x15 over 20m)  weblogic.operator  Cluster sample-domain1-cluster-1 is incomplete for one or more of the following reasons: there are failures detected, there are pending server shutdowns, or not all servers expected to be running are ready and at their target image, auxiliary images, restart version, and introspect version.
  Warning  ClusterUnavailable  57s (x15 over 20m)  weblogic.operator  Cluster sample-domain1-cluster-1 is unavailable: an insufficient number of its servers that are expected to be running are ready.";

workload distribution between managed servers