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

Update Docker image with Elastic Search and feeder #23

Open
jmgasper opened this issue May 11, 2018 · 0 comments
Open

Update Docker image with Elastic Search and feeder #23

jmgasper opened this issue May 11, 2018 · 0 comments
Assignees

Comments

@jmgasper
Copy link

Overview

The Topcoder Challenge API is an API used to manage challenges on the site, including:

  • Querying open and past challenges (Code, Design, SRM, Marathon Match)
  • Viewing challenge results
  • Querying challenges by member
  • Managing challenge metadata, like resources, platforms and technologies
  • Closing, canceling, activating challenges
  • Registering and unregistering submitters from challenges

Problem

Currently, we have the ability to deploy the challenge API locally, using the TC Direct app deployed in a docker instance. More details can be found here:

https://github.com/appirio-tech/ap-challenge-microservice

The problem we have right now is that the docker image doesn't contain the same dependencies as the production deployment of the service, which is causing us to have issues tracking down and debugging production issues.

The main missing piece is Elastic Search and the Elastic Search Feeder Service.

This challenge will update the docker image to contain Elastic Search and a configured feeder service, matching what we would see in the dev and prod environments.

Elastic search document

Copy of Feeder Service for Humans.pdf

Requirements

For this challenge, the submission will include:

  • Clean step-by-step instructions for getting the dependencies set up
  • Updated docker compose script and build instructions for deploying a docker image that includes Elastic Search and the Topcoder Feeder Service
  • Clear validation documentation to ensure the feeder service is working properly and feeding the Elastic Search instance from Informix
  • Clear validation documentation that shows how the challenge API will connect and be fed from Elastic Search, the same way it is in dev and prod environments, like api.topcoder-dev.com
  • Documentation on how to connect to Elastic Search running in the docker and running sample requests to verify the indices are loaded and contain the required data

Elastic Search Feeder Service (https://github.com/topcoder-platform/tc-elasticsearch-feeder-service/)

Verification documentation

Once the dependencies are installed, your documentation should include details on running and configuring the challenge API service (https://github.com/appirio-tech/ap-challenge-microservice) to consume the installed dependencies. You should include details on how to use the Swagger or the npm library here https://www.npmjs.com/package/topcoder-api-challenges to test the locally deployed challenge API to ensure it's running properly.

Submission requirements

You must provide documentation describing:

  • A new docker compose file that adds the required dependencies
  • Clear, updated documentation for building and running the updated docker image
  • How to set up the challenge API dependencies locally to use the new docker image
  • Verification information to ensure the feeder service, elastic search, and the challenge API are all running as expected
  • Documentation on how to connect to Elastic Search running in the docker and running sample requests to verify the indices are loaded and contain the required data

Helpful documentation links

Here are helpful links that may assist in the effort. Some of these may be out of date, but hopefully they can help give context to specific things in the code that may be hard to test or get up and running.

Setup links

Repos

Verification

@skyhit skyhit self-assigned this May 11, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants