resources

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Sep 16, 2019 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Overview

Package resources holds simple functions for synthesizing child resources from a Route resource and any relevant Route controller configuration.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FilterService

func FilterService(services []*corev1.Service, acceptFilter Filter) []*corev1.Service

FilterService applies a filter to the list of services and return the services that are accepted

func GetDesiredServiceNames

func GetDesiredServiceNames(ctx context.Context, route *v1alpha1.Route) (sets.String, error)

GetDesiredServiceNames returns a list of service names that we expect to create

func GetIngressTypeName

func GetIngressTypeName(ingress v1alpha1.IngressAccessor) string

GetIngressTypeName returns ingress type name: ClusterIngress or Ingress

func GetNames

func GetNames(services []*corev1.Service) sets.String

GetNames returns a set of service names.

func IsClusterLocalService

func IsClusterLocalService(svc *corev1.Service) bool

IsClusterLocalService returns whether a service is cluster local.

func MakeCertificates

func MakeCertificates(route *v1alpha1.Route, domainTagMap map[string]string, certClass string) []*networkingv1alpha1.Certificate

MakeCertificates creates an array of Certificate for the Route to request TLS certificates. domainTagMap is an one-to-one mapping between domain and tag, for major domain (tag-less), the value is an empty string Returns one certificate for each domain

func MakeClusterIngress

func MakeClusterIngress(
	ctx context.Context,
	r *servingv1alpha1.Route,
	tc *traffic.Config,
	tls []v1alpha1.IngressTLS,
	clusterLocalServices sets.String,
	ingressClass string,
) (v1alpha1.IngressAccessor, error)

MakeClusterIngress creates ClusterIngress to set up routing rules. Such ClusterIngress specifies which Hosts that it applies to, as well as the routing rules.

func MakeIngress

func MakeIngress(
	ctx context.Context,
	r *servingv1alpha1.Route,
	tc *traffic.Config,
	tls []v1alpha1.IngressTLS,
	clusterLocalServices sets.String,
	ingressClass string,
) (v1alpha1.IngressAccessor, error)

MakeIngress creates Ingress to set up routing rules. Such Ingress specifies which Hosts that it applies to, as well as the routing rules.

func MakeIngressSpec

func MakeIngressSpec(
	ctx context.Context,
	r *servingv1alpha1.Route,
	tls []v1alpha1.IngressTLS,
	clusterLocalServices sets.String,
	targets map[string]traffic.RevisionTargets,
) (v1alpha1.IngressSpec, error)

MakeIngressSpec creates a new IngressSpec

func MakeIngressTLS

func MakeIngressTLS(cert *v1alpha1.Certificate, hostNames []string) v1alpha1.IngressTLS

MakeIngressTLS creates IngressTLS to configure the ingress TLS.

func MakeK8sPlaceholderService

func MakeK8sPlaceholderService(ctx context.Context, route *v1alpha1.Route, targetName string) (*corev1.Service, error)

MakeK8sPlaceholderService creates a placeholder Service to prevent naming collisions. It's owned by the provided v1alpha1.Route. The purpose of this service is to provide a placeholder domain name for Istio routing.

func MakeK8sService

func MakeK8sService(ctx context.Context, route *v1alpha1.Route, targetName string, ingress netv1alpha1.IngressAccessor, isPrivate bool) (*corev1.Service, error)

MakeK8sService creates a Service that redirect to the loadbalancer specified in ClusterIngress status. It's owned by the provided v1alpha1.Route. The purpose of this service is to provide a domain name for Istio routing.

func SelectorFromRoute

func SelectorFromRoute(route *v1alpha1.Route) labels.Selector

SelectorFromRoute creates a label selector given a specific route.

Types

type Filter

type Filter func(service *corev1.Service) bool

Filter is used for applying a function to a service

Directories

Path Synopsis
Package labels holds simple functions for working with ObjectMeta labels.
Package labels holds simple functions for working with ObjectMeta labels.
Package names holds simple functions for synthesizing resource names.
Package names holds simple functions for synthesizing resource names.

Jump to

Keyboard shortcuts

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