Documentation
¶
Index ¶
- Constants
- Variables
- func ImageSchema() (*jsonschema.Schema, error)
- func ImageSchemaValid(image *images.Image, schema *jsonschema.Schema) bool
- func ImageSignatureValid(image *images.Image, signingKeyRaw []byte) bool
- type ApplicationCredentialProvider
- type BlockStorageClient
- type ComputeClient
- func (c *ComputeClient) CreateImageFromServer(ctx context.Context, id string, opts *servers.CreateImageOpts) (string, error)
- func (c *ComputeClient) CreateKeypair(ctx context.Context, name, publicKey string) error
- func (c *ComputeClient) CreateRemoteConsole(ctx context.Context, id string) (*remoteconsoles.RemoteConsole, error)
- func (c *ComputeClient) CreateServer(ctx context.Context, server *unikornv1.Server, keyName string, ...) (*servers.Server, error)
- func (c *ComputeClient) CreateServerGroup(ctx context.Context, name string) (*servergroups.ServerGroup, error)
- func (c *ComputeClient) DeleteKeypair(ctx context.Context, name string) error
- func (c *ComputeClient) DeleteServer(ctx context.Context, id string) error
- func (c *ComputeClient) DeleteServerGroup(ctx context.Context, id string) error
- func (c *ComputeClient) GetFlavors(ctx context.Context) ([]flavors.Flavor, error)
- func (c *ComputeClient) GetServer(ctx context.Context, server *unikornv1.Server) (*servers.Server, error)
- func (c *ComputeClient) RebootServer(ctx context.Context, id string, hard bool) error
- func (c *ComputeClient) ShowConsoleOutput(ctx context.Context, id string, length *int) (string, error)
- func (c *ComputeClient) StartServer(ctx context.Context, id string) error
- func (c *ComputeClient) StopServer(ctx context.Context, id string) error
- func (c *ComputeClient) UpdateQuotas(ctx context.Context, projectID string) error
- type ComputeInterface
- type ComputeQuotaInterface
- type CreateTokenOptions
- type CreateTokenOptionsScopedToken
- type CreateTokenOptionsUnscopedPassword
- type CredentialProvider
- type DomainScopedPasswordProvider
- type ExternalNetworkInterface
- type FlavorInterface
- type FloatingIPInterface
- type IdentityClient
- func (c *IdentityClient) CreateApplicationCredential(ctx context.Context, userID, name, description string, roles []string) (*applicationcredentials.ApplicationCredential, error)
- func (c *IdentityClient) CreateProject(ctx context.Context, domainID, name string, tags []string) (*projects.Project, error)
- func (c *IdentityClient) CreateRoleAssignment(ctx context.Context, userID, projectID, roleID string) error
- func (c *IdentityClient) CreateToken(ctx context.Context, options CreateTokenOptions) (*tokens.Token, *tokens.User, error)
- func (c *IdentityClient) CreateUser(ctx context.Context, domainID, name, password string) (*users.User, error)
- func (c *IdentityClient) DeleteApplicationCredential(ctx context.Context, userID, id string) error
- func (c *IdentityClient) DeleteProject(ctx context.Context, projectID string) error
- func (c *IdentityClient) DeleteUser(ctx context.Context, userID string) error
- func (c *IdentityClient) ListApplicationCredentials(ctx context.Context, userID string) ([]applicationcredentials.ApplicationCredential, error)
- func (c *IdentityClient) ListAvailableProjects(ctx context.Context) ([]projects.Project, error)
- func (c *IdentityClient) ListRoles(ctx context.Context) ([]roles.Role, error)
- type ImageClient
- func (c *ImageClient) CreateImage(ctx context.Context, opts *images.CreateOpts) (*images.Image, error)
- func (c *ImageClient) DeleteImage(ctx context.Context, id string) error
- func (c *ImageClient) GetImage(ctx context.Context, id string) (*images.Image, error)
- func (c *ImageClient) Import(ctx context.Context, id, uri string) error
- func (c *ImageClient) ListImages(ctx context.Context) ([]images.Image, error)
- func (c *ImageClient) UpdateImage(ctx context.Context, id string, opts images.UpdateOpts) (*images.Image, error)
- type KeypairInterface
- type NetworkClient
- func (c *NetworkClient) AddRouterInterface(ctx context.Context, routerID, subnetID string) error
- func (c *NetworkClient) CreateFloatingIP(ctx context.Context, portID string) (*floatingips.FloatingIP, error)
- func (c *NetworkClient) CreateNetwork(ctx context.Context, network *unikornv1.Network, vlanID *int) (*NetworkExt, error)
- func (c *NetworkClient) CreateRouter(ctx context.Context, network *unikornv1.Network) (*routers.Router, error)
- func (c *NetworkClient) CreateSecurityGroup(ctx context.Context, securityGroup *unikornv1.SecurityGroup) (*groups.SecGroup, error)
- func (c *NetworkClient) CreateSecurityGroupRule(ctx context.Context, securityGroupID string, direction rules.RuleDirection, ...) (*rules.SecGroupRule, error)
- func (c *NetworkClient) CreateServerPort(ctx context.Context, server *unikornv1.Server, networkID string, ...) (*ports.Port, error)
- func (c *NetworkClient) CreateSubnet(ctx context.Context, network *unikornv1.Network, ...) (*subnets.Subnet, error)
- func (c *NetworkClient) DeleteFloatingIP(ctx context.Context, id string) error
- func (c *NetworkClient) DeleteNetwork(ctx context.Context, id string) error
- func (c *NetworkClient) DeletePort(ctx context.Context, portID string) error
- func (c *NetworkClient) DeleteRouter(ctx context.Context, id string) error
- func (c *NetworkClient) DeleteSecurityGroup(ctx context.Context, securityGroupID string) error
- func (c *NetworkClient) DeleteSecurityGroupRule(ctx context.Context, securityGroupID, ruleID string) error
- func (c *NetworkClient) DeleteSubnet(ctx context.Context, id string) error
- func (c *NetworkClient) ExternalNetworks(ctx context.Context) ([]networks.Network, error)
- func (c *NetworkClient) GetFloatingIP(ctx context.Context, portID string) (*floatingips.FloatingIP, error)
- func (c *NetworkClient) GetNetwork(ctx context.Context, network *unikornv1.Network) (*NetworkExt, error)
- func (c *NetworkClient) GetRouter(ctx context.Context, network *unikornv1.Network) (*routers.Router, error)
- func (c *NetworkClient) GetSecurityGroup(ctx context.Context, securityGroup *unikornv1.SecurityGroup) (*groups.SecGroup, error)
- func (c *NetworkClient) GetServerPort(ctx context.Context, server *unikornv1.Server) (*ports.Port, error)
- func (c *NetworkClient) GetSubnet(ctx context.Context, network *unikornv1.Network) (*subnets.Subnet, error)
- func (c *NetworkClient) ListRouterPorts(ctx context.Context, routerID string) ([]ports.Port, error)
- func (c *NetworkClient) ListSecurityGroupRules(ctx context.Context, securityGroupID string) ([]rules.SecGroupRule, error)
- func (c *NetworkClient) ListServerPorts(ctx context.Context, serverID string) ([]ports.Port, error)
- func (c *NetworkClient) RemoveRouterInterface(ctx context.Context, routerID, subnetID string) error
- func (c *NetworkClient) UpdatePort(ctx context.Context, portID string, securityGroupIDs []string, ...) (*ports.Port, error)
- func (c *NetworkClient) UpdateQuotas(ctx context.Context, projectID string) error
- func (c *NetworkClient) UpdateSubnet(ctx context.Context, subnetID string, dnsNameservers []string, ...) (*subnets.Subnet, error)
- type NetworkExt
- type NetworkInterface
- type NetworkingInterface
- type PasswordProvider
- type PortInterface
- type Provider
- func (p *Provider) CreateConsoleSession(ctx context.Context, identity *unikornv1.Identity, server *unikornv1.Server) (string, error)
- func (p *Provider) CreateIdentity(ctx context.Context, identity *unikornv1.Identity) error
- func (p *Provider) CreateImage(ctx context.Context, image *types.Image, uri string) (*types.Image, error)
- func (p *Provider) CreateNetwork(ctx context.Context, identity *unikornv1.Identity, network *unikornv1.Network) error
- func (p *Provider) CreateSecurityGroup(ctx context.Context, identity *unikornv1.Identity, ...) error
- func (p *Provider) CreateServer(ctx context.Context, identity *unikornv1.Identity, server *unikornv1.Server) error
- func (p *Provider) CreateSnapshot(ctx context.Context, identity *unikornv1.Identity, server *unikornv1.Server, ...) (*types.Image, error)
- func (p *Provider) DeleteIdentity(ctx context.Context, identity *unikornv1.Identity) error
- func (p *Provider) DeleteImage(ctx context.Context, imageID string) error
- func (p *Provider) DeleteNetwork(ctx context.Context, identity *unikornv1.Identity, network *unikornv1.Network) error
- func (p *Provider) DeleteSecurityGroup(ctx context.Context, identity *unikornv1.Identity, ...) error
- func (p *Provider) DeleteServer(ctx context.Context, identity *unikornv1.Identity, server *unikornv1.Server) error
- func (p *Provider) Flavors(ctx context.Context) (types.FlavorList, error)
- func (p *Provider) GetConsoleOutput(ctx context.Context, identity *unikornv1.Identity, server *unikornv1.Server, ...) (string, error)
- func (p *Provider) GetImage(ctx context.Context, organizationID, imageID string) (*types.Image, error)
- func (p *Provider) GetOpenstackIdentity(ctx context.Context, identity *unikornv1.Identity) (*unikornv1.OpenstackIdentity, error)
- func (p *Provider) GetOrCreateOpenstackIdentity(ctx context.Context, identity *unikornv1.Identity) (*unikornv1.OpenstackIdentity, bool, error)
- func (p *Provider) ListExternalNetworks(ctx context.Context) (types.ExternalNetworks, error)
- func (p *Provider) QueryImages() (types.ImageQuery, error)
- func (p *Provider) RebootServer(ctx context.Context, identity *unikornv1.Identity, server *unikornv1.Server, ...) error
- func (p *Provider) Region(ctx context.Context) (*unikornv1.Region, error)
- func (p *Provider) StartServer(ctx context.Context, identity *unikornv1.Identity, server *unikornv1.Server) error
- func (p *Provider) StopServer(ctx context.Context, identity *unikornv1.Identity, server *unikornv1.Server) error
- func (p *Provider) UpdateServerState(ctx context.Context, identity *unikornv1.Identity, server *unikornv1.Server) error
- type RouterInterface
- type SecurityGroupInterface
- type ServerGroupInterface
- type ServerInterface
- type SubnetInterface
- type TokenProvider
- type UnauthenticatedProvider
Constants ¶
const ( // Projects are randomly named to avoid clashes, so we need to add some tags // in order to be able to reason about who they really belong to. It is also // useful to have these in place so we can spot orphaned resources and garbage // collect them. OrganizationTag = "organization" ProjectTag = "project" )
Variables ¶
var ( // ErrPEMDecode is raised when the PEM decode failed for some reason. ErrPEMDecode = errors.New("PEM decode error") // ErrPEMType is raised when the encounter the wrong PEM type, e.g. PKCS#1. ErrPEMType = errors.New("PEM type unsupported") // ErrKeyType is raised when we encounter an unsupported key type. ErrKeyType = errors.New("key type unsupported") )
Functions ¶
func ImageSchema ¶
func ImageSchema() (*jsonschema.Schema, error)
func ImageSchemaValid ¶
func ImageSchemaValid(image *images.Image, schema *jsonschema.Schema) bool
Types ¶
type ApplicationCredentialProvider ¶
type ApplicationCredentialProvider struct {
// contains filtered or unexported fields
}
ApplicationCredentialProvider allows use of an application credential.
func NewApplicationCredentialProvider ¶
func NewApplicationCredentialProvider(endpoint, id, secret string) *ApplicationCredentialProvider
NewApplicationCredentialProvider creates a client that comsumes application credentials for authentication.
func (*ApplicationCredentialProvider) Client ¶
func (p *ApplicationCredentialProvider) Client(ctx context.Context) (*gophercloud.ProviderClient, error)
Client implements the Provider interface.
type BlockStorageClient ¶
type BlockStorageClient struct {
// contains filtered or unexported fields
}
BlockStorageClient wraps the generic client because gophercloud is unsafe.
func NewBlockStorageClient ¶
func NewBlockStorageClient(ctx context.Context, provider CredentialProvider) (*BlockStorageClient, error)
NewBlockStorageClient provides a simple one-liner to start computing.
func (*BlockStorageClient) AvailabilityZones ¶
func (c *BlockStorageClient) AvailabilityZones(ctx context.Context) ([]availabilityzones.AvailabilityZone, error)
AvailabilityZones retrieves block storage availability zones.
func (*BlockStorageClient) UpdateQuotas ¶
func (c *BlockStorageClient) UpdateQuotas(ctx context.Context, projectID string) error
type ComputeClient ¶
type ComputeClient struct {
// contains filtered or unexported fields
}
ComputeClient wraps the generic client because gophercloud is unsafe.
func NewComputeClient ¶
func NewComputeClient(ctx context.Context, provider CredentialProvider, options *unikornv1.RegionOpenstackComputeSpec) (*ComputeClient, error)
NewComputeClient provides a simple one-liner to start computing.
func (*ComputeClient) CreateImageFromServer ¶ added in v1.13.0
func (c *ComputeClient) CreateImageFromServer(ctx context.Context, id string, opts *servers.CreateImageOpts) (string, error)
func (*ComputeClient) CreateKeypair ¶
func (c *ComputeClient) CreateKeypair(ctx context.Context, name, publicKey string) error
CreateKeypair creates a new keypair. NOTE: while OpenStack can generate one for us, we have far more control doing it ourselves thus allowing us to impose stricter security, and it's more provider agnostic that way.
func (*ComputeClient) CreateRemoteConsole ¶
func (c *ComputeClient) CreateRemoteConsole(ctx context.Context, id string) (*remoteconsoles.RemoteConsole, error)
func (*ComputeClient) CreateServer ¶
func (*ComputeClient) CreateServerGroup ¶
func (c *ComputeClient) CreateServerGroup(ctx context.Context, name string) (*servergroups.ServerGroup, error)
CreateServerGroup creates the named server group with the given policy and returns the result.
func (*ComputeClient) DeleteKeypair ¶
func (c *ComputeClient) DeleteKeypair(ctx context.Context, name string) error
func (*ComputeClient) DeleteServer ¶
func (c *ComputeClient) DeleteServer(ctx context.Context, id string) error
func (*ComputeClient) DeleteServerGroup ¶
func (c *ComputeClient) DeleteServerGroup(ctx context.Context, id string) error
DeleteServerGroup removes a server group, this exists because nova does do any cleanup on project deletion and just orphans the resource.
func (*ComputeClient) GetFlavors ¶
Flavors returns a list of flavors.
func (*ComputeClient) RebootServer ¶
func (*ComputeClient) ShowConsoleOutput ¶
func (*ComputeClient) StartServer ¶
func (c *ComputeClient) StartServer(ctx context.Context, id string) error
func (*ComputeClient) StopServer ¶
func (c *ComputeClient) StopServer(ctx context.Context, id string) error
func (*ComputeClient) UpdateQuotas ¶
func (c *ComputeClient) UpdateQuotas(ctx context.Context, projectID string) error
type ComputeInterface ¶
type ComputeInterface interface {
KeypairInterface
FlavorInterface
ServerGroupInterface
ComputeQuotaInterface
ServerInterface
}
type ComputeQuotaInterface ¶
type CreateTokenOptions ¶
type CreateTokenOptions interface {
// Options returns a valid set of authentication options.
Options() *tokens.AuthOptions
}
CreateTokenOptions abstracts away how schizophrenic Openstack is with its million options and million ways to fuck it up.
type CreateTokenOptionsScopedToken ¶
type CreateTokenOptionsScopedToken struct {
// contains filtered or unexported fields
}
CreateTokenOptionsScopedToken is typically used to upgrade from an unscoped password passed login to a project scoped one once you have determined a valid project.
func NewCreateTokenOptionsScopedToken ¶
func NewCreateTokenOptionsScopedToken(token, projectID string) *CreateTokenOptionsScopedToken
NewCreateTokenOptionsScopedToken returns a new instance of project scoped token options.
func (*CreateTokenOptionsScopedToken) Options ¶
func (o *CreateTokenOptionsScopedToken) Options() *tokens.AuthOptions
Options implements the CreateTokenOptions interface.
type CreateTokenOptionsUnscopedPassword ¶
type CreateTokenOptionsUnscopedPassword struct {
// contains filtered or unexported fields
}
CreateTokenOptionsUnscopedPassword is typically used when logging on to a UI when you don't know anything other than username/password.
func NewCreateTokenOptionsUnscopedPassword ¶
func NewCreateTokenOptionsUnscopedPassword(domain, username, password string) *CreateTokenOptionsUnscopedPassword
NewCreateTokenOptionsUnscopedPassword returns a new instance of unscoped username/password options.
func (*CreateTokenOptionsUnscopedPassword) Options ¶
func (o *CreateTokenOptionsUnscopedPassword) Options() *tokens.AuthOptions
Options implements the CreateTokenOptions interface.
type CredentialProvider ¶
type CredentialProvider interface {
// Client returns a new provider client.
Client(ctx context.Context) (*gophercloud.ProviderClient, error)
}
CredentialProvider abstracts authentication methods.
type DomainScopedPasswordProvider ¶
type DomainScopedPasswordProvider struct {
// contains filtered or unexported fields
}
DomainScopedPasswordProvider allows use of an application credential.
func NewDomainScopedPasswordProvider ¶
func NewDomainScopedPasswordProvider(endpoint, userID, password, domainID string) *DomainScopedPasswordProvider
NewDomainScopedPasswordProvider creates a client that consumes passwords for authentication.
func (*DomainScopedPasswordProvider) Client ¶
func (p *DomainScopedPasswordProvider) Client(ctx context.Context) (*gophercloud.ProviderClient, error)
Client implements the Provider interface.
type ExternalNetworkInterface ¶ added in v1.13.0
type FlavorInterface ¶
type FloatingIPInterface ¶
type FloatingIPInterface interface {
GetFloatingIP(ctx context.Context, portID string) (*floatingips.FloatingIP, error)
CreateFloatingIP(ctx context.Context, portID string) (*floatingips.FloatingIP, error)
DeleteFloatingIP(ctx context.Context, id string) error
}
type IdentityClient ¶
type IdentityClient struct {
// contains filtered or unexported fields
}
IdentityClient wraps up gophercloud identity management.
func NewIdentityClient ¶
func NewIdentityClient(ctx context.Context, provider CredentialProvider) (*IdentityClient, error)
NewIdentityClient returns a new identity client.
func (*IdentityClient) CreateApplicationCredential ¶
func (c *IdentityClient) CreateApplicationCredential(ctx context.Context, userID, name, description string, roles []string) (*applicationcredentials.ApplicationCredential, error)
CreateApplicationCredential creates an application credential for the user.
func (*IdentityClient) CreateProject ¶
func (c *IdentityClient) CreateProject(ctx context.Context, domainID, name string, tags []string) (*projects.Project, error)
CreateProject creates the named project.
func (*IdentityClient) CreateRoleAssignment ¶
func (c *IdentityClient) CreateRoleAssignment(ctx context.Context, userID, projectID, roleID string) error
CreateRoleAssignment creates a role between a user and a project.
func (*IdentityClient) CreateToken ¶
func (c *IdentityClient) CreateToken(ctx context.Context, options CreateTokenOptions) (*tokens.Token, *tokens.User, error)
CreateToken issues a new token.
func (*IdentityClient) CreateUser ¶
func (c *IdentityClient) CreateUser(ctx context.Context, domainID, name, password string) (*users.User, error)
CreateUser creates a new user.
func (*IdentityClient) DeleteApplicationCredential ¶
func (c *IdentityClient) DeleteApplicationCredential(ctx context.Context, userID, id string) error
DeleteApplicationCredential deletes an application credential for the user.
func (*IdentityClient) DeleteProject ¶
func (c *IdentityClient) DeleteProject(ctx context.Context, projectID string) error
func (*IdentityClient) DeleteUser ¶
func (c *IdentityClient) DeleteUser(ctx context.Context, userID string) error
DeleteUser removes an existing user.
func (*IdentityClient) ListApplicationCredentials ¶
func (c *IdentityClient) ListApplicationCredentials(ctx context.Context, userID string) ([]applicationcredentials.ApplicationCredential, error)
ListApplicationCredentials lists application credentials for the scoped user.
func (*IdentityClient) ListAvailableProjects ¶
ListAvailableProjects lists projects that an authenticated (but unscoped) user can scope to.
type ImageClient ¶
type ImageClient struct {
// contains filtered or unexported fields
}
ImageClient wraps the generic client because gophercloud is unsafe.
func NewImageClient ¶
func NewImageClient(ctx context.Context, provider CredentialProvider, options *unikornv1.RegionOpenstackImageSpec) (*ImageClient, error)
NewImageClient provides a simple one-liner to start computing.
func (*ImageClient) CreateImage ¶ added in v1.12.0
func (c *ImageClient) CreateImage(ctx context.Context, opts *images.CreateOpts) (*images.Image, error)
CreateImage creates a new image.
func (*ImageClient) DeleteImage ¶ added in v1.12.0
func (c *ImageClient) DeleteImage(ctx context.Context, id string) error
func (*ImageClient) Import ¶ added in v1.13.0
func (c *ImageClient) Import(ctx context.Context, id, uri string) error
func (*ImageClient) ListImages ¶
ListImages returns a list of images.
func (*ImageClient) UpdateImage ¶ added in v1.12.0
func (c *ImageClient) UpdateImage(ctx context.Context, id string, opts images.UpdateOpts) (*images.Image, error)
type KeypairInterface ¶
type NetworkClient ¶
type NetworkClient struct {
// contains filtered or unexported fields
}
NetworkClient wraps the generic client because gophercloud is unsafe.
func NewNetworkClient ¶
func NewNetworkClient(ctx context.Context, provider CredentialProvider, options *unikornv1.RegionOpenstackNetworkSpec) (*NetworkClient, error)
NewNetworkClient provides a simple one-liner to start networking.
func NewTestNetworkClient ¶
func NewTestNetworkClient(options *unikornv1.RegionOpenstackNetworkSpec) *NetworkClient
func (*NetworkClient) AddRouterInterface ¶
func (c *NetworkClient) AddRouterInterface(ctx context.Context, routerID, subnetID string) error
func (*NetworkClient) CreateFloatingIP ¶
func (c *NetworkClient) CreateFloatingIP(ctx context.Context, portID string) (*floatingips.FloatingIP, error)
CreateFloatingIP creates a floating IP.
func (*NetworkClient) CreateNetwork ¶
func (c *NetworkClient) CreateNetwork(ctx context.Context, network *unikornv1.Network, vlanID *int) (*NetworkExt, error)
CreateNetwork creates a virtual or VLAN provider network for a project. This requires https://github.com/unikorn-cloud/python-unikorn-openstack-policy to be installed, see the README for further details on how this has to work.
func (*NetworkClient) CreateRouter ¶
func (*NetworkClient) CreateSecurityGroup ¶
func (c *NetworkClient) CreateSecurityGroup(ctx context.Context, securityGroup *unikornv1.SecurityGroup) (*groups.SecGroup, error)
CreateSecurityGroup creates a new security group.
func (*NetworkClient) CreateSecurityGroupRule ¶
func (c *NetworkClient) CreateSecurityGroupRule(ctx context.Context, securityGroupID string, direction rules.RuleDirection, protocol rules.RuleProtocol, portStart, portEnd int, prefix string) (*rules.SecGroupRule, error)
CreateSecurityGroupRule adds a security group rule to a security group.
func (*NetworkClient) CreateServerPort ¶
func (*NetworkClient) CreateSubnet ¶
func (*NetworkClient) DeleteFloatingIP ¶
func (c *NetworkClient) DeleteFloatingIP(ctx context.Context, id string) error
DeleteFloatingIP deletes a floating IP.
func (*NetworkClient) DeleteNetwork ¶
func (c *NetworkClient) DeleteNetwork(ctx context.Context, id string) error
func (*NetworkClient) DeletePort ¶
func (c *NetworkClient) DeletePort(ctx context.Context, portID string) error
func (*NetworkClient) DeleteRouter ¶
func (c *NetworkClient) DeleteRouter(ctx context.Context, id string) error
func (*NetworkClient) DeleteSecurityGroup ¶
func (c *NetworkClient) DeleteSecurityGroup(ctx context.Context, securityGroupID string) error
DeleteSecurityGroup deletes a security group.
func (*NetworkClient) DeleteSecurityGroupRule ¶
func (c *NetworkClient) DeleteSecurityGroupRule(ctx context.Context, securityGroupID, ruleID string) error
DeleteSecurityGroupRule deletes a security group rule from a security group.
func (*NetworkClient) DeleteSubnet ¶
func (c *NetworkClient) DeleteSubnet(ctx context.Context, id string) error
func (*NetworkClient) ExternalNetworks ¶
ExternalNetworks returns a list of external networks.
func (*NetworkClient) GetFloatingIP ¶
func (c *NetworkClient) GetFloatingIP(ctx context.Context, portID string) (*floatingips.FloatingIP, error)
func (*NetworkClient) GetNetwork ¶
func (c *NetworkClient) GetNetwork(ctx context.Context, network *unikornv1.Network) (*NetworkExt, error)
func (*NetworkClient) GetSecurityGroup ¶
func (c *NetworkClient) GetSecurityGroup(ctx context.Context, securityGroup *unikornv1.SecurityGroup) (*groups.SecGroup, error)
func (*NetworkClient) GetServerPort ¶
func (*NetworkClient) ListRouterPorts ¶
func (*NetworkClient) ListSecurityGroupRules ¶
func (c *NetworkClient) ListSecurityGroupRules(ctx context.Context, securityGroupID string) ([]rules.SecGroupRule, error)
ListSecurityGroupRules does exactly that.
func (*NetworkClient) ListServerPorts ¶
ListServerPorts returns a list of ports for a server.
func (*NetworkClient) RemoveRouterInterface ¶
func (c *NetworkClient) RemoveRouterInterface(ctx context.Context, routerID, subnetID string) error
func (*NetworkClient) UpdatePort ¶
func (c *NetworkClient) UpdatePort(ctx context.Context, portID string, securityGroupIDs []string, allowedAddressPairs []ports.AddressPair) (*ports.Port, error)
func (*NetworkClient) UpdateQuotas ¶ added in v1.13.2
func (c *NetworkClient) UpdateQuotas(ctx context.Context, projectID string) error
Update quotas overrides any OpenStack default quotas for the project's networking. At present it's only security groups and security group rules that are affected.
type NetworkExt ¶
type NetworkExt struct {
networks.Network
provider.NetworkProviderExt
}
type NetworkInterface ¶
type NetworkingInterface ¶
type NetworkingInterface interface {
ExternalNetworkInterface
NetworkInterface
SubnetInterface
RouterInterface
SecurityGroupInterface
FloatingIPInterface
PortInterface
}
type PasswordProvider ¶
type PasswordProvider struct {
// contains filtered or unexported fields
}
PasswordProvider allows use of an application credential.
func NewPasswordProvider ¶
func NewPasswordProvider(endpoint, userID, password, projectID string) *PasswordProvider
NewPasswordProvider creates a client that comsumes passwords for authentication.
func (*PasswordProvider) Client ¶
func (p *PasswordProvider) Client(ctx context.Context) (*gophercloud.ProviderClient, error)
Client implements the Provider interface.
type PortInterface ¶
type PortInterface interface {
ListServerPorts(ctx context.Context, serverID string) ([]ports.Port, error)
ListRouterPorts(ctx context.Context, routerID string) ([]ports.Port, error)
GetServerPort(ctx context.Context, server *unikornv1.Server) (*ports.Port, error)
CreateServerPort(ctx context.Context, server *unikornv1.Server, networkID string, securityGroupIDs []string, allowedAddressPairs []ports.AddressPair) (*ports.Port, error)
UpdatePort(ctx context.Context, portID string, securityGroupIDs []string, allowedAddressPairs []ports.AddressPair) (*ports.Port, error)
DeletePort(ctx context.Context, portID string) error
}
type Provider ¶
type Provider struct {
// contains filtered or unexported fields
}
func (*Provider) CreateConsoleSession ¶
func (*Provider) CreateIdentity ¶
CreateIdentity creates a new identity for cloud infrastructure.
func (*Provider) CreateImage ¶ added in v1.13.0
func (p *Provider) CreateImage(ctx context.Context, image *types.Image, uri string) (*types.Image, error)
CreateImage creates a new image.
func (*Provider) CreateNetwork ¶
func (p *Provider) CreateNetwork(ctx context.Context, identity *unikornv1.Identity, network *unikornv1.Network) error
CreateNetwork creates a physical network for an identity.
func (*Provider) CreateSecurityGroup ¶
func (p *Provider) CreateSecurityGroup(ctx context.Context, identity *unikornv1.Identity, securityGroup *unikornv1.SecurityGroup) error
CreateSecurityGroup creates a new security group.
func (*Provider) CreateServer ¶
func (p *Provider) CreateServer(ctx context.Context, identity *unikornv1.Identity, server *unikornv1.Server) error
CreateServer creates or updates a server.
func (*Provider) CreateSnapshot ¶ added in v1.13.0
func (p *Provider) CreateSnapshot(ctx context.Context, identity *unikornv1.Identity, server *unikornv1.Server, image *types.Image) (*types.Image, error)
CreateSnapshot creates a new image from an existing server.
func (*Provider) DeleteIdentity ¶
DeleteIdentity cleans up an identity for cloud infrastructure.
func (*Provider) DeleteImage ¶ added in v1.12.0
func (*Provider) DeleteNetwork ¶
func (p *Provider) DeleteNetwork(ctx context.Context, identity *unikornv1.Identity, network *unikornv1.Network) error
DeleteNetwork deletes a physical network.
func (*Provider) DeleteSecurityGroup ¶
func (p *Provider) DeleteSecurityGroup(ctx context.Context, identity *unikornv1.Identity, securityGroup *unikornv1.SecurityGroup) error
DeleteSecurityGroup deletes a security group.
func (*Provider) DeleteServer ¶
func (*Provider) GetConsoleOutput ¶
func (*Provider) GetImage ¶
func (p *Provider) GetImage(ctx context.Context, organizationID, imageID string) (*types.Image, error)
GetImage retrieves a specific image by its ID.
func (*Provider) GetOpenstackIdentity ¶
func (*Provider) GetOrCreateOpenstackIdentity ¶
func (*Provider) ListExternalNetworks ¶
ListExternalNetworks returns a list of external networks if the platform supports such a concept.
func (*Provider) QueryImages ¶ added in v1.14.0
func (p *Provider) QueryImages() (types.ImageQuery, error)
func (*Provider) RebootServer ¶
func (*Provider) StartServer ¶
func (*Provider) StopServer ¶
type RouterInterface ¶
type RouterInterface interface {
GetRouter(ctx context.Context, network *unikornv1.Network) (*routers.Router, error)
CreateRouter(ctx context.Context, network *unikornv1.Network) (*routers.Router, error)
DeleteRouter(ctx context.Context, id string) error
AddRouterInterface(ctx context.Context, routerID, subnetID string) error
RemoveRouterInterface(ctx context.Context, routerID, subnetID string) error
}
type SecurityGroupInterface ¶
type SecurityGroupInterface interface {
GetSecurityGroup(ctx context.Context, securityGroup *unikornv1.SecurityGroup) (*groups.SecGroup, error)
CreateSecurityGroup(ctx context.Context, securityGroup *unikornv1.SecurityGroup) (*groups.SecGroup, error)
DeleteSecurityGroup(ctx context.Context, securityGroupID string) error
ListSecurityGroupRules(ctx context.Context, securityGroupID string) ([]rules.SecGroupRule, error)
CreateSecurityGroupRule(ctx context.Context, securityGroupID string, direction rules.RuleDirection, protocol rules.RuleProtocol, portStart, portEnd int, prefix string) (*rules.SecGroupRule, error)
DeleteSecurityGroupRule(ctx context.Context, securityGroupID, ruleID string) error
}
type ServerGroupInterface ¶
type ServerGroupInterface interface {
CreateServerGroup(ctx context.Context, name string) (*servergroups.ServerGroup, error)
DeleteServerGroup(ctx context.Context, id string) error
}
type ServerInterface ¶
type ServerInterface interface {
GetServer(ctx context.Context, server *unikornv1.Server) (*servers.Server, error)
CreateServer(ctx context.Context, server *unikornv1.Server, keyName string, networks []servers.Network, serverGroupID *string, metadata map[string]string) (*servers.Server, error)
DeleteServer(ctx context.Context, id string) error
RebootServer(ctx context.Context, id string, hard bool) error
StartServer(ctx context.Context, id string) error
StopServer(ctx context.Context, id string) error
CreateRemoteConsole(ctx context.Context, id string) (*remoteconsoles.RemoteConsole, error)
ShowConsoleOutput(ctx context.Context, id string, length *int) (string, error)
CreateImageFromServer(ctx context.Context, id string, opts *servers.CreateImageOpts) (string, error)
}
type SubnetInterface ¶
type SubnetInterface interface {
GetSubnet(ctx context.Context, network *unikornv1.Network) (*subnets.Subnet, error)
CreateSubnet(ctx context.Context, network *unikornv1.Network, networkID string, prefix, gatewayID string, dnsNameservers []string, routes []subnets.HostRoute, allocationPools []subnets.AllocationPool) (*subnets.Subnet, error)
UpdateSubnet(ctx context.Context, subnetID string, dnsNameservers []string, routes []subnets.HostRoute) (*subnets.Subnet, error)
DeleteSubnet(ctx context.Context, id string) error
}
type TokenProvider ¶
type TokenProvider struct {
// contains filtered or unexported fields
}
TokenProvider creates a client from an endpoint and token.
func NewTokenProvider ¶
func NewTokenProvider(endpoint, token string) *TokenProvider
NewTokenProvider returns a new initialized provider.
func (*TokenProvider) Client ¶
func (p *TokenProvider) Client(ctx context.Context) (*gophercloud.ProviderClient, error)
Client implements the Provider interface.
type UnauthenticatedProvider ¶
type UnauthenticatedProvider struct {
// contains filtered or unexported fields
}
UnauthenticatedProvider is used for token issue.
func NewUnauthenticatedProvider ¶
func NewUnauthenticatedProvider(endpoint string) *UnauthenticatedProvider
NewUnauthenticatedProvider returns a new initialized provider.
func (*UnauthenticatedProvider) Client ¶
func (p *UnauthenticatedProvider) Client(ctx context.Context) (*gophercloud.ProviderClient, error)
Client implements the Provider interface.