-
Notifications
You must be signed in to change notification settings - Fork 56
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
Docs: Recipe Overview - details usage and S3 behavior #826
base: main
Are you sure you want to change the base?
Conversation
bce7e5c
to
c44d661
Compare
c44d661
to
b210069
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@tjanssen3 other than the comment regarding not needing recipe if app needs one big backup/restore of all its resources, this PR is good to be merged. If we can clear that out, we can merge it (and if you prefer the nits can be addressed)
docs/recipe_overview.md
Outdated
* Recipe API managed in a [separate repo](https://github.com/RamenDR/recipe) | ||
* Recipes utilize Velero under the hood | ||
* Many fields are pass-through to create Velero Backup/Restore objects | ||
* If your application can be backed up and restored as one big group, you don’t |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure about this, if there is no recipe ref we do not protect any additional resources is what I see, so a recipe is required?
|
||
Where an application may have issues with Velero: | ||
|
||
1. Velero works well when an application can be backed up and restored as a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(nit) link to CP4D product?
docs/recipe_overview.md
Outdated
and Restore objects. Recipes have been omitted for clarity and brevity here. | ||
|
||
```bash | ||
tjanssen@eyewall4:~$ mc du -r minio-cluster1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(nit) remove tjanssen@eyewall4
(and below)
05cba77
to
0a8e473
Compare
name to the `spec.kubeObjectProtection.recipeRef.name` field. | ||
|
||
```yaml | ||
# VRG metadata omitted |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I recommend at least putting this line:
kind: VolumeReplicationGroup
the resources to restore to the appropriate type. | ||
|
||
```yaml | ||
# metadata omitted |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
kind: Recipe
for PVC Selection, rather than what is defined on the VRG. | ||
|
||
```yaml | ||
# metadata omitted |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
kind: Recipe
show the API only. | ||
|
||
```yaml | ||
# metadata omitted |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
kind: Recipe
docs/recipe_overview.md
Outdated
spec: | ||
groups: | ||
- name: instance-resources | ||
backupRef: instance-resources |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since this is a restore group I think the backupRef
should be omitted for clarity. This option would be removed if capture and recover groups were defined.
docs/recipe_overview.md
Outdated
name: recipe-busybox | ||
namespace: recipe-test | ||
spec: | ||
appType: busybox |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does this appType
field do? If nothing, then I suggest omitting. If something, then I suggest explanining it.
|
||
```yaml | ||
# metadata omitted for example | ||
# groups, hooks omitted for example |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
kind: Recipe
0a8e473
to
52d2df4
Compare
- also updated docs/krp.md to reflect removal of CaptureOrder/RecoverOrder structs - added krp_install.md, which details kubeObjectProtection/Recipe setup and configuration - removed recipe.md, which contained old Recipe API, in favor of recipe_overview.md Signed-off-by: Travis Janssen <[email protected]>
52d2df4
to
9b1d2f5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not finished reviewing, but posting some comments
1. S3 store (e.g. Minio/Noobaa) installed and configured | ||
1. S3 store credentials | ||
1. Velero/OADP installed and configured | ||
1. Velero credentials |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
S3 store credentials
and Velero credentials
actually have to be the same, but their secret
formats differ
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(nit) e.g., minio, noobaa
i.e., ,
instead of /
s3Region: us-east-1 | ||
s3SecretRef: | ||
name: minio-s3 | ||
VeleroNamespaceSecretKeyRef: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lowercase v
: veleroNamespaceSecretKeyRef
For every s3 profile, two Secrets will need to be created: one with s3 credentials, | ||
one with Velero/OADP credentials. This means for two S3 profiles, four Secrets are |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(nit) I'd say credentials are the same, but secret
formats differ
By default, Kubernetes resources are Captured and Recovered as single, namespaced | ||
groups. Some applications may require strict ordering by type of resource during | ||
Capture or Recover to ensure a successful deployment. To provide this flexibility, | ||
Recipes can be used to describe a Workflow used for a Capture or Recover action. | ||
These Recipe Workflows can be referenced by the VolumeReplicationGroup (VRG), and | ||
executed periodically. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(nit) I recommend lowercase capture
and recover
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(nit) fields names and kinds are good candidates for highlighting by surrounding in backticks. E.g., VolumeReplicationGroup
1. What is a Recipe and why do we need it? | ||
1. Recipe concepts | ||
1. Sample application that uses a Recipe | ||
1. Additional details on Recipe functionality | ||
1. Where to go to learn more |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(nit) If uppercase Recipe, then I recommend surrounding in backticks, else I recommend lowercase r
executed periodically. | ||
|
||
Recipe source code and additional information can be found [here](https://github.com/RamenDR/recipe). | ||
The current Recipe CRD can be found [here](https://github.com/RamenDR/recipe/blob/main/config/crd/bases/ramendr.openshift.io_recipes.yaml). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(nit) I recommend the raw link for easy downloading
* If your application can be backed up and restored without specific sequencing, | ||
a Recipe may not not be required. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(nit) backed up and restored -> captured and recovered
(nit) drop period at end since bulleted list
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I recommend merging this krp.md
file or at least linking it from there
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I recall a suggestion to store recipe documentation in the recipe repo. I understand recipe processing is done in the VRG controller which is in this repo, but the docs should probably just say what it should do based on the API not how it does it
No description provided.