We are delighted to announce the release of the WebLogic Kubernetes ToolKit UI (WKT UI).  The WKT UI facilitates the provisioning and deployment of WebLogic domains and applications to Kubernetes.  It supports deployments managed by the WebLogic Kubernetes Operator, including WebLogic deployments managed by Verrazzano.

 

The WKT UI provides a graphical user interface that wraps the WebLogic Kubernetes ToolKit tools, Docker, Helm, and the Kubernetes Command Line Interface (CLI), and helps guide you through the process of migrating WebLogic Server domains and applications to Kubernetes.   The WKT UI facilitates:

  • Introspecting WebLogic Server domains and applications
  • Creating WebLogic Server Linux container images
  • Provisioning the WebLogic Kubernetes Operator
  • Deploying WebLogic Server domains to Kubernetes managed by the WebLogic Kubernetes Operator, including Verrazzano deployments
  • Setting up and deploying the software and configurations necessary to deploy and access WebLogic Server domains in your Kubernetes cluster.

 

Getting Started

The  WebLogic Kubernetes Toolkit (WKT) is a collection of open source tools that help users migrate their existing domains and applications, create images containing applications, deploy them to Kubernetes, monitor and manage them, persist logs to logging services, and automate patching operations and application updates. The WKT UI leverages the following tools from the WebLogic Kubernetes ToolKit:

 

The WKT UI is a native desktop application. You can download and install the application specific to your operating system from the “Releases” tab in the WKT UI GitHub project.  For first time users, the WKT UI provides a set of introductory screens that serve as a guided tour through the UI.  Under the “Help” tab go to “Show Introduction”.  The WKT UI defaults most of its values to make it easy for users to become productive deploying their domains and applications to Kubernetes.  For a detailed explanation of how to navigate the WKT UI, refer to the  WKT UI documentation.

 

WKT UI Introductory Guide

 

As described in the Introduction screens, the left side navigation pane has a list of sections that guide you step by step through the use of the WKT UI:

 

  • Project Settings
  • Model
  • Image
  • Kubernetes
  •    Client Configuration
  •    WebLogic Operator
  •    WebLogic Domain
  •    Ingress Controller
  • Verrazzano
  •    Client Configuration
  •    Application

 

The WKT UI offers two views – “Design View” and the “Code View”.  The “Design View” offers pages where users can enter values to create images, secrets, Domain custom resource, deploy Operator and ingress controllers.  The “Code View” displays a shell script to perform the same operations from the command line.  The WKT UI supports different scripting languages, use the Scripting Language drop-down menu to choose the scripting language of your choice.

 

 Project Settings 

In this Project Settings section, you make decisions and provide input that is common to the project. You make decisions and provide input for the project on:

 

The WKT UI supports three different domain home source types (patterns) of “Model in Image” (default), “Domain Home in Image”, and “Domain Home on PV”­­­­­­­, see the WebLogic Kubernetes Operator project documentation Choose a Domain Home Source Type.  The selection of domain home source type is made in the Domain Location of this section.  Depending on your selection the “Image”, and “Deploy the Domain” sections of the WKT UI will ask for different inputs based on the domain home source type.  The description in this blog of the different sections is based on “Model in Image”.


The WKT UI allows you to deploy domains that will be managed by the WebLogic Kubernetes Operator.   It also provides additional support for management of WebLogic domains using the Verrazzano Enterprise Container Platform, which leverages the WebLogic Kubernetes Operator. You select the “Kubernetes Environment Target Type” field in the Project Settings to either Kubernetes (for domains to be managed by the Operator without Verrazzano present) or Verrazzano (to leverage the additional value-add capabilities of Verrazzano).

 

Model Section

The Model section helps you work with WDT models for a WebLogic domain you have introspected.  The result of introspection produces a WDT model, Property file, and Application Archive.  The WDT model contains a meta data representation of the domain configuration.  The Property file maps names to values.  These names are place holders in the model to allow a model to be used across environments.  The Application Archive contains the application binaries.

 

 

The WKT UI in “Code View” provides an editor so that the domain model can be changed, values can be added to the properties, and applications can be added or removed from the Application Archive file.

 

Before migrating the domain and application to Kubernetes the domain configuration needs to be prepared so that it can run successfully in the targeted environment.  The WKT UI provides a “Prepare Model” button to prepare the domain for migration. Preparing the model invokes WDT Prepare Model Tool and does the following:

  1. Removes model sections and fields that are not compatible with the target environment.
  2. Replaces endpoint values with model tokens that reference variables.
  3. Replaces credential values with model tokens that reference either a field in a Kubernetes secret or a variable.
  4. Provides default values for fields displayed in the application’s variable, variable overrides, and secret editors.
  5. Extracts topology information to the application that it uses to generate the resource file used to deploy the domain.

 

Image

The Image section allows you to build and customize WebLogic images.  The WKT UI invokes WIT to build and patch the image.  Images can be built from scratch or from base images. The WKT UI allows you to specify the name of the base image which will be extended to build the final image.  Once the image has been created the WKT UI can push the image to the repository of your choice.

 

 

If the image created in this section is for the “Model in Image” domain home source type, the WKT UI will include the WDT model, Property file, and Application Archive in the image. You can include the latest release of WDT and configure WDT to select the domain type (WebLogic or FMW Infrastructure) and indicate the directory inside the image where the WDT model, Property file, and Application Archive will be placed.

 

 

WIT will automatically patch your WebLogic binaries when it builds the image.  The WKT UI asks if you want to apply the latest PSU, SPU, and CPUs (recommended patches), and one-off patches. 

 

You can customize the image created in a number of ways, including configuring the owner of the image, passing additional files and scripts to the image, and specifying commands to execute during the build of the image.

 

Kubernetes

Configure Kubernetes Client

Client Configuration helps users have the necessary connectivity to their Kubernetes clusters.  You select the target Kubernetes cluster type and the WKT UI will provide instructions for configuring the Kubernetes Command Line Interface (kubectl) to successfully connect to the cluster.  Press “Verify Connectivity” to test the connection, if successful a pop window will show you Kuebrnetes Cluster and Client versions.

 

WebLogic Kubernetes Operator

This WebLogic Kubernetes Operator section provides support for installing the Operator in the target Kubernetes cluster. The WebLogic Kubernetes Operator project uses Helm charts to install the Operator, for more information see the documentation titled Operator Using Helm

 

 

In this section you can define the namespace where the Operator will run, the name of the service account, the name of the helm chart used to provision the Operator, the name of the Operator image, and selection strategy for domain namespaces the Operator will manage (List, Label, Regular Expression, Dedicated).  The user can enable role bindings, expose REST API access to the Operator, integrate with ELK so that the Operator’s logs can be exported to ELK, and configure logging.

 

When the user hits the “Install Operator” button the WKT UI will create the Operator namespace, create the service account, invoke the helm chart to provision the Operator, and create any other advance settings you have configured.

 

WebLogic Domain

The WebLogic Domain Design View helps you specify the necessary data needed to generate the Domain resource definition and deploy that resource into a Kubernetes cluster.  The Operator is a controller that provisions the WebLogic domain based on the Domain Custom Resource definition.

 

 

In this section the user enters values like the name of the namespace where the domain will be deployed, and the name of the Kubernetes secrets that will hold the WebLogic Administration credentials.  The user will provide the name of the image which will be the base for the WebLogic server containers.  This image name is probably the same as the image built in the previous Image section and pushed to the repository.

 

The Clusters pane lists the names of each cluster in the model and lets you adjust the WebLogic Server startup configuration and Kubernetes resource requests and limits. Users can enter the number of replicas (managed servers) they want running in the WebLogic cluster and specify resources like heap size, memory, and CPU.

 

When using “Model in Image”, the Operator requires a runtime encryption secret it uses to encrypt sensitive WebLogic Server domain data stored in Kubernetes. For more information, see Required runtime encryption secret in the WebLogic Kubernetes Operator documentation.  Domain configuration updates can be made by putting a WDT model and/or a Properties file in a config map in the namespace of the domain.   If the configuration is being updated, the Operator can apply the configuration changes in dynamic fashion (without restarting servers) or in a rolling fashion (restarting all servers in the domain in sequence).  The WKT UI allows you to define the name of the config map and the values of the configuration overrides. This is especially valuable when the user moves the domain between environments.

 

The user can prepare the model for deployment to Kubernetes, request that the WKT UI deploy the domain, and monitor the status of the domain deployment.

 

Ingress Controller

The Ingress Controller section supports installing an ingress controller to a Kubernetes cluster, and it supports adding the necessary routes to an ingress controller.  The ingress routes are necessary to make a deployed WebLogic domain’s endpoints accessible and to load balance the requests to the managed servers in the WebLogic cluster.

 

 

The WKT UI can install two kinds of ingress controllers – Traefik and Nginx.  You configure the namespace where you want the ingress controller to run, and the WKT UI will use Helm to install the controller.  You can also configure TLS, for use by clients using TLS to connect to the ingress controller.   The TLS connection will be terminated at the ingress controller.

 

Ingress routes are configured to tell the ingress controller how to route traffic to the WebLogic Server pods.  The Operator creates services for every running WebLogic Server pod and a cluster wide service.  WebLogic Administration Console or Remote Console users will need to configure an ingress route with the Administration Server service and the target port. If the user wants to load balance traffic to the servers in the cluster, then they must configure the cluster wide service and target port.  It is also important to configure path expressions. For example, to start the Administration Console, the path expression is “/console”, if the user wants to use the Remote Console to connect to the Administration Server, then the path expression is “/”. The WKT UI will figure out the Access Points for the user to connect.

 

Verrazzano

The WKT UI supports the migration of WebLogic domains and applications to Kubernetes clusters managed by Verrazzano.  The user can Introspect a WebLogic domain and application running on physical machines or VMs and create a model, edit the model, and prepare it to be deployed to Verrazzano.  As a result of preparing the WDT model two yaml files are created – the Domain Custom Resource and the app-config.yaml.  Both these yaml files are necessary to deploy a WebLogic domain to Verrazzano.

 

The WKT UI Image section supports creating a WebLogic image and pushing it to a repository where an Operator running in Verrazzano can provision the WebLogic domain.

 

Summary

The WebLogic ToolKit UI has been developed to facilitate the deployment of WebLogic domains and applications to Kubernetes with Operator or to Verrazzano.  Our future plans include adding the ability to upgrade/delete the Operator, the WebLogic domain, and the ingress controller.  We will add full Verrazzano support by providing help on how to install Kubernetes clients to interface with Verrazzano, the generation of the component.yaml, automate the deployment of the WebLogic domain, and generate the ingress routes to communicate with a WebLogic domain running in Verrazzano. We hope you find this information useful and look forward to your feedback.