/ config / providers / oci.go
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  }