Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 94 additions & 0 deletions config-as-code/configuration-changes.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
---
title: "What happens after a configuration change?"
description: "Understand which Ravion phases a module configuration change requires."
"og:image": "https://www.ravion.com/og/docs/config-as-code/configuration-changes.png"
"twitter:image": "https://www.ravion.com/og/docs/config-as-code/configuration-changes.png"
---

When you change a module input, Ravion identifies the operational phases
required for the change to take effect. Saving the configuration does not
necessarily run every required phase.

For background on managing a project configuration file, see [Project config
file](/config-as-code/project-config-file).

## The phases

| Phase | What it does |
| --- | --- |
| **Stack update** | Runs the module's stack pipeline to create or update infrastructure. |
| **Rebuild** | Creates a new application image or other build artifact. |

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be build not rebuild

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in e505467 — "build" everywhere now. Also swapped the page's "phase" vocabulary for "action" to match the rename landing in the API/CLI.

| **Deploy** | Releases the new configuration or artifact to the running module. |

The phases are separate. A stack update changes infrastructure, but does not
release a new application artifact. A rebuild creates an artifact, but does not
make it the active release until a deploy promotes it.

See [Build](/modules/build) and [Deploy](/modules/deploy) for more about those
pipeline steps.

## Examples

The required phases depend on the module definition and the input you change.
These examples use inputs from Ravion's standard module definitions:

| Module input | Required phases | Why |
| --- | --- | --- |
| `rvn-ecs-web` `desired_count` | Stack update | The desired service capacity is infrastructure configuration. |
| `rvn-ec2-service` `environment_variables` or `secrets` | Stack update and deploy | The stack carries the runtime configuration, and the deploy renders it into the app environment on running instances. |
| `rvn-aws-static` `build_environment_variables` | Rebuild and deploy | The build uploads a versioned static directory, and the deploy promotes that directory to production. |

The per-input `applies_on` field records this lifecycle metadata in a module
definition. See the [module definition schema reference](/module-definitions/definition-schema/inputs).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Linked schema omits applies_on

This page directs module authors to the input schema reference for applies_on, but that generated reference does not define the field or its accepted values, leaving authors unable to use the documented lifecycle metadata.

Prompt To Fix With AI
This is a comment left during a code review.
Path: config-as-code/configuration-changes.mdx
Line: 41-42

Comment:
**Linked schema omits `applies_on`**

This page directs module authors to the input schema reference for `applies_on`, but that generated reference does not define the field or its accepted values, leaving authors unable to use the documented lifecycle metadata.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.


## Check what a change requires

### Dashboard

When you save a module configuration, the confirmation dialog shows which
phases the change requires and what the selected save option will do.

Saving the configuration records the new values. It does not automatically
rebuild an artifact or deploy it unless you choose an option that performs
those operations. If a later phase is required, run that phase after the
configuration save completes.

### CLI

The `ravion project config apply` command shows the required phases in the
`REQUIRES` column. In an interactive terminal, it also displays the planned
changes and asks you to confirm them:

```bash
ravion project config apply <project-id> --file ravion.yaml
```

Use a dry run to inspect the plan without applying it:

```bash
ravion project config apply <project-id> \
--file ravion.yaml \
--dry-run
```

Use `--yes` to skip the confirmation prompt in scripts:

```bash
ravion project config apply <project-id> \
--file ravion.yaml \
--yes
```

The `REQUIRES` column uses **stack update**, **rebuild**, and **deploy** so you
can see which work remains after the configuration apply.

## Older module definitions

<Warning>
Module definitions published before lifecycle metadata was introduced do not
provide enough information to determine every required phase.
</Warning>

If Ravion reports unknown phase metadata, assume the change requires a stack
update and a deploy. Run the stack update, rebuild if the module needs a new
artifact, and then deploy the resulting configuration or artifact.
1 change: 1 addition & 0 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
"group": "Config as code",
"pages": [
"config-as-code/project-config-file",
"config-as-code/configuration-changes",
"config-as-code/pipeline-config-file",
"config-as-code/ci-integration"
]
Expand Down
Loading