Documentation
¶
Index ¶
- Constants
- func Environment() string
- func IsCanary() bool
- func IsDevelopment() bool
- func IsDogfood() bool
- func IsProduction() bool
- func IsSelfHosted() bool
- func WithContext(ctx context.Context, cfg *ProviderConfig) context.Context
- type AuthentificationType
- type BicepOptions
- type EnvironmentOptions
- type EnvironmentType
- type HostOptions
- type IdentityOptions
- type ProviderConfig
- type ServerOptions
- type TerraformOptions
- type WorkerServerOptions
Constants ¶
const ( RadiusDevEnvironment = "dev" RadiusSelfHostedDevEnvironment = "self-hosted-dev" RadiusSelfHostedEnvironment = "self-hosted" RadiusDogfood = "df-westus3" RadiusCanaryEastUS2EUAP = "prod-eastus2euap" RadiusCanaryCentralUS2EUAP = "prod-centralus2euap" RadiusProdPrefix = "prod" )
Variables ¶
This section is empty.
Functions ¶
func IsCanary ¶
func IsCanary() bool
IsCanary returns true if the current environment is canary region.
func IsDevelopment ¶
func IsDevelopment() bool
IsDevelopment returns true if the current environment is development environment.
func IsDogfood ¶
func IsDogfood() bool
IsDogfood returns true if the current environment is dogfood environment.
func IsProduction ¶
func IsProduction() bool
IsProduction returns true if the current environment is production, but not canary.
func IsSelfHosted ¶
func IsSelfHosted() bool
IsSelfHosted returns true if the current environment is self-hosted environment.
func WithContext ¶
func WithContext(ctx context.Context, cfg *ProviderConfig) context.Context
WithContext injects ProviderConfig into the given http context.
Types ¶
type AuthentificationType ¶
type AuthentificationType string
const ( ClientCertificateAuthType AuthentificationType = "ClientCertificate" AADPoPAuthType AuthentificationType = "PoP" )
type BicepOptions ¶ added in v0.26.0
type BicepOptions struct {
// DeleteRetryCount is the number of times to retry the request.
DeleteRetryCount string `yaml:"deleteRetryCount,omitempty"`
// DeleteRetryDelaySeconds is the delay between retries in seconds.
DeleteRetryDelaySeconds string `yaml:"deleteRetryDelaySeconds,omitempty"`
}
BicepOptions includes options required for bicep execution.
type EnvironmentOptions ¶
type EnvironmentOptions struct {
Name EnvironmentType `yaml:"name"`
RoleLocation string `yaml:"roleLocation"`
}
EnvironmentOptions represents the environment.
type EnvironmentType ¶
type EnvironmentType string
const ( Development EnvironmentType = "Dev" SelfHosted EnvironmentType = "Self-Hosted" AzureDogfood EnvironmentType = "Dogfood" AzureCloud EnvironmentType = "AzureCloud" AzureChinaCloud EnvironmentType = "AzureChinaCloud" AzureUSGovernment EnvironmentType = "AzureUSGovernment" AzureGermanCloud EnvironmentType = "AzureGermanCloud" )
type HostOptions ¶
type HostOptions struct {
// Config is the bootstrap configuration loaded from config file.
Config *ProviderConfig
// Arm is the ARM authorization configuration.
Arm *armauth.ArmConfig
// K8sConfig is the Kubernetes configuration for communicating with the local
// cluster.
K8sConfig *rest.Config
// UCPConnection is a connection to the UCP endpoint.
UCPConnection sdk.Connection
}
HostOptions defines all of the settings that our RP's execution environment provides.
func NewHostOptionsFromEnvironment ¶
func NewHostOptionsFromEnvironment(configPath string) (HostOptions, error)
NewHostOptionsFromEnvironment loads configuration from a given path, retrieves Kubernetes and ARM configurations, and returns a HostOptions object containing the configurations, or an error if any of the operations fail.
type IdentityOptions ¶
type IdentityOptions struct {
ClientID string `yaml:"clientId"`
Instance string `yaml:"instance"`
TenantID string `yaml:"tenantId"`
ArmEndpoint string `yaml:"armEndpoint"`
Audience string `yaml:"audience"`
PemCertPath string `yaml:"pemCertPath"`
}
IdentityOptions includes authentication options to issue JWT from Azure AD.
type ProviderConfig ¶
type ProviderConfig struct {
Env EnvironmentOptions `yaml:"environment"`
Identity IdentityOptions `yaml:"identity"`
StorageProvider dataprovider.StorageProviderOptions `yaml:"storageProvider"`
SecretProvider sprovider.SecretProviderOptions `yaml:"secretProvider"`
QueueProvider qprovider.QueueProviderOptions `yaml:"queueProvider"`
Server *ServerOptions `yaml:"server,omitempty"`
WorkerServer *WorkerServerOptions `yaml:"workerServer,omitempty"`
MetricsProvider metricsprovider.MetricsProviderOptions `yaml:"metricsProvider"`
TracerProvider trace.Options `yaml:"tracerProvider"`
ProfilerProvider profilerprovider.ProfilerProviderOptions `yaml:"profilerProvider"`
UCP config.UCPOptions `yaml:"ucp"`
Logging ucplog.LoggingOptions `yaml:"logging"`
Bicep BicepOptions `yaml:"bicep,omitempty"`
Terraform TerraformOptions `yaml:"terraform,omitempty"`
// FeatureFlags includes the list of feature flags.
FeatureFlags []string `yaml:"featureFlags"`
}
ProviderConfig includes the resource provider configuration.
func FromContext ¶
func FromContext(ctx context.Context) *ProviderConfig
FromContext extracts ProviderConfig from http context.
type ServerOptions ¶
type ServerOptions struct {
Host string `yaml:"host"`
Port int `yaml:"port"`
PathBase string `yaml:"pathBase,omitempty"`
AuthType AuthentificationType `yaml:"authType,omitempty"`
// ArmMetadataEndpoints provides the client certification to authenticate between ARM and RP.
// https://armwiki.azurewebsites.net/authorization/AuthenticateBetweenARMandRP.html
ArmMetadataEndpoint string `yaml:"armMetadataEndpoint,omitempty"`
// EnableAuth when set the arm client authetication will be performed
EnableArmAuth bool `yaml:"enableArmAuth,omitempty"`
}
ServerOptions includes http server bootstrap options.
type TerraformOptions ¶
type TerraformOptions struct {
// Path is the path to the directory mounted to the container where terraform can be installed and executed.
Path string `yaml:"path,omitempty"`
}
TerraformOptions includes options required for terraform execution.
type WorkerServerOptions ¶
type WorkerServerOptions struct {
// Port is the localhost port which provides the system-level info, such as healthprobe and metric port
Port *int32 `yaml:"port,omitempty"`
// MaxOperationConcurrency is the maximum concurrency to process async request operation.
MaxOperationConcurrency *int `yaml:"maxOperationConcurrency,omitempty"`
// MaxOperationRetryCount is the maximum retry count to process async request operation.
MaxOperationRetryCount *int `yaml:"maxOperationRetryCount,omitempty"`
}
WorkerServerOptions includes the worker server options.