Introduction
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 accountModelOp Center provides the ability for the Model Life Cycle to create tickets within the existing Jira ticket system. The Model Life Cycle can create tickets corresponding to the manual steps and tasks required. This includes items such as approvals, reviews, tasks, and other activities in the Model’s Life Cycle. This guide details the steps to enable the integration.
Jira Integration Setup
Prerequisites
This guide assumes moc-builder
has been installed. Please request download instructions for moc-builder
here. Before configuring moc-builder
, the Jira instance will need a service account created and configured to use an API token. To create an API Token, 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. This example assumes that the service account uses the email "jira@modelop.com".
moc-builder Jira Configuration
The integration requires the ModelOp Center Gateway url and the url of the Jira instance to be integrated.
First, determine the external-ip of the Gateway. Set the Kubernetes context to the cluster and namespace that has ModelOp Center deployed. Run the following command:
Code Block | ||
---|---|---|
| ||
kubectl get svc |
you should see something The command will return an output 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 The important value is the external-ip and port corresponding to gateway, in the ModelOp Center Gateway. In this example, it’s foo1.us-east-2.elb.amazonaws.com:8090.
NOTE: If you’re the environemnt using ingresses instead of load balancers you will , run kubectl get ing
and you want obtain the address corresponding to the ingress that points to gateway. You will NOT Do not append the port number to the end of the address, only do that . That is only required if you are using the external IP from a service of type LoadBalancer.
Next, open up your the config.json
file within moc-builder
’s config directory and navigate to the mlc-manager
section. You’ll see something like thisIt will contain the following:
Code Block | ||
---|---|---|
| ||
"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 from above and change the value of the mlc.jira-task-monitor.url
to be the location of your the Jira instance (in . In this example we'll say that our , the Jira instance is located at "https://foo.atlassian.net").
You’ll end up with something like thisHere is the example config.json
:
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 the config file and open up the file located in moc-builder
at data/secrets.json
. You'll see something like thisHere is how the file looks:
Code Block | ||
---|---|---|
| ||
{ ... "JIRA_USERNAME": "demo", "JIRA_PASSWORD": "modelop", ... } |
You'll want to change 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
Here is the example:
Code Block | ||
---|---|---|
| ||
{ ... "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 beNext, create a new project in the Jira instance and note the key. Now update the key within the BPMN to be uploaded in ModelOp Center. For example, update the NotficationToITSM.bpmn
BPMN within moc-builder
to use the Project Key within the delegate:
Code Block | ||
---|---|---|
| ||
notificationAssignment.setJiraProjectKey("YOUR PROJECT KEY"); |
KEY"); |
Next, run the moc-builder
compose and deploy commands to bring up your the instance of MOC which is ModelOp Center integrated with your Jira.
Jira Configuration
By Note: 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 itplease confirm the Jira project has the Issue Type available.