Documentation ¶
Index ¶
- Constants
- func ToInternal(oc *OpenShiftManagedCluster, old *api.OpenShiftManagedCluster) (*api.OpenShiftManagedCluster, error)
- type AADIdentityProvider
- type AgentPoolProfile
- type AgentPoolProfileRole
- type AuthProfile
- type Certificate
- type CertificateChain
- type CertificateConfig
- type ComponentLogLevel
- type Config
- type IdentityProvider
- type ImageConfig
- type MasterPoolProfile
- type MonitorProfile
- type NetworkProfile
- type OSType
- type OpenShiftManagedCluster
- type Properties
- type ProvisioningState
- type ResourcePurchasePlan
- type RouterProfile
- type VMSize
Constants ¶
const (
// APIVersion is the version of this API
APIVersion = "admin"
)
Variables ¶
This section is empty.
Functions ¶
func ToInternal ¶
func ToInternal(oc *OpenShiftManagedCluster, old *api.OpenShiftManagedCluster) (*api.OpenShiftManagedCluster, error)
ToInternal converts from a admin.OpenShiftManagedCluster to an internal.OpenShiftManagedCluster. If old is non-nil, it is going to be used as the base for the internal output where the external request is merged on top of.
Types ¶
type AADIdentityProvider ¶
type AADIdentityProvider struct { Kind *string `json:"kind,omitempty"` ClientID *string `json:"clientId,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 Certificate ¶
type Certificate struct {
Cert *x509.Certificate `json:"cert,omitempty"`
}
Certificate is an x509 certificate.
func (Certificate) MarshalJSON ¶
func (c Certificate) MarshalJSON() ([]byte, error)
func (*Certificate) UnmarshalJSON ¶
func (c *Certificate) UnmarshalJSON(b []byte) error
type CertificateChain ¶
type CertificateChain struct {
Certs []*x509.Certificate `json:"certs,omitempty"`
}
func (CertificateChain) MarshalJSON ¶
func (c CertificateChain) MarshalJSON() ([]byte, error)
func (*CertificateChain) UnmarshalJSON ¶
func (c *CertificateChain) UnmarshalJSON(b []byte) error
type CertificateConfig ¶
type CertificateConfig struct { // CAs EtcdCa *Certificate `json:"etcdCa,omitempty"` Ca *Certificate `json:"ca,omitempty"` FrontProxyCa *Certificate `json:"frontProxyCa,omitempty"` ServiceSigningCa *Certificate `json:"serviceSigningCa,omitempty"` ServiceCatalogCa *Certificate `json:"serviceCatalogCa,omitempty"` // etcd certificates EtcdServer *Certificate `json:"etcdServer,omitempty"` EtcdPeer *Certificate `json:"etcdPeer,omitempty"` EtcdClient *Certificate `json:"etcdClient,omitempty"` // control plane certificates MasterServer *Certificate `json:"masterServer,omitempty"` // external web facing certificates must contain // all certificate chain // TODO: Move all certificates to be slice OpenShiftConsole *CertificateChain `json:"openShiftConsole,omitempty"` Admin *Certificate `json:"admin,omitempty"` AggregatorFrontProxy *Certificate `json:"aggregatorFrontProxy,omitempty"` MasterKubeletClient *Certificate `json:"masterKubeletClient,omitempty"` MasterProxyClient *Certificate `json:"masterProxyClient,omitempty"` OpenShiftMaster *Certificate `json:"openShiftMaster,omitempty"` NodeBootstrap *Certificate `json:"nodeBootstrap,omitempty"` SDN *Certificate `json:"sdn,omitempty"` // infra certificates Registry *Certificate `json:"registry,omitempty"` RegistryConsole *Certificate `json:"registryConsole,omitempty"` Router *CertificateChain `json:"router,omitempty"` ServiceCatalogServer *Certificate `json:"serviceCatalogServer,omitempty"` // misc certificates BlackBoxMonitor *Certificate `json:"blackBoxMonitor,omitempty"` // geneva integration certificates GenevaLogging *Certificate `json:"genevaLogging,omitempty"` GenevaMetrics *Certificate `json:"genevaMetrics,omitempty"` // red hat cdn client certificates PackageRepository *Certificate `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"` // configuration of other ARM resources ConfigStorageAccount *string `json:"configStorageAccount,omitempty"` RegistryStorageAccount *string `json:"registryStorageAccount,omitempty"` AzureFileStorageAccount *string `json:"azureFileStorageAccount,omitempty"` Certificates *CertificateConfig `json:"certificates,omitempty"` Images *ImageConfig `json:"images,omitempty"` // misc infra configurables 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"` }
Config holds the cluster admin config structure
func (Config) MarshalJSON ¶
func (*Config) UnmarshalJSON ¶
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"` // 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"` }
ImageConfig contains all images for the pods
type MasterPoolProfile ¶
type MasterPoolProfile struct { Count *int64 `json:"count,omitempty"` VMSize *VMSize `json:"vmSize,omitempty"` SubnetCIDR *string `json:"subnetCidr,omitempty"` }
MasterPoolProfile contains configuration for OpenShift master VMs.
type MonitorProfile ¶
type MonitorProfile struct { Enabled *bool `json:"enabled,omitempty"` WorkspaceResourceID *string `json:"workspaceResourceId,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"` }
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 FromInternal ¶
func FromInternal(cs *api.OpenShiftManagedCluster) *OpenShiftManagedCluster
FromInternal converts from a internal.OpenShiftManagedCluster to an admin.OpenShiftManagedCluster.
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"` // MasterPoolProfile (in): Configuration for OpenShift master VMs. MasterPoolProfile *MasterPoolProfile `json:"masterPoolProfile,omitempty"` // AgentPoolProfiles (in): configuration of OpenShift cluster VMs. AgentPoolProfiles []AgentPoolProfile `json:"agentPoolProfiles,omitempty"` // AuthProfile (in): configures OpenShift authentication AuthProfile *AuthProfile `json:"authProfile,omitempty"` // MonitorProfile configures which log analytics workspace to use. MonitorProfile *MonitorProfile `json:"monitorProfile,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"` }
RouterProfile represents an OpenShift router.
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()