PoC for hosted development environment for FOLIO teams (FOLIO-2601)

[FOLIO-2618] Automate creation and configuration of Rancher dev environment Created: 28/May/20  Updated: 22/Jun/20  Resolved: 22/Jun/20

Status: Closed
Project: FOLIO
Components: None
Affects versions: None
Fix versions: None
Parent: PoC for hosted development environment for FOLIO teams

Type: Task Priority: P2
Reporter: John Malconian Assignee: Stanislav Miroshnichenko
Resolution: Done Votes: 0
Labels: dev-environment
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original estimate: Not Specified

Sprint: DevOps: sprint 90
Development Team: FOLIO DevOps
Epic Link: PoC for hosted development environment for FOLIO teams

 Description   

Automate Rancher project configuration and base environment for Rancher-based development environment. Automated tasks include adding developer accounts to Rancher, project creation, setting up default project resource limits, default container limits and reservations, adding team member accounts to project, deployment of base components - okapi, postgresql, and kafka, as well as related configMaps and secrets, and enabling project-level monitoring.



 Comments   
Comment by John Malconian [ 28/May/20 ]

Additional Notes/Requirements:

  • All developer accounts should be created with "user-base" privileges by default. All accounts should be created so that it's easy to identify an actual human with an account.
  • There should be resource limits defined for each project - CPU: 8000m RAM: 32GB. I don't think we need to limit anything else at this time. We should also define a default container limit and reservation. I'd recommend maybe 100m CPU and 2GB of RAM as the upper limit and 200m CPU and 512MB as the default container reservation, but this can be modified as needed.
  • The primary namespace that will be used by FOLIO developers should be named after the team name. e.g. "folijet", etc
  • Developers should be added to the project as "Project members". "Project Owners" are reserved for DevOps/admin accounts only.
  • "Base" components should be installed and configured for each project. These include an instance of Okapi, Postgresql, and Kafka. Postgresql and Kafka can be installed as Helm charts. Okapi currently not does not have a Helm chart. Determine whether one is needed. If so, create a separate jira issue for that. Additional notes and configuration files can be located at https://github.com/folio-org-priv/folio-infrastructure/tree/master/CI/dev-env. We need to determine if Helm charts should be installed from the Rancher global app catalog or from a project-level catalog. If they are installed from the global app catalogue, each chart is installed into a separate namespace under the project. Therefore, service discovery options need to be considered so that all apps in one namespace can route to the different apps in different namespaces within the project.
Comment by Stanislav Miroshnichenko [ 22/Jun/20 ]

Rancher Projects environment is rules by Terraform stack

You can add new Project using a Terraform generator template ('generator' folder).

All Projects are contains Postgres installed on Project-level Application in own namespace and share it with Okapi instance.
OKAPI installed as Helm chart.

Monitoring enabled for each Project.

Terraform state file is storing in the repository.

Generated at Thu Feb 08 23:22:00 UTC 2024 using Jira 1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d.