All docs This doc
Skip to end of metadata
Go to start of metadata

Setting up a basic pipeline for WSO2 Identity Server on Kubernetes is quick and simple.

You can set up a simple CI/CD pipeline for WSO2 Identity Server in two steps.

  1. Create a Docker image for WSO2 Identity Server.
  2. Deploy the CI/CD pipeline.

Before you begin to develop your pipeline, set up the following prerequisites in your Kubernetes cluster.


Create WSO2 Identity Server Docker Image

First, let's create an image for WSO2 Identity Server on a private Docker registry.

This pipeline utilizes Docker Hub as its private registry.
  1. Pull the latest image from WSO2 and push it to the private registry following are the steps
    1. If you have a WSO2 subscription, log into the WSO2 Docker registry using your subscription credentials.

      The WSO2 Identity Server Docker image automatically fetches product updates on a weekly basis. If you do not have a WSO2 subscription account, you can sign up for a free trial here.
      $ docker login
    2. Pull the Docker image for Identity Server

      $ docker pull
    3. After the image pull is complete, tag the image as follows:

      $ docker tag <DOCKER_ORGANIZATION>/wso2is
      <DOCKER_ORGANIZATION> refers to the name of your private docker repository in Docker Hub.
      If you are using an image from make sure to use a private docker repository since this image contains proprietary updates.

      If you do not have a WSO2 subscription use the docker hub image wso2/wso2is:5.8.0 instead

      $ docker pull wso2/wso2is:5.8.0
      $ docker tag wso2/wso2is:5.8.0 <DOCKER_ORGANIZATION>/wso2is
    4. Log into your organization on Docker Hub and push the Identity Server image

      $ docker login
    5. Push the Docker image to a repository in your organization on Docker Hub.

      $ docker push <DOCKER_ORGANIZATION>/wso2is

Deploy the CI/CD pipeline

After successfully adding the Identity Server docker image to the organization’s docker hub let’s deploy the Kubernetes pipeline.

  1. Download the following values.yaml file and replace the  following placeholders with relevant values
    • <REGISTRY_USERNAME> - Docker organization name.
    • <REGISTRY_PASSWORD> - Docker password.
    • <REGISTRY_EMAIL> - Email address of Docker organization.
    • <EMAIL> - Email address notifications should be sent to in case of failure.
    • <GITHUB_USERNAME> - GitHub username
    • <GITHUB_PASSWORD> - GitHub password or token
  2. Add the WSO2 helm repository.

    $ helm repo add wso2
    $ helm repo update
  3. Install the pipeline Helm chart by pointing to the updated values-is-pattern-1.yaml file.

    $ helm install --name <RELEASE_NAME> wso2/kubernetes-pipeline -f values-is-pattern-1.yaml --namespace <NAMESPACE>
    Warning: The installation may take up to 10 minutes.
  4. Obtain the external IP (`EXTERNAL-IP`) of the Ingress resources by listing down the Kubernetes Ingresses.

    $ kubectl get ing -n <NAMESPACE>
    <RELEASE_NAME>-kibana kibana <EXTERNAL_IP>8020m
    <RELEASE_NAME>-spinnaker-deckspinnaker<EXTERNAL_IP>  80, 443 20m
    <RELEASE_NAME>-spinnaker-gate gate.spinnaker<EXTERNAL_IP>  80, 443 20m
    jenkins-ingress jenkins<EXTERNAL_IP>  80, 443 20m
  5. Add the above hosts as an entry in /etc/hosts as follows and save the file

    <EXTERNAL_IP>  grafana kibana spinnaker jenkins
  6. Navigate to the following URLs on any web browser:

What’s next: