Coder Social home page Coder Social logo

devops-capstone-project's Issues

Create a CD Pipeline to Automate Deployment to Kubernetes

Role: As a Developer
Function: I need to create a CD pipeline to automate deployment to Kubernetes
Business Value: So that the developers are not wasting their time doing it manually

Details and Assumptions

  • Use Tekton to define the pipeline
  • It should clone, lint, test, build, and deploy the service
  • Deployment should be to OpenShift
  • It can use a manual trigger for this MVP

Acceptance Criteria

Given the CD pipeline has been created
When I trigger the pipeline run
Then I should see the accounts service deployed to OpenShift

List all accounts in the service

Role: As a User
Function: I need to be able to list all accounts in the service
Business Value: So that I can manage our accounts

Details and Assumptions

  • Accounts service will have basic customer information like names and addresses

Acceptance Criteria

Given I need a list of all the accounts in our service
When I request this list
Then the list should contain all of the accounts in our service

Containerize your microservice using Docker

Role: As a Developer
Function: I need to containerize my microservice using Docker
Business Value: So that I can deploy it easily with all its dependencies

Details and Assumptions

  • Create a Dockerfile for repeatable builds
  • Use a Python:3.9-slim image as the base
  • It must install all of the Python requirements
  • It should not run as root
  • It should use the gunicorn wsgi server as an entry point

Acceptance Criteria

Given the Docker image named accounts has been created
When I use `docker run accounts`
Then I should see the accounts service running in Docker

Set up the development environment

Role: As a Developer
Function: I need a development environment with high parity to our deployment environment
Business Value: So that I can write robust, deployable code.

Details and Assumptions

  • Deploy target is Ubuntu.

Acceptance Criteria

Given I write code
When my test cases pass
Then my code will have less errors moving to production

Deploy your Docker image to Kubernetes

Role: As a Service Provider
Function: I need my service to run on Kubernetes
Business Value: I can easily scale and manage the service

Details and Assumptions

  • Kubernetes manifests will be created in yaml format
  • These manifests could be useful to create a CD pipeline
  • The actual deployment will be to OpenShift

Acceptance Criteria

Given the Kubernetes manifests have been created
When I use the oc command to apply the manifests
Then the service should be deployed and run in Kubernetes

Update an account in the service

Role: As a User
Function: I need the ability to update an account in the service
Business Value: So that I can keep our accounts up to date

Details and Assumptions

  • Accounts service will have basic customer information like names and addresses

Acceptance Criteria

Given an account's information changes
When I update the account in the service
Then the account's new data is persisted

Delete an account from the service

Role: As a User
Function: I need the ability to delete an account from the service
Business Value: So that I can keep our accounts up to date

Details and Assumptions

  • Accounts service will have basic customer information like names and addresses

Acceptance Criteria

Given a customer offboards
When I delete their account
Then that account's data will no longer be present

Read an account from the service

Role: As a User
Function: I need the ability to read an account from the service
Business Value: So that I can extract its data

Details and Assumptions

  • Accounts service will have basic customer information like names and addresses

Acceptance Criteria

Given I need to retrieve data from the service
When I request to read an account from the service
Then I will get that account's data

Need the ability to automate continuous integration checks

Role: As a Developer
Function: I need automation to build and test every pull request
Business Value: So that I do not have to rely on manual testing of each request, which is time-consuming

Details and Assumptions

  • GitHub Actions will be used for the automation workflow
  • The workflow must include code linting and testing
  • The Docker image should be postgres:alpine for the database
  • A GitHub Actions badge should be added to the README.md to reflect the build status

Acceptance Criteria

Given code is ready to be merged
When a pull request is created
Then GitHub Actions should run linting and unit tests
And the badge should show that the build is passing

Need to add security headers and CORS policies

Role: As a Service Provider
Function: I need my service to use security headers and CORS policies
Business Value: So that my web site is not vulnerable to CORS attacks

Details and Assumptions

  • Flask-Talisman will be used for security headers
  • Flask-Cors will be used to establish cross-origin resource sharing (CORS) policies

Acceptance Criteria

Given the site is secured
When a REST API request is made
Then secure headers and a CORS policy should be returned

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.