profilehandler

package
v1.6.5 Latest Latest
Warning

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

Go to latest
Published: Oct 11, 2024 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConvertFilterToString

func ConvertFilterToString(qs interface{}) (filter string)

ConvertFilterToString will Convert a fileter struct to a string if "like" in the value will be keeped if no 'like' in value, the string will contains key=value if map in value the substring will be key.subkey='subvalue'

func ConvertToMap

func ConvertToMap(qs interface{}) map[string]interface{}

func ConvertToStringArray

func ConvertToStringArray(interfaceList []interface{}) []string

ConvertToStringArray will convert the []interface to []string

func ConvertToStringMap

func ConvertToStringMap(interfaceMap map[string]interface{}) map[string]string

ConvertToStringMap will convert the []interface to []string

func ElementInArray

func ElementInArray(target string, str_array []string) bool

check if one element is in the array. if yes, return true; or return false

func GetElements

func GetElements(content map[string]interface{}, element string, num ...int) interface{}

GetElements will return an array or a string get from the items based on the num If num 0 and itemkey id passed it will return the itemkey value with index 0

func GetYAMLProfilesDir

func GetYAMLProfilesDir() string

func TrimName

func TrimName(name string) string

func TrimVersion

func TrimVersion(version string, groupChannel string) string

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"`
	Version                 string   `ini:"version,omitempty" json:"version,omitempty"`                 //Specific OCP version to be specified
	VersionPattern          string   `ini:"version_pattern,omitempty" json:"version_pattern,omitempty"` //Version supports indicated version started with openshift-v or major-1 (y-1) or minor-1 (z-1)
	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 *Profile, err 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)
	PrepareVersion() string
}

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
	GetVersionPattern() 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