Help us shape the future of Go! Take the 2026 Go Developer Survey

server

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Jun 30, 2022 License: Apache-2.0, BSD-2-Clause, BSD-3-Clause, + 2 more Imports: 37 Imported by: 0

Documentation

Overview

Package server defines the generic apiserver used by all iam platform.

Package server runs a http server used to provide a api to check pump health status.

Index

Constants

View Source
const (
	// RecommendedHomeDir defines the default directory used to place all iam service configurations.
	RecommendedHomeDir = ".pigpig"

	// RecommendedEnvPrefix defines the ENV prefix used by all iam service.
	RecommendedEnvPrefix = "PigPig"
)
View Source
const RedisKeyPrefix = "pigpig-service-discover-"

RedisKeyPrefix redis keys uniform prefix.

Variables

This section is empty.

Functions

func GenerateCertsForHostname

func GenerateCertsForHostname(host string, rootCA *tls.Certificate, certPath, privateKeyPath string) (*tls.Certificate, error)

GenerateCertsForHostname base on hostname, root CA, certPath and privateKeyPath return tls.Certificate.

func GetCertificate

func GetCertificate(clientHello *tls.ClientHelloInfo) (*tls.Certificate, error)

GetCertificate defines tls.GetCertificate operation.

func GetSubject

func GetSubject(host string) pkix.Name

GetSubject base on hostname return certificate subject.

func GetTlsConfig

func GetTlsConfig(rootCA CertKey) *tls.Config

GetTlsConfig initialize tlsconfig must provided a rootCA by the calls.

func LoadCertificate

func LoadCertificate(host, certPath, privkeyPath string) (*tls.Certificate, error)

LoadCertificate according to host, cert-path and private-key-path then return tls.Certificate.

func LoadConfig

func LoadConfig(cfg string, defaultName string)

LoadConfig reads in config file and ENV variables if set.

func RequestShutdown

func RequestShutdown() bool

RequestShutdown emulates a received event that is considered as shutdown signal (SIGTERM/SIGINT) This returns whether a handler was notified.

func ServeHealthCheck

func ServeHealthCheck(healthPath string, healthAddress string)

ServeHealthCheck runs a http server used to provide a api to check pump health status.

func SetupSignalHandler

func SetupSignalHandler() <-chan struct{}

SetupSignalHandler registered for SIGTERM and SIGINT. A stop channel is returned which is closed on one of these signals. If a second signal is caught, the program is terminated with exit code 1.

Types

type CertKey

type CertKey struct {
	// CertFile is a file containing a PEM-encoded certificate, and possibly the complete certificate chain
	CertFile string
	// KeyFile is a file containing a PEM-encoded private key for the certificate specified by CertFile
	KeyFile string
}

CertKey contains configuration items related to certificate.

type CertsCache

type CertsCache struct {
	CacheMap map[string]*tls.Certificate
	RootCa   CertKey
	// contains filtered or unexported fields
}

CertsCache certificate cache.

type Cluster

type Cluster struct {
	Enable         bool
	Role           string
	IsMasterHandle bool

	// Name is this cluster name
	Name string

	ClusterId string
	// LoadPolicy the current can choose load-balance policy when the role is master
	LoadPolicy string
}

Cluster contains configuration items related to cluster.

type CompletedConfig

type CompletedConfig struct {
	*Config
}

CompletedConfig is the completed configuration for GenericAPIServer.

func (CompletedConfig) New

New returns a new instance of GenericAPIServer from the given config.

type Config

type Config struct {
	SecureServing   *SecureServingInfo
	InsecureServing *InsecureServingInfo
	Middlewares     []string
	Healthz         bool
	EnableProfiling bool
	EnableMetrics   bool

	Plugins []string
	Cluster dudu.Cluster
}

Config is a structure used to configure a GenericAPIServer. Its members are sorted roughly in order of importance for composers.

func NewConfig

func NewConfig() *Config

NewConfig returns a Config struct with the default values.

func (*Config) Complete

func (c *Config) Complete() CompletedConfig

Complete fills in any fields not set that are required to have valid data and can be derived from other fields. If you're going to `ApplyOptions`, do that first. It's mutating the receiver.

type GenericProxyServer

type GenericProxyServer struct {

	// SecureServingInfo holds configuration of the TLS server.
	SecureServingInfo *SecureServingInfo

	// InsecureServingInfo holds configuration of the insecure HTTP server.
	InsecureServingInfo *InsecureServingInfo

	// ShutdownTimeout is the timeout used for server shutdown. This specifies the timeout before server
	// gracefully shutdown returns.
	ShutdownTimeout time.Duration

	Cluster dudu.Cluster

	DistributedNode *infoutil.DistributedId

	MachineId int64

	LocalNetIFAddr string

	Engine *dudu.ProxyHttpMux
	// contains filtered or unexported fields
}

GenericProxyServer contains state for an iam api server. type GenericProxyServer gin.Engine.

func (*GenericProxyServer) Close

func (s *GenericProxyServer) Close()

Close graceful shutdown the api server.

func (*GenericProxyServer) GetMachineId

func (s *GenericProxyServer) GetMachineId() error

GetMachineId get current server machine id.

func (*GenericProxyServer) InstallAPIs

func (s *GenericProxyServer) InstallAPIs()

InstallAPIs install generic apis.

func (*GenericProxyServer) InstallMiddlewares

func (s *GenericProxyServer) InstallMiddlewares()

InstallMiddlewares install generic middlewares.

func (*GenericProxyServer) InstallPlugins

func (s *GenericProxyServer) InstallPlugins()

InstallPlugins install plugin.md.

func (*GenericProxyServer) Run

func (s *GenericProxyServer) Run() error

Run spawns the http server. It only returns when the port cannot be listened on initially.

func (*GenericProxyServer) Setup

func (s *GenericProxyServer) Setup()

Setup do some setup work for gin transport.

type InsecureServingInfo

type InsecureServingInfo struct {
	Address     string
	BindAddress string
	BindPort    int
}

InsecureServingInfo holds configuration of the insecure http server.

type JwtInfo

type JwtInfo struct {
	// defaults to "iam jwt"
	Realm string
	// defaults to empty
	Key string
	// defaults to one hour
	Timeout time.Duration
	// defaults to zero
	MaxRefresh time.Duration
}

JwtInfo defines jwt fields used to create jwt authentication middleware.

type SecureServingInfo

type SecureServingInfo struct {
	BindAddress string
	BindPort    int
	CertKey     CertKey
}

SecureServingInfo holds configuration of the TLS server.

func (*SecureServingInfo) Address

func (s *SecureServingInfo) Address() string

Address join host IP address and host port number into a address string, like: 0.0.0.0:8443.

Jump to

Keyboard shortcuts

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