Experiment Args
data class ExperimentArgs(val identity: Output<ExperimentIdentityArgs>? = null, val location: Output<String>? = null, val name: Output<String>? = null, val resourceGroupName: Output<String>? = null, val selectors: Output<List<ExperimentSelectorArgs>>? = null, val steps: Output<List<ExperimentStepArgs>>? = null) : ConvertibleToJava<ExperimentArgs>
Manages a Chaos Studio Experiment.
Example Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.authorization.UserAssignedIdentity;
import com.pulumi.azure.authorization.UserAssignedIdentityArgs;
import com.pulumi.azure.network.VirtualNetwork;
import com.pulumi.azure.network.VirtualNetworkArgs;
import com.pulumi.azure.network.Subnet;
import com.pulumi.azure.network.SubnetArgs;
import com.pulumi.azure.network.NetworkInterface;
import com.pulumi.azure.network.NetworkInterfaceArgs;
import com.pulumi.azure.network.inputs.NetworkInterfaceIpConfigurationArgs;
import com.pulumi.azure.compute.LinuxVirtualMachine;
import com.pulumi.azure.compute.LinuxVirtualMachineArgs;
import com.pulumi.azure.compute.inputs.LinuxVirtualMachineOsDiskArgs;
import com.pulumi.azure.compute.inputs.LinuxVirtualMachineSourceImageReferenceArgs;
import com.pulumi.azure.chaosstudio.Target;
import com.pulumi.azure.chaosstudio.TargetArgs;
import com.pulumi.azure.chaosstudio.Capability;
import com.pulumi.azure.chaosstudio.CapabilityArgs;
import com.pulumi.azure.chaosstudio.Experiment;
import com.pulumi.azure.chaosstudio.ExperimentArgs;
import com.pulumi.azure.chaosstudio.inputs.ExperimentIdentityArgs;
import com.pulumi.azure.chaosstudio.inputs.ExperimentSelectorArgs;
import com.pulumi.azure.chaosstudio.inputs.ExperimentStepArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("example")
.location("westeurope")
.build());
var exampleUserAssignedIdentity = new UserAssignedIdentity("exampleUserAssignedIdentity", UserAssignedIdentityArgs.builder()
.resourceGroupName(example.name())
.location(example.location())
.name("example")
.build());
var exampleVirtualNetwork = new VirtualNetwork("exampleVirtualNetwork", VirtualNetworkArgs.builder()
.name("example")
.addressSpaces("10.0.0.0/16")
.location(example.location())
.resourceGroupName(example.name())
.build());
var exampleSubnet = new Subnet("exampleSubnet", SubnetArgs.builder()
.name("internal")
.resourceGroupName(example.name())
.virtualNetworkName(exampleVirtualNetwork.name())
.addressPrefixes("10.0.2.0/24")
.build());
var exampleNetworkInterface = new NetworkInterface("exampleNetworkInterface", NetworkInterfaceArgs.builder()
.name("example")
.location(example.location())
.resourceGroupName(example.name())
.ipConfigurations(NetworkInterfaceIpConfigurationArgs.builder()
.name("example")
.subnetId(exampleSubnet.id())
.privateIpAddressAllocation("Dynamic")
.build())
.build());
var exampleLinuxVirtualMachine = new LinuxVirtualMachine("exampleLinuxVirtualMachine", LinuxVirtualMachineArgs.builder()
.name("example")
.resourceGroupName(example.name())
.location(example.location())
.size("Standard_F2")
.adminUsername("adminuser")
.adminPassword("example")
.disablePasswordAuthentication(false)
.networkInterfaceIds(exampleNetworkInterface.id())
.osDisk(LinuxVirtualMachineOsDiskArgs.builder()
.caching("ReadWrite")
.storageAccountType("Standard_LRS")
.build())
.sourceImageReference(LinuxVirtualMachineSourceImageReferenceArgs.builder()
.publisher("Canonical")
.offer("0001-com-ubuntu-server-jammy")
.sku("22_04-lts")
.version("latest")
.build())
.build());
var exampleTarget = new Target("exampleTarget", TargetArgs.builder()
.location(example.location())
.targetResourceId(exampleLinuxVirtualMachine.id())
.targetType("Microsoft-VirtualMachine")
.build());
var exampleCapability = new Capability("exampleCapability", CapabilityArgs.builder()
.chaosStudioTargetId(exampleTarget.id())
.capabilityType("Shutdown-1.0")
.build());
var exampleExperiment = new Experiment("exampleExperiment", ExperimentArgs.builder()
.location(example.location())
.name("example")
.resourceGroupName(example.name())
.identity(ExperimentIdentityArgs.builder()
.type("SystemAssigned")
.build())
.selectors(ExperimentSelectorArgs.builder()
.name("Selector1")
.chaosStudioTargetIds(exampleTarget.id())
.build())
.steps(ExperimentStepArgs.builder()
.name("example")
.branches(ExperimentStepBranchArgs.builder()
.name("example")
.actions(ExperimentStepBranchActionArgs.builder()
.urn(exampleCapability.capabilityUrn())
.selectorName("Selector1")
.parameters(Map.of("abruptShutdown", "false"))
.actionType("continuous")
.duration("PT10M")
.build())
.build())
.build())
.build());
}
}
Content copied to clipboard
Import
Chaos Studio Experiments can be imported using the resource id
, e.g.
$ pulumi import azure:chaosstudio/experiment:Experiment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Chaos/experiments/experiment1
Content copied to clipboard
Constructors
Link copied to clipboard
fun ExperimentArgs(identity: Output<ExperimentIdentityArgs>? = null, location: Output<String>? = null, name: Output<String>? = null, resourceGroupName: Output<String>? = null, selectors: Output<List<ExperimentSelectorArgs>>? = null, steps: Output<List<ExperimentStepArgs>>? = null)