Documentation
¶
Overview ¶
Package auth provides Google oauth2 and Azure credential bindings for mantle.
Index ¶
- Constants
- func DecodeBOMFile(path string) ([]byte, error)
- func GoogleClient() (*http.Client, error)
- func GoogleClientFromJSONKey(jsonKey []byte, scope ...string) (*http.Client, error)
- func GoogleServiceClient() *http.Client
- func GoogleServiceTokenSource() oauth2.TokenSource
- func GoogleTokenSource() (oauth2.TokenSource, error)
- func GoogleTokenSourceFromJSONKey(jsonKey []byte, scope ...string) (oauth2.TokenSource, error)
- func ReadDOConfig(path string) (map[string]DOProfile, error)
- func ReadESXConfig(path string) (map[string]ESXProfile, error)
- func ReadEquinixMetalConfig(path string) (map[string]EquinixMetalProfile, error)
- func ReadOpenStackConfig(path string) (map[string]OpenStackProfile, error)
- type AzureEnvironment
- type AzureManagementCertificate
- type AzureProfile
- type AzureSubscription
- type DOProfile
- type ESXProfile
- type EquinixMetalProfile
- type OpenStackProfile
- type Options
Constants ¶
const ( AzureAuthPath = ".azure/credentials.json" AzureProfilePath = ".azure/azureProfile.json" )
const DOConfigPath = ".config/digitalocean.json"
const ESXConfigPath = ".config/esx.json"
const EquinixMetalConfigPath = ".config/equinixmetal.json"
const OpenStackConfigPath = ".config/openstack.json"
Variables ¶
This section is empty.
Functions ¶
func DecodeBOMFile ¶ added in v0.20.0
func GoogleClient ¶
GoogleClient provides an http.Client authorized with an oauth2 token that is automatically cached and refreshed from a file named '.mantle-cache-google.json'. This uses interactive oauth2 authorization and requires a user follow to follow a web link and paste in an authorization token.
func GoogleClientFromJSONKey ¶
GoogleClientFromJSONKey provides an http.Client authorized with an oauth2 token retrieved using a Google Developers service account's private JSON key file.
func GoogleServiceClient ¶
GoogleServiceClient fetchs a token from Google Compute Engine's metadata service. This should be used on GCE vms. The Default account is used.
func GoogleServiceTokenSource ¶
func GoogleServiceTokenSource() oauth2.TokenSource
GoogleServiceTokenSource provides an oauth2.TokenSource authorized in the same manner as GoogleServiceClient().
func GoogleTokenSource ¶
func GoogleTokenSource() (oauth2.TokenSource, error)
GoogleTokenSource provides an outh2.TokenSource authorized in the same manner as GoogleClient.
func GoogleTokenSourceFromJSONKey ¶
func GoogleTokenSourceFromJSONKey(jsonKey []byte, scope ...string) (oauth2.TokenSource, error)
GoogleTokenSourceFromJSONKey provides an oauth2.TokenSource authorized in the same manner as GoogleClientFromJSONKey.
func ReadDOConfig ¶ added in v0.8.0
ReadDOConfig decodes a DigitalOcean config file, which is a custom format used by Mantle to hold personal access tokens.
If path is empty, $HOME/.config/digitalocean.json is read.
func ReadESXConfig ¶ added in v0.7.0
func ReadESXConfig(path string) (map[string]ESXProfile, error)
ReadESXConfig decodes a ESX config file, which is a custom format used by Mantle to hold ESX server information.
If path is empty, $HOME/.config/esx.json is read.
func ReadEquinixMetalConfig ¶ added in v0.20.0
func ReadEquinixMetalConfig(path string) (map[string]EquinixMetalProfile, error)
ReadEquinixMetalConfig decodes a EquinixMetal config file, which is a custom format used by Mantle to hold API keys.
If path is empty, $HOME/.config/equinixmetal.json is read.
func ReadOpenStackConfig ¶ added in v0.12.0
func ReadOpenStackConfig(path string) (map[string]OpenStackProfile, error)
ReadOpenStackConfig decodes an OpenStack config file, which is a custom format used by Mantle to hold OpenStack server information.
If path is empty, $HOME/.config/openstack.json is read.
Types ¶
type AzureEnvironment ¶ added in v0.3.0
type AzureEnvironment struct {
ActiveDirectoryEndpointURL string `json:"activeDirectoryEndpointUrl"`
ActiveDirectoryGraphAPIVersion string `json:"activeDirectoryGraphApiVersion"`
ActiveDirectoryGraphResourceID string `json:"activeDirectoryGraphResourceId"`
ActiveDirectoryResourceID string `json:"activeDirectoryResourceId"`
AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix string `json:"azureDataLakeAnalyticsCatalogAndJobEndpointSuffix"`
AzureDataLakeStoreFileSystemEndpointSuffix string `json:"azureDataLakeStoreFileSystemEndpointSuffix"`
GalleryEndpointURL string `json:"galleryEndpointUrl"`
KeyVaultDNSSuffix string `json:"keyVaultDnsSuffix"`
ManagementEndpointURL string `json:"managementEndpointUrl"`
Name string `json:"name"`
PortalURL string `json:"portalUrl"`
PublishingProfileURL string `json:"publishingProfileUrl"`
ResourceManagerEndpointURL string `json:"resourceManagerEndpointUrl"`
SqlManagementEndpointURL string `json:"sqlManagementEndpointUrl"`
SqlServerHostnameSuffix string `json:"sqlServerHostnameSuffix"`
StorageEndpointSuffix string `json:"storageEndpointSuffix"`
}
type AzureManagementCertificate ¶ added in v0.3.0
type AzureProfile ¶ added in v0.3.0
type AzureProfile struct {
Environments []AzureEnvironment `json:"environments"`
Subscriptions []AzureSubscription `json:"subscriptions"`
}
AzureProfile represents a parsed Azure Profile Configuration File.
func ReadAzureProfile ¶ added in v0.3.0
func ReadAzureProfile(path string) (*AzureProfile, error)
ReadAzureProfile decodes an Azure Profile, as created by the Azure Cross-platform CLI.
If path is empty, $HOME/.azure/azureProfile.json is read.
func (*AzureProfile) AsOptions ¶ added in v0.3.0
func (ap *AzureProfile) AsOptions() []Options
AsOptions converts all subscriptions into a slice of Options. If there is an environment with a name matching the subscription, that environment's storage endpoint will be copied to the options.
func (*AzureProfile) SubscriptionOptions ¶ added in v0.3.0
func (ap *AzureProfile) SubscriptionOptions(name string) *Options
SubscriptionOptions returns the name subscription in the Azure profile as a Options struct. If the subscription name is "", the first subscription is returned. If there are no subscriptions or the named subscription is not found, SubscriptionOptions returns nil.
type AzureSubscription ¶ added in v0.3.0
type AzureSubscription struct {
EnvironmentName string `json:"environmentName"`
ID string `json:"id"`
IsDefault bool `json:"isDefault"`
ManagementCertificate AzureManagementCertificate `json:"managementCertificate"`
ManagementEndpointURL string `json:"managementEndpointUrl"`
Name string `json:"name"`
RegisteredProviders []string `json:"registeredProviders"`
State string `json:"state"`
}
type DOProfile ¶ added in v0.8.0
type DOProfile struct {
AccessToken string `json:"token"`
}
DOProfile represents a parsed DigitalOcean profile. This is a custom format specific to Mantle.
type ESXProfile ¶ added in v0.7.0
type ESXProfile struct {
Server string `json:"server"`
User string `json:"user"`
Password string `json:"password"`
StaticIPs int `json:"static_ips,omitempty"`
FirstStaticIp string `json:"first_static_ip,omitempty"`
FirstStaticIpPrivate string `json:"first_static_ip_private,omitempty"`
StaticGatewayIp string `json:"gateway,omitempty"`
StaticGatewayIpPrivate string `json:"gateway_private,omitempty"`
StaticSubnetSize int `json:"subnet_size,omitempty"`
}
ESXProfile represents a parsed ESX profile. This is a custom format specific to Mantle.
type EquinixMetalProfile ¶ added in v0.20.0
EquinixMetalProfile represents a parsed EquinixMetal profile. This is a custom format specific to Mantle.
type OpenStackProfile ¶ added in v0.12.0
type OpenStackProfile struct {
AuthURL string `json:"auth_url"`
DomainID string `json:"domain_id"`
TenantID string `json:"tenant_id"`
TenantName string `json:"tenant_name"`
Username string `json:"username"`
Password string `json:"password"`
//Optional
Domain string `json:"user_domain"`
FloatingIPPool string `json:"floating_ip_pool"`
Region string `json:"region_name"`
}
type Options ¶ added in v0.20.0
type Options struct {
*platform.Options
SubscriptionName string
SubscriptionID string
// Azure API endpoint. If unset, the Azure SDK default will be used.
ManagementURL string
ManagementCertificate []byte
// Azure Storage API endpoint suffix. If unset, the Azure SDK default will be used.
StorageEndpointSuffix string
}
A version of the Options struct from platform/api/azure that only contains the ASM values. Otherwise there's a cyclical depdendence because platform/api/azure has to import auth to have access to the ReadAzureProfile function.