Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added write permission for release #199

Merged
merged 2 commits into from
Feb 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .github/workflows/tca-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ on:
push:
tags:
- "v*.*.*"

permissions:
contents: write

env:

IMAGE_REGISTRY: quay.io
Expand Down Expand Up @@ -66,4 +70,4 @@ jobs:
- name : tag image
run : docker tag tackle:latest quay.io/konveyor/tackle-container-advisor:${{ github.ref_name }}
- name : push to quay
run : docker push quay.io/konveyor/tackle-container-advisor:${{ github.ref_name }}
run : docker push quay.io/konveyor/tackle-container-advisor:${{ github.ref_name }}
51 changes: 29 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,51 +3,58 @@

### Usage
1. [TCA Pipeline](#TCA-Pipeline)
2. [Setup and Running TCA](https://github.com/konveyor/tackle-container-advisor/blob/main/docs/running.md)
3. [API's](https://github.com/konveyor/tackle-container-advisor/blob/main/docs/service.md)
4. [References](https://github.com/konveyor/tackle-container-advisor/blob/main/docs/references.md)


2. [Run TCA](https://konveyor.github.io/tackle-container-advisor-docs/docs/setup/)
3. [API description](https://konveyor.github.io/tackle-container-advisor-docs/docs/apis)
4. [References](https://konveyor.github.io/tackle-container-advisor-docs/docs/publications/)

### Development
1. [Knowledge Base](https://github.com/konveyor/tackle-container-advisor/blob/main/docs/db.md)
2. [KG Utils](https://github.com/konveyor/tackle-container-advisor/blob/main/docs/utils.md)
3. [Entity standardizer](https://github.com/konveyor/tackle-container-advisor/blob/main/docs/standardizer.md)

1. [Knowledge Base](https://konveyor.github.io/tackle-container-advisor-docs/docs/kg/)
2. [Knowledge Base Utilities](https://konveyor.github.io/tackle-container-advisor-docs/docs/kgutils/)
3. [Entity standardizer](https://konveyor.github.io/tackle-container-advisor-docs/docs/standardizer/)
4. [Developer Guide](https://konveyor.github.io/tackle-container-advisor-docs/docs/development/)

## Purpose

TCA takes client applications as a natural language description and recommends whether client applications can be containerized. For example, a client can provide the application description as the following.

TCA provides APIs to standardize natural language description of technology stack components, cluster a portfolio of technology stacks into similar technology stack groups, match technology stacks to docker, openshift or operator catalog images.
```
1. App1: rhel, db2, java, tomcat
2. App2: .net, java, oracle db
3. App3: dot net, java, oracle dbms
```


TCA takes the following steps to recommend the containerization.

1. **Standardization**: It assesses the application to standardize the inputs to relevant named entities present in our knowledge base. For details on the knowledge base please check the [Knowledge Base](https://github.com/konveyor/tackle-container-advisor/blob/main/docs/docs/db.md).
For example, the inputs in *App1* get mapped as the following named entities.
**Standardize**: Standardize natural language inputs to relevant named entities of technology stacks present in our knowledge base. For details on the knowledge base please check the *db* folder. For example, the inputs in *App1,App2,App3* get mapped as the following named entities.

```
1. App1: rhel: Linux|RedHat Linux, db2: DB2, java: Java, tomcat: Apache Tomcat
1. App1: rhel: RedHat Enterprise Linux, db2: DB2, java: Java, tomcat: Apache Tomcat
2. App2: .net: .NET, java: Java, oracle db: Oracle DB
3. App3: dot net: .NET, java: Java, oracle dbms: Oracle DB
```

2. **Containerization**: First, it recommends whether *App1* can be containerized, partially containerized, or kept as it is. Then if App1 is recommended as containerized or partially containerized, TCA generates container images based on DockerHub or Openshift. For example, if a user decides to generate DockerHub related images, then TCA generates the following images.
**Clustering**: Cluster the standardized technology stack components into groups of similar technology stacks. For example, the standardized technology stacks for *App1,App2,App3* get clustered into the two technology stack clusters.

```
1. tomcat|https://hub.docker.com/_/tomcat
2. db2|https://hub.docker.com/r/ibmcom/db2
1. Cluster1: {App1}
2. Cluster2: {App2, App3}
```

**Containerize**: Determines whether a technology stack is fully containerizable, partially containerizable or not containerizableat all. If a technology stack is recommended as fully or partially containerizable, it also generates container images based on DockerHub or Openshift image catalogs. It is also possible to provide custom user-defined catalogs for matching to catalog images. For example, if a user decides to generate DockerHub related images, then TCA generates the following images.

```
1. Cluster1: tomcat|https://hub.docker.com/_/tomcats
2. Cluster2: db2|https://hub.docker.com/r/ibmcom/db2
```

For OpenShift, TCA generates the following images.

1. tomcat|https://access.redhat.com/containers/#/registry.access.redhat.com/jboss-webserver-3/webserver31-tomcat8-openshift
2. db2|https://access.redhat.com/containers/#/cp.stg.icr.io/cp/ftm/base/ftm-db2-base
```
1. Cluster1: tomcat|https://access.redhat.com/containers/#/registry.access.redhat.com/jboss-webserver-3/webserver31-tomcat8-openshift
2. Cluster2: db2|https://access.redhat.com/containers/#/cp.stg.icr.io/cp/ftm/base/ftm-db2-base
```

## TCA Pipeline

<img width="1000" alt="TCA Pipeline" src=https://github.com/konveyor/tackle-container-advisor/blob/main/images/tca_pipeline.png>
![TCA Pipeline](images/tca_pipeline.png)

The pipeline ingests raw inputs from clients data and standardizes the data to generate named entities and versions. For standardizing or normalizing raw inputs we use a tf-idf similarity based approach. To find container images we represent images in terms of named entities as well. The normalized representation helps to match legacy applications with container images to suggest the best possible recommendations.

Expand Down