Documentation
¶
Index ¶
- Constants
- Variables
- func ApplyRequestBody(requestMethod string, body []byte, v any) error
- func CreateTestSubscription(registeredFeatures ...string) *arm.Subscription
- func DeleteNilsFromPtrSlice[S ~[]*E, E any](s S) S
- func MergeStringPtrMap(src map[string]*string, dst *map[string]string)
- func Must[T any](v T, err error) T
- func NewTestLogger() *slog.Logger
- func NewTestUserAssignedIdentity(name string) string
- func NonNilSliceValues[E any](a []*E) iter.Seq2[int, *E]
- func NonNilValues[K any, V any](seq iter.Seq2[K, *V]) iter.Seq2[K, *V]
- func Ptr[T any](p T) *T
- func PtrOrNil[T any](p T) *T
- func StringMapToStringPtrMap(m map[string]string) map[string]*string
- func StringPtrMapToStringMap(m map[string]*string) map[string]string
- func StringPtrSliceToStringSlice(s []*string) []string
- func StringSliceToStringPtrSlice(s []string) []*string
- func TrimStringSlice(s []string) []string
- type APIRegistry
- type ClusterAutoscalingProfile
- type ClusterImageRegistryProfile
- type ClusterImageRegistryProfileState
- type Condition
- type ConditionStatus
- type ConditionStatusType
- type Controller
- type ControllerStatus
- type CosmosData
- type CosmosPersistable
- type CustomerAPIProfile
- type CustomerDNSProfile
- type CustomerManagedEncryptionProfile
- type CustomerManagedEncryptionType
- type CustomerPlatformProfile
- type DiskStorageAccountType
- type Effect
- type EtcdDataEncryptionKeyManagementModeType
- type EtcdDataEncryptionProfile
- type EtcdProfile
- type ExternalAuthClaimProfile
- type ExternalAuthClientComponentProfile
- type ExternalAuthClientProfile
- type ExternalAuthClientType
- type ExternalAuthCondition
- type ExternalAuthConditionType
- type ExternalTestResource
- type GroupClaimProfile
- type HCPOpenShiftCluster
- type HCPOpenShiftClusterAdminCredential
- type HCPOpenShiftClusterCustomerProperties
- type HCPOpenShiftClusterExternalAuth
- func ExternalAuthTestCase(t *testing.T, tweaks *HCPOpenShiftClusterExternalAuth) *HCPOpenShiftClusterExternalAuth
- func MinimumValidExternalAuthTestCase() *HCPOpenShiftClusterExternalAuth
- func NewDefaultHCPOpenShiftClusterExternalAuth(resourceID *azcorearm.ResourceID) *HCPOpenShiftClusterExternalAuth
- type HCPOpenShiftClusterExternalAuthProperties
- type HCPOpenShiftClusterExternalAuthServiceProviderProperties
- type HCPOpenShiftClusterNodePool
- type HCPOpenShiftClusterNodePoolProperties
- type HCPOpenShiftClusterNodePoolServiceProviderProperties
- type HCPOpenShiftClusterServiceProviderProperties
- type HCPOpenShiftVersion
- type HCPOpenShiftVersionProperties
- type InternalID
- type InternalTestResource
- type KmsEncryptionProfile
- type KmsKey
- type NetworkProfile
- type NetworkType
- type NodePoolAutoScaling
- type NodePoolPlatformProfile
- type NodePoolVersionProfile
- type OSDiskProfile
- type Operation
- type OperationRequest
- type OperatorsAuthenticationProfile
- type OutboundType
- type ServiceProviderAPIProfile
- type ServiceProviderConsoleProfile
- type ServiceProviderDNSProfile
- type ServiceProviderPlatformProfile
- type Taint
- type TokenClaimMappingsProfile
- type TokenClaimValidationRule
- type TokenIssuerProfile
- type TokenRequiredClaim
- type TokenValidationRuleType
- type UserAssignedIdentitiesProfile
- type UsernameClaimPrefixPolicy
- type UsernameClaimProfile
- type ValidationPathMapperFunc
- type Version
- type VersionProfile
- type VersionedCreatableResource
- type VersionedHCPOpenShiftCluster
- type VersionedHCPOpenShiftClusterExternalAuth
- type VersionedHCPOpenShiftClusterNodePool
- type VersionedHCPOpenShiftVersion
- type VersionedResource
- type Visibility
Constants ¶
const ( ProviderNamespace = "Microsoft.RedHatOpenShift" ProviderNamespaceDisplay = "Azure Red Hat OpenShift" ClusterResourceTypeName = "hcpOpenShiftClusters" VersionResourceTypeName = "hcpOpenShiftVersions" NodePoolResourceTypeName = "nodePools" ExternalAuthResourceTypeName = "externalAuths" OperationResultResourceTypeName = "hcpOperationResults" OperationStatusResourceTypeName = "hcpOperationStatuses" ControllerResourceTypeName = "hcpOpenShiftControllers" ResourceTypeDisplay = "Hosted Control Plane (HCP) OpenShift Clusters" )
const ( TestLocation = "westus3" TestAPIVersion = "2024-06-10-preview" TestTenantID = "00000000-0000-0000-0000-000000000000" TestSubscriptionID = "11111111-1111-1111-1111-111111111111" TestAltSubscriptionID = "22222222-2222-2222-2222-222222222222" TestResourceGroupName = "testResourceGroup" TestClusterName = "testCluster" TestNodePoolName = "testNodePool" TestExternalAuthName = "testExternalAuth" TestDeploymentName = "testDeployment" TestManagedResourceGroupName = "testManagedResourceGroup" TestNetworkSecurityGroupName = "testNetworkSecurityGroup" TestVirtualNetworkName = "testVirtualNetwork" TestSubnetName = "testSubnet" )
const ( // Feature flag FeatureAllowDevNonStableChannels is the feature in the subscription that // allows the usage of non stable channels (i.e. candidate, nightly) for creation // of new OpenShift clusters. FeatureAllowDevNonStableChannels = "Microsoft.RedHatOpenShift/AllowDevNonStableChannels" )
const (
OpenShiftVersionPrefix = "openshift-v"
)
Variables ¶
var ( OperationStatusResourceType = azcorearm.NewResourceType(ProviderNamespace, OperationStatusResourceTypeName) ClusterResourceType = azcorearm.NewResourceType(ProviderNamespace, ClusterResourceTypeName) NodePoolResourceType = azcorearm.NewResourceType(ProviderNamespace, ClusterResourceTypeName+"/"+NodePoolResourceTypeName) ExternalAuthResourceType = azcorearm.NewResourceType(ProviderNamespace, ClusterResourceTypeName+"/"+ExternalAuthResourceTypeName) PreflightResourceType = azcorearm.NewResourceType(ProviderNamespace, "deployments/preflight") VersionResourceType = azcorearm.NewResourceType(ProviderNamespace, "locations/"+VersionResourceTypeName) ClusterControllerResourceType = azcorearm.NewResourceType(ProviderNamespace, filepath.Join(ClusterResourceTypeName, ControllerResourceTypeName)) NodePoolControllerResourceType = azcorearm.NewResourceType(ProviderNamespace, filepath.Join(ClusterResourceTypeName, NodePoolResourceTypeName, ControllerResourceTypeName)) ExternalAuthControllerResourceType = azcorearm.NewResourceType(ProviderNamespace, filepath.Join(ClusterResourceTypeName, ExternalAuthResourceTypeName, ControllerResourceTypeName)) )
var ( TestSubscriptionResourceID = path.Join("/subscriptions", TestSubscriptionID) TestResourceGroupResourceID = path.Join(TestSubscriptionResourceID, "resourceGroups", TestResourceGroupName) TestClusterResourceID = path.Join(TestResourceGroupResourceID, "providers", ProviderNamespace, ClusterResourceTypeName, TestClusterName) TestNodePoolResourceID = path.Join(TestClusterResourceID, NodePoolResourceTypeName, TestNodePoolName) TestExternalAuthResourceID = path.Join(TestClusterResourceID, ExternalAuthResourceTypeName, TestExternalAuthName) TestDeploymentResourceID = path.Join(TestResourceGroupResourceID, "providers", ProviderNamespace, "deployments", TestDeploymentName) TestNetworkSecurityGroupResourceID = path.Join(TestResourceGroupResourceID, "providers", "Microsoft.Network", "networkSecurityGroups", TestNetworkSecurityGroupName) TestVirtualNetworkResourceID = path.Join(TestResourceGroupResourceID, "providers", "Microsoft.Network", "virtualNetworks", TestVirtualNetworkName) TestSubnetResourceID = path.Join(TestVirtualNetworkResourceID, "subnets", TestSubnetName) )
var ( // we have some private fields that cmp.Diff chokes on. This skips them. // Use only for error messages unless you know what you're doing. CmpDiffOptions = []cmp.Option{ cmpopts.IgnoreFields(azcorearm.ResourceID{}, "ResourceType"), cmpopts.IgnoreFields(azcorearm.ResourceID{}, "isChild"), cmpopts.IgnoreFields(azcorearm.ResourceID{}, "stringValue"), cmpopts.IgnoreFields(InternalID{}, "path"), cmpopts.IgnoreFields(InternalID{}, "kind"), } )
var ( ValidClusterImageRegistryProfileStates = sets.New[ClusterImageRegistryProfileState]( ClusterImageRegistryProfileStateDisabled, ClusterImageRegistryProfileStateEnabled, ) )
var ( ValidConditionStatusTypes = sets.New[ConditionStatusType]( ConditionStatusTypeTrue, ConditionStatusTypeFalse, ConditionStatusTypeUnknown, ) )
var ( ValidCustomerManagedEncryptionType = sets.New[CustomerManagedEncryptionType]( CustomerManagedEncryptionTypeKMS, ) )
var ( ValidDiskStorageAccountTypes = sets.New[DiskStorageAccountType]( DiskStorageAccountTypePremium_LRS, DiskStorageAccountTypeStandardSSD_LRS, DiskStorageAccountTypeStandard_LRS, ) )
var ( ValidEffects = sets.New[Effect]( EffectNoExecute, EffectNoSchedule, EffectPreferNoSchedule, ) )
var ( ValidEtcdDataEncryptionKeyManagementModeType = sets.New[EtcdDataEncryptionKeyManagementModeType]( EtcdDataEncryptionKeyManagementModeTypeCustomerManaged, EtcdDataEncryptionKeyManagementModeTypePlatformManaged, ) )
var ( ValidExternalAuthClientTypes = sets.New[ExternalAuthClientType]( ExternalAuthClientTypeConfidential, ExternalAuthClientTypePublic, ) )
var ( ValidExternalAuthConditionTypes = sets.New[ExternalAuthConditionType]( ExternalAuthConditionTypeAvailable, ExternalAuthConditionTypeDegraded, ExternalAuthConditionTypeProgressing, ) )
var ( ValidNetworkTypes = sets.New[NetworkType]( NetworkTypeOVNKubernetes, NetworkTypeOther, ) )
var ( ValidOutboundTypes = sets.New[OutboundType]( OutboundTypeLoadBalancer, ) )
var ( ValidTokenValidationRuleTypes = sets.New[TokenValidationRuleType]( TokenValidationRuleTypeRequiredClaim, ) )
var ( ValidUsernameClaimPrefixPolicies = sets.New[UsernameClaimPrefixPolicy]( UsernameClaimPrefixPolicyPrefix, UsernameClaimPrefixPolicyNoPrefix, UsernameClaimPrefixPolicyNone, ) )
var ( ValidVisibility = sets.New[Visibility]( VisibilityPublic, VisibilityPrivate, ) )
Functions ¶
func ApplyRequestBody ¶
ApplyRequestBody applies a JSON request body to the value pointed to by v. If the request method is PATCH, the request body is applied to v using JSON Merge Patch (RFC 7396) semantics. Otherwise the request body is unmarshalled directly to v.
func CreateTestSubscription ¶
func CreateTestSubscription(registeredFeatures ...string) *arm.Subscription
CreateTestSubscription creates a test subscription with optional registered feature flags. Call with no arguments for a standard subscription, or pass feature names to register them.
func DeleteNilsFromPtrSlice ¶
func DeleteNilsFromPtrSlice[S ~[]*E, E any](s S) S
DeleteNilsFromPtrSlice returns a slice with nil pointers removed.
func MergeStringPtrMap ¶
MergeStringPtrMap merges a map of string pointers into a map of strings following the rules of JSON merge-patch (RFC 7396). In particular, if a key in src has a nil value, that entry is deleted from dst. The function takes a pointer to the dst map in case the dst map is nil and needs to be initialized.
func Must ¶
Must is a helper function that takes a value and error, returns the value if no error occurred, or panics if an error occurred. This is useful for test setup where we don't expect errors.
func NewTestLogger ¶
func NonNilSliceValues ¶
NonNilSliceValues returns an iterator over index-value pairs in a slice of pointers in the usual order, but skipping over nils.
func NonNilValues ¶
NonNilValues returns an iterator over a sequence of pairs of values that skips pairs where the second value in the pair is nil.
func PtrOrNil ¶
func PtrOrNil[T any](p T) *T
PtrOrNil returns a pointer to p or nil if p is an empty value as would be determined by the "omitempty" option in json.Marshal.
func StringMapToStringPtrMap ¶
StringMapToStringPtrMap converts a map of strings to a map of string pointers.
func StringPtrMapToStringMap ¶
StringPtrMapToStringMap converts a map of string pointers to a map of strings.
func StringPtrSliceToStringSlice ¶
StringPtrSliceToStringSlice converts a slice of string pointers to a slice of strings.
func StringSliceToStringPtrSlice ¶
StringSliceToStringPtrSlice converts a slice of strings to a slice of string pointers.
func TrimStringSlice ¶
TrimStringSlice returns a new string slice with all leading and trailing white space removed from each element and omitting any white-space-only elements.
Types ¶
type APIRegistry ¶
type APIRegistry interface {
Register(version Version) error
ListVersions() set.Set[string]
Lookup(key string) (version Version, ok bool)
}
APIRegistry is a way to keep track of versioned interfaces. It should always be done per-instance, so we can easily track what registers where and why it does it. This construction also gives us a way to unit and integration test different scenarios without impacting a single global as we run the tests.
func NewAPIRegistry ¶
func NewAPIRegistry() APIRegistry
type ClusterAutoscalingProfile ¶
type ClusterAutoscalingProfile struct {
MaxNodesTotal int32 `json:"maxNodesTotal,omitempty"`
MaxPodGracePeriodSeconds int32 `json:"maxPodGracePeriodSeconds,omitempty"`
MaxNodeProvisionTimeSeconds int32 `json:"maxNodeProvisionTimeSeconds,omitempty"`
PodPriorityThreshold int32 `json:"podPriorityThreshold,omitempty"`
}
Cluster autoscaling configuration ClusterAutoscaling specifies auto-scaling behavior that applies to all NodePools associated with a control plane.
type ClusterImageRegistryProfile ¶
type ClusterImageRegistryProfile struct {
// state indicates the desired ImageStream-backed cluster image registry installation mode. This can only be set during cluster
// creation and cannot be changed after cluster creation. Enabled means the
// ImageStream-backed image registry will be run as pods on worker nodes in the cluster. Disabled means the ImageStream-backed
// image registry will not be present in the cluster. The default is Enabled.
State ClusterImageRegistryProfileState `json:"state,omitempty"`
}
ClusterImageRegistryProfile - OpenShift cluster image registry
type ClusterImageRegistryProfileState ¶
type ClusterImageRegistryProfileState string
ClusterImageRegistryProfileState - state indicates the desired ImageStream-backed cluster image registry installation mode. This can only be set during cluster creation and cannot be changed after cluster creation. Enabled means the ImageStream-backed image registry will be run as pods on worker nodes in the cluster. Disabled means the ImageStream-backed image registry will not be present in the cluster. The default is Enabled.
const ( ClusterImageRegistryProfileStateDisabled ClusterImageRegistryProfileState = "Disabled" ClusterImageRegistryProfileStateEnabled ClusterImageRegistryProfileState = "Enabled" )
type Condition ¶
type Condition struct {
// type of condition in CamelCase or in foo.example.com/CamelCase.
// ---
// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
// useful (see .node.status.conditions), the ability to deconflict is important.
// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
// +required
// +kubebuilder:validation:Required
// +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`
// +kubebuilder:validation:MaxLength=316
Type string `json:"type" protobuf:"bytes,1,opt,name=type"`
// status of the condition, one of True, False, Unknown.
// +required
// +kubebuilder:validation:Required
// +kubebuilder:validation:Enum=True;False;Unknown
Status ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status"`
// lastTransitionTime is the last time the condition transitioned from one status to another.
// This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
// +required
// +kubebuilder:validation:Required
// +kubebuilder:validation:Type=string
// +kubebuilder:validation:Format=date-time
LastTransitionTime time.Time `json:"lastTransitionTime" protobuf:"bytes,4,opt,name=lastTransitionTime"`
// reason contains a programmatic identifier indicating the reason for the condition's last transition.
// Producers of specific condition types may define expected values and meanings for this field,
// and whether the values are considered a guaranteed API.
// The value should be a CamelCase string.
// This field may not be empty.
// +required
// +kubebuilder:validation:Required
// +kubebuilder:validation:MaxLength=1024
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:Pattern=`^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$`
Reason string `json:"reason" protobuf:"bytes,5,opt,name=reason"`
// message is a human readable message indicating details about the transition.
// This may be an empty string.
// +required
// +kubebuilder:validation:Required
// +kubebuilder:validation:MaxLength=32768
Message string `json:"message" protobuf:"bytes,6,opt,name=message"`
}
Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example,
type FooStatus struct{
// Represents the observations of a foo's current state.
// Known .status.conditions.type are: "Available", "Progressing", and "Degraded"
Conditions []Condition `json:"conditions,omitempty"`
// other fields
}
type ConditionStatus ¶
type ConditionStatus string
const ( ConditionTrue ConditionStatus = "True" ConditionFalse ConditionStatus = "False" ConditionUnknown ConditionStatus = "Unknown" )
These are valid condition statuses. "ConditionTrue" means a resource is in the condition. "ConditionFalse" means a resource is not in the condition. "ConditionUnknown" means kubernetes can't decide if a resource is in the condition or not. In the future, we could add other intermediate conditions, e.g. ConditionDegraded.
type ConditionStatusType ¶
type ConditionStatusType string
const ( // ConditionStatusType - the condition status is true. ConditionStatusTypeTrue ConditionStatusType = "True" // ExternalAuthConditionTypeFalse - the condition status is false. ConditionStatusTypeFalse ConditionStatusType = "False" // ConditionStatusTypeUnknown - the condition status is unknown. ConditionStatusTypeUnknown ConditionStatusType = "Unknown" )
type Controller ¶
type Controller struct {
CosmosUID string `json:"cosmosUID,omitempty"`
// ExternalID is the Azure resource ID of the type this is associated with.
ExternalID *azcorearm.ResourceID `json:"externalId,omitempty"`
// ControllerName is the name of controller this status is for.
ControllerName string `json:"controllerName"`
Status ControllerStatus `json:"status"`
}
func (*Controller) ComputeLogicalResourceID ¶
func (o *Controller) ComputeLogicalResourceID() *azcorearm.ResourceID
func (*Controller) GetCosmosData ¶
func (o *Controller) GetCosmosData() CosmosData
func (*Controller) SetCosmosDocumentData ¶
func (o *Controller) SetCosmosDocumentData(cosmosUID string)
type ControllerStatus ¶
type ControllerStatus struct {
// every controller is expected to set a Degraded condition.
Conditions []Condition `json:"conditions,omitempty"`
}
type CosmosData ¶
type CosmosData struct {
CosmosUID string
PartitionKey string
ItemID *azcorearm.ResourceID
}
CosmosData contains the information that persisted resources must have for us to support CRUD against them. These are not (currently) all stored in the same place in our various types.
type CosmosPersistable ¶
type CosmosPersistable interface {
GetCosmosData() CosmosData
SetCosmosDocumentData(cosmosUID string)
}
type CustomerAPIProfile ¶
type CustomerAPIProfile struct {
Visibility Visibility `json:"visibility,omitempty"`
AuthorizedCIDRs []string `json:"authorizedCidrs,omitempty"`
}
CustomerAPIProfile represents a cluster API server configuration.
type CustomerDNSProfile ¶
type CustomerDNSProfile struct {
BaseDomainPrefix string `json:"baseDomainPrefix,omitempty"`
}
CustomerDNSProfile represents the DNS configuration of the cluster.
type CustomerManagedEncryptionProfile ¶
type CustomerManagedEncryptionProfile struct {
EncryptionType CustomerManagedEncryptionType `json:"encryptionType,omitempty"`
Kms *KmsEncryptionProfile `json:"kms,omitempty"`
}
CustomerManagedEncryptionProfile repesents a data encryption configuration for ETCD using customer-managed keys. Visibility for the entire struct is "read create".
type CustomerManagedEncryptionType ¶
type CustomerManagedEncryptionType string
const ( // CustomerManagedEncryptionTypeKMS - KMS encryption type. CustomerManagedEncryptionTypeKMS CustomerManagedEncryptionType = "KMS" )
type CustomerPlatformProfile ¶
type CustomerPlatformProfile struct {
ManagedResourceGroup string `json:"managedResourceGroup,omitempty"`
SubnetID string `json:"subnetId,omitempty"`
OutboundType OutboundType `json:"outboundType,omitempty"`
NetworkSecurityGroupID string `json:"networkSecurityGroupId,omitempty"`
OperatorsAuthentication OperatorsAuthenticationProfile `json:"operatorsAuthentication,omitempty"`
}
CustomerPlatformProfile represents the Azure platform configuration. Visibility for (almost) the entire struct is "read create".
type DiskStorageAccountType ¶
type DiskStorageAccountType string
DiskStorageAccountType represents supported Azure storage account types.
const ( DiskStorageAccountTypePremium_LRS DiskStorageAccountType = "Premium_LRS" DiskStorageAccountTypeStandardSSD_LRS DiskStorageAccountType = "StandardSSD_LRS" DiskStorageAccountTypeStandard_LRS DiskStorageAccountType = "Standard_LRS" )
type EtcdDataEncryptionKeyManagementModeType ¶
type EtcdDataEncryptionKeyManagementModeType string
const ( // EtcdDataEncryptionKeyManagementModeTypeCustomerManaged - Customer managed encryption key management mode type. EtcdDataEncryptionKeyManagementModeTypeCustomerManaged EtcdDataEncryptionKeyManagementModeType = "CustomerManaged" // EtcdDataEncryptionKeyManagementModeTypePlatformManaged - Platform managed encryption key management mode type. EtcdDataEncryptionKeyManagementModeTypePlatformManaged EtcdDataEncryptionKeyManagementModeType = "PlatformManaged" )
type EtcdDataEncryptionProfile ¶
type EtcdDataEncryptionProfile struct {
KeyManagementMode EtcdDataEncryptionKeyManagementModeType `json:"keyManagementMode,omitempty"`
CustomerManaged *CustomerManagedEncryptionProfile `json:"customerManaged,omitempty"`
}
EtcdDataEncryptionProfile represents a data encryption configuration for ETCD. Visibility for the entire struct is "read create".
type EtcdProfile ¶
type EtcdProfile struct {
DataEncryption EtcdDataEncryptionProfile `json:"dataEncryption,omitempty"`
}
EtcdProfile represents an ETCD configuration. Visibility for the entire struct is "read create".
type ExternalAuthClaimProfile ¶
type ExternalAuthClaimProfile struct {
Mappings TokenClaimMappingsProfile `json:"mappings"`
ValidationRules []TokenClaimValidationRule `json:"validationRules"`
}
External Auth claim profile Visibility for the entire struct is "read create update".
type ExternalAuthClientComponentProfile ¶
type ExternalAuthClientComponentProfile struct {
Name string `json:"name"`
AuthClientNamespace string `json:"authClientNamespace"`
}
External Auth component profile Must have unique namespace/name pairs. Visibility for the entire struct is "read create update".
type ExternalAuthClientProfile ¶
type ExternalAuthClientProfile struct {
Component ExternalAuthClientComponentProfile `json:"component"`
ClientID string `json:"clientId"`
ExtraScopes []string `json:"extraScopes"`
Type ExternalAuthClientType `json:"type"`
}
External Auth client profile This configures how on-cluster, platform clients should request tokens from the identity provider. Visibility for the entire struct is "read create update".
type ExternalAuthClientType ¶
type ExternalAuthClientType string
const ( // ExternalAuthClientTypeConfidential - the client is confidential. ExternalAuthClientTypeConfidential ExternalAuthClientType = "Confidential" // ExternalAuthClientTypePublic - the client is public. ExternalAuthClientTypePublic ExternalAuthClientType = "Public" )
type ExternalAuthCondition ¶
type ExternalAuthCondition struct {
Type ExternalAuthConditionType `json:"type"`
Status ConditionStatusType `json:"status"`
LastTransitionTime time.Time `json:"lastTransitionTime"`
Reason string `json:"reason"`
Message string `json:"message"`
}
Condition defines an observation of the external auth state. Visibility for the entire struct is "read".
type ExternalAuthConditionType ¶
type ExternalAuthConditionType string
const ( // ExternalAuthConditionTypeAvailable - the resource is in an available state. ExternalAuthConditionTypeAvailable ExternalAuthConditionType = "Available" // ExternalAuthConditionType - the resource is in a degraded state. ExternalAuthConditionTypeDegraded ExternalAuthConditionType = "Degraded" // ExternalAuthConditionTypeProgressing - the resource is in a progressing state. ExternalAuthConditionTypeProgressing ExternalAuthConditionType = "Progressing" )
type ExternalTestResource ¶
type ExternalTestResource struct {
ID *string
Name *string
Type *string
SystemData *generated.SystemData
Location *string
Tags map[string]*string
Identity *generated.ManagedServiceIdentity
}
func (*ExternalTestResource) GetVersion ¶
func (m *ExternalTestResource) GetVersion() Version
func (*ExternalTestResource) NewExternal ¶
func (m *ExternalTestResource) NewExternal() any
func (*ExternalTestResource) Normalize ¶
func (m *ExternalTestResource) Normalize(v *InternalTestResource)
func (*ExternalTestResource) SetDefaultValues ¶
func (m *ExternalTestResource) SetDefaultValues(a any) error
type GroupClaimProfile ¶
External Auth claim profile This configures how the groups of a cluster identity should be constructed from the claims in a JWT token issued by the identity provider. When referencing a claim, if the claim is present in the JWT token, its value must be a list of groups separated by a comma (',').
For example - '"example"' and '"exampleOne", "exampleTwo", "exampleThree"' are valid claim values.
Visibility for the entire struct is "read create update".
type HCPOpenShiftCluster ¶
type HCPOpenShiftCluster struct {
arm.TrackedResource
CustomerProperties HCPOpenShiftClusterCustomerProperties `json:"customerProperties,omitempty"`
ServiceProviderProperties HCPOpenShiftClusterServiceProviderProperties `json:"serviceProviderProperties,omitempty"`
Identity *arm.ManagedServiceIdentity `json:"identity,omitempty"`
}
HCPOpenShiftCluster represents an ARO HCP OpenShift cluster resource.
func ClusterTestCase ¶
func ClusterTestCase(t *testing.T, tweaks *HCPOpenShiftCluster) *HCPOpenShiftCluster
func MinimumValidClusterTestCase ¶
func MinimumValidClusterTestCase() *HCPOpenShiftCluster
func NewDefaultHCPOpenShiftCluster ¶
func NewDefaultHCPOpenShiftCluster(resourceID *azcorearm.ResourceID) *HCPOpenShiftCluster
Creates an HCPOpenShiftCluster with any non-zero default values.
func (*HCPOpenShiftCluster) GetCosmosData ¶
func (o *HCPOpenShiftCluster) GetCosmosData() CosmosData
func (*HCPOpenShiftCluster) SetCosmosDocumentData ¶
func (o *HCPOpenShiftCluster) SetCosmosDocumentData(cosmosUID string)
func (*HCPOpenShiftCluster) Validate ¶
func (o *HCPOpenShiftCluster) Validate() []arm.CloudErrorBody
type HCPOpenShiftClusterAdminCredential ¶
type HCPOpenShiftClusterAdminCredential struct {
ExpirationTimestamp time.Time `json:"expirationTimestamp"`
Kubeconfig string `json:"kubeconfig"`
}
HCPOpenShiftClusterAdminCredential represents a temporary admin credential for an ARO HCP OpenShift cluster.
type HCPOpenShiftClusterCustomerProperties ¶
type HCPOpenShiftClusterCustomerProperties struct {
Version VersionProfile `json:"version,omitempty"`
DNS CustomerDNSProfile `json:"dns,omitempty"`
Network NetworkProfile `json:"network,omitempty"`
API CustomerAPIProfile `json:"api,omitempty"`
Platform CustomerPlatformProfile `json:"platform,omitempty"`
Autoscaling ClusterAutoscalingProfile `json:"autoscaling,omitempty"`
NodeDrainTimeoutMinutes int32 `json:"nodeDrainTimeoutMinutes,omitempty"`
Etcd EtcdProfile `json:"etcd,omitempty"`
ClusterImageRegistry ClusterImageRegistryProfile `json:"clusterImageRegistry,omitempty"`
}
HCPOpenShiftClusterCustomerProperties represents the property bag of a HCPOpenShiftCluster resource.
type HCPOpenShiftClusterExternalAuth ¶
type HCPOpenShiftClusterExternalAuth struct {
arm.ProxyResource
Properties HCPOpenShiftClusterExternalAuthProperties `json:"properties"`
ServiceProviderProperties HCPOpenShiftClusterExternalAuthServiceProviderProperties `json:"serviceProviderProperties,omitempty"`
}
HCPOpenShiftClusterExternalAuth represents the external auth config resource for ARO HCP OpenShift clusters.
func ExternalAuthTestCase ¶
func ExternalAuthTestCase(t *testing.T, tweaks *HCPOpenShiftClusterExternalAuth) *HCPOpenShiftClusterExternalAuth
func MinimumValidExternalAuthTestCase ¶
func MinimumValidExternalAuthTestCase() *HCPOpenShiftClusterExternalAuth
func NewDefaultHCPOpenShiftClusterExternalAuth ¶
func NewDefaultHCPOpenShiftClusterExternalAuth(resourceID *azcorearm.ResourceID) *HCPOpenShiftClusterExternalAuth
func (*HCPOpenShiftClusterExternalAuth) GetCosmosData ¶
func (o *HCPOpenShiftClusterExternalAuth) GetCosmosData() CosmosData
func (*HCPOpenShiftClusterExternalAuth) SetCosmosDocumentData ¶
func (o *HCPOpenShiftClusterExternalAuth) SetCosmosDocumentData(cosmosUID string)
func (*HCPOpenShiftClusterExternalAuth) Validate ¶
func (o *HCPOpenShiftClusterExternalAuth) Validate() []arm.CloudErrorBody
type HCPOpenShiftClusterExternalAuthProperties ¶
type HCPOpenShiftClusterExternalAuthProperties struct {
ProvisioningState arm.ProvisioningState `json:"provisioningState"`
Condition ExternalAuthCondition `json:"condition,omitzero"`
Issuer TokenIssuerProfile `json:"issuer"`
Clients []ExternalAuthClientProfile `json:"clients"`
Claim ExternalAuthClaimProfile `json:"claim"`
}
HCPOpenShiftClusterNodePoolProperties represents the property bag of a HCPOpenShiftClusterNodePool resource.
type HCPOpenShiftClusterExternalAuthServiceProviderProperties ¶
type HCPOpenShiftClusterExternalAuthServiceProviderProperties struct {
CosmosUID string `json:"cosmosUID,omitempty"`
ClusterServiceID InternalID `json:"clusterServiceID,omitempty"`
ActiveOperationID string `json:"activeOperationId,omitempty"`
}
type HCPOpenShiftClusterNodePool ¶
type HCPOpenShiftClusterNodePool struct {
arm.TrackedResource
Properties HCPOpenShiftClusterNodePoolProperties `json:"properties,omitempty"`
ServiceProviderProperties HCPOpenShiftClusterNodePoolServiceProviderProperties `json:"serviceProviderProperties,omitempty"`
Identity *arm.ManagedServiceIdentity `json:"identity,omitempty"`
}
HCPOpenShiftClusterNodePool represents a node pool resource for ARO HCP OpenShift clusters.
func NewDefaultHCPOpenShiftClusterNodePool ¶
func NewDefaultHCPOpenShiftClusterNodePool(resourceID *azcorearm.ResourceID) *HCPOpenShiftClusterNodePool
func (*HCPOpenShiftClusterNodePool) GetCosmosData ¶
func (o *HCPOpenShiftClusterNodePool) GetCosmosData() CosmosData
func (*HCPOpenShiftClusterNodePool) SetCosmosDocumentData ¶
func (o *HCPOpenShiftClusterNodePool) SetCosmosDocumentData(cosmosUID string)
func (*HCPOpenShiftClusterNodePool) Validate ¶
func (nodePool *HCPOpenShiftClusterNodePool) Validate(cluster *HCPOpenShiftCluster) []arm.CloudErrorBody
type HCPOpenShiftClusterNodePoolProperties ¶
type HCPOpenShiftClusterNodePoolProperties struct {
ProvisioningState arm.ProvisioningState `json:"provisioningState,omitempty"`
Version NodePoolVersionProfile `json:"version,omitempty"`
Platform NodePoolPlatformProfile `json:"platform,omitempty"`
Replicas int32 `json:"replicas,omitempty"`
AutoRepair bool `json:"autoRepair,omitempty"`
AutoScaling *NodePoolAutoScaling `json:"autoScaling,omitempty"`
Labels map[string]string `json:"labels,omitempty"`
Taints []Taint `json:"taints,omitempty"`
NodeDrainTimeoutMinutes *int32 `json:"nodeDrainTimeoutMinutes,omitempty"`
}
HCPOpenShiftClusterNodePoolProperties represents the property bag of a HCPOpenShiftClusterNodePool resource.
type HCPOpenShiftClusterNodePoolServiceProviderProperties ¶
type HCPOpenShiftClusterNodePoolServiceProviderProperties struct {
CosmosUID string `json:"cosmosUID,omitempty"`
ClusterServiceID InternalID `json:"clusterServiceID,omitempty"`
ActiveOperationID string `json:"activeOperationId,omitempty"`
}
type HCPOpenShiftClusterServiceProviderProperties ¶
type HCPOpenShiftClusterServiceProviderProperties struct {
ProvisioningState arm.ProvisioningState `json:"provisioningState,omitempty"`
CosmosUID string `json:"cosmosUID,omitempty"`
ClusterServiceID InternalID `json:"clusterServiceID,omitempty"`
ActiveOperationID string `json:"activeOperationId,omitempty"`
DNS ServiceProviderDNSProfile `json:"dns,omitempty"`
Console ServiceProviderConsoleProfile `json:"console,omitempty"`
API ServiceProviderAPIProfile `json:"api,omitempty"`
Platform ServiceProviderPlatformProfile `json:"platform,omitempty"`
}
HCPOpenShiftClusterCustomerProperties represents the property bag of a HCPOpenShiftCluster resource.
type HCPOpenShiftVersion ¶
type HCPOpenShiftVersion struct {
arm.ProxyResource
Properties HCPOpenShiftVersionProperties `json:"properties,omitempty"`
}
HCPOpenShiftVersion represents a location-based available HCP OpenShift version resource.
type HCPOpenShiftVersionProperties ¶
type HCPOpenShiftVersionProperties struct {
ChannelGroup string `json:"channelGroup"`
Enabled bool `json:"enabled"`
EndOfLifeTimestamp time.Time `json:"endOfLifeTimestamp"`
}
HCPOpenShiftVersionProperties contains details of an available HCP OpenShift version.
type InternalID ¶
type InternalID struct {
// contains filtered or unexported fields
}
InternalID represents a Cluster Service resource.
func NewInternalID ¶
func NewInternalID(path string) (InternalID, error)
NewInternalID attempts to create a new InternalID from a Cluster Service API path, returning an error if the API path is invalid or unsupported.
func (*InternalID) ClusterID ¶
func (id *InternalID) ClusterID() string
ClusterID returns the path element following "clusters", if present.
func (*InternalID) ID ¶
func (id *InternalID) ID() string
ID returns the last path element of the resource described by InternalID.
func (*InternalID) Kind ¶
func (id *InternalID) Kind() string
Kind returns the kind of resource described by InternalID, currently limited to "Cluster" and "NodePool".
func (InternalID) MarshalText ¶
func (id InternalID) MarshalText() ([]byte, error)
MarshalText allows an InternalID to be used as an encoding.TextMarshaler.
func (*InternalID) Path ¶
func (id *InternalID) Path() string
func (*InternalID) String ¶
func (id *InternalID) String() string
String allows an InternalID to be used as a fmt.Stringer.
func (*InternalID) UnmarshalText ¶
func (id *InternalID) UnmarshalText(text []byte) error
UnmarshalText allows an InternalID to be used as an encoding.TextUnmarshaler.
type InternalTestResource ¶
type InternalTestResource struct {
arm.TrackedResource
Identity *arm.ManagedServiceIdentity `json:"identity"`
}
type KmsEncryptionProfile ¶
type KmsEncryptionProfile struct {
ActiveKey KmsKey `json:"activeKey,omitempty"`
}
KmsEncryptionProfile represents a data encryption configuration for ETCD using customer-managed Key Management Service (KMS) keys. Visibility for the entire struct is "read create".
type KmsKey ¶
type KmsKey struct {
Name string `json:"name"`
VaultName string `json:"vaultName"`
Version string `json:"version"`
}
KmsKey represents an Azure KeyVault secret. Visibility for the entire struct is "read create".
type NetworkProfile ¶
type NetworkProfile struct {
NetworkType NetworkType `json:"networkType,omitempty"`
PodCIDR string `json:"podCidr,omitempty"`
ServiceCIDR string `json:"serviceCidr,omitempty"`
MachineCIDR string `json:"machineCidr,omitempty"`
HostPrefix int32 `json:"hostPrefix,omitempty"`
}
NetworkProfile represents a cluster network configuration. Visibility for the entire struct is "read create".
type NetworkType ¶
type NetworkType string
NetworkType represents an OpenShift cluster network plugin.
const ( NetworkTypeOVNKubernetes NetworkType = "OVNKubernetes" NetworkTypeOther NetworkType = "Other" )
type NodePoolAutoScaling ¶
type NodePoolAutoScaling struct {
Min int32 `json:"min,omitempty"`
Max int32 `json:"max,omitempty"`
}
NodePoolAutoScaling represents a node pool autoscaling configuration. Visibility for the entire struct is "read create update". max=200 for both Min and Max when the node pool's Platform.AvailabilityZone is unset.
type NodePoolPlatformProfile ¶
type NodePoolPlatformProfile struct {
SubnetID string `json:"subnetId,omitempty"`
VMSize string `json:"vmSize,omitempty"`
EnableEncryptionAtHost bool `json:"enableEncryptionAtHost"`
OSDisk OSDiskProfile `json:"osDisk"`
AvailabilityZone string `json:"availabilityZone,omitempty"`
}
NodePoolPlatformProfile represents a worker node pool configuration. Visibility for the entire struct is "read create".
type NodePoolVersionProfile ¶
type NodePoolVersionProfile struct {
ID string `json:"id,omitempty"`
ChannelGroup string `json:"channelGroup,omitempty"`
}
NodePoolVersionProfile represents the worker node pool version. Visbility for the entire struct is "read create update".
type OSDiskProfile ¶
type OSDiskProfile struct {
SizeGiB int32 `json:"sizeGiB,omitempty"`
DiskStorageAccountType DiskStorageAccountType `json:"diskStorageAccountType,omitempty"`
EncryptionSetID string `json:"encryptionSetId,omitempty"`
}
OSDiskProfile represents a OS Disk configuration. Visibility for the entire struct is "read create".
type Operation ¶
type Operation struct {
// ResourceID must be serialized exactly here for the generic CRUD to work.
// ResourceID here is NOT an ARM resourceID, it just parses like and one and is guarantee unique
ResourceID *azcorearm.ResourceID `json:"resourceId"`
// TenantID is the tenant ID of the client that requested the operation
TenantID string `json:"tenantId,omitempty"`
// ClientID is the object ID of the client that requested the operation
ClientID string `json:"clientId,omitempty"`
// Request is the type of asynchronous operation requested
Request OperationRequest `json:"request,omitempty"`
// ExternalID is the Azure resource ID of the cluster or node pool
ExternalID *azcorearm.ResourceID `json:"externalId,omitempty"`
// InternalID is the Cluster Service resource identifier in the form of a URL path
InternalID InternalID `json:"internalId,omitempty"`
// OperationID is the Azure resource ID of the operation status (may be nil if the
// operation was implicit, such as deleting a child resource along with the parent)
OperationID *azcorearm.ResourceID `json:"operationId,omitempty"`
// ClientRequestID is provided by the "x-ms-client-request-id" request header
ClientRequestID string `json:"clientRequestId,omitempty"`
// CorrelationRequstID is provided by the "x-ms-correlation-request-id" request header
CorrelationRequestID string `json:"correlationRequestId,omitempty"`
// NotificationURI is provided by the Azure-AsyncNotificationUri header if the
// Async Operation Callbacks ARM feature is enabled
NotificationURI string `json:"notificationUri,omitempty"`
// StartTime marks the start of the operation
StartTime time.Time `json:"startTime,omitempty"`
// LastTransitionTime marks the most recent state change
LastTransitionTime time.Time `json:"lastTransitionTime,omitempty"`
// Status is the current operation status, using the same set of values
// as the resource's provisioning state
Status arm.ProvisioningState `json:"status,omitempty"`
// Error is an OData error, present when Status is "Failed" or "Canceled"
Error *arm.CloudErrorBody `json:"error,omitempty"`
}
func (*Operation) ComputeLogicalResourceID ¶
func (o *Operation) ComputeLogicalResourceID() *azcorearm.ResourceID
func (*Operation) GetCosmosData ¶
func (o *Operation) GetCosmosData() CosmosData
func (Operation) GetValidTypes ¶
GetValidTypes returns the valid resource types for an OperationDocument.
func (*Operation) SetCosmosDocumentData ¶
type OperationRequest ¶
type OperationRequest string
const ( OperationRequestCreate OperationRequest = "Create" OperationRequestUpdate OperationRequest = "Update" OperationRequestDelete OperationRequest = "Delete" // These are for POST actions on resources. OperationRequestRequestCredential OperationRequest = "RequestCredential" OperationRequestRevokeCredentials OperationRequest = "RevokeCredentials" )
type OperatorsAuthenticationProfile ¶
type OperatorsAuthenticationProfile struct {
UserAssignedIdentities UserAssignedIdentitiesProfile `json:"userAssignedIdentities,omitempty"`
}
OperatorsAuthenticationProfile represents authentication configuration for OpenShift operators. Visibility for the entire struct is "read create".
type OutboundType ¶
type OutboundType string
OutboundType represents a routing strategy to provide egress to the Internet.
const (
OutboundTypeLoadBalancer OutboundType = "LoadBalancer"
)
type ServiceProviderAPIProfile ¶
type ServiceProviderAPIProfile struct {
URL string `json:"url,omitempty"`
}
type ServiceProviderConsoleProfile ¶
type ServiceProviderConsoleProfile struct {
URL string `json:"url,omitempty"`
}
ServiceProviderConsoleProfile represents a cluster web console configuration. Visibility for the entire struct is "read".
type ServiceProviderDNSProfile ¶
type ServiceProviderDNSProfile struct {
BaseDomain string `json:"baseDomain,omitempty"`
}
ServiceProviderDNSProfile represents the DNS configuration of the cluster.
type ServiceProviderPlatformProfile ¶
type ServiceProviderPlatformProfile struct {
IssuerURL string `json:"issuerUrl,omitempty"`
}
type Taint ¶
type Taint struct {
Effect Effect `json:"effect,omitempty"`
Key string `json:"key,omitempty"`
Value string `json:"value,omitempty"`
}
Taint represents a Kubernetes taint for a node. Visibility for the entire struct is "read create update".
type TokenClaimMappingsProfile ¶
type TokenClaimMappingsProfile struct {
Username UsernameClaimProfile `json:"username"`
Groups *GroupClaimProfile `json:"groups"`
}
External Auth claim mappings profile. At a minimum username or groups must be defined. Visibility for the entire struct is "read create update".
type TokenClaimValidationRule ¶
type TokenClaimValidationRule struct {
Type TokenValidationRuleType `json:"type"`
RequiredClaim TokenRequiredClaim `json:"requiredClaim"`
}
External Auth claim validation rule Visibility for the entire struct is "read create update".
type TokenIssuerProfile ¶
type TokenIssuerProfile struct {
URL string `json:"url"`
Audiences []string `json:"audiences"`
CA string `json:"ca"`
}
Token issuer profile This configures how the platform interacts with the identity provider and how tokens issued from the identity provider are evaluated by the Kubernetes API server. Visbility for the entire struct is "read create update".
type TokenRequiredClaim ¶
type TokenRequiredClaim struct {
Claim string `json:"claim"`
RequiredValue string `json:"requiredValue"`
}
Token required claim validation rule. Visibility for the entire struct is "read create update".
type TokenValidationRuleType ¶
type TokenValidationRuleType string
const ( // TokenValidationRuleTypeRequiredClaim - the Kubernetes API server will be configured to validate that the // incoming JWT contains the required claim and that its value matches the required value. TokenValidationRuleTypeRequiredClaim TokenValidationRuleType = "RequiredClaim" )
type UserAssignedIdentitiesProfile ¶
type UserAssignedIdentitiesProfile struct {
ControlPlaneOperators map[string]string `json:"controlPlaneOperators,omitempty"`
DataPlaneOperators map[string]string `json:"dataPlaneOperators,omitempty"`
ServiceManagedIdentity string `json:"serviceManagedIdentity,omitempty"`
}
UserAssignedIdentitiesProfile represents authentication configuration for OpenShift operators using user-assigned managed identities. Visibility for the entire struct is "read create".
type UsernameClaimPrefixPolicy ¶
type UsernameClaimPrefixPolicy string
const ( // UsernameClaimPrefixPolicyPrefix - prefix the JWT claim with the value of Prefix. UsernameClaimPrefixPolicyPrefix UsernameClaimPrefixPolicy = "Prefix" // UsernameClaimPrefixPolicyNoPrefix - do not prefix the JWT claim. UsernameClaimPrefixPolicyNoPrefix UsernameClaimPrefixPolicy = "NoPrefix" // UsernameClaimPrefixPolicyNone - let the platform choose an appropriate prefix. UsernameClaimPrefixPolicyNone UsernameClaimPrefixPolicy = "None" )
type UsernameClaimProfile ¶
type UsernameClaimProfile struct {
Claim string `json:"claim"`
Prefix string `json:"prefix"`
PrefixPolicy UsernameClaimPrefixPolicy `json:"prefixPolicy"`
}
External Auth claim profile This configures how the username of a cluster identity should be constructed from the claims in a JWT token issued by the identity provider. Visibility for the entire struct is "read create update".
type ValidationPathMapperFunc ¶
ValidationPathMapperFunc takes an internal path from validation and converts it to the external path for this particular version. This needs to be as close as possible, but perfection isn't required since fields could be split or combined.
type Version ¶
type Version interface {
fmt.Stringer
ValidationPathRewriter(obj any) (ValidationPathMapperFunc, error)
// Resource Types
// Passing a nil pointer creates a resource with default values.
NewHCPOpenShiftCluster(*HCPOpenShiftCluster) VersionedHCPOpenShiftCluster
NewHCPOpenShiftClusterNodePool(*HCPOpenShiftClusterNodePool) VersionedHCPOpenShiftClusterNodePool
NewHCPOpenShiftClusterExternalAuth(*HCPOpenShiftClusterExternalAuth) VersionedHCPOpenShiftClusterExternalAuth
NewHCPOpenShiftVersion(*HCPOpenShiftVersion) VersionedHCPOpenShiftVersion
// Response Marshaling
MarshalHCPOpenShiftClusterAdminCredential(*HCPOpenShiftClusterAdminCredential) ([]byte, error)
}
type VersionProfile ¶
type VersionProfile struct {
ID string `json:"id,omitempty"`
ChannelGroup string `json:"channelGroup,omitempty"`
}
VersionProfile represents the cluster control plane version.
type VersionedCreatableResource ¶
type VersionedCreatableResource[T any] interface { VersionedResource NewExternal() any SetDefaultValues(any) error Normalize(*T) }
type VersionedHCPOpenShiftCluster ¶
type VersionedHCPOpenShiftCluster VersionedCreatableResource[HCPOpenShiftCluster]
type VersionedHCPOpenShiftClusterExternalAuth ¶
type VersionedHCPOpenShiftClusterExternalAuth VersionedCreatableResource[HCPOpenShiftClusterExternalAuth]
type VersionedHCPOpenShiftClusterNodePool ¶
type VersionedHCPOpenShiftClusterNodePool VersionedCreatableResource[HCPOpenShiftClusterNodePool]
type VersionedHCPOpenShiftVersion ¶
type VersionedHCPOpenShiftVersion VersionedResource
type VersionedResource ¶
type VersionedResource interface {
GetVersion() Version
}
type Visibility ¶
type Visibility string
Visibility represents the visibility of an API endpoint.
const ( VisibilityPublic Visibility = "Public" VisibilityPrivate Visibility = "Private" )