Skip to content

Conversation

@willdavsmith
Copy link
Contributor

No description provided.

Signed-off-by: willdavsmith <willdavsmith@gmail.com>
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
@willdavsmith willdavsmith requested review from a team as code owners February 6, 2025 18:27

1. The controller lists all `GitRepository` resources in the cluster.
1. For each `GitRepository`, the controller parses the contents of the Git repository.
1. The controller checks for a `radius-config.yaml` file in the repository. If the file is not present, then the controller skips the repository.
Copy link
Contributor

Choose a reason for hiding this comment

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

Will this be logged to the user that the repo was skipped?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It will be logged in the radius controller logs

WORKDIR /
RUN curl -Lo bicep https://github.com/Azure/bicep/releases/latest/download/bicep-linux-x64 \
Copy link
Contributor

Choose a reason for hiding this comment

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

Have we thought about supporting different architectures? This is scoped to only Linux images

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yes, the design should support all architectures. this is a typo

Copy link
Contributor

Choose a reason for hiding this comment

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

Or cases where the user may want to bring their own specific version of Bicep?


- Supporting non-Flux GitOps tools (e.g., ArgoCD).
- Supporting non-Bicep IaC formats.
- Radius Dashboard support
Copy link
Contributor

Choose a reason for hiding this comment

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

Can you elaborate on what specifically won't be supported in Radius Dashboard? I'm assuming gitops "clickops" via dashboard UI won't be supported, but things like App Graph will still get updated when resources are changed by Flux-triggered operations?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'll elaborate here. I meant that "Radius GitOps" (status of DeploymentTemplate resources, GitRepositories, etc.) will not be tracked in the dashboard as part of this work. Everything Radius users have today will still be supported.


The Radius Flux Controller will be implemented as a new controller in the `controller` service. Here is the high-level control loop of the new controller:

1. The controller lists all `GitRepository` resources in the cluster.
Copy link
Contributor

Choose a reason for hiding this comment

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

Why does it need to list all the resources?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

There's no way of knowing if the git repository contains Radius definitions (Bicep files) without listing them. If the controller doesn't have access to a GitRepository on the cluster, then that sounds like user error.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think Kubernetes API Server will trigger this controller once there is a creation or an update of a GitRepository resource. Please correct me if I am wrong.

Copy link
Contributor

@ytimocin ytimocin Feb 6, 2025

Choose a reason for hiding this comment

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

Does the controller act like a cron job and lists all the GitRepository resources to check if there are differences?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I should update this to be more clear.

1. The controller compiles the Bicep file using the Bicep CLI, which is installed on the controller.
1. The controller creates (or updates) a `DeploymentTemplate` resource on the cluster with the compiled Bicep file as the template.
1. The controller lists all `DeploymentTemplate` resources in the cluster that have been created from this Git repository and deletes any resources that are not present in the Git repository.
1. The controller repeats this process at a regular interval to ensure that the resources in the Git repository are accurately reflected in the Kubernetes cluster.
Copy link
Contributor

Choose a reason for hiding this comment

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

What is the value for the interval?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I should be more clear about what's happening here. We don't define the interval - it's handled by the kubernetes controller internals. this controller is set up to watch changes on GitRepository resources on the cluster, so it will trigger a Reconcile if one of these resources changes.

1. The controller reads the `radius-config.yaml` file and extracts the Bicep compilation instructions, such as the Bicep file path and parameters.
1. The controller compiles the Bicep file using the Bicep CLI, which is installed on the controller.
1. The controller creates (or updates) a `DeploymentTemplate` resource on the cluster with the compiled Bicep file as the template.
1. The controller lists all `DeploymentTemplate` resources in the cluster that have been created from this Git repository and deletes any resources that are not present in the Git repository.
Copy link
Contributor

Choose a reason for hiding this comment

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

Why do we need to list all DeploymentTemplate resources for the given Git repository? Aren't just the last one and the one before that enough?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

There may be multiple DeploymentTemplates that get created from one git repository (multiple root bicep files). So we need to handle the case where 2 are created on the first commit, then one is removed.

Comment on lines 209 to 215
providers:
- radius:
scope: /planes/radius/local/resourcegroups/default
- aws:
scope: /planes/aws/aws/accounts/000000000/regions/us-west-2
- azure:
scope: /planes/azure/azurecloud/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-group
Copy link
Contributor

Choose a reason for hiding this comment

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

How do we access the credentials for the providers? Does the code go and check the Radius environment for that?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

if an environment is present already with the right configuration (credentials, etc.) the deployments will use them as normal.


The controller will list all `DeploymentTemplate` resources in the cluster that have been created from this Git repository and delete any resources that are not present in the Git repository:
```go
// List all DeploymentTemplates on the cluster that are from the same git repository
Copy link
Contributor

Choose a reason for hiding this comment

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

Are we talking about older versions of a DeploymentTemplate for a given repository?

Copy link
Contributor

Choose a reason for hiding this comment

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

Can a repository have multiple DeploymentTemplates?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, it can have multiple.

Comment on lines +256 to +258
// For all of the DeploymentTemplates on the cluster, check if the bicep file
// that it was created from is still present in the git repository. If not, delete the
// DeploymentTemplate from the cluster.
Copy link
Contributor

Choose a reason for hiding this comment

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

If this the case, we only keep the last DeploymentTemplate that is applied to the cluster, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

in this case (the bicep file is deleted from the git repository), we should delete the deploymentTemplate which will delete the resources.

-->

!Architecture Diagram
![Architecture Diagram Part 1](2025-01-gitops-technical-design/rfc-1.png)
Copy link
Contributor

Choose a reason for hiding this comment

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

are there changes needed to be made to the Flux codebase for detecting *.bicep file changes, or can this be done through configuration?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We handle this in the controller code by detecting the radius-gitops-config.yaml

-->

- **GitOps**: A set of practices to manage infrastructure and application configurations using Git.
- **Bicep**: A domain-specific language (DSL) for deploying Azure resources declaratively.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- **Bicep**: A domain-specific language (DSL) for deploying Azure resources declaratively.
- **Bicep**: A domain-specific language (DSL) for managing resources; originally developed to deploy Azure resources declaratively, Radius uses Bicep to model applications and resources agnostic of a cloud provider.

-->

- Enable seamless integration of GitOps workflows with Radius + Bicep. Users should be able to specify their Bicep files and parameters in a Git repository and have the resources within them automatically deployed to their Kubernetes cluster.
- Ensure that the infrastructure defined in the Git repository is accurately reflected in the Kubernetes cluster. This includes creating, updating, and deleting resources as necessary, based on the changes in the Git repository.
Copy link
Contributor

Choose a reason for hiding this comment

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

Very quickly "the Kubernetes cluster" will be not precise enough as we will support deploying to external Kubernetes clusters. This fact made me question where the CRs are created, in the cluster hosting Radius or in the cluster hosting the application.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

the CRs should be created on the cluster hosting radius. this should enable us to do things like multicluster or other platforms (serverless)

-->

- Supporting non-Flux GitOps tools (e.g., ArgoCD).
- Supporting non-Bicep IaC formats.
Copy link
Contributor

Choose a reason for hiding this comment

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

Radius only supports Bicep for application definitions but supports Bicep and Terraform for recipes. Does this solution support Terraform recipes?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

true, I'll re-word this

Include separate high level architecture diagram and component specific diagrams, wherever appropriate.
-->

![Architecture Diagram Part 1](2025-01-gitops-technical-design/rfc-1.png)
Copy link
Contributor

Choose a reason for hiding this comment

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

A proper sequence diagram would be easier to parse.

Copy link
Member

@brooke-hamilton brooke-hamilton left a comment

Choose a reason for hiding this comment

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

This is super 💯


#### Helly can use Radius and Bicep to simplify application and infrastructure management

Helly is an infrastructure operator for an enterprise company. Her team manages a production application that is deployed on Kubernetes and uses AWS resources. To simplify the management of the application and infrastructure, Helly decides to use Radius and Bicep. She writes Bicep manifests that define the AWS resources required by the application, such as S3 buckets and RDS databases, as well as Radius resources that define container applications. Helly then uploads these Bicep files to a Git repository. She then writes a Flux configuration which includes Flux installation, Radius installation, and Flux setup for tracking her Git repository. Finally, Helly applies the Flux configuration to her Kubernetes cluster, and Radius deploys the resources defined in the Bicep manifests to the cluster. Now, any changes to the Bicep files in the Git repository are automatically reflected in the Kubernetes cluster, enabling a seamless GitOps workflow.
Copy link
Member

Choose a reason for hiding this comment

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

Bootstrapping in which Flux deploys Radius, which then receives notifications from Flux to deploy Bicep: is this a supported scenario?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yes, this is already supported because Radius can be installed by a Helm chart

considered during the design process.
-->

The Radius Flux Controller will be implemented as a new controller in the `controller` service. Here is the high-level control loop of the new controller:
Copy link
Member

Choose a reason for hiding this comment

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

I used the Radius Support Agent to generate a mermaid diagram for this because it helps me visualize the flow. Do not feel compelled to use it, but here it is:

sequenceDiagram
    participant Controller
    participant GitRepository
    participant BicepCLI
    participant DeploymentTemplate

    Controller->>GitRepository: List all GitRepository resources
    loop For each GitRepository
        Controller->>GitRepository: Parse contents of the Git repository
        alt radius-config.yaml present
            Controller->>GitRepository: Read radius-config.yaml
            Controller->>BicepCLI: Extract Bicep compilation instructions
            BicepCLI->>Controller: Compile Bicep file
            Controller->>DeploymentTemplate: Create/Update DeploymentTemplate resource
            Controller->>DeploymentTemplate: List all DeploymentTemplate resources
            Controller->>DeploymentTemplate: Delete resources not present in Git repository
        else radius-config.yaml not present
            Controller->>GitRepository: Skip repository
        end
    end
    Controller->>Controller: Repeat at regular intervals
Loading


The controller is set up to watch `GitRepository` resources in the cluster:
```go
func (r *FluxController) SetupWithManager(mgr ctrl.Manager) error {
Copy link
Member

Choose a reason for hiding this comment

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

How is this code implementing or using the Flux GitOps toolkit referenced above?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

the ArchiveFetcher is from the flux gitops toolkit. that's the integration point with the flux source controller

```

When a `GitRepository` resource is created or updated, the controller will get the object and read the contents of the Git repository:
```go
Copy link
Member

Choose a reason for hiding this comment

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

Is this part of the SetupWithManager function?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

this is in the Reconcile() function. I'll make this more clear

-->

- **Unit Tests**: Test the individual components of the Radius Flux Controller. There are many external dependencies that will need to be mocked, such as GitRepository objects and Bicep compilation.
- **Functional Tests**: Test the end-to-end functionality of the Radius Flux Controller together with the DeploymentTemplate controller. This will involve creating GitRepository objects on a real Kubernetes cluster and verifying that the resources in the Bicep templates are created and updated correctly.
Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks for including test plan section. Do we need to think about any error scenarios and performance issues for large git repos?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

this is a good callout - In the controller code we can configure the MaxDownloadSize and MaxUntarSize both currently set to Unlimited by default. I can do some more testing on this

with the instrumentation.
-->

The Radius Flux Controller will be setup as another controller in the Radius controller process. It will use standard Radius and Kubernetes logging and monitoring facilities, such as Kubernetes events and logs, to provide visibility into its actions. Users will be able to troubleshoot the Radius Flux Controller by examining the logs and events generated by the controller, as is the case with other Kubernetes controllers.
Copy link
Contributor

Choose a reason for hiding this comment

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

Users will be able to troubleshoot the Radius Flux Controller by examining the logs and events generated by the controller

Will be helpful if we document this.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Added to the docs

them here. Provide a brief explanation on why this is a non-goal.
-->

- Supporting non-Flux GitOps tools (e.g., ArgoCD).
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Non-goal for Radius helm support

Copy link
Member

@brooke-hamilton brooke-hamilton left a comment

Choose a reason for hiding this comment

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

This is super 💯

Comment on lines 209 to 215
providers:
- radius:
scope: /planes/radius/local/resourcegroups/default
- aws:
scope: /planes/aws/aws/accounts/000000000/regions/us-west-2
- azure:
scope: /planes/azure/azurecloud/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-group
Copy link
Contributor

Choose a reason for hiding this comment

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

What's the motivation for adding providers here, given that they are already expected to be configured in env.bicep?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

good point, removed

}
```

The `radius-config.yaml` file will have the following structure:
Copy link
Contributor Author

Choose a reason for hiding this comment

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

we can rename this... probably something like "radius" "gitops" "flux"

Copy link
Contributor Author

Choose a reason for hiding this comment

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

renamed to radius-gitops-config.yaml

@github-actions
Copy link

This pull request is stale because it has been open 14 days with no activity. Remove stale label or comment or this will be closed in 7 days.

@github-actions github-actions bot added the Stale label Feb 21, 2025
@github-actions
Copy link

This pull request has been closed due to inactivity. Feel free to reopen if you are still working on it.

@github-actions github-actions bot closed this Feb 28, 2025
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
@willdavsmith willdavsmith reopened this Mar 27, 2025
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
Copy link
Member

@brooke-hamilton brooke-hamilton left a comment

Choose a reason for hiding this comment

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

:shipit:

willdavsmith added a commit to radius-project/radius that referenced this pull request Mar 31, 2025
# Description

This PR adds a pull and download of the Bicep CLI into a container as
part of the work to enable the Radius + GitOps workflow.

Design notes: radius-project/design-notes#79

## Type of change

<!--

Please select **one** of the following options that describes your
change and delete the others. Clearly identifying the type of change you
are making will help us review your PR faster, and is used in authoring
release notes.

If you are making a bug fix or functionality change to Radius and do not
have an associated issue link please create one now.

-->

- This pull request adds or changes features of Radius and has an
approved issue (issue link required).

<!--

Please update the following to link the associated issue. This is
required for some kinds of changes (see above).

-->

Part of: #6689

## Contributor checklist
Please verify that the PR meets the following requirements, where
applicable:

- An overview of proposed schema changes is included in a linked GitHub
issue.
    - [ ] Yes
    - [x] Not applicable
- A design document PR is created in the [design-notes
repository](https://github.com/radius-project/design-notes/), if new
APIs are being introduced.
    - [x] Yes
    - [ ] Not applicable
- The design document has been reviewed and approved by Radius
maintainers/approvers.
    - [x] Yes
    - [ ] Not applicable
- A PR for the [samples
repository](https://github.com/radius-project/samples) is created, if
existing samples are affected by the changes in this PR.
    - [ ] Yes
    - [x] Not applicable
- A PR for the [documentation
repository](https://github.com/radius-project/docs) is created, if the
changes in this PR affect the documentation or any user facing updates
are made.
    - [ ] Yes
    - [x] Not applicable
- A PR for the [recipes
repository](https://github.com/radius-project/recipes) is created, if
existing recipes are affected by the changes in this PR.
    - [ ] Yes
    - [x] Not applicable

---------

Signed-off-by: willdavsmith <willdavsmith@gmail.com>
@sylvainsf sylvainsf merged commit 4f7d842 into radius-project:main Mar 31, 2025
2 checks passed
willdavsmith added a commit to radius-project/radius that referenced this pull request Mar 31, 2025
# Description

* Add Radius Flux controller and tests
* Update test workflows to install and use Flux and Gitea
* Add bicep container and changes to allow for Bicep to run server-side
in `controller` pod

Note: I expect the functional tests to fail for this PR because I'm
updating the functional test workflow. Here's a link to a successful
action run:
https://github.com/radius-project/radius/actions/runs/14074009492

Design PR: radius-project/design-notes#79
Docs PR: radius-project/docs#1408

## Type of change

<!--

Please select **one** of the following options that describes your
change and delete the others. Clearly identifying the type of change you
are making will help us review your PR faster, and is used in authoring
release notes.

If you are making a bug fix or functionality change to Radius and do not
have an associated issue link please create one now.

-->

- This pull request fixes a bug in Radius and has an approved issue
(issue link required).
- This pull request adds or changes features of Radius and has an
approved issue (issue link required).
- This pull request is a minor refactor, code cleanup, test improvement,
or other maintenance task and doesn't change the functionality of Radius
(issue link optional).

<!--

Please update the following to link the associated issue. This is
required for some kinds of changes (see above).

-->

Fixes: #6689

## Contributor checklist
Please verify that the PR meets the following requirements, where
applicable:

- An overview of proposed schema changes is included in a linked GitHub
issue.
    - [ ] Yes
    - [x] Not applicable
- A design document PR is created in the [design-notes
repository](https://github.com/radius-project/design-notes/), if new
APIs are being introduced.
    - [x] Yes
    - [ ] Not applicable
- The design document has been reviewed and approved by Radius
maintainers/approvers.
    - [x] Yes
    - [ ] Not applicable
- A PR for the [samples
repository](https://github.com/radius-project/samples) is created, if
existing samples are affected by the changes in this PR.
    - [ ] Yes
    - [x] Not applicable
- A PR for the [documentation
repository](https://github.com/radius-project/docs) is created, if the
changes in this PR affect the documentation or any user facing updates
are made.
    - [x] Yes
    - [ ] Not applicable
- A PR for the [recipes
repository](https://github.com/radius-project/recipes) is created, if
existing recipes are affected by the changes in this PR.
    - [ ] Yes
    - [x] Not applicable

---------

Signed-off-by: willdavsmith <willdavsmith@gmail.com>
brooke-hamilton pushed a commit to brooke-hamilton/radius-design-notes that referenced this pull request Apr 4, 2025
Signed-off-by: willdavsmith <willdavsmith@gmail.com>
willdavsmith added a commit to radius-project/radius that referenced this pull request Apr 24, 2025
# Description

This PR adds a pull and download of the Bicep CLI into a container as
part of the work to enable the Radius + GitOps workflow.

Design notes: radius-project/design-notes#79

## Type of change

<!--

Please select **one** of the following options that describes your
change and delete the others. Clearly identifying the type of change you
are making will help us review your PR faster, and is used in authoring
release notes.

If you are making a bug fix or functionality change to Radius and do not
have an associated issue link please create one now.

-->

- This pull request adds or changes features of Radius and has an
approved issue (issue link required).

<!--

Please update the following to link the associated issue. This is
required for some kinds of changes (see above).

-->

Part of: #6689

## Contributor checklist
Please verify that the PR meets the following requirements, where
applicable:

- An overview of proposed schema changes is included in a linked GitHub
issue.
    - [ ] Yes
    - [x] Not applicable
- A design document PR is created in the [design-notes
repository](https://github.com/radius-project/design-notes/), if new
APIs are being introduced.
    - [x] Yes
    - [ ] Not applicable
- The design document has been reviewed and approved by Radius
maintainers/approvers.
    - [x] Yes
    - [ ] Not applicable
- A PR for the [samples
repository](https://github.com/radius-project/samples) is created, if
existing samples are affected by the changes in this PR.
    - [ ] Yes
    - [x] Not applicable
- A PR for the [documentation
repository](https://github.com/radius-project/docs) is created, if the
changes in this PR affect the documentation or any user facing updates
are made.
    - [ ] Yes
    - [x] Not applicable
- A PR for the [recipes
repository](https://github.com/radius-project/recipes) is created, if
existing recipes are affected by the changes in this PR.
    - [ ] Yes
    - [x] Not applicable

---------

Signed-off-by: willdavsmith <willdavsmith@gmail.com>
willdavsmith added a commit to radius-project/radius that referenced this pull request Apr 24, 2025
# Description

* Add Radius Flux controller and tests
* Update test workflows to install and use Flux and Gitea
* Add bicep container and changes to allow for Bicep to run server-side
in `controller` pod

Note: I expect the functional tests to fail for this PR because I'm
updating the functional test workflow. Here's a link to a successful
action run:
https://github.com/radius-project/radius/actions/runs/14074009492

Design PR: radius-project/design-notes#79
Docs PR: radius-project/docs#1408

## Type of change

<!--

Please select **one** of the following options that describes your
change and delete the others. Clearly identifying the type of change you
are making will help us review your PR faster, and is used in authoring
release notes.

If you are making a bug fix or functionality change to Radius and do not
have an associated issue link please create one now.

-->

- This pull request fixes a bug in Radius and has an approved issue
(issue link required).
- This pull request adds or changes features of Radius and has an
approved issue (issue link required).
- This pull request is a minor refactor, code cleanup, test improvement,
or other maintenance task and doesn't change the functionality of Radius
(issue link optional).

<!--

Please update the following to link the associated issue. This is
required for some kinds of changes (see above).

-->

Fixes: #6689

## Contributor checklist
Please verify that the PR meets the following requirements, where
applicable:

- An overview of proposed schema changes is included in a linked GitHub
issue.
    - [ ] Yes
    - [x] Not applicable
- A design document PR is created in the [design-notes
repository](https://github.com/radius-project/design-notes/), if new
APIs are being introduced.
    - [x] Yes
    - [ ] Not applicable
- The design document has been reviewed and approved by Radius
maintainers/approvers.
    - [x] Yes
    - [ ] Not applicable
- A PR for the [samples
repository](https://github.com/radius-project/samples) is created, if
existing samples are affected by the changes in this PR.
    - [ ] Yes
    - [x] Not applicable
- A PR for the [documentation
repository](https://github.com/radius-project/docs) is created, if the
changes in this PR affect the documentation or any user facing updates
are made.
    - [x] Yes
    - [ ] Not applicable
- A PR for the [recipes
repository](https://github.com/radius-project/recipes) is created, if
existing recipes are affected by the changes in this PR.
    - [ ] Yes
    - [x] Not applicable

---------

Signed-off-by: willdavsmith <willdavsmith@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants