Documentation
¶
Index ¶
- Constants
- type AvailabilityZone
- type ComputeClient
- type Environ
- func (e *Environ) AdoptResources(ctx envcontext.ProviderCallContext, controllerUUID string, ...) error
- func (e *Environ) AllInstances(ctx envcontext.ProviderCallContext) ([]instances.Instance, error)
- func (e *Environ) AllRunningInstances(ctx envcontext.ProviderCallContext) ([]instances.Instance, error)
- func (e *Environ) AreSpacesRoutable(ctx envcontext.ProviderCallContext, space1, space2 *environs.ProviderSpaceInfo) (bool, error)
- func (e *Environ) AvailabilityZones(ctx envcontext.ProviderCallContext) (network.AvailabilityZones, error)
- func (e *Environ) Bootstrap(ctx environs.BootstrapContext, callCtx envcontext.ProviderCallContext, ...) (*environs.BootstrapResult, error)
- func (e *Environ) Config() *config.Config
- func (e *Environ) ConstraintsValidator(ctx envcontext.ProviderCallContext) (constraints.Validator, error)
- func (e *Environ) ControllerInstances(ctx envcontext.ProviderCallContext, controllerUUID string) ([]instance.Id, error)
- func (e *Environ) Create(ctx envcontext.ProviderCallContext, params environs.CreateParams) error
- func (e *Environ) DeriveAvailabilityZones(ctx envcontext.ProviderCallContext, args environs.StartInstanceParams) ([]string, error)
- func (e *Environ) Destroy(ctx envcontext.ProviderCallContext) error
- func (e *Environ) DestroyController(ctx envcontext.ProviderCallContext, controllerUUID string) error
- func (e *Environ) InstanceAvailabilityZoneNames(ctx envcontext.ProviderCallContext, ids []instance.Id) (map[instance.Id]string, error)
- func (e *Environ) InstanceTypes(envcontext.ProviderCallContext, constraints.Value) (instances.InstanceTypesWithCostMetadata, error)
- func (e *Environ) Instances(ctx envcontext.ProviderCallContext, ids []instance.Id) ([]instances.Instance, error)
- func (e *Environ) NetworkInterfaces(ctx envcontext.ProviderCallContext, ids []instance.Id) ([]network.InterfaceInfos, error)
- func (e *Environ) PrecheckInstance(envcontext.ProviderCallContext, environs.PrecheckInstanceParams) error
- func (e *Environ) PrepareForBootstrap(ctx environs.BootstrapContext, controllerName string) error
- func (e *Environ) Provider() environs.EnvironProvider
- func (e *Environ) SetConfig(ctx context.Context, cfg *config.Config) error
- func (e *Environ) StartInstance(ctx envcontext.ProviderCallContext, args environs.StartInstanceParams) (*environs.StartInstanceResult, error)
- func (e *Environ) StopInstances(ctx envcontext.ProviderCallContext, ids ...instance.Id) error
- func (e *Environ) StorageProvider(t storage.ProviderType) (storage.Provider, error)
- func (e *Environ) StorageProviderTypes() ([]storage.ProviderType, error)
- func (e *Environ) Subnets(ctx envcontext.ProviderCallContext, id instance.Id, subnets []network.Id) ([]network.SubnetInfo, error)
- func (e *Environ) SupportsSpaces() (bool, error)
- type EnvironProvider
- func (e EnvironProvider) CloudSchema() *jsonschema.Schema
- func (o *EnvironProvider) ConfigDefaults() schema.Defaults
- func (o *EnvironProvider) ConfigSchema() schema.Fields
- func (e EnvironProvider) CredentialSchemas() map[cloud.AuthType]cloud.CredentialSchema
- func (e EnvironProvider) DetectCredentials(cloudName string) (*cloud.CloudCredential, error)
- func (e EnvironProvider) FinalizeCredential(ctx environs.FinalizeCredentialContext, ...) (*cloud.Credential, error)
- func (e EnvironProvider) ModelConfigDefaults(_ context.Context) (map[string]any, error)
- func (e *EnvironProvider) Open(ctx context.Context, params environs.OpenParams, ...) (environs.Environ, error)
- func (e *EnvironProvider) Ping(ctx envcontext.ProviderCallContext, endpoint string) error
- func (o *EnvironProvider) Schema() configschema.Fields
- func (e EnvironProvider) Validate(ctx context.Context, cfg, old *config.Config) (valid *config.Config, err error)
- func (e EnvironProvider) ValidateCloud(ctx context.Context, spec environscloudspec.CloudSpec) error
- func (e EnvironProvider) Version() int
- type FirewallClient
- type IdentityClient
- type ImageCache
- func (i *ImageCache) ImageMap() imageMap
- func (i ImageCache) ImageMetadata(base corebase.Base, arch string, defaultVirtType string) []*imagemetadata.ImageMetadata
- func (i *ImageCache) SetImages(images imageMap)
- func (i *ImageCache) SetLastRefresh(t time.Time)
- func (i ImageCache) SupportedShapes(base corebase.Base, arch string) []instances.InstanceType
- type ImageType
- type ImageVersion
- type InstanceImage
- type InstanceType
- type NetworkingClient
- type OCIRenderer
- type StorageAPI
- type StorageClient
Constants ¶
const ( // DefaultConfigFolder is the default folder in which the OCI cli will // store its config files and keys DefaultConfigFolder = ".oci" // FallbackConfigFolder is the fallback config folder. Users that installed // an earlier version of the oracle CLI tool will have this folder instead of // ~/.oci FallbackConfigFolder = ".oraclebmc" )
const ( BareMetal InstanceType = "metal" VirtualMachine InstanceType = "vm" GPUMachine InstanceType = "gpu" // ImageTypeVM should be run on a virtual instance ImageTypeVM ImageType = "vm" // ImageTypeBM should be run on bare metal ImageTypeBM ImageType = "metal" // ImageTypeGPU should be run on an instance with attached GPUs ImageTypeGPU ImageType = "gpu" // ImageTypeGeneric should work on any type of instance (bare metal or virtual) ImageTypeGeneric ImageType = "generic" )
const ( // MinVolumeSizeMB is the minimum size in MB for a volume or boot disk MinVolumeSizeMB = 51200 // MaxVolumeSizeMB is the maximum size in MB for a volume or boot disk MaxVolumeSizeMB = 16777216 )
const ( // DefaultAddressSpace is the subnet to use for the default juju VCN // An individual subnet will be created from this class, for each // availability domain. DefaultAddressSpace = "10.0.0.0/16" AllowAllPrefix = "0.0.0.0/0" SubnetPrefixLength = "24" VcnNamePrefix = "juju-vcn" SecListNamePrefix = "juju-seclist" InternetGatewayPrefix = "juju-ig" RouteTablePrefix = "juju-rt" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AvailabilityZone ¶
type AvailabilityZone struct {
// contains filtered or unexported fields
}
AvailabilityZone implements common.AvailabilityZone
func NewAvailabilityZone ¶
func NewAvailabilityZone(name string) AvailabilityZone
NewAvailabilityZone returns a new availability zone
func (AvailabilityZone) Available ¶
func (a AvailabilityZone) Available() bool
Available is specified on the common.AvailabilityZone interface
func (AvailabilityZone) Name ¶
func (a AvailabilityZone) Name() string
Name is specified on the common.AvailabilityZone interface
type ComputeClient ¶
type ComputeClient interface { ListVnicAttachments(ctx context.Context, compartmentID, instID *string) ([]ociCore.VnicAttachment, error) TerminateInstance(ctx context.Context, request ociCore.TerminateInstanceRequest) (ociCore.TerminateInstanceResponse, error) GetInstance(ctx context.Context, request ociCore.GetInstanceRequest) (ociCore.GetInstanceResponse, error) LaunchInstance(ctx context.Context, request ociCore.LaunchInstanceRequest) (ociCore.LaunchInstanceResponse, error) ListInstances(ctx context.Context, compartmentID *string) ([]ociCore.Instance, error) ListShapes(ctx context.Context, compartmentID, imageID *string) ([]ociCore.Shape, error) ListImages(ctx context.Context, compartmentID *string) ([]ociCore.Image, error) ListVolumeAttachments(ctx context.Context, compartmentID, instID *string) ([]ociCore.VolumeAttachment, error) GetVolumeAttachment(ctx context.Context, request ociCore.GetVolumeAttachmentRequest) (ociCore.GetVolumeAttachmentResponse, error) DetachVolume(ctx context.Context, request ociCore.DetachVolumeRequest) (ociCore.DetachVolumeResponse, error) AttachVolume(ctx context.Context, request ociCore.AttachVolumeRequest) (ociCore.AttachVolumeResponse, error) }
type Environ ¶
type Environ struct { environs.NoSpaceDiscoveryEnviron environs.NoContainerAddressesEnviron Compute ComputeClient Networking NetworkingClient Storage StorageClient Firewall FirewallClient Identity IdentityClient // contains filtered or unexported fields }
func (*Environ) AdoptResources ¶
func (e *Environ) AdoptResources(ctx envcontext.ProviderCallContext, controllerUUID string, fromVersion version.Number) error
AdoptResources implements environs.Environ.
func (*Environ) AllInstances ¶
func (e *Environ) AllInstances(ctx envcontext.ProviderCallContext) ([]instances.Instance, error)
AllInstances implements environs.InstanceBroker.
func (*Environ) AllRunningInstances ¶
func (e *Environ) AllRunningInstances(ctx envcontext.ProviderCallContext) ([]instances.Instance, error)
AllRunningInstances implements environs.InstanceBroker.
func (*Environ) AreSpacesRoutable ¶
func (e *Environ) AreSpacesRoutable(ctx envcontext.ProviderCallContext, space1, space2 *environs.ProviderSpaceInfo) (bool, error)
func (*Environ) AvailabilityZones ¶
func (e *Environ) AvailabilityZones(ctx envcontext.ProviderCallContext) (network.AvailabilityZones, error)
AvailabilityZones is defined in the common.ZonedEnviron interface
func (*Environ) Bootstrap ¶
func (e *Environ) Bootstrap(ctx environs.BootstrapContext, callCtx envcontext.ProviderCallContext, params environs.BootstrapParams) (*environs.BootstrapResult, error)
Bootstrap implements environs.Environ.
func (*Environ) ConstraintsValidator ¶
func (e *Environ) ConstraintsValidator(ctx envcontext.ProviderCallContext) (constraints.Validator, error)
ConstraintsValidator implements environs.Environ.
func (*Environ) ControllerInstances ¶
func (e *Environ) ControllerInstances(ctx envcontext.ProviderCallContext, controllerUUID string) ([]instance.Id, error)
ControllerInstances implements environs.Environ.
func (*Environ) Create ¶
func (e *Environ) Create(ctx envcontext.ProviderCallContext, params environs.CreateParams) error
Create implements environs.Environ.
func (*Environ) DeriveAvailabilityZones ¶
func (e *Environ) DeriveAvailabilityZones(ctx envcontext.ProviderCallContext, args environs.StartInstanceParams) ([]string, error)
DeriveAvailabilityZones implements common.ZonedEnviron.
func (*Environ) Destroy ¶
func (e *Environ) Destroy(ctx envcontext.ProviderCallContext) error
Destroy implements environs.Environ.
func (*Environ) DestroyController ¶
func (e *Environ) DestroyController(ctx envcontext.ProviderCallContext, controllerUUID string) error
DestroyController implements environs.Environ.
func (*Environ) InstanceAvailabilityZoneNames ¶
func (e *Environ) InstanceAvailabilityZoneNames(ctx envcontext.ProviderCallContext, ids []instance.Id) (map[instance.Id]string, error)
InstanceAvailabilityZoneNames implements common.ZonedEnviron.
func (*Environ) InstanceTypes ¶
func (e *Environ) InstanceTypes(envcontext.ProviderCallContext, constraints.Value) (instances.InstanceTypesWithCostMetadata, error)
InstanceTypes implements environs.InstancePrechecker.
func (*Environ) Instances ¶
func (e *Environ) Instances(ctx envcontext.ProviderCallContext, ids []instance.Id) ([]instances.Instance, error)
Instances implements environs.Environ.
func (*Environ) NetworkInterfaces ¶
func (e *Environ) NetworkInterfaces(ctx envcontext.ProviderCallContext, ids []instance.Id) ([]network.InterfaceInfos, error)
func (*Environ) PrecheckInstance ¶
func (e *Environ) PrecheckInstance(envcontext.ProviderCallContext, environs.PrecheckInstanceParams) error
PrecheckInstance implements environs.InstancePrechecker.
func (*Environ) PrepareForBootstrap ¶
func (e *Environ) PrepareForBootstrap(ctx environs.BootstrapContext, controllerName string) error
PrepareForBootstrap implements environs.Environ.
func (*Environ) Provider ¶
func (e *Environ) Provider() environs.EnvironProvider
Provider implements environs.Environ.
func (*Environ) StartInstance ¶
func (e *Environ) StartInstance( ctx envcontext.ProviderCallContext, args environs.StartInstanceParams, ) (*environs.StartInstanceResult, error)
StartInstance implements environs.InstanceBroker.
func (*Environ) StopInstances ¶
func (e *Environ) StopInstances(ctx envcontext.ProviderCallContext, ids ...instance.Id) error
StopInstances implements environs.InstanceBroker.
func (*Environ) StorageProvider ¶
StorageProvider implements storage.ProviderRegistry.
func (*Environ) StorageProviderTypes ¶
func (e *Environ) StorageProviderTypes() ([]storage.ProviderType, error)
StorageProviderTypes implements storage.ProviderRegistry.
func (*Environ) Subnets ¶
func (e *Environ) Subnets( ctx envcontext.ProviderCallContext, id instance.Id, subnets []network.Id, ) ([]network.SubnetInfo, error)
Subnets is defined on the environs.Networking interface.
func (*Environ) SupportsSpaces ¶
type EnvironProvider ¶
type EnvironProvider struct{}
EnvironProvider type implements environs.EnvironProvider interface
func (EnvironProvider) CloudSchema ¶
func (e EnvironProvider) CloudSchema() *jsonschema.Schema
CloudSchema implements environs.EnvironProvider.
func (*EnvironProvider) ConfigDefaults ¶
func (o *EnvironProvider) ConfigDefaults() schema.Defaults
ConfigDefaults implements config.ConfigSchemaSource
func (*EnvironProvider) ConfigSchema ¶
func (o *EnvironProvider) ConfigSchema() schema.Fields
ConfigSchema implements config.ConfigSchemaSource
func (EnvironProvider) CredentialSchemas ¶
func (e EnvironProvider) CredentialSchemas() map[cloud.AuthType]cloud.CredentialSchema
CredentialSchemas implements environs.ProviderCredentials.
func (EnvironProvider) DetectCredentials ¶
func (e EnvironProvider) DetectCredentials(cloudName string) (*cloud.CloudCredential, error)
DetectCredentials implements environs.ProviderCredentials. Configuration options for the OCI SDK are detailed here: https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/sdkconfig.htm
func (EnvironProvider) FinalizeCredential ¶
func (e EnvironProvider) FinalizeCredential( ctx environs.FinalizeCredentialContext, params environs.FinalizeCredentialParams) (*cloud.Credential, error)
FinalizeCredential implements environs.ProviderCredentials.
func (EnvironProvider) ModelConfigDefaults ¶
ModelConfigDefaults provides a set of default model config attributes that should be set on a models config if they have not been specified by the user.
func (*EnvironProvider) Open ¶
func (e *EnvironProvider) Open(ctx context.Context, params environs.OpenParams, invalidator environs.CredentialInvalidator) (environs.Environ, error)
Open implements environs.EnvironProvider.
func (*EnvironProvider) Ping ¶
func (e *EnvironProvider) Ping(ctx envcontext.ProviderCallContext, endpoint string) error
Ping implements environs.EnvironProvider.
func (*EnvironProvider) Schema ¶
func (o *EnvironProvider) Schema() configschema.Fields
Schema implements environs.ProviderSchema
func (EnvironProvider) Validate ¶
func (e EnvironProvider) Validate(ctx context.Context, cfg, old *config.Config) (valid *config.Config, err error)
Validate implements config.Validator.
func (EnvironProvider) ValidateCloud ¶
func (e EnvironProvider) ValidateCloud(ctx context.Context, spec environscloudspec.CloudSpec) error
ValidateCloud is specified in the EnvironProvider interface.
func (EnvironProvider) Version ¶
func (e EnvironProvider) Version() int
Version implements environs.EnvironProvider.
type FirewallClient ¶
type FirewallClient interface { CreateSecurityList(ctx context.Context, request ociCore.CreateSecurityListRequest) (ociCore.CreateSecurityListResponse, error) ListSecurityLists(ctx context.Context, compartmentID, vcnID *string) ([]ociCore.SecurityList, error) DeleteSecurityList(ctx context.Context, request ociCore.DeleteSecurityListRequest) (ociCore.DeleteSecurityListResponse, error) GetSecurityList(ctx context.Context, request ociCore.GetSecurityListRequest) (ociCore.GetSecurityListResponse, error) }
type IdentityClient ¶
type IdentityClient interface {
ListAvailabilityDomains(ctx context.Context, request ociIdentity.ListAvailabilityDomainsRequest) (ociIdentity.ListAvailabilityDomainsResponse, error)
}
type ImageCache ¶
type ImageCache struct {
// contains filtered or unexported fields
}
ImageCache holds a cache of all provider images for a fixed amount of time before it becomes stale
func (*ImageCache) ImageMap ¶
func (i *ImageCache) ImageMap() imageMap
func (ImageCache) ImageMetadata ¶
func (i ImageCache) ImageMetadata(base corebase.Base, arch string, defaultVirtType string) []*imagemetadata.ImageMetadata
ImageMetadata returns an array of imagemetadata.ImageMetadata for all images that are currently in cache, matching the provided base If defaultVirtType is specified, all generic images will inherit the value of defaultVirtType.
func (*ImageCache) SetImages ¶
func (i *ImageCache) SetImages(images imageMap)
func (*ImageCache) SetLastRefresh ¶
func (i *ImageCache) SetLastRefresh(t time.Time)
SetLastRefresh sets the lastRefresh attribute of ImageCache This is used mostly for testing purposes
func (ImageCache) SupportedShapes ¶
func (i ImageCache) SupportedShapes(base corebase.Base, arch string) []instances.InstanceType
SupportedShapes returns the InstanceTypes available for images matching the supplied base
type ImageVersion ¶
func NewImageVersion ¶
func NewImageVersion(img ociCore.Image) (ImageVersion, error)
type InstanceImage ¶
type InstanceImage struct { // ImageType determines which type of image this is. Valid values are: // vm, baremetal and generic ImageType ImageType // Id is the provider ID of the image Id string // Base is the os base. Base corebase.Base // Version is the version of the image Version ImageVersion // Raw stores the core.Image object Raw ociCore.Image // CompartmentId is the compartment Id where this image is available CompartmentId *string // InstanceTypes holds a list of shapes compatible with this image InstanceTypes []instances.InstanceType // IsMinimal is true when the image is a Minimal image. Can only be // true for ubuntu OS. IsMinimal bool }
InstanceImage aggregates information pertinent to provider supplied images (eg: shapes it can run on, type of instance it can run on, etc)
func NewInstanceImage ¶
NewInstanceImage returns a populated InstanceImage from the ociCore.Image struct returned by oci's API, the image's architecture or an error.
func (*InstanceImage) SetInstanceTypes ¶
func (i *InstanceImage) SetInstanceTypes(types []instances.InstanceType)
type InstanceType ¶
type InstanceType string
func (InstanceType) String ¶
func (i InstanceType) String() string
type NetworkingClient ¶
type NetworkingClient interface { CreateVcn(ctx context.Context, request ociCore.CreateVcnRequest) (ociCore.CreateVcnResponse, error) DeleteVcn(ctx context.Context, request ociCore.DeleteVcnRequest) (ociCore.DeleteVcnResponse, error) ListVcns(ctx context.Context, compartmentID *string) ([]ociCore.Vcn, error) GetVcn(ctx context.Context, request ociCore.GetVcnRequest) (ociCore.GetVcnResponse, error) CreateSubnet(ctx context.Context, request ociCore.CreateSubnetRequest) (ociCore.CreateSubnetResponse, error) ListSubnets(ctx context.Context, compartmentID, vcnID *string) ([]ociCore.Subnet, error) DeleteSubnet(ctx context.Context, request ociCore.DeleteSubnetRequest) (ociCore.DeleteSubnetResponse, error) GetSubnet(ctx context.Context, request ociCore.GetSubnetRequest) (ociCore.GetSubnetResponse, error) CreateInternetGateway(ctx context.Context, request ociCore.CreateInternetGatewayRequest) (ociCore.CreateInternetGatewayResponse, error) GetInternetGateway(ctx context.Context, request ociCore.GetInternetGatewayRequest) (ociCore.GetInternetGatewayResponse, error) ListInternetGateways(ctx context.Context, compartmentID, vcnID *string) ([]ociCore.InternetGateway, error) DeleteInternetGateway(ctx context.Context, request ociCore.DeleteInternetGatewayRequest) (ociCore.DeleteInternetGatewayResponse, error) CreateRouteTable(ctx context.Context, request ociCore.CreateRouteTableRequest) (ociCore.CreateRouteTableResponse, error) GetRouteTable(ctx context.Context, request ociCore.GetRouteTableRequest) (ociCore.GetRouteTableResponse, error) DeleteRouteTable(ctx context.Context, request ociCore.DeleteRouteTableRequest) (ociCore.DeleteRouteTableResponse, error) ListRouteTables(ctx context.Context, compartmentID, vcnID *string) ([]ociCore.RouteTable, error) GetVnic(ctx context.Context, request ociCore.GetVnicRequest) (ociCore.GetVnicResponse, error) }
type OCIRenderer ¶
type OCIRenderer struct{}
OCIRenderer implements the renderers.ProviderRenderer interface
func (OCIRenderer) Render ¶
func (OCIRenderer) Render(cfg cloudinit.CloudConfig, os ostype.OSType) ([]byte, error)
Renderer is defined in the renderers.ProviderRenderer interface
type StorageAPI ¶
type StorageAPI interface{}
type StorageClient ¶
type StorageClient interface { CreateVolume(ctx context.Context, request ociCore.CreateVolumeRequest) (ociCore.CreateVolumeResponse, error) ListVolumes(ctx context.Context, compartmentID *string) ([]ociCore.Volume, error) GetVolume(ctx context.Context, request ociCore.GetVolumeRequest) (ociCore.GetVolumeResponse, error) DeleteVolume(ctx context.Context, request ociCore.DeleteVolumeRequest) (ociCore.DeleteVolumeResponse, error) UpdateVolume(ctx context.Context, request ociCore.UpdateVolumeRequest) (ociCore.UpdateVolumeResponse, error) }