render

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Aug 20, 2021 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RenderClusterManifests

func RenderClusterManifests(params *ClusterParams, image *releaseinfo.ReleaseImage, pullSecret []byte, secrets *corev1.SecretList, configMaps *corev1.ConfigMapList) (map[string][]byte, error)

Types

type AvailabilityPolicy

type AvailabilityPolicy string
const (
	HighlyAvailable AvailabilityPolicy = "HighlyAvailable"
	SingleReplica   AvailabilityPolicy = "SingleReplica"
)

type ClusterParams

type ClusterParams struct {
	Namespace                 string              `json:"namespace"`
	ExternalAPIDNSName        string              `json:"externalAPIDNSName"`
	ExternalAPIAddress        string              `json:"externalAPIAddress"`
	ExternalAPIPort           uint                `json:"externalAPIPort"`
	ExternalOauthDNSName      string              `json:"externalOauthDNSName"`
	ExternalOauthPort         uint                `json:"externalOauthPort"`
	IdentityProviders         string              `json:"identityProviders"`
	ServiceCIDR               string              `json:"serviceCIDR"`
	MachineCIDR               string              `json:"machineCIDR"`
	NamedCerts                []NamedCert         `json:"namedCerts,omitempty"`
	PodCIDR                   string              `json:"podCIDR"`
	ReleaseImage              string              `json:"releaseImage"`
	IngressSubdomain          string              `json:"ingressSubdomain"`
	OpenShiftAPIClusterIP     string              `json:"openshiftAPIClusterIP"`
	OauthAPIClusterIP         string              `json:"oauthAPIClusterIP"`
	PackageServerAPIClusterIP string              `json:"packageServerAPIClusterIP"`
	ImageRegistryHTTPSecret   string              `json:"imageRegistryHTTPSecret"`
	RouterNodePortHTTP        string              `json:"routerNodePortHTTP"`
	RouterNodePortHTTPS       string              `json:"routerNodePortHTTPS"`
	BaseDomain                string              `json:"baseDomain"`
	PublicZoneID              string              `json:"publicZoneID,omitempty"`
	PrivateZoneID             string              `json:"PrivateZoneID,omitempty"`
	NetworkType               hyperv1.NetworkType `json:"networkType"`
	// APIAvailabilityPolicy defines the availability of components that support end-user facing API requests
	APIAvailabilityPolicy AvailabilityPolicy `json:"apiAvailabilityPolicy"`
	// ControllerAvailabilityPolicy defines the availability of controller components for the cluster
	ControllerAvailabilityPolicy           AvailabilityPolicy     `json:"controllerAvailabilityPolicy"`
	OriginReleasePrefix                    string                 `json:"originReleasePrefix"`
	OpenshiftAPIServerCABundle             string                 `json:"openshiftAPIServerCABundle"`
	OauthAPIServerCABundle                 string                 `json:"oauthAPIServerCABundle"`
	PackageServerCABundle                  string                 `json:"packageServerCABundle"`
	CloudProvider                          string                 `json:"cloudProvider"`
	CVOSetupImage                          string                 `json:"cvoSetupImage"`
	IssuerURL                              string                 `json:"issuerURL"`
	InternalAPIPort                        uint                   `json:"internalAPIPort"`
	RouterServiceType                      string                 `json:"routerServiceType"`
	KubeAPIServerResources                 []ResourceRequirements `json:"kubeAPIServerResources"`
	OpenshiftControllerManagerResources    []ResourceRequirements `json:"openshiftControllerManagerResources"`
	ClusterVersionOperatorResources        []ResourceRequirements `json:"clusterVersionOperatorResources"`
	KubeControllerManagerResources         []ResourceRequirements `json:"kubeControllerManagerResources"`
	OpenshiftAPIServerResources            []ResourceRequirements `json:"openshiftAPIServerResources"`
	KubeSchedulerResources                 []ResourceRequirements `json:"kubeSchedulerResources"`
	HostedClusterConfigOperatorResources   []ResourceRequirements `json:"hostedClusterConfigOperatorResources"`
	OAuthServerResources                   []ResourceRequirements `json:"oAuthServerResources"`
	ClusterPolicyControllerResources       []ResourceRequirements `json:"clusterPolicyControllerResources"`
	AutoApproverResources                  []ResourceRequirements `json:"autoApproverResources"`
	APIServerAuditEnabled                  bool                   `json:"apiServerAuditEnabled"`
	RestartDate                            string                 `json:"restartDate"`
	HostedClusterConfigOperatorControllers []string               `json:"hostedClusterConfigOperatorControllers"`
	ROKSMetricsImage                       string                 `json:"roksMetricsImage"`
	ExtraFeatureGates                      []string               `json:"extraFeatureGates"`
	HostedClusterConfigOperatorSecurity    string                 `json:"hostedClusterConfigOperatorSecurity"`
	ApiserverLivenessPath                  string                 `json:"apiserverLivenessPath"`
	PlatformType                           string                 `json:"platformType"`
	HypershiftOperatorImage                string                 `json:"hypershiftOperatorImage"`
	HypershiftOperatorResources            []ResourceRequirements `json:"hypershiftOperatorResourceRequirements"`
	HypershiftOperatorControllers          []string               `json:"hypershiftOperatorControllers"`
	MachineConfigServerAddress             string                 `json:"machineConfigServerAddress"`
	SSHKey                                 string                 `json:"sshKey"`
	InfraID                                string                 `json:"infraID"`
	FIPS                                   bool                   `json:"fips"`
	ProviderCredsSecretName                string                 `json:"providerCredsSecretName"`
	DefaultFeatureGates                    []string

	// AWS params
	AWSRegion string `json:"awsRegion"`

	// Fields below are are taken from the ROKs type
	EndpointPublishingStrategyScope string                 `json:"endpointPublishingStrategyScope"`
	ClusterID                       string                 `json:"clusterID"`
	MasterPriorityClass             string                 `json:"masterPriorityClass"`
	KMSServerResources              []ResourceRequirements `json:"kmsServerResources"`
	KMSImage                        string                 `json:"kmsImage"`
	KPInfo                          string                 `json:"kpInfo"`
	KPRegion                        string                 `json:"kpRegion"`
	KPAPIKey                        string                 `json:"kpAPIKey"`
	APINodePort                     uint                   `json:"apiNodePort"`
}

func NewClusterParams

func NewClusterParams() *ClusterParams

NewClusterParams returns a new default cluster params struct

type NamedCert

type NamedCert struct {
	NamedCertPrefix string `json:"namedCertPrefix"`
	NamedCertDomain string `json:"namedCertDomain"`
}

type PKIParams

type PKIParams struct {
	// API Server
	ExternalAPIAddress      string // An externally accessible DNS name or IP for the API server. Currently obtained from the load balancer DNS name.
	NodeInternalAPIServerIP string // A fixed IP that pods on worker nodes will use to communicate with the API server - 172.20.0.1
	ExternalAPIPort         uint   // External API server port - fixed at 6443. This is used for kubeconfig generation.
	InternalAPIPort         uint   // Internal API server network (on service network of host) - fixed at 6443. Used for kubeconfig generation.
	ServiceCIDR             string // Used to determine the internal IP address of the Kube service and generate an IP for it.

	// OAuth Server address
	ExternalOauthAddress string // An externally accessible DNS name or IP for the Oauth server. Currently obtained from Oauth load balancer DNS name.

	// Ingress
	IngressSubdomain string // Subdomain for cluster ingress. Used to generate the wildcard certificate for ingress.

	// MCO/MCS
	MachineConfigServerAddress string // An externally accessible DNS name or IP for the Machine Config Server. Currently generated using a route hostname.

	// Common
	Namespace string // Used to generate internal DNS names for services.

	// TEMPORARY - this is here during the transition away from templates in the hosted control plane controller
	RootCACert []byte
	RootCAKey  []byte
}

type ResourceLimit

type ResourceLimit struct {
	CPU    string `json:"cpu"`
	Memory string `json:"memory"`
}

type ResourceRequest

type ResourceRequest struct {
	CPU    string `json:"cpu"`
	Memory string `json:"memory"`
}

type ResourceRequirements

type ResourceRequirements struct {
	ResourceLimit   []ResourceLimit   `json:"resourceLimit"`
	ResourceRequest []ResourceRequest `json:"resourceRequest"`
}

Jump to

Keyboard shortcuts

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