Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

ModelOp Center seamlessly integrates with existing ticketing systems, such as JIRA, to allow enterprises to leverage existing IT investments.

Table of Contents

Table of Contents

Introduction

<lorem ipsum>

Jira Integration Setup

Here are the steps to integrate with an existing Jira instance:

Jira Integration Setup

Prerequisites

Before you begin configuring moc-builder to interact with Jira you will need to create a service account in your Jira instance which has an API token. In this example we will assume that we have created an account with the email "jira@modelop.com". After creating the account, follow the documentation at https://confluence.atlassian.com/cloud/api-tokens-938839638.html in order to create the API token for the account.

Moc-builder Configuration

The configuration of moc-builder follows roughly the same process as that for the containerized instance of Jira, however there is an added step of needing to change the credentials used to login to the existing Jira instance.

To begin with, With your Kubernetes context set to point at the cluster and namespace that you have deployed MOC to, run

Code Block
languagebash
kubectl get svc

you should see something like this:

Code Block
[johncarter@Johns-MacBook-Pro moc-builder (John@modelop-eks-test.us-east-2.eksctl.io:mocaasin)]$ kb get svc
NAME                TYPE           CLUSTER-IP       EXTERNAL-IP                                                               PORT(S)                                                 AGE
engine-1            ClusterIP      10.100.72.22     <none>                                                                    8003/TCP                                                23h
engine-2            ClusterIP      10.100.31.255    <none>                                                                    8003/TCP                                                23h
engine-test         ClusterIP      10.100.215.6     <none>                                                                    8003/TCP                                                23h
gateway             LoadBalancer   10.100.126.106   foo1.us-east-2.elb.amazonaws.com   8090:31166/TCP                                                                                 23h
jupyter             ClusterIP      10.100.242.107   <none>                                                                    8888/TCP                                                23h
kafka               ClusterIP      10.100.113.242   <none>                                                                    9092/TCP                                                23h
minio               ClusterIP      10.100.82.143    <none>                                                                    9000/TCP                                                23h
mlc-manager         LoadBalancer   10.100.145.82    foo3.us-east-2.elb.amazonaws.com    8085:31741/TCP                                                                                23h
model-manager       ClusterIP      10.100.205.30    <none>                                                                    8086/TCP,8088/TCP                                       23h
mongodb             ClusterIP      10.100.45.49     <none>                                                                    27017/TCP                                               23h
postgres            ClusterIP      10.100.77.22     <none>                                                                    5432/TCP                                                23h
registry            ClusterIP      10.100.138.128   <none>                                                                    8761/TCP                                                23h
reporting-service   ClusterIP      10.100.38.87     <none>                                                                    8091/TCP                                                23h

What you need from this screen is the external-ip and port corresponding to gateway, in this example it’s foo1.us-east-2.elb.amazonaws.com:8090

NOTE: If you’re using ingresses instead of load balancers you will run kubectl get ing and you want the address corresponding to the ingress that points to gateway. You will NOT append the port number to the end of the address, only do that if you are using the external IP from a service of type LoadBalancer.

Next, open up your config.json file within moc-builder’s config directory and navigate to the mlc-manager section. You’ll see something like this:

Code Block
languagejson
"mlc-manager": {
  ...
  "env": {
    ...
    "modelop.gateway-url": "http://gateway:8090",
    ...
    "mlc.jira-task-monitor.url": "http://jira:8086",
    ...
  },
  ...
},

Change the value of the modelop.gateway-url env variable to be the location of gateway that we grabbed above and change the value of the mlc.jira-task-monitor.url to be the location of your Jira instance (in this example we'll say that our Jira instance is located at "https://foo.atlassian.net").

You’ll end up with something like this:

Code Block
"mlc-manager": {
  ...
  "env": {
    ...
    "modelop.gateway-url": "http://foo1.us-east-2.elb.amazonaws.com:8090",
    ...
    "mlc.jira-task-monitor.url": "https://foo.atlassian.net",
    ...
  },
  ...
},

Go ahead and save out your config file and open up the file located in moc-builder at data/secrets.json. You'll see something like this:

Code Block
languagejson
{
  ...
  "JIRA_USERNAME": "demo",
  "JIRA_PASSWORD": "modelop",
  ...
}

You'll want to change the JIRA_USERNAME value to be the email associated with the service account and the JIRA_PASSWORD to be the API token that was generated by Atlassian in the prerequisites step.

You'll end up with something like

Code Block
languagejson
{
  ...
  "JIRA_USERNAME": "jira@modelop.com",
  "JIRA_PASSWORD": "API token goes here",
  ...
}

After you have completed these steps, you'll want to create a new project in your Jira instance and note the key that is created for it. You'll then have to go into your BPMN files that will be injected into ModelOp Center and make sure that the project key being set is the project key that was created. For example, if you are working from the default user BPMN files located within moc-builder, then you will want to replace this line in NotficationToITSM.bpmn

Code Block
notificationAssignment.setJiraProjectKey("DEMO");

to be

Code Block
languagejson
notificationAssignment.setJiraProjectKey("YOUR PROJECT KEY");

After you have finished this configuration, just ensure that your project complies with the "Jira Configuration" subsection below and then run your moc-builder compose and deploy commands to bring up your instance of MOC which is integrated with your Jira.

Jira Configuration

By default ModelOp Center's BPMN files only require the use of a "Task" issue type, so all that needs to be configured is that the project you create in your Jira instance has that issue type in it.