Skip to content

Creating a Kubernetes Project

Create a Kubernetes project directory if you want to deploy your integration solutions in a Kubernetes environment.

The Kubernetes project allows you to package multiple integration projects into a single Docker image. Also, a file named integration_cr.yaml is generated, which can be used to carry out Kubernetes deployments based on the k8s-ei-operator.

Tip

If you want to simultaneously create all the projects required for your use case, read about the integration project solution.

Prerequisites

It is recommended to get the latest updates for your WSO2 Integration Studio before trying these instructions.

Creating the Kubernetes project

Follow the steps given below.

  1. Open WSO2 Integration Studio and click Miscellaneous → Create New Kubernetes Project in the Getting Started view as shown below.

  2. In the New Kubernetes Project dialog that opens, enter a name for the Kubernetes project and other parameters as shown below.

    Enter the following information:

    Parameter Description
    Kubernetes Project Name Required. Give a name for the Kubernetes project.
    Integration Name Required. This name will be used to identify the integration solution in the kubernetes custom resource. The custom resource file (integration_cr.yaml) for this solution will be generated along with the other artifacts.
    Number of Replicas Required. Specify the number of pods that should be created in the kubernetes cluster.
    Base Image Repository Required. Select the base Micro Integrator Docker image for your solution. Use one of the following options:
    • wso2/micro-integrator: This is the community version of the Micro Integrator Docker image, which is stored in the public WSO2 Docker registry. This is selected by default.
    • docker.wso2.com/wso2mi: This is the Micro Integrator Docker image that includes product updates. This image is stored in the private WSO2 Docker registry. Note that you need a valid WSO2 subscription to use the Docker image with updates.
    • You can also use a custom Docker image from a custom repository.
    Base Image Tag Required. Specify the tag of the base image that you are using.
    Target Image Repository Required. The Docker repository to which you will later push this Docker image.
    • If your repository is in Docker Hub, use the docker_user_name/repository_name format.
    • If you are using any other repository, use the repository_url/repository_user_name/repository_name forrmat.
    If required, you can update this information later when you build and push the Docker image to the relevant repository.
    Target Image Tag Required. Give a tag name for the Docker image.
    Automatically deploy configurations This check box indicates that you are using WSO2 EI 7 Micro Integrator as the base image. It is recommended to leave this check box selected when you use WSO2 EI 7.
    Environment Variables You can enter multiple environment variables as key-value pairs.

  3. Optionally, click Next and configure Maven details for the Kubernetes project.

  4. Click Finish. The Kubernetes project is created in the project explorer.

The Kubernetes project directory

Expand the Kubernetes Exporter Project in the project explorer. See that the following folders and files are created:

Directory Description
Libs Directory to store libraries. During the build time, the libraries inside this folder will be copied to the image.
Resources This folder stores additional files and resources that should be copied to the Docker image. During the build time, the resources inside this directory will be copied to the image.
deployment.toml The product configuration file.
Dockerfile The Dockerfile containing the build details.
integration_cr.yaml Kubernetes configuration file generated based on the user inputs.
pom.xml The file for selecting the relevant composite applications that should be included in the Docker image. This information is also used when you later build and push Docker images to the Docker registries.

Build and Push Docker images

Info

Before you begin, you need to create your integration artifacts in a Config project and package the artifacts in a Composite Application project. For example, see the HelloWorld sample given below. Integration artifacts for Docker

Follow the steps given below.

  1. Open the pom.xml file inside the Kubernetes project and click Refresh on the top-right. Your composite application project with integration artifacts will be listed under Dependencies as follows:

    Kubernetes pom view

  2. Select the composite applications that should be packed inside the Docker image (under Dependencies).

  3. If required, you can update the Target Repository to which the image should be pushed and the Target Tag.
  4. Save the file and click Build & Push on the top-right to start the Docker image build-and-push process. The Enter Docker Registry Credentials wizard opens.

    Docker Registry Auth Details

  5. Enter the following details in the wizard:

    Parameter Description
    Registry URL Type The Docker image registry to which the image will be pushed: Docker Hub or Other.
    Username Username of the target registry repository.
    Password Password of the target registry repository.

  6. Once you enter the above details, click Push Image.

  7. First, it will build the Docker image based on the Dockerfile and the Target details. When the image is created, you will see the following message.

    Docker Build Success

  8. Finally, it will start to push the image to the given registry. Once the process is completed, you will see the following message.

    Docker Push Success

Top