Giter Club home page Giter Club logo

git-issue-ops's People

Contributors

pranereddy avatar

git-issue-ops's Issues

Create a Kubernetes Cluster

What needs to be done?

Create a Kubernetes cluster in the cloud.

Why is it necessary?

For deploying web applications (artifactory).

Prerequisites:

  • Cloud account.

Where it needs to be done?

Any of the cloud platforms where creation of K8 cluster is possible.

Acceptance Criteria

  • K8 cluster is up and running and ready for deploying applications.

Develop concept for issueops to

Develop concept for issueops to

  • Read existing users from GitHub org members/roles/teams/outside collaborators
  • Map the users to user groups.
  • on new issue, create artifactory repos, groups, permission targets according to users maps.

Technical task using Git issue ops

Techtask objective: Find a way to setup and synchronize Users and groups between Keycloak, GitHub and Artifactory

📆 Until August 29th 2021

The tech task is divided into an implementation and a documentation part.
One can choose between two alternatives.
It is not important to get everything done and working (but would be cool). It is important to show us your thoughts and approaches.
There might be a hidden issue in the task description. If so, describe the found issue and a possible solution / workaround / upgade.

Details:

Alternative A

Setup a PoC including

  • Optional Kubernetes cluster
  • Keycloak (optional within Kubernetes)
  • Some local users and groups (readers, writers, maintainers, external suppliers [optional]) already existing and manually added in Keycloak (assuming the tool is connected to an IDP/LDAP/etc. which is not part of the tech task)
  • GitHub organization connected to keycloak for user auth and group sync via SAML
  • Artifactory [OSS or CPP version] (optional within Kubernetes) connected to Keycloak for user auth and group sync
  • Implement “Creator/Synchronizer” (use the framework of your choice and use whatever helper are available on GitHub, but take care of the OSS licenses) which
  • Synchronizes the groups from Keycloak into GitHub org (define a suitable mapping for readers, writers, maintainers, external suppliers [optional]) à error handling can be commented like “check here for duplicated user”
  • Creates a repository, synchronizes groups, sets up permission targets in Artifactory via RESTApi using GitHub issue ops (issue content evaluation optional, on-new-issue would be sufficient enough) based on the groups used and defined for GitHub org (GitHub org reader ó Artifactory reader, GitHub org writer ó Artifactory org writer, etc.)
  • User story: “User creates an issue in an existing repo within the org and the algorithm/bot does the job behind the scenes to get a repository within Artifactory with appropriate permissions”

Alternative B

  • Like “A” but, if you are new to Keycloak you can also use the “fast path” by direct interaction between GitHub org and Artifactory
  • Read existing users from GitHub org members/roles/teams/outside collaborators,
  • map them to user groups
  • on new issue, create Artifactory repos, groups, etc. with the given information

Assumptions

  1. Everything as code available on github.com under permissive license
  2. Create a concept documentation describing the implementation details (don’t copy the code, just a fluent description of your thoughts), Architectural decisions, tool selections, security concerns, etc. and everything else which can be interesting

Tasks Derived

  • #2
  • #3
  • #4
  • #5
    • Read existing users from GitHub org members/roles/teams/outside collaborators
    • Map the users to user groups.
    • on new issue, create artifactory repos, groups, permission targets according to users maps.
  • #6

Artifactory in cloud (in K8 optional) that can communicate with github.com.

What needs to be done?

Deploy artifactory (OSS) in the cloud.

Why is it necessary?

For integrating with github.com

Prerequisites:

  • K8 cluster or VM on the cloud.

Where it needs to be done?

Google cloud either in k8 cluster or Compute Engine

Acceptance Criteria

  • Artifactory is deployed and reachable via internet

Organization in github.com with user groups/teams.

What needs to be done?

Create an organization in gtihub, invite some users and create teams.

Why is it necessary?

For integrating with artifactory and user management.

Prerequisites:

  • Account in github.

Where it needs to be done?

github.com

Acceptance Criteria

  • organization is created with necessary teams and members.

Implement issueops to sync users from github to artifactory

Implement issueops to do the following.

  • 1) Create a GH repository under an organization where this issueops needs to be implemented. This will be used for requisition.
  • 2) Have an issue template defined which will be used to ask for information like GH repository name, artifactory repository type and other information needed to create repositories and permission targets in artifactory.
  • 3) Define an action workflow which will trigger on issue creation in requisition repository and captures the issue description.
  • 4) Create a script to process the issue description, extract the necessary values and prepare the mappings of users, repos that need to be created in artifactory.
  • 5) Use JFrog CLI or REST api in the same action workflow to create required objects.
  • 6) Pass the information back to the issue creator by commenting on the issue.

Artifactory Repo creation request1

Name of the existing GitHub repo for which Artifactory repo needs to be created. Ex. mydevops

github.repo.name=myproject

Type of the Artifactory repo needed. Ex. local, remote or virtual.

arti.repo.type=local

Package type of the Artifactory repo needed. Ex. maven, gradle, ivy or generic.

arti.repo.package=maven

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.