Skip to content
This repository has been archived by the owner on Nov 2, 2024. It is now read-only.

feat: Support configuration-based provisioning of Cloud Ops artifacts (part 1) #1036

Merged
merged 13 commits into from
Jun 19, 2023

Conversation

minherz
Copy link
Contributor

@minherz minherz commented May 13, 2023

What this PR does / why we need it:

Change the provisioning of the Cloud Ops Sandbox artifacts from being hardcoded in Terraform to the configured using external YAML files. Terraform will process the configuration's files to provision the same set of artifacts from the configuration. The specific configuration is determined based on the configuration's ID and the constant root path within the repository (i.e. configurations/{ID}).

This PR includes:

  • Adding a new workflow to applying lint and schema validations to configuration files on any change to configuration or schema files
  • Adding test configurations for basic validation of the schema and further support of the unit testing of Terraform scripts (vs. known execution plan)
  • Changing repo's folder structure to add /configurations folder for configurations and /provisioning/schemas/configuration for configuration's schemas

Which issue(s) this PR fixes:

Partially fixes #1020
Partially fixes #1026
Fixes #1037

Special notes for a reviewer:

See for feat: Support configuration-based provisioning of Cloud Ops artifacts (part 2) PR #1038

minherz added 3 commits May 11, 2023 18:15
add schemas describing configuration for alerts, monitoring dashboards,
log-based metrics, notification channels, SLOs and uptime checks.
Schemas follow JSON schema standard (draft 2020-12).
@minherz minherz added this to the version 0.10 milestone May 13, 2023
@minherz minherz self-assigned this May 13, 2023
@minherz minherz force-pushed the minherz/implement-configuration branch 8 times, most recently from ecb15ca to 485b88c Compare June 9, 2023 22:59
Change layout of configurations and configuration schemas (see #1037)
Add schema validation to configurations-ci job.
@minherz minherz force-pushed the minherz/implement-configuration branch from 485b88c to 0058143 Compare June 10, 2023 01:24
@minherz minherz force-pushed the minherz/implement-configuration branch 10 times, most recently from e5f2861 to 17e78e5 Compare June 11, 2023 04:02
@minherz minherz force-pushed the minherz/implement-configuration branch from 17e78e5 to e1b4c67 Compare June 11, 2023 04:22
@minherz minherz force-pushed the minherz/implement-configuration branch 5 times, most recently from 938237f to a8c6aa4 Compare June 11, 2023 20:05
setup alerts configuration with realistic data.
setup services configuration with realistic data.
update alerts schema to support alert notification channel(s)
@minherz minherz force-pushed the minherz/implement-configuration branch from a8c6aa4 to de2ad8a Compare June 11, 2023 20:11
Add configuration tests for metrics and healthchecks.
Constraint app-id field in all schemas to prevent path injection.
@minherz minherz changed the title feat: Support configuration-based provisioning of Cloud Ops artifacts feat: Support configuration-based provisioning of Cloud Ops artifacts (part 1) Jun 15, 2023
@minherz minherz marked this pull request as ready for review June 18, 2023 22:29
@minherz minherz requested a review from a team as a code owner June 18, 2023 22:29
@minherz minherz force-pushed the minherz/implement-configuration branch from 35dab4f to 81c06b6 Compare June 18, 2023 22:31
Add test for dashboard configuration.
Add test for SLO configuration including availability and latency SLOs.
@minherz minherz force-pushed the minherz/implement-configuration branch from 81c06b6 to 8105f48 Compare June 19, 2023 02:42
@minherz minherz merged commit a89e015 into milestone/0.10 Jun 19, 2023
minherz added a commit that referenced this pull request Aug 7, 2023
… (part 1) (#1036)

Add schemas describing configuration for alerts, monitoring dashboards,
log-based metrics, notification channels, SLOs and uptime checks.
Follow JSON schema standard (draft 2020-12).
Add validation checks including linting and schema validation.
Setup `/configurations/test` configuration to validate schema. This
configuration will be further used to validate Terraform execution plan.
Constraint app-id field in all schemas to prevent path injection.
minherz added a commit that referenced this pull request Sep 10, 2023
… (part 1) (#1036)

Add schemas describing configuration for alerts, monitoring dashboards,
log-based metrics, notification channels, SLOs and uptime checks.
Follow JSON schema standard (draft 2020-12).
Add validation checks including linting and schema validation.
Setup `/configurations/test` configuration to validate schema. This
configuration will be further used to validate Terraform execution plan.
Constraint app-id field in all schemas to prevent path injection.
minherz added a commit that referenced this pull request Nov 25, 2023
… (part 1) (#1036)

Add schemas describing configuration for alerts, monitoring dashboards,
log-based metrics, notification channels, SLOs and uptime checks.
Follow JSON schema standard (draft 2020-12).
Add validation checks including linting and schema validation.
Setup `/configurations/test` configuration to validate schema. This
configuration will be further used to validate Terraform execution plan.
Constraint app-id field in all schemas to prevent path injection.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant