client

package
Version: v0.0.0-...-58ad534 Latest Latest
Warning

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

Go to latest
Published: Jul 4, 2022 License: Apache-2.0 Imports: 62 Imported by: 10

Documentation

Index

Constants

View Source
const (
	GatewayServiceType string = "service"
	GatewayDockerType  string = "docker"
	GatewayPodmanType  string = "podman"
	GatewayMockType    string = "mock"
)
View Source
const (
	RouterImageEnvKey                 string = "QDROUTERD_IMAGE"
	ServiceControllerImageEnvKey      string = "SKUPPER_SERVICE_CONTROLLER_IMAGE"
	ConfigSyncImageEnvKey             string = "SKUPPER_CONFIG_SYNC_IMAGE"
	RouterPullPolicyEnvKey            string = "QDROUTERD_IMAGE_PULL_POLICY"
	ServiceControllerPullPolicyEnvKey string = "SKUPPER_SERVICE_CONTROLLER_IMAGE_PULL_POLICY"
	ConfigSyncPullPolicyEnvKey        string = "SKUPPER_CONFIG_SYNC_IMAGE_PULL_POLICY"
)
View Source
const (
	DefaultRouterImage            string = "quay.io/skupper/skupper-router:main"
	DefaultServiceControllerImage string = "quay.io/skupper/service-controller:master"
	DefaultConfigSyncImage        string = "quay.io/skupper/config-sync:master"
)
View Source
const (
	ValidRfc1123Label                = `^(` + ValidRfc1123LabelKey + `)+=(` + ValidRfc1123LabelValue + `)+(,(` + ValidRfc1123LabelKey + `)+=(` + ValidRfc1123LabelValue + `)+)*$`
	ValidRfc1123LabelKey             = "[a-z0-9]([-._a-z0-9]*[a-z0-9])*"
	ValidRfc1123LabelValue           = "[a-zA-Z0-9]([-._a-zA-Z0-9]*[a-zA-Z0-9])*"
	DefaultSkupperExtraLabels string = ""
)
View Source
const (
	//core options
	SiteConfigNameKey                string = "name"
	SiteConfigRouterModeKey          string = "router-mode"
	SiteConfigIngressKey             string = "ingress"
	SiteConfigIngressAnnotationsKey  string = "ingress-annotations"
	SiteConfigIngressHostKey         string = "ingress-host"
	SiteConfigCreateNetworkPolicyKey string = "create-network-policy"
	SiteConfigRoutersKey             string = "routers"

	//console options
	SiteConfigConsoleKey               string = "console"
	SiteConfigConsoleAuthenticationKey string = "console-authentication"
	SiteConfigConsoleUserKey           string = "console-user"
	SiteConfigConsolePasswordKey       string = "console-password"
	SiteConfigConsoleIngressKey        string = "console-ingress"

	//router options
	SiteConfigRouterConsoleKey            string = "router-console"
	SiteConfigRouterLoggingKey            string = "router-logging"
	SiteConfigRouterDebugModeKey          string = "router-debug-mode"
	SiteConfigRouterCpuKey                string = "router-cpu"
	SiteConfigRouterMemoryKey             string = "router-memory"
	SiteConfigRouterCpuLimitKey           string = "router-cpu-limit"
	SiteConfigRouterMemoryLimitKey        string = "router-memory-limit"
	SiteConfigRouterAffinityKey           string = "router-pod-affinity"
	SiteConfigRouterAntiAffinityKey       string = "router-pod-antiaffinity"
	SiteConfigRouterNodeSelectorKey       string = "router-node-selector"
	SiteConfigRouterMaxFrameSizeKey       string = "xp-router-max-frame-size"
	SiteConfigRouterMaxSessionFramesKey   string = "xp-router-max-session-frames"
	SiteConfigRouterIngressHostKey        string = "router-ingress-host"
	SiteConfigRouterServiceAnnotationsKey string = "router-service-annotations"
	SiteConfigRouterLoadBalancerIp        string = "router-load-balancer-ip"

	//controller options
	SiteConfigServiceControllerKey            string = "service-controller"
	SiteConfigServiceSyncKey                  string = "service-sync"
	SiteConfigControllerCpuKey                string = "controller-cpu"
	SiteConfigControllerMemoryKey             string = "controller-memory"
	SiteConfigControllerCpuLimitKey           string = "controller-cpu-limit"
	SiteConfigControllerMemoryLimitKey        string = "controller-memory-limit"
	SiteConfigControllerAffinityKey           string = "controller-pod-affinity"
	SiteConfigControllerAntiAffinityKey       string = "controller-pod-antiaffinity"
	SiteConfigControllerNodeSelectorKey       string = "controller-node-selector"
	SiteConfigControllerIngressHostKey        string = "controller-ingress-host"
	SiteConfigControllerServiceAnnotationsKey string = "controller-service-annotations"
	SiteConfigControllerLoadBalancerIp        string = "controller-load-balancer-ip"

	//config-sync options
	SiteConfigConfigSyncCpuKey         string = "config-sync-cpu"
	SiteConfigConfigSyncMemoryKey      string = "config-sync-memory"
	SiteConfigConfigSyncCpuLimitKey    string = "config-sync-cpu-limit"
	SiteConfigConfigSyncMemoryLimitKey string = "config-sync-memory-limit"
)

Variables

View Source
var LoggingLevels []string = []string{
	"trace",
	"debug",
	"info",
	"notice",
	"warning",
	"error",
	"critical",
	"trace+",
	"debug+",
	"info+",
	"notice+",
	"warning+",
	"error+",
	"critical+",
}
View Source
var LoggingModules []string = []string{
	"",
	"ROUTER",
	"ROUTER_CORE",
	"ROUTER_HELLO",
	"ROUTER_LS",
	"ROUTER_MA",
	"MESSAGE",
	"SERVER",
	"AGENT",
	"AUTHSERVICE",
	"CONTAINER",
	"ERROR",
	"POLICY",
	"HTTP",
	"CONN_MGR",
	"PYTHON",
	"PROTOCOL",
	"TCP_ADAPTOR",
	"HTTP_ADAPTOR",
	"DEFAULT",
}
View Source
var Version = "undefined"

Functions

func ClusterRoleBindings

func ClusterRoleBindings(namespace string) []*rbacv1.ClusterRoleBinding

func ClusterRoles

func ClusterRoles() []*rbacv1.ClusterRole

func ConfigSyncContainer

func ConfigSyncContainer() *corev1.Container

func EdgeListener

func EdgeListener(options types.SiteConfigSpec) qdr.Listener

func GatewayDetectTypeIfPresent

func GatewayDetectTypeIfPresent() (string, error)

func GetConfigSyncImageDetails

func GetConfigSyncImageDetails() types.ImageDetails

func GetConfigSyncImageName

func GetConfigSyncImageName() string

func GetConfigSyncImagePullPolicy

func GetConfigSyncImagePullPolicy() string

func GetFreePort

func GetFreePort() (port int, err error)

func GetRouterImageDetails

func GetRouterImageDetails() types.ImageDetails

func GetRouterImageName

func GetRouterImageName() string

func GetRouterImagePullPolicy

func GetRouterImagePullPolicy() string

func GetServiceControllerImageDetails

func GetServiceControllerImageDetails() types.ImageDetails

func GetServiceControllerImageName

func GetServiceControllerImageName() string

func GetServiceControllerImagePullPolicy

func GetServiceControllerImagePullPolicy() string

func InteriorListener

func InteriorListener(options types.SiteConfigSpec) qdr.Listener

func OauthProxyContainer

func OauthProxyContainer(serviceAccount string, servicePort string) *corev1.Container

func ParseRouterLogConfig

func ParseRouterLogConfig(config string) ([]types.RouterLogConfig, error)

func RouterLogConfigToString

func RouterLogConfigToString(config []types.RouterLogConfig) string

Types

type ClusterPolicyValidator

type ClusterPolicyValidator struct {
	// contains filtered or unexported fields
}

ClusterPolicyValidator The policy validator component must be used internally by the service-controller only. Client applications must use the PolicyAPIClient (rest client).

func NewClusterPolicyValidator

func NewClusterPolicyValidator(cli *VanClient) *ClusterPolicyValidator

func (*ClusterPolicyValidator) AppliesToNS

func (p *ClusterPolicyValidator) AppliesToNS(policyName string) bool

func (*ClusterPolicyValidator) CrdDefined

func (p *ClusterPolicyValidator) CrdDefined() bool

func (*ClusterPolicyValidator) Enabled

func (p *ClusterPolicyValidator) Enabled() bool

func (*ClusterPolicyValidator) HasPermission

func (p *ClusterPolicyValidator) HasPermission() bool

func (*ClusterPolicyValidator) LoadNamespacePolicies

func (p *ClusterPolicyValidator) LoadNamespacePolicies() ([]v1alpha12.SkupperClusterPolicy, error)

func (*ClusterPolicyValidator) SetStaticPolicyList

func (p *ClusterPolicyValidator) SetStaticPolicyList(policies []v1alpha12.SkupperClusterPolicy)

func (*ClusterPolicyValidator) ValidateExpose

func (p *ClusterPolicyValidator) ValidateExpose(resourceType, resourceName string) *PolicyValidationResult

func (*ClusterPolicyValidator) ValidateImportService

func (p *ClusterPolicyValidator) ValidateImportService(serviceName string) *PolicyValidationResult
func (p *ClusterPolicyValidator) ValidateIncomingLink() *PolicyValidationResult
func (p *ClusterPolicyValidator) ValidateOutgoingLink(hostname string) *PolicyValidationResult

type GatewayConfig

type GatewayConfig struct {
	GatewayName  string                  `yaml:"name,omitempty"`
	QdrListeners []qdr.Listener          `yaml:"qdr-listeners,omitempty"`
	Bindings     []types.GatewayEndpoint `yaml:"bindings,omitempty"`
	Forwards     []types.GatewayEndpoint `yaml:"forwards,omitempty"`
}

type GatewayInstance

type GatewayInstance struct {
	WorkingDir string
	Hostname   string
	RouterID   string
}

type HostPort

type HostPort struct {
	Host string
	Port string
}

TODO: should these move to types?

type PolicyAPIClient

type PolicyAPIClient struct {
	// contains filtered or unexported fields
}

func NewPolicyValidatorAPI

func NewPolicyValidatorAPI(cli *VanClient) *PolicyAPIClient

func (*PolicyAPIClient) Expose

func (p *PolicyAPIClient) Expose(resourceType, resourceName string) (*PolicyAPIResult, error)
func (p *PolicyAPIClient) IncomingLink() (*PolicyAPIResult, error)
func (p *PolicyAPIClient) OutgoingLink(hostname string) (*PolicyAPIResult, error)

func (*PolicyAPIClient) Service

func (p *PolicyAPIClient) Service(name string) (*PolicyAPIResult, error)

func (*PolicyAPIClient) Services

func (p *PolicyAPIClient) Services(names ...string) (map[string]*PolicyAPIResult, error)

type PolicyAPIResult

type PolicyAPIResult struct {
	Allowed   bool     `json:"allowed"`
	AllowedBy []string `json:"allowedBy"`
	Enabled   bool     `json:"enabled"`
	Error     string   `json:"error"`
}

func (*PolicyAPIResult) Err

func (p *PolicyAPIResult) Err() error

type PolicyValidationResult

type PolicyValidationResult struct {
	// contains filtered or unexported fields
}

func (*PolicyValidationResult) AllowPolicies

func (*PolicyValidationResult) AllowPolicyNames

func (p *PolicyValidationResult) AllowPolicyNames() []string

func (*PolicyValidationResult) Allowed

func (p *PolicyValidationResult) Allowed() bool

func (*PolicyValidationResult) Enabled

func (p *PolicyValidationResult) Enabled() bool

func (*PolicyValidationResult) Error

func (p *PolicyValidationResult) Error() error

type RouterHostPorts

type RouterHostPorts struct {
	Edge        HostPort
	InterRouter HostPort
	Hosts       string
	LocalOnly   bool
}

type UnitInfo

type UnitInfo struct {
	IsSystemService bool
	Binary          string
	Image           string
	ConfigPath      string
	GatewayName     string
}

type VanClient

type VanClient struct {
	Namespace     string
	KubeClient    kubernetes.Interface
	RouteClient   *routev1client.RouteV1Client
	RestConfig    *restclient.Config
	DynamicClient dynamic.Interface
}

A VAN Client manages orchestration and communications with the network components

func NewClient

func NewClient(namespace string, context string, kubeConfigPath string) (*VanClient, error)

func (*VanClient) ConnectorCreate

func (cli *VanClient) ConnectorCreate(ctx context.Context, secret *corev1.Secret, options types.ConnectorCreateOptions) error

func (*VanClient) ConnectorCreateFromFile

func (cli *VanClient) ConnectorCreateFromFile(ctx context.Context, secretFile string, options types.ConnectorCreateOptions) (*corev1.Secret, error)

func (*VanClient) ConnectorCreateSecretFromData

func (cli *VanClient) ConnectorCreateSecretFromData(ctx context.Context, secretData []byte, options types.ConnectorCreateOptions) (*corev1.Secret, error)

func (*VanClient) ConnectorInspect

func (cli *VanClient) ConnectorInspect(ctx context.Context, name string) (*types.LinkStatus, error)

ConnectorInspect VAN connector instance

func (*VanClient) ConnectorList

func (cli *VanClient) ConnectorList(ctx context.Context) ([]types.LinkStatus, error)

func (*VanClient) ConnectorRemove

func (cli *VanClient) ConnectorRemove(ctx context.Context, options types.ConnectorRemoveOptions) error

func (*VanClient) ConnectorTokenCreate

func (cli *VanClient) ConnectorTokenCreate(ctx context.Context, subject string, namespace string) (*corev1.Secret, bool, error)

func (*VanClient) ConnectorTokenCreateFile

func (cli *VanClient) ConnectorTokenCreateFile(ctx context.Context, subject string, secretFile string) error

func (*VanClient) GatewayBind

func (cli *VanClient) GatewayBind(ctx context.Context, gatewayName string, endpoint types.GatewayEndpoint) error

func (*VanClient) GatewayDownload

func (cli *VanClient) GatewayDownload(ctx context.Context, gatewayName string, downloadPath string) (string, error)

func (*VanClient) GatewayExportConfig

func (cli *VanClient) GatewayExportConfig(ctx context.Context, targetGatewayName string, exportGatewayName string, exportPath string) (string, error)

func (*VanClient) GatewayExpose

func (cli *VanClient) GatewayExpose(ctx context.Context, gatewayName string, gatewayType string, endpoint types.GatewayEndpoint) (string, error)

func (*VanClient) GatewayForward

func (cli *VanClient) GatewayForward(ctx context.Context, gatewayName string, endpoint types.GatewayEndpoint) error

func (*VanClient) GatewayGenerateBundle

func (cli *VanClient) GatewayGenerateBundle(ctx context.Context, configFile string, bundlePath string) (string, error)

func (*VanClient) GatewayInit

func (cli *VanClient) GatewayInit(ctx context.Context, gatewayName string, gatewayType string, configFile string) (string, error)

func (*VanClient) GatewayInspect

func (cli *VanClient) GatewayInspect(ctx context.Context, gatewayName string) (*types.GatewayInspectResponse, error)

func (*VanClient) GatewayList

func (cli *VanClient) GatewayList(ctx context.Context) ([]*types.GatewayInspectResponse, error)

func (*VanClient) GatewayRemove

func (cli *VanClient) GatewayRemove(ctx context.Context, gatewayName string) error

func (*VanClient) GatewayUnbind

func (cli *VanClient) GatewayUnbind(ctx context.Context, gatewayName string, endpoint types.GatewayEndpoint) error

func (*VanClient) GatewayUnexpose

func (cli *VanClient) GatewayUnexpose(ctx context.Context, gatewayName string, endpoint types.GatewayEndpoint, deleteLast bool) error

func (*VanClient) GatewayUnforward

func (cli *VanClient) GatewayUnforward(ctx context.Context, gatewayName string, endpoint types.GatewayEndpoint) error

func (*VanClient) GetHeadlessServiceConfiguration

func (cli *VanClient) GetHeadlessServiceConfiguration(targetName string, protocol string, address string, ports []int) (*types.ServiceInterface, error)

func (*VanClient) GetIngressDefault

func (cli *VanClient) GetIngressDefault() string

func (*VanClient) GetKubeClient

func (cli *VanClient) GetKubeClient() kubernetes.Interface

func (*VanClient) GetMinimumCompatibleVersion

func (cli *VanClient) GetMinimumCompatibleVersion() string

func (*VanClient) GetNamespace

func (cli *VanClient) GetNamespace() string

func (*VanClient) GetRouterSpecFromOpts

func (cli *VanClient) GetRouterSpecFromOpts(options types.SiteConfigSpec, siteId string) *types.RouterSpec

func (*VanClient) GetSiteMetadata

func (cli *VanClient) GetSiteMetadata() (*qdr.SiteMetadata, error)

func (*VanClient) GetVanControllerSpec

func (cli *VanClient) GetVanControllerSpec(options types.SiteConfigSpec, van *types.RouterSpec, transport *appsv1.Deployment, siteId string)

func (*VanClient) GetVersion

func (cli *VanClient) GetVersion(component string, name string) string

func (*VanClient) NetworkStatus

func (cli *VanClient) NetworkStatus() ([]*types.SiteInfo, error)

func (*VanClient) RevokeAccess

func (cli *VanClient) RevokeAccess(ctx context.Context) error

func (*VanClient) RouterCreate

func (cli *VanClient) RouterCreate(ctx context.Context, options types.SiteConfig) error

RouterCreate instantiates a VAN (router and controller) deployment

func (*VanClient) RouterInspect

func (cli *VanClient) RouterInspect(ctx context.Context) (*types.RouterInspectResponse, error)

func (*VanClient) RouterInspectNamespace

func (cli *VanClient) RouterInspectNamespace(ctx context.Context, namespace string) (*types.RouterInspectResponse, error)

RouterInspect VAN deployment

func (*VanClient) RouterRemove

func (cli *VanClient) RouterRemove(ctx context.Context) error

RouterRemove delete a VAN (router and controller) deployment

func (*VanClient) RouterRestart

func (cli *VanClient) RouterRestart(ctx context.Context, namespace string) error

func (*VanClient) RouterUpdateAnnotations

func (cli *VanClient) RouterUpdateAnnotations(ctx context.Context, settings *corev1.ConfigMap) (bool, error)

func (*VanClient) RouterUpdateDebugMode

func (cli *VanClient) RouterUpdateDebugMode(ctx context.Context, settings *corev1.ConfigMap) (bool, error)

func (*VanClient) RouterUpdateLogging

func (cli *VanClient) RouterUpdateLogging(ctx context.Context, settings *corev1.ConfigMap, hup bool) (bool, error)

func (*VanClient) RouterUpdateVersion

func (cli *VanClient) RouterUpdateVersion(ctx context.Context, hup bool) (bool, error)

func (*VanClient) RouterUpdateVersionInNamespace

func (cli *VanClient) RouterUpdateVersionInNamespace(ctx context.Context, hup bool, namespace string) (bool, error)

func (*VanClient) ServiceInterfaceBind

func (cli *VanClient) ServiceInterfaceBind(ctx context.Context, service *types.ServiceInterface, targetType string, targetName string, protocol string, targetPorts map[int]int) error

func (*VanClient) ServiceInterfaceCreate

func (cli *VanClient) ServiceInterfaceCreate(ctx context.Context, service *types.ServiceInterface) error

func (*VanClient) ServiceInterfaceInspect

func (cli *VanClient) ServiceInterfaceInspect(ctx context.Context, address string) (*types.ServiceInterface, error)

func (*VanClient) ServiceInterfaceList

func (cli *VanClient) ServiceInterfaceList(ctx context.Context) ([]*types.ServiceInterface, error)

func (*VanClient) ServiceInterfaceRemove

func (cli *VanClient) ServiceInterfaceRemove(ctx context.Context, address string) error

func (*VanClient) ServiceInterfaceUnbind

func (cli *VanClient) ServiceInterfaceUnbind(ctx context.Context, targetType string, targetName string, address string, deleteIfNoTargets bool) error

func (*VanClient) ServiceInterfaceUpdate

func (cli *VanClient) ServiceInterfaceUpdate(ctx context.Context, service *types.ServiceInterface) error

func (*VanClient) SiteConfigCreate

func (cli *VanClient) SiteConfigCreate(ctx context.Context, spec types.SiteConfigSpec) (*types.SiteConfig, error)

func (*VanClient) SiteConfigInspect

func (cli *VanClient) SiteConfigInspect(ctx context.Context, input *corev1.ConfigMap) (*types.SiteConfig, error)

func (*VanClient) SiteConfigInspectInNamespace

func (cli *VanClient) SiteConfigInspectInNamespace(ctx context.Context, input *corev1.ConfigMap, namespace string) (*types.SiteConfig, error)

func (*VanClient) SiteConfigRemove

func (cli *VanClient) SiteConfigRemove(ctx context.Context) error

func (*VanClient) SiteConfigUpdate

func (cli *VanClient) SiteConfigUpdate(ctx context.Context, config types.SiteConfigSpec) ([]string, error)

func (*VanClient) SkupperCheckService

func (cli *VanClient) SkupperCheckService(service string, verbose bool) (*bytes.Buffer, error)

func (*VanClient) SkupperDump

func (cli *VanClient) SkupperDump(ctx context.Context, tarName string, version string, kubeConfigPath string, kubeConfigContext string) (string, error)

func (*VanClient) SkupperEvents

func (cli *VanClient) SkupperEvents(verbose bool) (*bytes.Buffer, error)

func (*VanClient) TokenClaimCreate

func (cli *VanClient) TokenClaimCreate(ctx context.Context, name string, password []byte, expiry time.Duration, uses int) (*corev1.Secret, bool, error)

func (*VanClient) TokenClaimCreateFile

func (cli *VanClient) TokenClaimCreateFile(ctx context.Context, name string, password []byte, expiry time.Duration, uses int, secretFile string) error

func (*VanClient) TokenClaimTemplateCreate

func (cli *VanClient) TokenClaimTemplateCreate(ctx context.Context, name string, password []byte, recordName string) (*corev1.Secret, *corev1.Service, bool, error)

func (*VanClient) VerifySecretCompatibility

func (cli *VanClient) VerifySecretCompatibility(secret corev1.Secret) error

VerifySecretCompatibility returns nil if current site version is compatible with the token or cert provided. If sites are not compatible an error is returned with the appropriate information

func (*VanClient) VerifySiteCompatibility

func (cli *VanClient) VerifySiteCompatibility(siteVersion string) error

VerifySiteCompatibility returns nil if current site version is compatible with the provided version, otherwise it returns a clear error.

Jump to

Keyboard shortcuts

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