client

package
v0.0.0-...-25adb8f Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2024 License: Apache-2.0 Imports: 80 Imported by: 1

Documentation

Index

Constants

View Source
const (
	GatewayServiceType string = "service"
	GatewayDockerType  string = "docker"
	GatewayPodmanType  string = "podman"
	GatewayMockType    string = "mock"
)
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 = ""
)

Variables

This section is empty.

Functions

func ClusterRoleBindings

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

func ConfigSyncContainer

func ConfigSyncContainer() *corev1.Container

func Contains

func Contains(elements []uint32, element uint32) bool

func ContainsAllPolicies

func ContainsAllPolicies(elements []rbacv1.PolicyRule, included []rbacv1.PolicyRule) bool

func GatewayDetectTypeIfPresent

func GatewayDetectTypeIfPresent() (string, error)

func GetFreePort

func GetFreePort() (port int, err error)

func GetLocalLinkStatus

func GetLocalLinkStatus(cli *VanClient, namespace string, siteNameMap map[string]string) (map[string]*types.LinkStatus, error)

func OauthProxyContainer

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

Types

type AllowedBy

type AllowedBy map[string][]string

func (AllowedBy) Add

func (a AllowedBy) Add(key, policy string)

func (AllowedBy) SortedKeys

func (a AllowedBy) SortedKeys() []string

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) Dump

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 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 PolicyInfo

type PolicyInfo struct {
	AllowIncomingLinks            AllowedBy `json:"allowIncomingLinks"`
	AllowedOutgoingLinksHostnames AllowedBy `json:"allowedOutgoingLinksHostnames"`
	AllowedExposedResources       AllowedBy `json:"allowedExposedResources"`
	AllowedServices               AllowedBy `json:"allowedServices"`
}

func (*PolicyInfo) String

func (p *PolicyInfo) String() string

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 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
	OCAppsClient    openshiftapps.Interface
	RestConfig      *restclient.Config
	DynamicClient   dynamic.Interface
	DiscoveryClient *discovery.DiscoveryClient
	LinkHandler     domain.LinkHandler
}

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) ClusterRoles

func (cli *VanClient) ClusterRoles(enablePermissions bool) []*rbacv1.ClusterRole

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, 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) ConnectorTokenCreateFromTemplate

func (cli *VanClient) ConnectorTokenCreateFromTemplate(ctx context.Context, tokenName string, templateName string) (*corev1.Secret, bool, 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) GetConsoleUrl

func (cli *VanClient) GetConsoleUrl(namespace string) (string, error)

func (*VanClient) GetDiscoveryClient

func (cli *VanClient) GetDiscoveryClient() *discovery.DiscoveryClient

func (*VanClient) GetDynamicClient

func (cli *VanClient) GetDynamicClient() dynamic.Interface

func (*VanClient) GetHeadlessServiceConfiguration

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

func (*VanClient) GetIngressDefault

func (cli *VanClient) GetIngressDefault() string

func (*VanClient) GetKubeClient

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

func (*VanClient) GetNamespace

func (cli *VanClient) GetNamespace() string

func (*VanClient) GetRouteClient

func (cli *VanClient) GetRouteClient() *routev1client.RouteV1Client

func (*VanClient) GetRouterHostAliasesSpecFromTokens

func (cli *VanClient) GetRouterHostAliasesSpecFromTokens(ctx context.Context, namespace string) ([]corev1.HostAlias, error)

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) GetVanPrometheusServerSpec

func (cli *VanClient) GetVanPrometheusServerSpec(options types.SiteConfigSpec, van *types.RouterSpec)

func (*VanClient) GetVersion

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

func (*VanClient) NetworkStatus

func (cli *VanClient) NetworkStatus(ctx context.Context) (*network.NetworkStatusInfo, 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) RouterUpdateHostAliases

func (cli *VanClient) RouterUpdateHostAliases(ctx context.Context, token *corev1.Secret) (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, targetPorts map[int]int, namespace string) 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, namespace string) 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) SkupperPolicies

func (cli *VanClient) SkupperPolicies(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) 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.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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