# Values
Before getting started with the actual deployment, please make sure that you have the following information with you:
## Docker
You will need to have a dockerhub account that has access to Rime repositories. Contact a Rime engineer if you have questions.
- **Dockerhub password:** Password for your dockerhub account with access to Rime repositories. Ask a RIME engineer for access
## OPTIONAL: OAuth
- Client ID
- Client Secret
- Issuer URL
Make sure that you have an Application provisioned in Okta or another identity provider for your Rime App with the following permissions.
Navigate to your OAuth administrator page and find the above values. An example is here:
Lastly, you will need to add `https://rime./v1/auth/oidc/callback` as a callback url for your provider. The above configuration was all setup with okta.
An admin can also set up SSO to use an external Identity Provider after cluster installation. More detailed instructions for configuration can be found in the [SSO Configuration Guide](/for_admins/how_to_guides/sso.md)
Users can login via basic authN service or SSO. Admin operations need to be performed via basic authN login.
## S3
- Bucket name where your data and models will be stored
## OPTIONAL: Managed Images
To use managed images (i.e. RIME wheel images with additional user-specified PIP
libraries for running RIME tests on your users' models), you can install the RIME
managed image registry, which uses your
[AWS ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) to
store the managed images it creates.
*Note*: as of version 0.13.0, the managed image registry is enabled by default in our
Terraform module.
*Note*: currently this feature is only available with AWS ECR.
In terraform you can configure this feature by adding a setting to your `rime` module of
the form:
```
image_registry_config = {
enable = true
repository_prefix = "rime-managed-images"
}
```
where the `repository_prefix` can be customized to any valid prefix to store the managed
repositories within your ECR. By enabling the managed image registry, you'll give
permission to RIME's image registry to create, delete and build images in your ECR, but
*only* for repositories with the given `repository_prefix`.
### Permissions for the Managed Image Registry
The managed image registry manages new images for you within your ECR so that your
users can have auto-updated rime images with the PIP libraries they require for their
models. To manage image repositories within your ECR, you have to grant the registry
with ECR permissions, which an admin can add automatically by applying our terraform
module.
Enabling the managed image registry gives the following permissions to the server
but restricted *only* for repositories beginning with `repository_prefix`:
```
ecr:CreateRepository
ecr:DeleteRepository
ecr:DescribeImages
ecr:PutLifecyclePolicy
ecr:ListImages
```
so that the registry server can create and modify repositories with the given
`repository_prefix`. Additionally, it requires `ecr:GetAuthorizationToken` for all
resources in order to authorize itself.
Also, the managed image registry gives the following permissions to the jobs that build
your new images (*only* for repositories beginning with `repository_prefix`):
```
ecr:BatchGetImage
ecr:BatchCheckLayerAvailability
ecr:CompleteLayerUpload
ecr:GetDownloadUrlForLayer
ecr:InitiateLayerUpload
ecr:PutImage
ecr:UploadLayerPart
```
so that those jobs can pull and push new images to the repositories created with prefix
`repository_prefix`. These jobs also require `ecr:GetAuthorizationToken` for all
resources in order to authorize themeselves.
## OPTIONAL: Notifications
If you want to be notified about certain events e.g. a test run finishing, you will need to have the following information.
### Email
- SMTP Email
- SMTP Email Password
- SMTP Server Url
- SMTP Port
- Receiver Emails (comma separated list of emails subscribed to notifications)
### Admin User
- Admin Email
- Admin Password
Initial Username and Password for the first admin user to login. They will need to reset the password on login.
## Secrets Manager
You will need to generate a file called secrets.json with the following structure based off the values you procured above:
```
{
"admin_username": ,
"admin_password": ,
"datadog-api-key": "",
"docker-logins": [
{
"docker-server": "https://index.docker.io/v2/",
"docker-username": "robusthub",
"docker-password": "",
"docker-email": "dev@robustintelligence.com"
}
],
"oauth_client_id": "",
"oauth_client_secret": "",
"oauth_well_known_url": ,
"rime_jwt": "",
"rime-user": "",
"smtp_email": ,
"smtp_password": ,
"smtp_server": "smtp server>",
"smtp_port": ""
}
```
You will then need to create a secret in aws called `rime-secrets` with the above value. You can do this with the following command `aws secretsmanager create-secret --name rime-secrets --description "Secrets for rime service" --secret-string file:///secrets.json`.
## VPC
Rime expects you to have a valid vpc provisioned in the region that you want to deploy the Rime cluster onto. You will be expected to pass in
subnets and the vpc id of your vpc as part of terraform setup.
## DNS
Rime also expects you to have a valid route53 domain(eg. latest.dev) and acm certificate for your domain with wildcard access on subdomains(so that RIME can provision dns records). This domain will be passed in as part of terraform setup. If you do not have the ability to set up DNS, your cluster must be setup on private subnets to ensure security without TLS.