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 DeployFn
- type GenevaActionListClusterVMs
- type GenevaActionListEtcdBackups
- type GenevaActionPluginVersion
- type GenevaActions
- type IdentityProvider
- type ImageConfig
- type MonitorProfile
- 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 ( ContextKeyClientAuthorizer contextKey = "ClientAuthorizer" ContextKeyVaultClientAuthorizer contextKey = "VaultClientAuthorizer" ContextAcceptLanguages contextKey = "AcceptLanguages" )
const ( CommandRestartNetworkManager = "RestartNetworkManager" CommandRestartKubelet = "RestartKubelet" CommandRestartDocker = "RestartDocker" )
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"` // red hat cdn client certificates PackageRepository CertKeyPair `json:"packageRepository,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 { // SecurityPatchPackages defines a list of rpm packages that fix security issues SecurityPatchPackages []string `json:"securityPatchPackages,omitempty"` // 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"` // 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 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. DeployFn returns a string with an IP address OR FQDN for the API server.
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 // RotateClusterCertificates rotates the certificates in a cluster's config blob and then updates the cluster RotateClusterCertificates(ctx context.Context, cs *OpenShiftManagedCluster, deployer DeployFn) *PluginError // RotateClusterCertificatesAndSecrets rotates the certificates and secrets in a cluster's config blob and then updates the cluster RotateClusterCertificatesAndSecrets(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"` LogAnalyticsAgent string `json:"logAnalyticsAgent,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 MonitorProfile ¶
type MonitorProfile struct { Enabled bool `json:"enabled"` WorkspaceResourceID string `json:"workspaceResourceId,omitempty"` WorkspaceID string `json:"workspaceId,omitempty"` WorkspaceKey string `json:"workspaceKey,omitempty"` }
MonitorProfile configuration for Azure Monitor log analytics.
type NetworkProfile ¶
type NetworkProfile struct { // VnetCIDR (in): the CIDR with which the OSA cluster's Vnet is configured VnetCIDR string `json:"vnetCidr,omitempty"` // ManagementSubnetCIDR (in): the CIDR for OSA management subnet ManagementSubnetCIDR *string `json:"managementSubnetCidr,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"` // PrivateEndpoint contains IP or DNS of PrivateEndpoint // RP sets the endpoint that the plugin should dial before // calling any plugin functions. This value is used based on // cluster type - Private/Public. Depending on cluster type // different endpoint will be used to reach API server - // PrivateEndpoint or FQDN. PrivateEndpoint *string `json:"-"` // ManagementSubnetID is ID of the management subnet. // Plugin ensures these are set to valid values // It be set during Generate plugin phase as they used by // the RP in the deployment callback function ManagementSubnetID string `json:"-"` // InternalLoadBalancerFrontendIPID is ID of the internal loadbalancer. // Plugin ensures these are set to valid values // It be set during Generate plugin phase as they used by // the RP in the deployment callback function InternalLoadBalancerFrontendIPID string `json:"-"` }
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" PluginStepEtcdBackup PluginStep = "EtcdBackup" 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" PluginStepUpdateMasterAgentPoolHashScaleSet PluginStep = "UpdateMasterAgentPoolHashScaleSet" 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" PluginStepInvalidateClusterCertificates PluginStep = "InvalidateClusterCertificates" 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"` // PrivateAPIServer (internal only): Specifies if API server is public or private PrivateAPIServer bool `json:"privateApiServer,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"` // MonitorProfile configures which log analytics workspace to use. MonitorProfile MonitorProfile `json:"monitorProfile,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()