You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Feb 2, 2022. It is now read-only.
Copy file name to clipboardExpand all lines: docs/how-to-deploy.md
+59-36Lines changed: 59 additions & 36 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,32 +2,54 @@
2
2
3
3
The following guide should get you up and running with an instance of RAFT.
4
4
5
-
<br/>
5
+
There are two main ways you can approach setting up RAFT.
6
+
- Download all requirements to your workstation and then use the RAFT CLI in a command window.
7
+
- Use the Azure Portal Cloud Shell. This requires no changes to your workstation.
6
8
7
-
### The first option is to setup all the dependencies on your workstation and use the RAFT CLI from there. The second option is to use the Azure Portal Shell. When using the portal's shell, you will only need to upload the CLI package as all required dependencies are already installed.
9
+
<br/>
8
10
9
-
## Step 1: Enable the RAFT Command Line Interface (CLI)
11
+
## Step 1: Install the RAFT Command Line Interface
10
12
11
13
Let's start out by getting the RAFT command line interface (CLI from now on)
12
14
up and running. It functions just the same on Windows and Linux clients.
13
15
14
-
These two steps are required if you've decided to run the CLI from your workstation:
15
-
- First, you'll need to [install Python](https://www.python.org/downloads/) if
16
-
you don't have it installed already; RAFT requires at least **version 3.6**.
16
+
### If you are using your workstation
17
17
18
-
- Next, you'll need to [install the Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)
18
+
-[Install Python](https://www.python.org/downloads/) if
19
+
you don't have it installed already; RAFT requires at least **version 3.6**.
20
+
-[Install the Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)
19
21
if you haven't already; RAFT requires at least **version 2.12**.
20
22
21
-
If you've decided to use the Azure Portal Shell, keep in mind that the path to Python is `/opt/az/bin/python3`
23
+
### If you are using the Cloud Shell
24
+
25
+
If you are going to use the Cloud Shell it is assumed that you have already acquired an Azure subscription
26
+
from https://azure.com/free or you have an existing subscription.
27
+
28
+
Access the [Cloud Shell](https://docs.microsoft.com/en-us/azure/cloud-shell/overview) from your
29
+
browser by clicking on the Cloud Shell icon.</br>
30
+

22
31
23
-
- Now download the RAFT CLI, either just the binaries or the source tree if you intend to build them from source:
32
+
Or access it directly from your browser at https://shell.azure.com.
33
+
When using the shell for the first time it will create a storage account. This is normal and is needed to
34
+
persist data from one session to another.
24
35
25
-
- Get the RAFT CLI from [releases](https://github.com/microsoft/rest-api-fuzz-testing/releases)
26
-
- Clone the repo at https://github.com/microsoft/raft
36
+
In the cloud shell the path to Python version 3.6 `/opt/az/bin/python3`
27
37
28
-
- At this point, you're able to run a the one-time prep script using Python's
29
-
[pip package installer](https://pypi.org/project/pip/) as follows from the root
30
-
of the RAFT CLI folder:
38
+
### Common install instructions
39
+
40
+
You will need the RAFT CLI files. You can do this in a number of ways:
41
+
- Download the RAFT CLI from a specific release</br>
to host running jobs; by default, Azure subscriptions are limited to 100 container instances. If your
104
+
subscription is already using container instances, or you anticipate running
83
105
more than 100 simultaneous jobs, you should reach out to Azure support and request
84
106
they increase your [quota](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits)
85
107
of this object type.
@@ -96,14 +118,15 @@ Note that only four of these are required.
96
118
|`subscription`| Yes | The subscription ID (GUID) of the subscription to which to deploy an instance of the RAFT service |
97
119
|`deploymentName`| Yes | The name of your deployment; we will use this as the base name for all objects we create to instantiate the RAFT service |
98
120
|`region`| Yes | The [region identifier](https://azure.microsoft.com/en-us/global-infrastructure/geographies/) that is closest to your location, or that's necessary for any compliance purposes |
99
-
|`metricsOptIn`*| Yes | Whether you want the service to send us anonymized usage data; we use this to improve the service and respond to errors and other problems proactively (Note: to change you choice, just update the field and redeploy) |
100
-
|`isDevelop`| No | Is this deployment for developing the RAFT service? Setting this value to true will generate yaml variables for use in your build pipelines |
101
-
|`useAppInsights`| No | deploy AppInsights and use it to write all service logs |
102
-
|`registry`**| No | registry which stores service images. Default: mcr.microsoft.com |
121
+
|`metricsOptIn`*| Yes | Whether you want the service to send us anonymized usage data; we use this to improve the service and respond to errors and other problems proactively (Note: to change you choice, just update the field and redeploy) Default: true|
122
+
|`isDevelop`| No | Is this deployment for developing the RAFT service? Default: false |
123
+
|`isPrivateRegistry`| No | When developing for the RAFT service, indicates a private registry is used to find images. Default: false |
124
+
|`useAppInsights`| Yes | Deploy AppInsights and use it to write all service logs. Default: true |
125
+
|`registry`| Yes | Registry which stores service images. Default: mcr.microsoft.com |
103
126
104
127
### *Telemetry
105
128
*By default, we collect anonymous usage data from your RAFT instance, which helps
106
-
us understand how users use RAFT and the problems they experience, which in turn
129
+
us understand how users use RAFT and the problems they experience, which in turn,
107
130
helps us improve the quality of the offering over time. Specifically, We do **not**
108
131
collect any data about the targets and results of tools you might run. The data
109
132
fields we collect are defined in the `src/Contracts/Telemetry.fs` source file. To opt-out of
@@ -146,19 +169,19 @@ deploymentName - RAFT deployment name
146
169
- no dashes
147
170
148
171
region - Region to deploy RAFT (e.g. westus2)
149
-
See https://azure.microsoft.com/en-us/global-infrastructure/regions/
150
-
for a list of regions
151
-
152
-
isDevelop - Is this deployment for developing the RAFT service?
153
-
Setting this value to true will generate yaml variables for use in your
154
-
build pipelines.
172
+
See the documentation on container instance region availability at
Copy file name to clipboardExpand all lines: docs/raft-restler-relationship.md
+13-8Lines changed: 13 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,23 +6,28 @@ In order to provide a consistent platform for supporting multiple test tools the
6
6
RAFT supports all of the same configuration values that RESTler supports.
7
7
RESTler uses a mix of camel case and underscore parameters that it accepts as part of it's run configurations. On the other hand RAFT only uses camel case parameters. For example RESTler uses parameter `restler_custom_payload` where the same parameter is called `restlerCustomPayload` in RAFT job definition.
The RAFT swagger definition can be found using this URL : *https://\<my-deployment\>-raft-apiservice.azurewebsites.net/swagger/index.html*
15
15
16
16
17
-
RESTler requires that IP and port number are specified in order to run a test. However, RAFT will do a DNS lookup on the host parameter, specified in the job definition file, on your behalf and fill in the IP parameter for you. RAFT also defaults the port number to 443 when using SSL and 80 when not using a secure connection. If for some reason you find that you still need to specify the IP and port number then manually provided values in TargetEndpoint configuration will override any lookup or default values.
17
+
RAFT will do a DNS lookup on the host parameter, specified in the job definition file,
18
+
on your behalf and fill in the IP parameter for you. RAFT also defaults the port number
19
+
to 443 when using SSL and 80 when not using a secure connection. If for some reason you
20
+
find that you still need to specify the IP and port number then manually provided values
21
+
in TargetEndpoint configuration will override any lookup or default values.
18
22
19
23
## RESTler mode of opearation
20
24
21
-
First RESTler compiles Swagger specifications into RESTler grammar. The output of compile step can be consumed by any of the following steps: Compile, Test, Fuzz.
25
+
RESTler needs to compile the Swagger specifications into RESTler grammar as a first step. The output of the compile step is then consumed by any of the following steps: Test, TestFuzzLean, Fuzz.
22
26
To enable passing of data from one step to the next RAFT allows any file share in the storage account to be mounted by any task.
23
-
This way RAFT jobs can be executed in a "pipeline" manner by passing the output of the Compile job as input Test, Fuzz or Compile jobs.
27
+
This way RAFT jobs can be executed in a "pipeline" manner by passing the output of the Compile job as input to the Test, TestFuzzLean, or Fuzz jobs.
24
28
25
-
Compile job produces a job ID and a file share named the same as the job ID. This makes it possible for you to mount the output of one job as input to another.
26
-
The diagram below demonstrates how to pass output from the Compile step as input to the Test step of a RESTler task.
29
+
A compile job produces a job ID and a file share is created and named using the job ID.
30
+
This makes it possible for you to take the output written to a file share of one job and mount it to use as input to another.
31
+
The diagram below illustrates this behavior in the job definition files.
0 commit comments