Documentation
¶
Overview ¶
Package api defines the external API for the plugin.
Index ¶
- Constants
- type AADIdentityProvider
- type AgentPoolProfile
- type AgentPoolProfileRole
- type AuthProfile
- type AzProfile
- type CertKeyPair
- type CertKeyPairChain
- type CertProfile
- type CertificateConfig
- type Command
- type ComponentLogLevel
- type Config
- type ContextKey
- type DeployFn
- type GenevaActionListClusterVMs
- type GenevaActionListEtcdBackups
- type GenevaActionPluginVersion
- type GenevaActions
- type IdentityProvider
- type ImageConfig
- type NetworkProfile
- type OSType
- type OpenShiftManagedCluster
- type Plugin
- type PluginError
- type PluginStep
- type Properties
- type ProvisioningState
- type ResourcePurchasePlan
- type RouterProfile
- type ServicePrincipalProfile
- type TestConfig
- type VMSize
Constants ¶
const ( CommandRestartNetworkManager = "RestartNetworkManager" CommandRestartKubelet = "RestartKubelet" )
const (
// APIVersion is the version of this API
APIVersion = "internal"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AADIdentityProvider ¶
type AADIdentityProvider struct {
Kind string `json:"kind,omitempty"`
ClientID string `json:"clientId,omitempty"`
Secret string `json:"secret,omitempty"`
TenantID string `json:"tenantId,omitempty"`
// CustomerAdminGroupID group memberships will get synced into the OpenShift group "osa-customer-admins"
CustomerAdminGroupID *string `json:"customerAdminGroupId,omitempty"`
}
AADIdentityProvider defines Identity provider for MS AAD. It is based on OpenID IdentityProvider.
type AgentPoolProfile ¶
type AgentPoolProfile struct {
Name string `json:"name,omitempty"`
Count int64 `json:"count,omitempty"`
VMSize VMSize `json:"vmSize,omitempty"`
SubnetCIDR string `json:"subnetCidr,omitempty"`
OSType OSType `json:"osType,omitempty"`
Role AgentPoolProfileRole `json:"role,omitempty"`
}
AgentPoolProfile represents configuration of OpenShift cluster VMs.
type AgentPoolProfileRole ¶
type AgentPoolProfileRole string
AgentPoolProfileRole represents the role of the AgentPoolProfile.
const ( // AgentPoolProfileRoleCompute is the compute role. AgentPoolProfileRoleCompute AgentPoolProfileRole = "compute" // AgentPoolProfileRoleInfra is the infra role. AgentPoolProfileRoleInfra AgentPoolProfileRole = "infra" // AgentPoolProfileRoleMaster is the master role. AgentPoolProfileRoleMaster AgentPoolProfileRole = "master" )
type AuthProfile ¶
type AuthProfile struct {
IdentityProviders []IdentityProvider `json:"identityProviders,omitempty"`
}
AuthProfile defines all possible authentication profiles for the OpenShift cluster.
type AzProfile ¶
type AzProfile struct {
TenantID string `json:"tenantId,omitempty"`
SubscriptionID string `json:"subscriptionId,omitempty"`
ResourceGroup string `json:"resourceGroup,omitempty"`
}
AzProfile holds the azure context for where the cluster resides
type CertKeyPair ¶
type CertKeyPair struct {
Key *rsa.PrivateKey `json:"key,omitempty"`
Cert *x509.Certificate `json:"cert,omitempty"`
}
CertKeyPair is an rsa private key and x509 certificate pair.
func (CertKeyPair) MarshalJSON ¶
func (c CertKeyPair) MarshalJSON() ([]byte, error)
func (*CertKeyPair) UnmarshalJSON ¶
func (c *CertKeyPair) UnmarshalJSON(b []byte) error
type CertKeyPairChain ¶
type CertKeyPairChain struct {
Key *rsa.PrivateKey `json:"key,omitempty"`
Certs []*x509.Certificate `json:"certs,omitempty"`
}
CertKeyPairChain is an rsa private key and slice of x509 certificates.
type CertProfile ¶
type CertProfile struct {
// KeyVaultSecretURL (in, optional): the customer secret URL
KeyVaultSecretURL string `json:"keyVaultSecretURL,omitempty"`
}
CertProfile contains the vault location for OpenShift certificates.
type CertificateConfig ¶
type CertificateConfig struct {
// CAs
EtcdCa CertKeyPair `json:"etcdCa,omitempty"`
Ca CertKeyPair `json:"ca,omitempty"`
FrontProxyCa CertKeyPair `json:"frontProxyCa,omitempty"`
ServiceSigningCa CertKeyPair `json:"serviceSigningCa,omitempty"`
ServiceCatalogCa CertKeyPair `json:"serviceCatalogCa,omitempty"`
// etcd certificates
EtcdServer CertKeyPair `json:"etcdServer,omitempty"`
EtcdPeer CertKeyPair `json:"etcdPeer,omitempty"`
EtcdClient CertKeyPair `json:"etcdClient,omitempty"`
// control plane certificates
MasterServer CertKeyPair `json:"masterServer,omitempty"`
OpenShiftConsole CertKeyPairChain `json:"-"`
Admin CertKeyPair `json:"admin,omitempty"`
AggregatorFrontProxy CertKeyPair `json:"aggregatorFrontProxy,omitempty"`
MasterKubeletClient CertKeyPair `json:"masterKubeletClient,omitempty"`
MasterProxyClient CertKeyPair `json:"masterProxyClient,omitempty"`
OpenShiftMaster CertKeyPair `json:"openShiftMaster,omitempty"`
NodeBootstrap CertKeyPair `json:"nodeBootstrap,omitempty"`
SDN CertKeyPair `json:"sdn,omitempty"`
// infra certificates
Registry CertKeyPair `json:"registry,omitempty"`
RegistryConsole CertKeyPair `json:"registryConsole,omitempty"`
Router CertKeyPairChain `json:"-"`
ServiceCatalogServer CertKeyPair `json:"serviceCatalogServer,omitempty"`
// misc certificates
BlackBoxMonitor CertKeyPair `json:"blackBoxMonitor,omitempty"`
// geneva integration certificates
GenevaLogging CertKeyPair `json:"genevaLogging,omitempty"`
GenevaMetrics CertKeyPair `json:"genevaMetrics,omitempty"`
}
CertificateConfig contains all certificate configuration for the cluster.
type ComponentLogLevel ¶
type ComponentLogLevel struct {
APIServer *int `json:"apiServer,omitempty"`
ControllerManager *int `json:"controllerManager,omitempty"`
Node *int `json:"node,omitempty"`
}
ComponentLogLevel represents the log levels for the various components of a cluster
type Config ¶
type Config struct {
// PluginVersion defines release version of the plugin used to build the cluster
PluginVersion string `json:"pluginVersion,omitempty"`
// ComponentLogLevel specifies the log levels for the various openshift components
ComponentLogLevel ComponentLogLevel `json:"componentLogLevel,omitempty"`
// configuration of VMs in ARM template
ImageOffer string `json:"imageOffer,omitempty"`
ImagePublisher string `json:"imagePublisher,omitempty"`
ImageSKU string `json:"imageSku,omitempty"`
ImageVersion string `json:"imageVersion,omitempty"`
// SSH to system nodes allowed IP ranges
SSHSourceAddressPrefixes []string `json:"sshSourceAddressPrefixes,omitempty"`
SSHKey *rsa.PrivateKey `json:"sshKey,omitempty"`
// configuration of other ARM resources
ConfigStorageAccount string `json:"configStorageAccount,omitempty"`
ConfigStorageAccountKey string `json:"-"`
RegistryStorageAccount string `json:"registryStorageAccount,omitempty"`
RegistryStorageAccountKey string `json:"-"`
AzureFileStorageAccount string `json:"azureFileStorageAccount,omitempty"`
Certificates CertificateConfig `json:"certificates,omitempty"`
Images ImageConfig `json:"images,omitempty"`
// kubeconfigs
AdminKubeconfig *v1.Config `json:"adminKubeconfig,omitempty"`
MasterKubeconfig *v1.Config `json:"masterKubeconfig,omitempty"`
NodeBootstrapKubeconfig *v1.Config `json:"nodeBootstrapKubeconfig,omitempty"`
SDNKubeconfig *v1.Config `json:"sdnKubeconfig,omitempty"`
BlackBoxMonitorKubeconfig *v1.Config `json:"blackBoxMonitorKubeconfig,omitempty"`
// misc control plane configurables
ServiceAccountKey *rsa.PrivateKey `json:"serviceAccountKey,omitempty"`
SessionSecretAuth []byte `json:"sessionSecretAuth,omitempty"`
SessionSecretEnc []byte `json:"sessionSecretEnc,omitempty"`
DeprecatedRunningUnderTest bool `json:"runningUnderTest,omitempty"` // TODO: remove once v3 is dead
// misc infra configurables
RegistryHTTPSecret []byte `json:"registryHttpSecret,omitempty"`
PrometheusProxySessionSecret []byte `json:"prometheusProxySessionSecret,omitempty"`
AlertManagerProxySessionSecret []byte `json:"alertManagerProxySessionSecret,omitempty"`
AlertsProxySessionSecret []byte `json:"alertsProxySessionSecret,omitempty"`
RegistryConsoleOAuthSecret string `json:"registryConsoleOAuthSecret,omitempty"`
ConsoleOAuthSecret string `json:"consoleOAuthSecret,omitempty"`
RouterStatsPassword string `json:"routerStatsPassword,omitempty"`
EtcdMetricsPassword string `json:"etcdMetricsPassword,omitempty"`
EtcdMetricsUsername string `json:"etcdMetricsUsername,omitempty"`
ServiceCatalogClusterID uuid.UUID `json:"serviceCatalogClusterId,omitempty"`
// Geneva Metrics System (MDM) sector used for logging
GenevaLoggingSector string `json:"genevaLoggingSector,omitempty"`
// Geneva Metrics System (MDM) logging account
GenevaLoggingAccount string `json:"genevaLoggingAccount,omitempty"`
// Geneva Metrics System (MDM) logging namespace
GenevaLoggingNamespace string `json:"genevaLoggingNamespace,omitempty"`
// Geneva Metrics System (MDM) logging control plane parameters
GenevaLoggingControlPlaneAccount string `json:"genevaLoggingControlPlaneAccount,omitempty"`
GenevaLoggingControlPlaneEnvironment string `json:"genevaLoggingControlPlaneEnvironment,omitempty"`
GenevaLoggingControlPlaneRegion string `json:"genevaLoggingControlPlaneRegion,omitempty"`
// Geneva Metrics System (MDM) account name for metrics
GenevaMetricsAccount string `json:"genevaMetricsAccount,omitempty"`
// Geneva Metrics System (MDM) endpoint for metrics
GenevaMetricsEndpoint string `json:"genevaMetricsEndpoint,omitempty"`
MasterStartupSASURI string `json:"-"`
WorkerStartupSASURI string `json:"-"`
}
Config holds the cluster config structure
func (Config) MarshalJSON ¶
func (*Config) UnmarshalJSON ¶
type ContextKey ¶
type ContextKey string
ContextKey is a type for context property bag payload keys
const ( ContextKeyClientAuthorizer ContextKey = "ClientAuthorizer" ContextKeyVaultClientAuthorizer ContextKey = "VaultClientAuthorizer" ContextAcceptLanguages ContextKey = "AcceptLanguages" )
type DeployFn ¶
DeployFn makes it possible to plug in different logic to the deploy. The implementor must initiate a deployment of the given template using mode resources.Incremental and wait for it to complete.
type GenevaActionListClusterVMs ¶
type GenevaActionListClusterVMs struct {
VMs *[]string `json:"vms,omitempty"`
}
GenevaActionListClusterVMs is the struct returned by the ListClusterVMs Geneva action API
type GenevaActionListEtcdBackups ¶
type GenevaActionListEtcdBackups struct {
Name string `json:"name,omitempty"`
LastModified time.Time `json:"lastModified,omitempty"`
}
GenevaActionListEtcdBackups is returned by the ListEtcdBackups Geneva action API
type GenevaActionPluginVersion ¶
type GenevaActionPluginVersion struct {
PluginVersion *string `json:"pluginVersion,omitempty"`
}
GenevaActionPluginVersion is the struct returned by the GetPluginVersion Geneva action API
type GenevaActions ¶
type GenevaActions interface {
// ListEtcdBackups lists available etcd backup
ListEtcdBackups(ctx context.Context, cs *OpenShiftManagedCluster) ([]GenevaActionListEtcdBackups, error)
// RecoverEtcdCluster recovers the cluster's etcd using the backup specified in the pluginConfig
RecoverEtcdCluster(ctx context.Context, cs *OpenShiftManagedCluster, deployer DeployFn, backupBlob string) *PluginError
// RotateClusterSecrets rotates the secrets in a cluster's config blob and then updates the cluster
RotateClusterSecrets(ctx context.Context, cs *OpenShiftManagedCluster, deployer DeployFn) *PluginError
// GetControlPlanePods fetches a consolidated list of the control plane pods in the cluster
GetControlPlanePods(ctx context.Context, oc *OpenShiftManagedCluster) ([]byte, error)
// ForceUpdate forces rotates all vms in a cluster
ForceUpdate(ctx context.Context, cs *OpenShiftManagedCluster, deployer DeployFn) *PluginError
// ListClusterVMs returns the hostnames of all vms in a cluster
ListClusterVMs(ctx context.Context, cs *OpenShiftManagedCluster) (*GenevaActionListClusterVMs, error)
// Reimage reimages a virtual machine in the cluster
Reimage(ctx context.Context, oc *OpenShiftManagedCluster, hostname string) error
// BackupEtcdCluster backs up the cluster's etcd
BackupEtcdCluster(ctx context.Context, cs *OpenShiftManagedCluster, backupName string) error
// RunCommand runs a predefined command on a virtual machine in the cluster
RunCommand(ctx context.Context, cs *OpenShiftManagedCluster, hostname string, command Command) error
// GetPluginVersion fetches the RP plugin version
GetPluginVersion(ctx context.Context) *GenevaActionPluginVersion
}
GenevaActions is the interface for all geneva actions
type IdentityProvider ¶
type IdentityProvider struct {
Name string `json:"name,omitempty"`
Provider interface{} `json:"provider,omitempty"`
}
IdentityProvider is heavily cut down equivalent to IdentityProvider in the upstream.
func (*IdentityProvider) UnmarshalJSON ¶
func (ip *IdentityProvider) UnmarshalJSON(b []byte) error
type ImageConfig ¶
type ImageConfig struct {
// Format of the pull spec that is going to be
// used in the cluster.
Format string `json:"format,omitempty"`
ClusterMonitoringOperator string `json:"clusterMonitoringOperator,omitempty"`
AzureControllers string `json:"azureControllers,omitempty"`
PrometheusOperator string `json:"prometheusOperator,omitempty"`
Prometheus string `json:"prometheus,omitempty"`
PrometheusConfigReloader string `json:"prometheusConfigReloader,omitempty"`
ConfigReloader string `json:"configReloader,omitempty"`
AlertManager string `json:"alertManager,omitempty"`
NodeExporter string `json:"nodeExporter,omitempty"`
Grafana string `json:"grafana,omitempty"`
KubeStateMetrics string `json:"kubeStateMetrics,omitempty"`
KubeRbacProxy string `json:"kubeRbacProxy,omitempty"`
OAuthProxy string `json:"oAuthProxy,omitempty"`
MasterEtcd string `json:"masterEtcd,omitempty"`
ControlPlane string `json:"controlPlane,omitempty"`
Node string `json:"node,omitempty"`
ServiceCatalog string `json:"serviceCatalog,omitempty"`
Sync string `json:"sync,omitempty"`
Startup string `json:"startup,omitempty"`
TemplateServiceBroker string `json:"templateServiceBroker,omitempty"`
TLSProxy string `json:"tlsProxy,omitempty"`
Registry string `json:"registry,omitempty"`
Router string `json:"router,omitempty"`
RegistryConsole string `json:"registryConsole,omitempty"`
AnsibleServiceBroker string `json:"ansibleServiceBroker,omitempty"`
WebConsole string `json:"webConsole,omitempty"`
Console string `json:"console,omitempty"`
EtcdBackup string `json:"etcdBackup,omitempty"`
Httpd string `json:"httpd,omitempty"`
Canary string `json:"canary,omitempty"`
// GenevaImagePullSecret defines secret used to pull private Azure images
GenevaImagePullSecret []byte `json:"genevaImagePullSecret,omitempty"`
// Geneva integration images
GenevaLogging string `json:"genevaLogging,omitempty"`
GenevaTDAgent string `json:"genevaTDAgent,omitempty"`
GenevaStatsd string `json:"genevaStatsd,omitempty"`
MetricsBridge string `json:"metricsBridge,omitempty"`
// ImagePullSecret defines the secret used to pull from the private registries, used system-wide
ImagePullSecret []byte `json:"imagePullSecret,omitempty"`
}
ImageConfig contains all images for the pods
type NetworkProfile ¶
type NetworkProfile struct {
// VnetCIDR (in): the CIDR with which the OSA cluster's Vnet is configured
VnetCIDR string `json:"vnetCidr,omitempty"`
// VnetID (out): the ID of the Vnet created for the OSA cluster
VnetID string `json:"vnetId,omitempty"`
// PeerVnetID (in, optional): ID of a Vnet with which the OSA cluster Vnet should be peered.
// If specified, this should match
// `^/subscriptions/[^/]+
// /resourceGroups/[^/]+
// /providers/Microsoft.Network
// /virtualNetworks/[^/]+$`
PeerVnetID *string `json:"peerVnetId,omitempty"`
}
NetworkProfile contains configuration for OpenShift networking.
type OpenShiftManagedCluster ¶
type OpenShiftManagedCluster struct {
Plan *ResourcePurchasePlan `json:"plan,omitempty"`
Properties Properties `json:"properties,omitempty"`
ID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Type string `json:"type,omitempty"`
Location string `json:"location,omitempty"`
Tags map[string]string `json:"tags"`
Config Config `json:"config,omitempty"`
}
OpenShiftManagedCluster complies with the ARM model of resource definition in a JSON template.
func GetInternalMockCluster ¶
func GetInternalMockCluster() *OpenShiftManagedCluster
GetInternalMockCluster returns mock object of the internal API model
func (*OpenShiftManagedCluster) DeepCopy ¶
func (in *OpenShiftManagedCluster) DeepCopy() (out *OpenShiftManagedCluster)
type Plugin ¶
type Plugin interface {
// Validate exists (a) to be able to place validation logic in a
// single place in the event of multiple external API versions, and (b) to
// be able to compare a new API manifest against a pre-existing API manifest
// (for update, upgrade, etc.)
// externalOnly indicates that fields set by the RP (FQDN and routerProfile.FQDN)
// should be excluded.
Validate(ctx context.Context, new, old *OpenShiftManagedCluster, externalOnly bool) []error
// ValidateAdmin is used for validating admin API requests.
ValidateAdmin(ctx context.Context, new, old *OpenShiftManagedCluster) []error
// ValidatePluginTemplate validates external config request
ValidatePluginTemplate(ctx context.Context) []error
// GenerateConfig ensures all the necessary in-cluster config is generated
// for an Openshift cluster.
GenerateConfig(ctx context.Context, cs *OpenShiftManagedCluster, isUpdate bool) error
// CreateOrUpdate either deploys or runs the update depending on the isUpdate argument
// this will call the deployer.
CreateOrUpdate(ctx context.Context, cs *OpenShiftManagedCluster, isUpdate bool, deployer DeployFn) *PluginError
GenevaActions
}
Plugin is the main interface to openshift-azure
type PluginError ¶
type PluginError struct {
Err error
Step PluginStep
}
PluginError error returned by CreateOrUpdate to specify the step that failed.
func (*PluginError) Error ¶
func (pe *PluginError) Error() string
type PluginStep ¶
type PluginStep string
const ( PluginStepDeploy PluginStep = "Deploy" PluginStepInitializeUpdateBlob PluginStep = "InitializeUpdateBlob" PluginStepResetUpdateBlob PluginStep = "ResetUpdateBlob" PluginStepEtcdListBackups PluginStep = "EtcdListBackups" PluginStepClientCreation PluginStep = "ClientCreation" PluginStepEnrichCertificatesFromVault PluginStep = "EnrichCertificatesFromVault" PluginStepEnrichStorageAccountKeys PluginStep = "EnrichStorageAccountKeys" PluginStepScaleSetDelete PluginStep = "ScaleSetDelete" PluginStepWriteStartupBlobs PluginStep = "WriteStartupBlobs" PluginStepCreateOrUpdateConfigStorageAccount PluginStep = "CreateOrUpdateConfigStorageAccount" PluginStepGenerateARM PluginStep = "GenerateARM" PluginStepCreateSyncPod PluginStep = "CreateSyncPod" PluginStepCreateSyncPodWaitForReady PluginStep = "CreateSyncPodWaitForReady" PluginStepWaitForWaitForOpenShiftAPI PluginStep = "WaitForOpenShiftAPI" PluginStepWaitForNodes PluginStep = "WaitForNodes" PluginStepWaitForReadySyncPod PluginStep = "WaitForReadySyncPod" PluginStepWaitForConsoleHealth PluginStep = "WaitForConsoleHealth" PluginStepWaitForInfraDaemonSets PluginStep = "WaitForInfraDaemonSets" PluginStepWaitForInfraStatefulSets PluginStep = "WaitForInfraStatefulSets" PluginStepWaitForInfraDeployments PluginStep = "WaitForInfraDeployments" PluginStepUpdateMasterAgentPoolHashSyncPod PluginStep = "UpdateMasterAgentPoolHashSyncPod" PluginStepUpdateMasterAgentPoolHashScaleSet PluginStep = "UpdateMasterAgentPoolHashScaleSet" PluginStepUpdateMasterAgentPoolListVMs PluginStep = "UpdateMasterAgentPoolListVMs" PluginStepUpdateMasterAgentPoolReadBlob PluginStep = "UpdateMasterAgentPoolReadBlob" PluginStepUpdateMasterAgentPoolDrain PluginStep = "UpdateMasterAgentPoolDrain" PluginStepUpdateMasterAgentPoolDeallocate PluginStep = "UpdateMasterAgentPoolDeallocate" PluginStepUpdateMasterAgentPoolUpdateVMs PluginStep = "UpdateMasterAgentPoolUpdateVMs" PluginStepUpdateMasterAgentPoolReimage PluginStep = "UpdateMasterAgentPoolReimage" PluginStepUpdateMasterAgentPoolStart PluginStep = "UpdateMasterAgentPoolStart" PluginStepUpdateMasterAgentPoolWaitForReady PluginStep = "UpdateMasterAgentPoolWaitForReady" PluginStepUpdateMasterAgentPoolUpdateBlob PluginStep = "UpdateMasterAgentPoolUpdateBlob" PluginStepUpdateWorkerAgentPoolHashScaleSet PluginStep = "UpdateWorkerAgentPoolHashScaleSet" PluginStepUpdateWorkerAgentPoolListVMs PluginStep = "UpdateWorkerAgentPoolListVMs" PluginStepUpdateWorkerAgentPoolListScaleSets PluginStep = "UpdateWorkerAgentPoolListScaleSets" PluginStepUpdateWorkerAgentPoolReadBlob PluginStep = "UpdateWorkerAgentPoolReadBlob" PluginStepUpdateWorkerAgentPoolDrain PluginStep = "UpdateWorkerAgentPoolDrain" PluginStepUpdateWorkerAgentPoolCreateScaleSet PluginStep = "UpdateWorkerAgentPoolCreateScaleSet" PluginStepUpdateWorkerAgentPoolUpdateScaleSet PluginStep = "UpdateWorkerAgentPoolUpdateScaleSet" PluginStepUpdateWorkerAgentPoolDeleteScaleSet PluginStep = "UpdateWorkerAgentPoolDeleteScaleSet" PluginStepUpdateWorkerAgentPoolWaitForReady PluginStep = "UpdateWorkerAgentPoolWaitForReady" PluginStepUpdateWorkerAgentPoolUpdateBlob PluginStep = "UpdateWorkerAgentPoolUpdateBlob" PluginStepUpdateWorkerAgentPoolDeleteVM PluginStep = "UpdateWorkerAgentPoolDeleteVM" PluginStepUpdateSyncPod PluginStep = "UpdateSyncPod" PluginStepInvalidateClusterSecrets PluginStep = "InvalidateClusterSecrets" PluginStepRegenerateClusterSecrets PluginStep = "RegenerateClusterSecrets" )
type Properties ¶
type Properties struct {
// ProvisioningState (out): current state of the OSA resource.
ProvisioningState ProvisioningState `json:"provisioningState,omitempty"`
// OpenShiftVersion (in): OpenShift version to be created/updated, e.g.
// `v3.11`.
OpenShiftVersion string `json:"openShiftVersion,omitempty"`
// ClusterVersion (out): RP version at which cluster was last
// created/updated
ClusterVersion string `json:"clusterVersion,omitempty"`
// PublicHostname (out): public hostname of OpenShift API server.
PublicHostname string `json:"publicHostname,omitempty"`
// FQDN (out): Auto-allocated internal FQDN for OpenShift API server.
FQDN string `json:"fqdn,omitempty"`
// NetworkProfile (in): Configuration for OpenShift networking.
NetworkProfile NetworkProfile `json:"networkProfile,omitempty"`
// RouterProfiles (in,optional/out): Configuration for OpenShift router(s).
RouterProfiles []RouterProfile `json:"routerProfiles,omitempty"`
// AgentPoolProfiles (in): configuration of OpenShift cluster VMs.
AgentPoolProfiles []AgentPoolProfile `json:"agentPoolProfiles,omitempty"`
// AuthProfile (in): configures OpenShift authentication
AuthProfile AuthProfile `json:"authProfile,omitempty"`
// MasterServicePrincipalProfile service principle used on the masters
MasterServicePrincipalProfile ServicePrincipalProfile `json:"masterServicePrincipalProfile,omitempty"`
// WorkerServicePrincipalProfile service principle used on the nodes
WorkerServicePrincipalProfile ServicePrincipalProfile `json:"workerServicePrincipalProfile,omitempty"`
AzProfile AzProfile `json:"azProfile,omitempty"`
// APICertProfile (in, optional): configures OpenShift API certificate
APICertProfile CertProfile `json:"apiCertProfile,omitempty"`
}
Properties represents the cluster definition.
type ProvisioningState ¶
type ProvisioningState string
ProvisioningState represents the current state of the OSA resource.
const ( // Creating means the OSA resource is being created. Creating ProvisioningState = "Creating" // Updating means the existing OSA resource is being updated. Updating ProvisioningState = "Updating" // AdminUpdating means the existing OSA resource is being updated with admin privileges. AdminUpdating ProvisioningState = "AdminUpdating" // Failed means the OSA resource is in failed state. Failed ProvisioningState = "Failed" // Succeeded means the last create/update succeeded. Succeeded ProvisioningState = "Succeeded" // Deleting means the OSA resource is being deleted. Deleting ProvisioningState = "Deleting" // Migrating means the OSA resource is being migrated from one subscription // or resource group to another. Migrating ProvisioningState = "Migrating" // Upgrading means the existing OSA resource is being upgraded. Upgrading ProvisioningState = "Upgrading" )
type ResourcePurchasePlan ¶
type ResourcePurchasePlan struct {
Name *string `json:"name,omitempty"`
Product *string `json:"product,omitempty"`
PromotionCode *string `json:"promotionCode,omitempty"`
Publisher *string `json:"publisher,omitempty"`
}
ResourcePurchasePlan defines the resource plan as required by ARM for billing purposes.
type RouterProfile ¶
type RouterProfile struct {
Name string `json:"name,omitempty"`
// PublicSubdomain (out): DNS subdomain for OpenShift router. The OpenShift
// master is configured with the PublicSubdomain of the "default"
// RouterProfile.
PublicSubdomain string `json:"publicSubdomain,omitempty"`
// FQDN (out): Auto-allocated internal FQDN for the OpenShift router.
FQDN string `json:"fqdn,omitempty"`
// RouterCertProfile (in, optional): configures OpenShift Router certificate
RouterCertProfile CertProfile `json:"routerCertProfile,omitempty"`
}
RouterProfile represents an OpenShift router.
type ServicePrincipalProfile ¶
type ServicePrincipalProfile struct {
ClientID string `json:"clientId,omitempty"`
Secret string `json:"secret,omitempty"`
}
ServicePrincipalProfile contains the client and secret used by the cluster for Azure Resource CRUD.
type TestConfig ¶
type TestConfig struct {
RunningUnderTest bool
DebugHashFunctions bool
ImageResourceGroup string
ImageResourceName string
ArtifactDir string
}
TestConfig holds all testing variables. It should be the zero value in production.
type VMSize ¶
type VMSize string
VMSize represents supported VMSizes
const ( // General purpose VMs StandardD2sV3 VMSize = "Standard_D2s_v3" StandardD4sV3 VMSize = "Standard_D4s_v3" StandardD8sV3 VMSize = "Standard_D8s_v3" StandardD16sV3 VMSize = "Standard_D16s_v3" StandardD32sV3 VMSize = "Standard_D32s_v3" // Memory optimized VMs StandardE4sV3 VMSize = "Standard_E4s_v3" StandardE8sV3 VMSize = "Standard_E8s_v3" StandardE16sV3 VMSize = "Standard_E16s_v3" StandardE32sV3 VMSize = "Standard_E32s_v3" // Compute optimized VMs StandardF8sV2 VMSize = "Standard_F8s_v2" StandardF16sV2 VMSize = "Standard_F16s_v2" StandardF32sV2 VMSize = "Standard_F32s_v2" )
VMSizes. Keep in sync with MaxDataDisksPerVM()