/Camino

Deployment Management repository for CEP Portals

Primary LanguagePython

Camino

Dependencies:

Camino directs and tracks container-based deployments across various environments

A compose file exists for each environment to orchestrate deployments. Each application/service in a compose file can be locked to a specific tag. An image digest can be used to guarantee the correct/expected image is always referenced.

Setup: Clone the Camino repo to the path /opt/portal

At the root of the cloned project create the env file .env and add the environment variables that indicate which docker-compose files should be used. With the env file set, Make will load the environment variables and pass them to the compose file.

The .env file can be used to populate values in the compose file and in conjunction with the Makefile helps create custom service sets.

Quick-Start Example

  1. Clone this repo
  2. Create a .env file and populate with:
BASE_COMPOSE_FILE=docker-compose.nginx.yml
COMPOSE_FILE=
CAMINO_HOME=${PWD}
  1. Run make up
  2. Navigate to localhost

Services can be customized without modifying base compose files by creating overrides files in conf/camino/

To override the version of nginx image used in the previous example
  1. Create file docker-compose.nginx.overrides.yml In conf/camino and paste in:
version: "3.8"
services:
  nginx:
    image: nginx:stable
  1. In the .env file add entry, COMPOSE_FILE=docker-compose.nginx.overrides.yml
  2. run make up
  3. Note that the nginx image with tag stable is being pulled down
  4. Navigating to localhost now displays the default page for the new image

To facilitate continuous integration without updating the Camino repo, a service in a compose file can be tagged with :latest. New images built and published with the tag :latest can then be deployed without requiring updates to Camino.

Deploying with Jenkins:

  1. Build and publish the image Build/Publish Core Portal Build/Publish CMS
  2. If required, update the service's image reference in the appropriate compose file as described above
  3. Go to Frontera_Deployments in Jenkins and start a build, selecting environment and component/service

A Makefile is included to faciliate manual deployment.

Steps for manually deploying service:

  1. Update the Camino compose file with image reference as needed
  2. Switch to user portal with sudo su - portal
  3. Navigate to the Camino repo cd /opt/portal/camino/
  4. Run the appropriate make command *cms: make deploy-cms *core portal: make deploy-core *user guide: make deploy-docs *all services: : make deploy-all

por necesidad o aventura, todo descubrimiento nace con el inicio de un viaje sin fin, el camino hacia la frontera