profilehandler

package
v1.6.8-prerelease.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 5, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultVPCCIDR = "10.0.0.0/16"
)

Variables

View Source
var (
	Tags             = map[string]string{"tag1": "test_tag1", "tag2": "test_tag2"}
	ClusterAdminUser = "rhcs-clusteradmin"
	DefaultMPLabels  = map[string]string{
		"test1": "testdata1",
	}
	CustomProperties = map[string]string{"custom_property": "test", "qe_usage": config.GetQEUsage()}
	LdapURL          = "ldap://ldap.forumsys.com/dc=example,dc=com?uid"
	GitLabURL        = "https://gitlab.cee.redhat.com"
	Organizations    = []string{"openshift"}
	HostedDomain     = "redhat.com"
)

Functions

This section is empty.

Types

type Profile

type Profile struct {
	Name                    string   `ini:"name,omitempty" json:"name,omitempty"`
	ClusterName             string   `ini:"cluster_name,omitempty" json:"cluster_name,omitempty"`
	DomainPrefix            string   `ini:"domain_prefix,omitempty" json:"domain_prefix,omitempty"`
	ClusterType             string   `ini:"cluster_type,omitempty" json:"cluster_type,omitempty"`
	ProductID               string   `ini:"product_id,omitempty" json:"product_id,omitempty"`
	MajorVersion            string   `ini:"major_version,omitempty" json:"major_version,omitempty"` // Specify the Major or Major.minor version to use. Default will use latest
	Version                 string   `ini:"version,omitempty" json:"version,omitempty"`             // Version supports specific OCP version or indicated version starting with openshift-v or latest or major-1 (y-1) or minor-1 (z-1). Default is latest.
	ChannelGroup            string   `ini:"channel_group,omitempty" json:"channel_group,omitempty"`
	CloudProvider           string   `ini:"cloud_provider,omitempty" json:"cloud_provider,omitempty"`
	Region                  string   `ini:"region,omitempty" json:"region,omitempty"`
	InstanceType            string   `ini:"instance_type,omitempty" json:"instance_type,omitempty"`
	Zones                   string   `ini:"zones,omitempty" json:"zones,omitempty"`           // zones should be like a,b,c,d
	StorageLB               bool     `ini:"storage_lb,omitempty" json:"storage_lb,omitempty"` // the unit is GIB, don't support unit set
	Tagging                 bool     `ini:"tagging,omitempty" json:"tagging,omitempty"`
	Labeling                bool     `ini:"labeling,omitempty" json:"labeling,omitempty"`
	Etcd                    bool     `ini:"etcd_encryption,omitempty" json:"etcd_encryption,omitempty"`
	FIPS                    bool     `ini:"fips,omitempty" json:"fips,omitempty"`
	CCS                     bool     `ini:"ccs,omitempty" json:"ccs,omitempty"`
	STS                     bool     `ini:"sts,omitempty" json:"sts,omitempty"`
	Autoscale               bool     `ini:"autoscaling_enabled,omitempty" json:"autoscaling_enabled,omitempty"`
	MultiAZ                 bool     `ini:"multi_az,omitempty" json:"multi_az,omitempty"`
	BYOVPC                  bool     `ini:"byovpc,omitempty" json:"byovpc,omitempty"`
	PrivateLink             bool     `ini:"private_link,omitempty" json:"private_link,omitempty"`
	Private                 bool     `ini:"private,omitempty" json:"private,omitempty"`
	BYOK                    bool     `ini:"byok,omitempty" json:"byok,omitempty"`
	KMSKey                  bool     `ini:"kms_key_arn,omitempty" json:"kms_key_arn,omitempty"`
	DifferentEncryptionKeys bool     `ini:"different_encryption_keys,omitempty" json:"different_encryption_keys,omitempty"`
	NetWorkingSet           bool     `ini:"networking_set,omitempty" json:"networking_set,omitempty"`
	Proxy                   bool     `ini:"proxy,omitempty" json:"proxy,omitempty"`
	OIDCConfig              string   `ini:"oidc_config,omitempty" json:"oidc_config,omitempty"`
	ProvisionShard          string   `ini:"provisionShard,omitempty" json:"provisionShard,omitempty"`
	Ec2MetadataHttpTokens   string   `ini:"ec2_metadata_http_tokens,omitempty" json:"ec2_metadata_http_tokens,omitempty"`
	ComputeReplicas         int      `ini:"compute_replicas,omitempty" json:"compute_replicas,omitempty"`
	ComputeMachineType      string   `ini:"compute_machine_type,omitempty" json:"compute_machine_type,omitempty"`
	AuditLogForward         bool     `ini:"auditlog_forward,omitempty" json:"auditlog_forward,omitempty"`
	AdminEnabled            bool     `ini:"admin_enabled,omitempty" json:"admin_enabled,omitempty"`
	ManagedPolicies         bool     `ini:"managed_policies,omitempty" json:"managed_policies,omitempty"`
	WorkerDiskSize          int      `ini:"worker_disk_size,omitempty" json:"worker_disk_size,omitempty"`
	AdditionalSGNumber      int      `ini:"additional_sg_number,omitempty" json:"additional_sg_number,omitempty"`
	UnifiedAccRolesPath     string   `ini:"unified_acc_role_path,omitempty" json:"unified_acc_role_path,omitempty"`
	SharedVpc               bool     `ini:"shared_vpc,omitempty" json:"shared_vpc,omitempty"`
	MachineCIDR             string   `ini:"machine_cidr,omitempty" json:"machine_cidr,omitempty"`
	ServiceCIDR             string   `ini:"service_cidr,omitempty" json:"service_cidr,omitempty"`
	PodCIDR                 string   `ini:"pod_cidr,omitempty" json:"pod_cidr,omitempty"`
	HostPrefix              int      `ini:"host_prefix,omitempty" json:"host_prefix,omitempty"`
	FullResources           bool     `ini:"full_resources,omitempty" json:"full_resources,omitempty"`
	DontWaitForCluster      bool     `ini:"no_wait_cluster,omitempty" json:"no_wait_cluster,omitempty"`
	UseRegistryConfig       bool     `ini:"use_registry_config,omitempty" json:"use_registry_config,omitempty"`
	AllowedRegistries       []string `ini:"allowed_registries,omitempty" json:"allowed_registries,omitempty"`
	BlockedRegistries       []string `ini:"blocked_registries,omitempty" json:"blocked_registries,omitempty"`
}

func LoadProfileYamlFileByENV

func LoadProfileYamlFileByENV() (*Profile, error)

type ProfileHandler

type ProfileHandler interface {
	Services() ProfileServices
	Prepare() ProfilePrepare
	Profile() ProfileSpec

	CreateRHCSClusterByProfile(token string) (string, error)
	DestroyRHCSClusterResources(token string) error
	GenerateClusterCreationArgs(token string) (*exec.ClusterArgs, error)
	RetrieveClusterID() (string, error)

	// This will create a new profile handler with a different TF workspace (adding `-dup` suffix to current)
	Duplicate() ProfileHandler
	DuplicateRandom() ProfileHandler
}

func NewProfileHandlerFromYamlFile

func NewProfileHandlerFromYamlFile() (handler ProfileHandler, err error)

func NewRandomProfileHandler

func NewRandomProfileHandler(clusterTypes ...constants.ClusterType) (handler ProfileHandler, err error)

type ProfilePrepare

type ProfilePrepare interface {
	PrepareVPC(multiZone bool, azIDs []string, name string, sharedVpcAWSSharedCredentialsFile string) (*exec.VPCOutput, error)
	PrepareAdditionalSecurityGroups(vpcID string, sgNumbers int) ([]string, error)
	PrepareAccountRoles(token string, accountRolePrefix string, accountRolesPath string, openshiftVersion string, channelGroup string, sharedVpcRoleArn string) (*exec.AccountRolesOutput, error)
	PrepareOIDCProviderAndOperatorRoles(token string, oidcConfigType string, operatorRolePrefix string, accountRolePrefix string, accountRolesPath string) (*exec.OIDCProviderOperatorRolesOutput, error)
	PrepareProxy(VPCID string, subnetPublicID string, keyPairID string) (*exec.ProxyOutput, error)
	PrepareKMSKey(kmsName string, accountRolePrefix string, accountRolePath string) (string, error)
	PrepareRoute53() (string, error)
	PrepareSharedVpcPolicyAndHostedZone(sharedCredentialsFile string, clusterName string, dnsDomainID string, ingressOperatorRoleArn string,
		installerRoleArn string, clusterAwsAccount string, vpcID string, subnets []string, domainPrefix string) (*exec.SharedVpcPolicyAndHostedZoneOutput, error)
	PrepareVersionAndChannelGroup() (string, string, error)
}

type ProfileServices

type ProfileServices interface {
	GetAccountRolesService() (exec.AccountRoleService, error)
	GetKMSService() (exec.KMSService, error)
	GetOIDCProviderOperatorRolesService() (exec.OIDCProviderOperatorRolesService, error)
	GetProxyService() (exec.ProxyService, error)
	GetSecurityGroupService() (exec.SecurityGroupService, error)
	GetSharedVPCPolicyAndHostedZoneService() (exec.SharedVpcPolicyAndHostedZoneService, error)
	GetVPCService() (exec.VPCService, error)
	GetVPCTagService() (exec.VPCTagService, error)
	GetClusterService() (exec.ClusterService, error)
	GetClusterAutoscalerService() (exec.ClusterAutoscalerService, error)
	GetClusterWaiterService() (exec.ClusterWaiterService, error)
	GetDnsDomainService() (exec.DnsDomainService, error)
	GetIDPService(idpType constants.IDPType) (exec.IDPService, error)
	GetIngressService() (exec.IngressService, error)
	GetImportService() (exec.ImportService, error)
	GetKubeletConfigService() (exec.KubeletConfigService, error)
	GetMachinePoolsService() (exec.MachinePoolService, error)
	GetRHCSInfoService() (exec.RhcsInfoService, error)
	GetTrustedIPsService() (exec.TrustedIPsService, error)
	GetTuningConfigService() (exec.TuningConfigService, error)
}

type ProfileSpec

type ProfileSpec interface {
	GetClusterType() constants.ClusterType
	GetRegion() string
	GetName() string
	GetChannelGroup() string
	GetVersion() string
	GetMajorVersion() string
	GetComputeMachineType() string
	GetZones() string
	GetEc2MetadataHttpTokens() string
	GetUnifiedAccRolesPath() string
	GetOIDCConfig() string
	GetAdditionalSGNumber() int
	GetComputeReplicas() int
	GetWorkerDiskSize() int
	GetImdsv2() string
	GetMachineCIDR() string
	GetServiceCIDR() string
	GetPodCIDR() string
	GetHostPrefix() int
	GetAllowedRegistries() []string
	GetBlockedRegistries() []string

	IsHCP() bool
	IsPrivateLink() bool
	IsPrivate() bool
	IsMultiAZ() bool
	IsBYOVPC() bool
	IsProxy() bool
	IsEtcd() bool
	IsDifferentEncryptionKeys() bool
	IsAutoscale() bool
	IsAdminEnabled() bool
	IsFIPS() bool
	IsLabeling() bool
	IsTagging() bool
	IsKMSKey() bool
	IsFullResources() bool
	IsUseRegistryConfig() bool
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL