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

[#266] Update infrastructure configuration to make deploy on beta possible #267

Closed
wants to merge 45 commits into from

Conversation

placek
Copy link
Contributor

@placek placek commented Feb 22, 2024

We've recently made significant updates to our project's infrastructure configuration, as detailed in pull requests (especially #97, #171 and #181) as well as some chores to improve deployment experience, required to perform deployment on the beta environment. This PR involve cherry-picking essential commits that are pivotal for the infrastructure's functionality. These changes are a crucial step towards ensuring that our deployment process is smooth and efficient, allowing for a more robust testing phase in the beta environment. This strategic update is part of our ongoing efforts to enhance our project's reliability and performance.

MSzalowski and others added 30 commits February 22, 2024 12:17
Co-authored-by: Ryan Williams <[email protected]>
Signed-off-by: Igor Velickovic <[email protected]>
This commit updates the README.md file to align with the new backend/frontend
naming convention for the SanchoNet GovTool project, as part of the ongoing
effort detailed in ticket #85. Previously, the documentation links used the old
'vva-be' and 'vva-fe' naming, which is now replaced with 'backend' and 'frontend'
respectively. This change ensures consistency across our project documentation,
following the updates made by @adgud.
This commit involves updating the README.md files for both the backend and
frontend components of the GovTool project. These changes are part of the
ongoing efforts for ticket #85, ensuring that all references to the old 'vva-be'
and 'vva-fe' codenames are replaced with the new 'backend' and 'frontend'
naming convention. This is a continuation of the work done by @adgud, aiming to
maintain consistency across the project's documentation and directory structure.
This commit updates the DEPLOY.md documentation in the docs/operations folder,
as part of the work outlined in ticket #85. The purpose of these changes is to
ensure that our deployment documentation reflects the new naming convention.

Technical Details:
- Updated the reference in the AWS setup instructions, changing the directory path
  from `./src/terraform` to `./infra/terraform`.
  This reflects the new directory structure under the 'infra' directory.
In this commit, we're updating the docker-compose.yml file within the
scripts/govtool directory. This is in line with the ongoing efforts for
ticket #85, focusing on aligning all parts of our project with the new
backend/frontend naming convention. This update changes the build contexts
for both the backend and frontend services in the Docker Compose configuration,
replacing the outdated paths with the new ones that reflect our current project
structure. This is an important step to ensure consistency across all our
development and deployment tools.

Technical Details:
- The build context for the 'vva-be' service in docker-compose.yml was updated
  from `vva-be` to `../../govtool/backend`.
- Similarly, the build context for the 'vva-fe' service was changed from `vva-fe`
  to `../../govtool/frontend`.
This commit involves renaming various configuration files related to the backend
service of the GovTool project. The change is part of the ongoing work for
ticket #85, where we're aligning all aspects of the project with the new
backend/frontend naming convention. This update specifically targets the
configuration files, changing the 'vva-be' references to 'backend'.

Technical Details:
- Renamed the configuration file from `.github/vva-be-config.json` to
  `.github/backend-config.json`.
- Updated the configuration file paths in the scripts/govtool directory, changing
  from `scripts/govtool/config/secrets/vva-be-config.json` and
  `scripts/govtool/config/secrets/vva-be-config.json.tpl` to
  `scripts/govtool/config/secrets/backend-config.json` and
  `scripts/govtool/config/secrets/backend-config.json.tpl` respectively.
- In both the `docker-compose.yml` and `docker-compose.sanchonet.yml` files,
  updated the command and secrets sections to use the new `backend-config.json`
  file. This ensures that the Docker containers for the backend service use the
  correct configuration file when deployed.
- Updated the `prepare-config.sh` script to replace the old template path with
  the new `backend-config.json.tpl`, ensuring the script correctly generates the
  required configuration files for deployment and development environments.
This commit focuses on renaming container services in various Docker Compose
and Grafana configuration files as part of the efforts detailed in ticket #85.
The goal is to align all service names with the new backend/frontend naming
convention.

Technical Details:
- In the Grafana provisioning alerting configuration (alerting.yml), updated
  the Prometheus expression to use `backend@docker` instead of `vva-be@docker`.
  This change is crucial for accurate monitoring and alerting based on the
  new service names.
- Updated the Grafana dashboard configuration (vva.json), changing the Prometheus
  expression to reference `frontend@docker` instead of `vva-fe@docker`. This ensures
  that the dashboard accurately reflects the traffic and metrics for the frontend
  service.
- In both the `docker-compose.sanchonet.yml` and `docker-compose.yml` files,
  renamed the services from `vva-be` to `backend` and from `vva-fe` to `frontend`.
  This update affects how these services are referenced and managed within our
  Docker Compose environments, aligning them with the new project naming standards.
…rvices

This commit revises the Traefik configuration labels within our Docker Compose
files (docker-compose.yml and docker-compose.sanchonet.yml), as part of the
work specified in ticket #85. The aim is to replace the old 'vva-be' and 'vva-fe'
labels with 'backend' and 'frontend', in line with the new naming convention
adopted across the project.

Technical Details:
- In the `docker-compose.sanchonet.yml` file, updated all Traefik labels for
  the backend service, replacing 'vva-be' with 'backend'. This includes updates
  to router rules, middlewares, and service definitions.
- Similarly, updated the frontend service labels in the same file, changing
  'vva-fe' to 'frontend'. This change affects router rules and service
  definitions, ensuring the frontend service is correctly identified and
  routed by Traefik.
- Made analogous updates in the `docker-compose.yml` file, ensuring that local
  development environments also reflect these changes. This includes updating
  the Traefik labels for both the backend and frontend services to use the new
  service names.
This commit updates the volume mappings for the FakeDB database schema in the
docker-compose.yml file, as a part of the work detailed in ticket #85. The
modification is necessary to reflect the new backend/frontend naming convention
and directory structure in the GovTool project. Specifically, this change
ensures that the database initialization scripts for the FakeDB service are
correctly sourced from the updated locations within the project.

Technical Details:
- Changed the volume mappings for the FakeDB service within the
  docker-compose.yml file. The paths for the database initialization scripts
  'fakedbsync_users.sql' and 'schema6.sql' have been updated from
  `./vva-be/misc/...` to `../../govtool/backend/misc/...`.
- This update ensures that when the FakeDB service is started, it correctly
  locates and executes the initialization scripts stored in the new backend
  directory, maintaining the integrity and functionality of the development
  environment.
…docker compose

This commit changes the local domain names for the backend and frontend services
in the docker-compose.yml file, as part of the initiative in ticket #85. The
modification is aimed at aligning the local development environment with the
new backend/frontend naming convention. By updating the domain names, we ensure
that the local URLs used for accessing these services reflect the updated
project structure and naming standards.

Technical Details:
- Updated the Traefik router rule for the backend service. The local domain
  name is changed from `vva-be.localhost` to `backend-govtool.localhost`. This
  alteration is specified in the label `traefik.http.routers.backend.rule`.
- For the frontend service, updated the Traefik router rule to change its
  local domain from `vva-fe.localhost` to `frontend-govtool.localhost`. This
  change is reflected in the label `traefik.http.routers.frontend.rule`.
This commit updates the Makefile within the scripts/govtool directory to
reflect the new project naming conventions as outlined in ticket #85. The
change involves renaming the Docker Compose project from the old 'vva' prefix
to 'govtool'. This renaming is crucial to maintain consistency throughout
the project's infrastructure and deployment scripts, aligning them with
the updated naming standards.

Technical Details:
- Modified the Docker Compose commands in the Makefile. Changed the project
  name prefix in the `-p` (project name) option from `vva-$(env)-$(cardano_network)`
  to `govtool-$(env)-$(cardano_network)`. This affects both the `deploy-stack`
  and `toggle-maintenance` targets in the Makefile.
- These changes ensure that when deploying or managing the Docker Compose
  stacks, the correct, updated project name is used, which is vital for
  proper identification and management of the containers in different
  environments.
This commit focuses on updating the database name for the FakeDB service from 'vva' to 'govtool'. This change is made across various configuration files and workflows as part of the efforts described in ticket #85. The update is essential to ensure that the database name aligns with the new backend/frontend naming convention and provides consistency across the project's development, testing, and deployment environments.

Technical Details:
- Updated the `backend-config.json` file in the `.github` directory and the `scripts/govtool/config/secrets` directory. Changed the 'dbname' field from 'vva' to 'govtool' in the 'fakedbsyncconfig' object.
- Modified the `.github/workflows/build-and-deploy.yml` file, updating the `FAKEDBSYNC_POSTGRES_DB` environment variable from 'vva' to 'govtool'. This change ensures that the GitHub Actions workflows utilize the correct database name during build and deployment processes.
- Changed the `FAKEDBSYNC_POSTGRES_DB` variable in the `.env.example` file in the `scripts/govtool` directory, ensuring that local development environments are correctly configured to use the new database name.
- In the `docker-compose.yml` file within the `scripts/govtool` directory, updated the `POSTGRES_DB` environment variable for the postgres service from 'vva' to 'govtool'. This ensures that the correct database is created and used when running the Docker Compose setup.
This commit updates the README.md file in the govtool/backend directory, adding a crucial note regarding the potential renaming of the backend executable. As part of the ongoing efforts outlined in ticket #85, this note is essential to prepare for the upcoming changes that align with the project's rebranding and development strategies.

This note informs readers and developers that the executable previously known as 'vva-be' is anticipated to be officially renamed to 'govtool-backend'.  The change is in line with the project's updated branding and functional scope. It is planned to be implemented soon as part of a planned refactor
This commit introduces a new functionality in the GovTool deployment Makefile to establish an SSH connection to a target environment. This feature is particularly useful in the context of the ongoing efforts to improve infrastructure configuration and management. The addition of this SSH helper simplifies the process of connecting to various environments, aligning with the goal of enhancing operational efficiency and ease of access for maintenance and deployment tasks.

The technical implementation involves adding a new `ssh` target in the Makefile. This target ensures that necessary environment variables such as `cardano_network` and `env` are defined before initiating the SSH connection. The implementation sets the terminal type to `xterm-256color` to avoid issues with different terminal settings and then executes the SSH command using the `ssh_url` variable.
This commit renames the Grafana dashboard configuration file from 'vva.json' to
'govtool.json' in the scripts/govtool/config/grafana-provisioning/dashboards
directory. This change is a continuation of the effort detailed in ticket #111,
as an extension of the issue #85, where we are updating various components
of the project to align with the new naming convention.

Technical Details:
- Renamed the Grafana dashboard configuration file from
  `scripts/govtool/config/grafana-provisioning/dashboards/vva.json` to
  `scripts/govtool/config/grafana-provisioning/dashboards/govtool.json`.
- Also updated the 'id' property of the dashboard within the file from 2 to 3.
  This change is a routine update to maintain the uniqueness and
  integrity of the dashboard's identification within the Grafana system.
This commit updates the Traefik Let's Encrypt (LE) admin email address in the
`.github/workflows/build-and-deploy.yml` file. The change is a part of the
ongoing rebranding efforts detailed in epic ticket #111, where 'vva' is being
replaced with 'govtool'. The updated email address, `[email protected]`,
reflects this rebranding, ensuring that the administrative contact for Traefik LE
certificates is consistent with the new project name.

Technical Details:
- Modified the `TRAEFIK_LE_EMAIL` environment variable in the GitHub Actions
  workflow file. Changed from `[email protected]` to
  `[email protected]`. This change was made in two places within the
  file to ensure consistency across different job configurations.
This commit updates Prometheus configuration in prepare-config.sh as part
of the ongoing efforts in rebranding epic #111.
The change is a part of the broader initiative to update all project components
to the new 'govtool' naming, ensuring consistency and clarity as the project
moves towards open-source community involvement.

Technical details:
- In the `scripts/govtool/prepare-config.sh` script, the external label for Prometheus
  monitoring has been updated from 'vva' to 'govtool'. This change ensures that
  metrics scraped by Prometheus are correctly associated with the GovTool project,
  reflecting the new project name and aiding in consistent monitoring and analytics.
.
This commit updates the AWS profile name in the .env.example file within the
scripts/govtool directory, as part of the ongoing rebranding effort detailed
in ticket #111. The purpose of this change is to align the AWS configuration
with the new 'govtool' branding, replacing the old 'vva' reference.
This commit enriches the .env.example file in the scripts/govtool directory.
The updated examples in the file provide clearer guidance on environment setup,
reflecting a more comprehensive and realistic configuration for the GovTool stack.
These enhancements are designed to offer a more user-friendly setup experience,
especially for new developers or contributors who are configuring their environment
for the first time.

Technical Details:
- Expanded the environment variable examples, providing more detailed placeholders.
- Included variables for database passwords, Traefik Let's Encrypt email, Google Tag Manager ID, Sentry DSN for backend and general use, NGINX basic authentication, and various Grafana settings (admin password, Slack recipient, webhook, and OAuth token).
This commit updates the AWS setup for the GovTool project, particularly focusing on the Terraform configuration. The change involves renaming the S3 bucket used for storing Terraform state, aligning it with the ongoing rebranding effort detailed in ticket #111.

Technical Details:
- Updated the S3 bucket name in the `bootstrap-aws-account.sh` script within the `infra/terraform` directory. Changed from `vva-terraform-state` to `govtool-terraform-state`.
- Similarly, modified the Terraform backend configuration in `versions.tf`. The `bucket` field now uses the new `govtool-terraform-state` name.
This commit further refines the AWS configuration for the GovTool project in the `infra/terraform` directory. Following the rebranding guidelines of ticket #111, the Terraform lock table name has been updated to match the new project naming convention.

Technical Details:
- Changed the DynamoDB lock table name in the `bootstrap-aws-account.sh` script. Updated from `vva-terraform-locks` to `govtool-terraform-locks`.
- Also updated the Terraform backend configuration in `versions.tf`. The `dynamodb_table` field now references the new `govtool-terraform-locks` name.
This commit encompasses a series of updates to the infrastructure configuration
of the GovTool project, aligning with the rebranding initiative detailed
in ticket #111. The modifications include renaming Terraform modules,
EC2 instances, and related infrastructure components from 'vva' to 'govtool'.

Technical Details:
- Updated the DEPLOY.md documentation to reference the new `govtool-ec2` module
  instead of the old `vva-ec2`.
- Renamed Terraform modules in `main.tf`. For instance, `vva-ecr-be` is now
  `govtool-ecr-backend`, and `vva-ecr-fe` is `govtool-ecr-frontend`.
- Updated various Terraform configurations, including resource names and module
  references, to reflect the new `govtool` naming.
- Renamed files and modules within the `infra/terraform/modules` directory,
  such as changing `vva-ec2` to `govtool-ec2` and updating associated files like
  `user_data.sh` and `variables.tf`.
- Adjusted the Makefile in the `scripts/govtool` directory to check for
  the renamed Terraform module `govtool-$(env)-$(cardano_network)`.
This commit encompasses a significant update to the backend testing suite,
aligning it with the GovTool rebranding as part of ticket #111. The changes
include renaming test directories, files, and updating references within
the test cases to reflect the new project codename.

Technical Details:
- Renamed the backend testing directory from `tests/vva-be` to `tests/govtool-backend`.
- Updated `.github/workflows/test_backend.yml` to reference the new test directory and updated project URLs.
- Renamed several files within the test directory, including `.env.example`, `.gitignore`, `README.md`, `config.py`, and various test case files.
- Modified test case files to replace 'vva' references with 'govtool', ensuring the tests are correctly aligned with the updated backend application name.
This commit implements a series of changes to the integration tests for
the GovTool frontend, aligning them with the rebranding effort as outlined
in the ticket #111. The modifications include renaming test directories,
files, and updating references within the test cases to reflect the new
project codename 'govtool'.

Technical Details:
- Renamed the frontend testing directory from `tests/vva-fe` to `tests/govtool-frontend`.
- Updated `.github/workflows/test_integration_cypress.yml` to reference the new test directory and updated project URLs.
- Renamed various files within the test directory, including `.gitignore`, `README.md`, configuration files, and numerous test case files.
- Adjusted test case files to replace 'vva' references with 'govtool', ensuring the tests are accurately aligned with the updated frontend application name.
- Renamed the package in `package.json` from `vva-fe-test` to `govtool-frontend-test`.
This commit involves updating the infrastructure tests to align with
the GovTool rebranding, as part of the work on ticket #111. The changes
include modifying various configuration files, scripts, and documentation
to replace references to the old project codename 'vva' with
the new 'govtool' codename.

Technical Details:
- Updated `.env.example` in the `tests/test-infrastructure` directory to use `STACK_NAME=govtool`.
- Revised `README.md` to reflect the new project name in the test infrastructure documentation.
- Modified `deploy-swarm.sh` script, changing comments and deployment labels to mention 'govtool' instead of 'vva'.
- Updated `docker-compose-services.yml` and `docker-compose.yml` files to use the new project name in service definitions and deployment constraints.
- Adjusted `gen-configs.sh` to generate secrets with the 'govtool' prefix, ensuring compatibility with the updated project setup.
This commit encompasses modifications to the metrics tests, part of the larger
effort to align all parts of the project with the GovTool rebranding,
as detailed in ticket #97. The changes include updates to configuration files
and documentation, ensuring they accurately reflect the new project codename.

Technical Details:
- Updated `.env.example` in the `tests/test-metrics-api` directory, changing `PGDATABASE='vva'` to `PGDATABASE='govtool'`.
- Revised `README.md` to update the description, indicating that the API is now associated with the GovTool app instead of 'vva'.
- These changes are critical to ensure consistency and clarity in the metrics tests, aligning them with the GovTool project's new naming conventions and ensuring accurate data logging and metrics gathering.
This commit involves a comprehensive rebranding of the load testing suite
from 'vva' to 'GovTool', as part of the ongoing efforts detailed in ticket #111.
This update ensures all aspects of the load testing, including Java class names,
Maven group and artifact IDs, and configuration settings, are consistent with
the new GovTool naming convention.

Technical Details:
- Updated Maven `pom.xml`, changing `groupId` and `artifactId` to reflect the GovTool project.
- Renamed various Java classes in the `tests/load-testing` directory from `org.cardano.vva` to `org.cardano.govtool`.
- Updated configuration files `gatling.conf` and `recorder.conf` to reflect the new project name.
placek and others added 15 commits February 22, 2024 12:17
This commit updates the Lighthouse workflow configuration to align with
the GovTool project rebranding, as part of the ongoing changes detailed
in ticket #111. The modifications ensure that the Lighthouse workflow
accurately references the updated project structure and naming conventions.

Technical Details:
- Revised `.github/workflows/lighthouse.yml` to use the updated paths and file references for the GovTool project.
- Adjusted the cache key in the Lighthouse workflow to reference the correct `package-lock.json` files, changing from `tests/vva-fe` to `tests/govtool-frontend`.
- Ensured that the workflow steps are properly configured to work with the new GovTool project structure.
- These changes are essential for maintaining the integrity and efficiency of the Lighthouse performance testing in the CI/CD pipeline, ensuring it reflects the current state of the GovTool project.
This commit updates the Sonar Scan workflow configuration to reflect
the new codename of the project - GovTool, as part of the restructuring
outlined in ticket #111. The changes ensure that the Sonar Scan workflow
is properly aligned with the new project name, particularly for the
frontend component of the GovTool application.

Technical Details:
- Modified `.github/workflows/frontend_sonar_scan.yml` to rename the workflow job from "Execute sonar-scanner on vva-fe" to "Execute sonar-scanner on govtool frontend".
- Ensured that the workflow steps are correctly configured to work with the GovTool frontend project.
This commit changes the naming convention for build versions in the GovTool
project Makefile, using the commit hash instead of the branch name.

This adjustment addresses potential issues with branch names containing
forbidden characters that may not be compatible with docker tag allowed
literals.

This modification enhances the robustness and reliability of the build
and deployment process, aligning with requirements of the branch naming
convention stated in CONTRIBUTING.md.

Technical Details:
- The new branch naming convention requires branch prefixes separated
  from actual branch name with slash character which is forbidden in
  docker tag naming[^1].

By utilizing the commit hash for build versioning, we ensure that each build
is traceable to a specific state of the codebase, enhancing traceability
and accountability in the development process.

[^1]: https://docs.docker.com/engine/reference/commandline/image_tag/
This commit introduces the capability to execute arbitrary Docker Compose
commands on target environments directly from the Makefile, significantly
enhancing operational flexibility and efficiency for managing
the GovTool project's infrastructure.

By enabling the execution of arbitrary Docker Compose commands, this enhancement
empowers developers and operators to perform complex orchestration tasks more
efficiently, directly aligning with DevOps best practices for automation
and management of containerized environments.

This addition facilitates a wide range of Docker Compose operations, such
as service management, logs monitoring, and environment diagnostics,
directly from the Makefile without the need for direct interaction
with the deployment server.

Technical Details:
- Updated `scripts/govtool/Makefile` to include a new `docker` recipe, allowing the execution of user-defined Docker Compose commands via the `cmd` variable.
- The recipe also ensures that the SSH key of the deployment server is added to known hosts, preventing interactive prompts that could hinder automated workflows.
This commit introduces a `nix-shell` configuration for the Terraform
infrastructure setup within the GovTool project, aimed at streamlining
and unifying the development environment setup process. By leveraging Nix,
the project benefits from a reproducible and declarative approach to manage
dependencies, ensuring consistent environments across all development
and CI/CD pipelines.

The adoption of Nix and the introduction of a `nix-shell` environment
underscore the project's commitment to DevOps best practices, focusing on
reproducibility, ease of setup, and streamlined development workflows.
This setup not only enhances the developer experience but also aligns with
the project's objectives of maintaining high standards of reliability
and consistency across all environments.

Technical Details:
- Added `infra/terraform/.env.example` to provide a template for the required environment variables, including `AWS_PROFILE` for AWS CLI configurations and `NIXPKGS_ALLOW_UNFREE` to allow the installation of unfree packages (the two packages that we provide already are un-free already).
- Introduced `infra/terraform/shell.nix` to define the Nix shell environment, specifying `awscli2` and `terraform` as the primary dependencies. This setup ensures that developers have access to the exact versions of these tools required by the project, minimizing "works on my machine" problems.
Summary:
This commit rolls back the names of the S3 bucket and DynamoDB table used
for Terraform state management to their original identifiers. This change is
crucial for maintaining access to our current infrastructure setup before
we proceed with renaming and rebranding efforts within our infrastructure
configuration. By reverting these names, we ensure continuity and access
to existing resources, which is necessary for a smooth transition to the
new naming convention. This step is preparatory, aimed at minimizing disruption
and maintaining operational integrity during the rebranding process.

Technical Details:
Modifications were made in Terraform configuration file, versions.tf, within the infra/terraform directory. The changes are as follows:

S3 Bucket Name: The Terraform backend configuration in versions.tf has been updated to point back to the original S3 bucket, changing from govtool-terraform-state to vva-terraform-state. This reversion ensures that Terraform commands continue to interface with the existing state file, preserving the link to our current infrastructure assets.

DynamoDB Table Name: Similarly, the DynamoDB table used for state locking has been reverted from govtool-terraform-locks to vva-terraform-locks. This change is crucial for maintaining state consistency and preventing concurrent execution conflicts during Terraform operations.
This commit introduces a strategic approach to renaming Terraform
resources within our AWS infrastructure, moving from the legacy codename
"VVA" to the new project identifier "GovTool". The migration is
orchestrated through the addition of two new Terraform files:
`vva_to_govtool_migration_20240212.tf` in both the main Terraform
directory and within the `govtool-ec2` module. These files serve as a
temporary mechanism to facilitate a seamless transition of resource and
module names across the infrastructure.

Key Highlights:
- The migration files outline a series of `moved` directives, explicitly
  mapping old resource and module identifiers to their new names. This
  approach ensures Terraform can manage the renaming process efficiently,
  minimizing the risk of resource duplication or loss.
- The migration is carefully planned to ensure no disruption to the
  ongoing operations, preserving the state of resources and their
  configurations throughout the process.
- A note within each migration file indicates their temporary nature,
  with instructions to remove these files once all stakeholders have
  successfully applied the migration. This step is crucial to prevent
  clutter in the Terraform codebase and maintain the integrity of the
  infrastructure as code practices. The migration files should be
  removed before project goes open source.

This renaming initiative is a critical component of our broader
rebranding efforts, reflecting the project's evolution and aligning our
infrastructure with the new brand identity.
This commit updates the Cardano node version used within the Sanchonet
environment to `8.8.0-pre`, aligning with the latest implementation
enhancements and security updates. This change is reflected in the
`docker-compose.sanchonet.yml` file, ensuring that our infrastructure
remains at the forefront of technological advancements and maintains
compatibility with the evolving Cardano ecosystem.

Key Changes:
- The Cardano node image has been updated from `8.7.2` to `8.8.0-pre`, a
  pre-release version that incorporates the latest features and
improvements from the Cardano development team.

By staying updated with the latest versions of critical infrastructure
components like the Cardano node, we ensure that our platform remains
secure, efficient, and capable of leveraging the latest advancements in
the Cardano ecosystem. This proactive approach to infrastructure
management underscores our commitment to excellence and our dedication
to supporting the Cardano community with the most up-to-date and
reliable services possible.
…euse across environments

Summary:
To enhance and fix our deployment script's reliability and ensure
environment-specific configurations are not mistakenly reused locally, this
commit introduces a critical update to the script responsible for
preparing configurations, including the Nginx setup. Recognizing the
need for distinct configurations across different deployment
environments, we've implemented a change to automatically remove the
Nginx configuration directory once the deployment script has executed.
This action prevents potential conflicts and misconfigurations when
deploying to multiple environments by ensuring that each deployment
starts with a clean slate regarding Nginx setup.

The change has been introduced after an incident[^1] occurred during
efforts on #97, where mutliple deployments on multiple environments had
to be performed avoiding the GitHub Action workflow, since they were not
yet introduced to the repository.

The problem is irrelevant on the GitHub workflows since they are
executed in isolation on containerized environment.

Technical Details:
The modification was made in the scripts/govtool/prepare-config.sh
script, where a command to remove the Nginx configuration directory
($nginx_config_dir) has been added. This line is strategically placed
before the creation of new configuration directories and files, ensuring
that any pre-existing Nginx configuration is cleared out before
generating new ones. This approach guarantees that configurations from a
previous deployment do not linger and affect subsequent deployments to
different environments. The logic specifically targets the scenario
where the deployment script is run multiple times locally across various
environments, addressing a previously overlooked aspect of our
deployment process. This change is part of our ongoing efforts to refine
our deployment practices, ensuring they are robust, clean, and tailored
to the specific requirements of each environment.
The change has no impact on GitHub workflow since the execution od the
deployment there is performed in isolation with no cached nor reused
file system storage.
Additionally the documentation note has been added to deployment
instructions to keep track of what actually happens during the deploy
process and how does this impact the target environments.

By incorporating this update, we mitigate the risk of configuration
leakage between environments, a critical aspect of maintaining the
integrity and isolation of our deployment processes. This change
underscores our commitment to continuous improvement in our deployment
strategies, ensuring they align with best practices and the unique
demands of our infrastructure.

[^1]: #174
… in order to post to the new govtool-notifications channel. This change is introduced due to migration of Slack app to a different organization and use of a single Slack App instead of separate ones.
Corrected a typo in the `Makefile` under the `scripts/govtool` directory
that caused the Slack notification command to fail. The typo in the git
revision parsing command (`git-rev-parse HEAD`) was corrected to `git
rev-parse HEAD`, ensuring that the command correctly retrieves the
current commit hash. This fix ensures that notifications sent to Slack
upon deployment include the accurate commit hash from which the
deployment was made, improving traceability and communication in
deployment processes.
@placek placek linked an issue Feb 22, 2024 that may be closed by this pull request
5 tasks
@placek placek self-assigned this Feb 22, 2024
@MSzalowski
Copy link
Contributor

I'll close this pull request as established that beta will be fixed via our development process (develop -> test -> stage -> main)

@MSzalowski MSzalowski closed this Feb 23, 2024
@placek placek deleted the chore/266-revive-beta branch March 18, 2024 10:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Restore beta environment
5 participants