oci.go
1 package providers 2 3 import ( 4 "github.com/pulumi/pulumi-oci/sdk/v3/go/oci/core" 5 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 6 "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config" 7 ) 8 9 func OCI(ctx *pulumi.Context, enable bool) error { 10 11 cfg := config.New(ctx, "") 12 subnetId := cfg.Get("oci:subnetId") 13 tenancyOcid := cfg.GetSecret("oci:tenancyOcid") 14 15 if !enable { 16 return nil 17 } 18 19 _, err := core.NewInstance(ctx, "ubuntu", &core.InstanceArgs{ 20 AvailabilityDomain: pulumi.String("famX:CA-MONTREAL-1-AD-1"), 21 CompartmentId: tenancyOcid, 22 DisplayName: pulumi.String("ubuntu-s-1vcpu-1gb-50gb-mon1-01"), 23 FaultDomain: pulumi.String("FAULT-DOMAIN-2"), 24 25 AgentConfig: &core.InstanceAgentConfigArgs{ 26 PluginsConfigs: core.InstanceAgentConfigPluginsConfigArray{ 27 &core.InstanceAgentConfigPluginsConfigArgs{ 28 Name: pulumi.String("Vulnerability Scanning"), 29 DesiredState: pulumi.String("DISABLED"), 30 }, 31 &core.InstanceAgentConfigPluginsConfigArgs{ 32 Name: pulumi.String("Management Agent"), 33 DesiredState: pulumi.String("DISABLED"), 34 }, 35 &core.InstanceAgentConfigPluginsConfigArgs{ 36 Name: pulumi.String("Custom Logs Monitoring"), 37 DesiredState: pulumi.String("ENABLED"), 38 }, 39 &core.InstanceAgentConfigPluginsConfigArgs{ 40 Name: pulumi.String("Compute RDMA GPU Monitoring"), 41 DesiredState: pulumi.String("DISABLED"), 42 }, 43 &core.InstanceAgentConfigPluginsConfigArgs{ 44 Name: pulumi.String("Compute Instance Monitoring"), 45 DesiredState: pulumi.String("ENABLED"), 46 }, 47 &core.InstanceAgentConfigPluginsConfigArgs{ 48 Name: pulumi.String("Compute HPC RDMA Auto-Configuration"), 49 DesiredState: pulumi.String("DISABLED"), 50 }, 51 &core.InstanceAgentConfigPluginsConfigArgs{ 52 Name: pulumi.String("Compute HPC RDMA Authentication"), 53 DesiredState: pulumi.String("DISABLED"), 54 }, 55 &core.InstanceAgentConfigPluginsConfigArgs{ 56 Name: pulumi.String("Cloud Guard Workload Protection"), 57 DesiredState: pulumi.String("ENABLED"), 58 }, 59 &core.InstanceAgentConfigPluginsConfigArgs{ 60 Name: pulumi.String("Block Volume Management"), 61 DesiredState: pulumi.String("DISABLED"), 62 }, 63 &core.InstanceAgentConfigPluginsConfigArgs{ 64 Name: pulumi.String("Bastion"), 65 DesiredState: pulumi.String("DISABLED"), 66 }, 67 }, 68 }, 69 70 AvailabilityConfig: &core.InstanceAvailabilityConfigArgs{ 71 RecoveryAction: pulumi.String("RESTORE_INSTANCE"), 72 }, 73 74 CreateVnicDetails: &core.InstanceCreateVnicDetailsArgs{ 75 DisplayName: pulumi.String("ubuntu-s-1vcpu-1gb-50gb-mon1-01"), 76 HostnameLabel: pulumi.String("ubuntu-s-1vcpu-1gb-50gb-mon1-01"), 77 PrivateIp: pulumi.String("10.0.0.63"), 78 SubnetId: pulumi.String(subnetId), 79 DefinedTags: pulumi.StringMap{ 80 "Oracle-Tags.CreatedBy": pulumi.String("default/mfarabi619@gmail.com"), 81 "Oracle-Tags.CreatedOn": pulumi.String("2025-11-28T05:54:02.799Z"), 82 }, 83 }, 84 85 SourceDetails: &core.InstanceSourceDetailsArgs{ 86 SourceId: pulumi.String("ocid1.image.oc1.ca-montreal-1.aaaaaaaauvqxdsotwl6auexnfvnvgpbseoong62njaoezz6l37umn5uryajq"), 87 SourceType: pulumi.String("image"), 88 BootVolumeSizeInGbs: pulumi.String("47"), 89 BootVolumeVpusPerGb: pulumi.String("10"), 90 }, 91 92 Metadata: pulumi.StringMap{ 93 "ssh_authorized_keys": pulumi.String("ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKz3Y58uXWAd7qPUfm+pcEPfCw484gt9Agjl+0hmZuU3 mfarabi@macos"), 94 }, 95 96 ShapeConfig: &core.InstanceShapeConfigArgs{ 97 MemoryInGbs: pulumi.Float64(1), 98 Ocpus: pulumi.Float64(1), 99 Vcpus: pulumi.Int(2), 100 }, 101 102 LaunchOptions: &core.InstanceLaunchOptionsArgs{ 103 BootVolumeType: pulumi.String("PARAVIRTUALIZED"), 104 Firmware: pulumi.String("UEFI_64"), 105 IsConsistentVolumeNamingEnabled: pulumi.Bool(true), 106 IsPvEncryptionInTransitEnabled: pulumi.Bool(true), 107 NetworkType: pulumi.String("PARAVIRTUALIZED"), 108 RemoteDataVolumeType: pulumi.String("PARAVIRTUALIZED"), 109 }, 110 111 DefinedTags: pulumi.StringMap{ 112 "Oracle-Tags.CreatedBy": pulumi.String("default/mfarabi619@gmail.com"), 113 "Oracle-Tags.CreatedOn": pulumi.String("2025-11-28T05:54:02.722Z"), 114 }, 115 116 State: pulumi.String("RUNNING"), 117 }, pulumi.Protect(false)) 118 119 if err != nil { 120 return err 121 } 122 123 return err 124 }