v1alpha1

package
v0.5.1 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2019 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

+k8s:deepcopy-gen=package +groupName=networking.internal.knative.dev

Index

Constants

View Source
const (
	// DefaultTimeout will be set if timeout not specified.
	DefaultTimeout = 10 * time.Minute
	// DefaultRetryCount will be set if Attempts not specified.
	DefaultRetryCount = 3
)
View Source
const (
	// ClusterIngressConditionReady is set when the clusterIngress networking setting is
	// configured and it has a load balancer address.
	ClusterIngressConditionReady = duckv1alpha1.ConditionReady

	// ClusterIngressConditionNetworkConfigured is set when the ClusterIngress's underlying
	// network programming has been configured.  This doesn't include conditions of the
	// backends, so even if this should remain true when network is configured and backends
	// are not ready.
	ClusterIngressConditionNetworkConfigured duckv1alpha1.ConditionType = "NetworkConfigured"

	// ClusterIngressConditionLoadBalancerReady is set when the ClusterIngress has
	// a ready LoadBalancer.
	ClusterIngressConditionLoadBalancerReady duckv1alpha1.ConditionType = "LoadBalancerReady"
)

ConditionType represents a ClusterIngress condition value

View Source
const (
	// ServerlessServiceConditionReady is set when the clusterIngress networking setting is
	// configured and it has a load balancer address.
	ServerlessServiceConditionReady = duckv1alpha1.ConditionReady

	// ServerlessServiceConditionEndspointsPopulated is set when the ServerlessService's underlying
	// Revision K8s Service has been populated with endpoints.
	ServerlessServiceConditionEndspointsPopulated duckv1alpha1.ConditionType = "EndpointsPopulated"
)

ConditionType represents a ServerlessService condition value

View Source
const (
	// CertificateConditionReady is set when the requested certificate
	// is provioned and valid.
	CertificateCondidtionReady = duckv1alpha1.ConditionReady
)

ConditionType represents a Certificate condition value

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme
)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: networking.GroupName, Version: "v1alpha1"}

SchemeGroupVersion is group version used to register these objects

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type Certificate added in v0.5.0

type Certificate struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec is the desired state of the Certificate.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Spec CertificateSpec `json:"spec,omitempty"`

	// Status is the current state of the Certificate.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
	// +optional
	Status CertificateStatus `json:"status,omitempty"`
}

Certificate is responsible for provisioning a SSL certificate for the given hosts. It is a Knative abstraction for various SSL certificate provisioning solutions (such as cert-manager or self-signed SSL certificate).

func (*Certificate) DeepCopy added in v0.5.0

func (in *Certificate) DeepCopy() *Certificate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Certificate.

func (*Certificate) DeepCopyInto added in v0.5.0

func (in *Certificate) DeepCopyInto(out *Certificate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Certificate) DeepCopyObject added in v0.5.0

func (in *Certificate) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Certificate) GetGroupVersionKind added in v0.5.0

func (c *Certificate) GetGroupVersionKind() schema.GroupVersionKind

GetGroupVersionKind returns the GroupVersionKind of Certificate.

func (*Certificate) SetDefaults added in v0.5.0

func (c *Certificate) SetDefaults(context.Context)

SetDefaults sets the default values for Certificate. Currently it is required that all of the fields of Certificate are provisioned by the client. Therefore, SetDefaults does nothing right now.

func (*Certificate) Validate added in v0.5.0

func (c *Certificate) Validate(ctx context.Context) *apis.FieldError

Validate inspects and validates Certificate object.

type CertificateList added in v0.5.0

type CertificateList struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items is the list of `Certificate`.
	Items []Certificate `json:"items"`
}

CertificateList is a collection of `Certificate`.

func (*CertificateList) DeepCopy added in v0.5.0

func (in *CertificateList) DeepCopy() *CertificateList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateList.

func (*CertificateList) DeepCopyInto added in v0.5.0

func (in *CertificateList) DeepCopyInto(out *CertificateList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CertificateList) DeepCopyObject added in v0.5.0

func (in *CertificateList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CertificateSpec added in v0.5.0

type CertificateSpec struct {
	// DNSNames is a list of DNS names the Certificate could support.
	// The wildcard format of DNSNames (e.g. *.default.example.com) is supported.
	DNSNames []string `json:"dnsNames"`

	// SecretName is the name of the secret resource to store the SSL certificate in.
	SecretName string `json:"secretName"`
}

CertificateSpec defines the desired state of a `Certificate`.

func (*CertificateSpec) DeepCopy added in v0.5.0

func (in *CertificateSpec) DeepCopy() *CertificateSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSpec.

func (*CertificateSpec) DeepCopyInto added in v0.5.0

func (in *CertificateSpec) DeepCopyInto(out *CertificateSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CertificateSpec) Validate added in v0.5.0

func (spec *CertificateSpec) Validate(ctx context.Context) *apis.FieldError

Validate inspects and validates CertificateSpec object.

type CertificateStatus added in v0.5.0

type CertificateStatus struct {
	duckv1alpha1.Status `json:",inline"`

	// The expiration time of the TLS certificate stored in the secret named
	// by this resource in spec.secretName.
	// +optional
	NotAfter *metav1.Time `json:"notAfter,omitempty"`
}

CertificateStatus defines the observed state of a `Certificate`.

func (*CertificateStatus) DeepCopy added in v0.5.0

func (in *CertificateStatus) DeepCopy() *CertificateStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateStatus.

func (*CertificateStatus) DeepCopyInto added in v0.5.0

func (in *CertificateStatus) DeepCopyInto(out *CertificateStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CertificateStatus) GetCondition added in v0.5.0

GetCondition gets a speicifc condition of the Certificate status.

func (*CertificateStatus) InitializeConditions added in v0.5.0

func (cs *CertificateStatus) InitializeConditions()

InitializeConditions initializes the certificate conditions.

func (*CertificateStatus) IsReady added in v0.5.0

func (cs *CertificateStatus) IsReady() bool

IsReady returns true is the Certificate is ready.

func (*CertificateStatus) MarkReady added in v0.5.0

func (cs *CertificateStatus) MarkReady()

MarkReady marks the certificate as ready to use.

type ClusterIngress

type ClusterIngress struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec is the desired state of the ClusterIngress.
	// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
	// +optional
	Spec IngressSpec `json:"spec,omitempty"`

	// Status is the current state of the ClusterIngress.
	// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
	// +optional
	Status IngressStatus `json:"status,omitempty"`
}

ClusterIngress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. A ClusterIngress can be configured to give services externally-reachable URLs, load balance traffic, offer name based virtual hosting, etc.

This is heavily based on K8s Ingress https://godoc.org/k8s.io/api/extensions/v1beta1#Ingress which some highlighted modifications.

func (*ClusterIngress) DeepCopy

func (in *ClusterIngress) DeepCopy() *ClusterIngress

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterIngress.

func (*ClusterIngress) DeepCopyInto

func (in *ClusterIngress) DeepCopyInto(out *ClusterIngress)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterIngress) DeepCopyObject

func (in *ClusterIngress) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ClusterIngress) GetGroupVersionKind

func (ci *ClusterIngress) GetGroupVersionKind() schema.GroupVersionKind

func (*ClusterIngress) IsPublic added in v0.3.0

func (ci *ClusterIngress) IsPublic() bool

IsPublic returns whether the ClusterIngress should be exposed publicly.

func (*ClusterIngress) SetDefaults

func (c *ClusterIngress) SetDefaults(ctx context.Context)

func (*ClusterIngress) Validate

func (ci *ClusterIngress) Validate(ctx context.Context) *apis.FieldError

Validate inspects and validates ClusterIngress object.

type ClusterIngressBackend

type ClusterIngressBackend struct {
	// Specifies the namespace of the referenced service.
	//
	// NOTE: This differs from K8s Ingress to allow routing to different namespaces.
	ServiceNamespace string `json:"serviceNamespace"`

	// Specifies the name of the referenced service.
	ServiceName string `json:"serviceName"`

	// Specifies the port of the referenced service.
	ServicePort intstr.IntOrString `json:"servicePort"`
}

ClusterIngressBackend describes all endpoints for a given service and port.

func (*ClusterIngressBackend) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterIngressBackend.

func (*ClusterIngressBackend) DeepCopyInto

func (in *ClusterIngressBackend) DeepCopyInto(out *ClusterIngressBackend)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ClusterIngressBackend) Validate

Validate inspects the fields of the type ClusterIngressBackend to determine if they are valid.

type ClusterIngressBackendSplit

type ClusterIngressBackendSplit struct {
	// Specifies the backend receiving the traffic split.
	ClusterIngressBackend `json:",inline"`

	// Specifies the split percentage, a number between 0 and 100.  If
	// only one split is specified, we default to 100.
	//
	// NOTE: This differs from K8s Ingress to allow percentage split.
	Percent int `json:"percent,omitempty"`
}

ClusterIngressBackendSplit describes all endpoints for a given service and port.

func (*ClusterIngressBackendSplit) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterIngressBackendSplit.

func (*ClusterIngressBackendSplit) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ClusterIngressBackendSplit) Validate

Validate inspects and validates HTTPClusterIngressPath object.

type ClusterIngressList

type ClusterIngressList struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object metadata.
	// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items is the list of ClusterIngress objects.
	Items []ClusterIngress `json:"items"`
}

ClusterIngressList is a collection of ClusterIngress objects.

func (*ClusterIngressList) DeepCopy

func (in *ClusterIngressList) DeepCopy() *ClusterIngressList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterIngressList.

func (*ClusterIngressList) DeepCopyInto

func (in *ClusterIngressList) DeepCopyInto(out *ClusterIngressList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterIngressList) DeepCopyObject

func (in *ClusterIngressList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClusterIngressRule

type ClusterIngressRule struct {
	// Host is the fully qualified domain name of a network host, as defined
	// by RFC 3986. Note the following deviations from the "host" part of the
	// URI as defined in the RFC:
	// 1. IPs are not allowed. Currently a rule value can only apply to the
	//	  IP in the Spec of the parent ClusterIngress.
	// 2. The `:` delimiter is not respected because ports are not allowed.
	//	  Currently the port of an ClusterIngress is implicitly :80 for http and
	//	  :443 for https.
	// Both these may change in the future.
	// If the host is unspecified, the ClusterIngress routes all traffic based on the
	// specified ClusterIngressRuleValue.
	// If multiple matching Hosts were provided, the first rule will take precedent.
	// +optional
	Hosts []string `json:"hosts,omitempty"`

	// HTTP represents a rule to apply against incoming requests. If the
	// rule is satisfied, the request is routed to the specified backend.
	HTTP *HTTPClusterIngressRuleValue `json:"http,omitempty"`
}

ClusterIngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching ClusterIngressRuleValue.

func (*ClusterIngressRule) DeepCopy

func (in *ClusterIngressRule) DeepCopy() *ClusterIngressRule

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterIngressRule.

func (*ClusterIngressRule) DeepCopyInto

func (in *ClusterIngressRule) DeepCopyInto(out *ClusterIngressRule)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterIngressRule) SetDefaults

func (r *ClusterIngressRule) SetDefaults(ctx context.Context)

func (*ClusterIngressRule) Validate

func (r *ClusterIngressRule) Validate(ctx context.Context) *apis.FieldError

Validate inspects and validates ClusterIngressRule object.

type ClusterIngressTLS

type ClusterIngressTLS struct {
	// Hosts is a list of hosts included in the TLS certificate. The values in
	// this list must match the name/s used in the tlsSecret. Defaults to the
	// wildcard host setting for the loadbalancer controller fulfilling this
	// ClusterIngress, if left unspecified.
	// +optional
	Hosts []string `json:"hosts,omitempty"`

	// SecretName is the name of the secret used to terminate SSL traffic.
	SecretName string `json:"secretName,omitempty"`

	// SecretNamespace is the namespace of the secret used to terminate SSL traffic.
	SecretNamespace string `json:"secretNamespace,omitempty"`

	// ServerCertificate identifies the certificate filename in the secret.
	// Defaults to `tls.cert`.
	// +optional
	ServerCertificate string `json:"serverCertificate,omitempty"`

	// PrivateKey identifies the private key filename in the secret.
	// Defaults to `tls.key`.
	// +optional
	PrivateKey string `json:"privateKey,omitempty"`
}

ClusterIngressTLS describes the transport layer security associated with an ClusterIngress.

func (*ClusterIngressTLS) DeepCopy

func (in *ClusterIngressTLS) DeepCopy() *ClusterIngressTLS

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterIngressTLS.

func (*ClusterIngressTLS) DeepCopyInto

func (in *ClusterIngressTLS) DeepCopyInto(out *ClusterIngressTLS)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterIngressTLS) SetDefaults

func (t *ClusterIngressTLS) SetDefaults(ctx context.Context)

func (*ClusterIngressTLS) Validate

func (t *ClusterIngressTLS) Validate(ctx context.Context) *apis.FieldError

Validate inspects and validates ClusterIngressTLS object.

type HTTPClusterIngressPath

type HTTPClusterIngressPath struct {
	// Path is an extended POSIX regex as defined by IEEE Std 1003.1,
	// (i.e this follows the egrep/unix syntax, not the perl syntax)
	// matched against the path of an incoming request. Currently it can
	// contain characters disallowed from the conventional "path"
	// part of a URL as defined by RFC 3986. Paths must begin with
	// a '/'. If unspecified, the path defaults to a catch all sending
	// traffic to the backend.
	// +optional
	Path string `json:"path,omitempty"`

	// Splits defines the referenced service endpoints to which the traffic
	// will be forwarded to.
	Splits []ClusterIngressBackendSplit `json:"splits"`

	// AppendHeaders allow specifying additional HTTP headers to add
	// before forwarding a request to the destination service.
	//
	// NOTE: This differs from K8s Ingress which doesn't allow header appending.
	// +optional
	AppendHeaders map[string]string `json:"appendHeaders,omitempty"`

	// Timeout for HTTP requests.
	//
	// NOTE: This differs from K8s Ingress which doesn't allow setting timeouts.
	// +optional
	Timeout *metav1.Duration `json:"timeout,omitempty"`

	// Retry policy for HTTP requests.
	//
	// NOTE: This differs from K8s Ingress which doesn't allow retry settings.
	// +optional
	Retries *HTTPRetry `json:"retries,omitempty"`
}

HTTPClusterIngressPath associates a path regex with a backend. Incoming URLs matching the path are forwarded to the backend.

func (*HTTPClusterIngressPath) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPClusterIngressPath.

func (*HTTPClusterIngressPath) DeepCopyInto

func (in *HTTPClusterIngressPath) DeepCopyInto(out *HTTPClusterIngressPath)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HTTPClusterIngressPath) SetDefaults

func (p *HTTPClusterIngressPath) SetDefaults(ctx context.Context)

func (HTTPClusterIngressPath) Validate

Validate inspects and validates HTTPClusterIngressPath object.

type HTTPClusterIngressRuleValue

type HTTPClusterIngressRuleValue struct {
	// A collection of paths that map requests to backends.
	//
	// If they are multiple matching paths, the first match takes precendent.
	Paths []HTTPClusterIngressPath `json:"paths"`
}

HTTPClusterIngressRuleValue is a list of http selectors pointing to backends. In the example: http://<host>/<path>?<searchpart> -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.

func (*HTTPClusterIngressRuleValue) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPClusterIngressRuleValue.

func (*HTTPClusterIngressRuleValue) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HTTPClusterIngressRuleValue) SetDefaults

func (r *HTTPClusterIngressRuleValue) SetDefaults(ctx context.Context)

func (*HTTPClusterIngressRuleValue) Validate

Validate inspects and validates HTTPClusterIngressRuleValue object.

type HTTPRetry

type HTTPRetry struct {
	// Number of retries for a given request.
	Attempts int `json:"attempts"`

	// Timeout per retry attempt for a given request. format: 1h/1m/1s/1ms. MUST BE >=1ms.
	PerTryTimeout *metav1.Duration `json:"perTryTimeout"`
}

HTTPRetry describes the retry policy to use when a HTTP request fails.

func (*HTTPRetry) DeepCopy

func (in *HTTPRetry) DeepCopy() *HTTPRetry

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRetry.

func (*HTTPRetry) DeepCopyInto

func (in *HTTPRetry) DeepCopyInto(out *HTTPRetry)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HTTPRetry) Validate

func (r *HTTPRetry) Validate(ctx context.Context) *apis.FieldError

Validate inspects and validates HTTPRetry object.

type IngressSpec

type IngressSpec struct {
	// DeprecatedGeneration was used prior in Kubernetes versions <1.11
	// when metadata.generation was not being incremented by the api server
	//
	// This property will be dropped in future Knative releases and should
	// not be used - use metadata.generation
	//
	// Tracking issue: https://github.com/knative/serving/issues/643
	//
	// +optional
	DeprecatedGeneration int64 `json:"generation,omitempty"`

	// TLS configuration. Currently ClusterIngress only supports a single TLS
	// port: 443. If multiple members of this list specify different hosts, they
	// will be multiplexed on the same port according to the hostname specified
	// through the SNI TLS extension, if the ingress controller fulfilling the
	// ingress supports SNI.
	// +optional
	TLS []ClusterIngressTLS `json:"tls,omitempty"`

	// A list of host rules used to configure the ClusterIngress.
	// +optional
	Rules []ClusterIngressRule `json:"rules,omitempty"`

	// Visibility setting.
	Visibility IngressVisibility `json:"visibility,omitempty"`
}

IngressSpec describes the ClusterIngress the user wishes to exist.

In general this follows the same shape as K8s Ingress. Some notable differences: - Backends now can have namespace: - Traffic can be split across multiple backends. - Timeout & Retry can be configured. - Headers can be appended.

func (*IngressSpec) DeepCopy

func (in *IngressSpec) DeepCopy() *IngressSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressSpec.

func (*IngressSpec) DeepCopyInto

func (in *IngressSpec) DeepCopyInto(out *IngressSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*IngressSpec) SetDefaults

func (c *IngressSpec) SetDefaults(ctx context.Context)

func (*IngressSpec) Validate

func (spec *IngressSpec) Validate(ctx context.Context) *apis.FieldError

Validate inspects and validates IngressSpec object.

type IngressStatus

type IngressStatus struct {
	duckv1alpha1.Status `json:",inline"`

	// LoadBalancer contains the current status of the load-balancer.
	// +optional
	LoadBalancer *LoadBalancerStatus `json:"loadBalancer,omitempty"`
}

IngressStatus describe the current state of the ClusterIngress.

func (*IngressStatus) DeepCopy

func (in *IngressStatus) DeepCopy() *IngressStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressStatus.

func (*IngressStatus) DeepCopyInto

func (in *IngressStatus) DeepCopyInto(out *IngressStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*IngressStatus) GetCondition

func (*IngressStatus) InitializeConditions

func (cis *IngressStatus) InitializeConditions()

func (*IngressStatus) IsReady

func (cis *IngressStatus) IsReady() bool

IsReady looks at the conditions and if the Status has a condition ClusterIngressConditionReady returns true if ConditionStatus is True

func (*IngressStatus) MarkLoadBalancerReady

func (cis *IngressStatus) MarkLoadBalancerReady(lbs []LoadBalancerIngressStatus)

MarkLoadBalancerReady marks the Ingress with ClusterIngressConditionLoadBalancerReady, and also populate the address of the load balancer.

func (*IngressStatus) MarkNetworkConfigured

func (cis *IngressStatus) MarkNetworkConfigured()

func (*IngressStatus) MarkResourceNotOwned added in v0.4.0

func (cis *IngressStatus) MarkResourceNotOwned(kind, name string)

MarkResourceNotOwned changes the "NetworkConfigured" condition to false to reflect that the resource of the given kind and name has already been created, and we do not own it.

type IngressVisibility added in v0.3.0

type IngressVisibility string

IngressVisibility describes whether the Ingress should be exposed to public gateways or not.

const (
	// IngressVisibilityExternalIP is used to denote that the Ingress
	// should be exposed via an external IP, for example a LoadBalancer
	// Service.  This is the default value for IngressVisibility.
	IngressVisibilityExternalIP IngressVisibility = "ExternalIP"
	// IngressVisibilityClusterLocal is used to denote that the Ingress
	// should be only be exposed locally to the cluster.
	IngressVisibilityClusterLocal IngressVisibility = "ClusterLocal"
)

type LoadBalancerIngressStatus

type LoadBalancerIngressStatus struct {
	// IP is set for load-balancer ingress points that are IP based
	// (typically GCE or OpenStack load-balancers)
	// +optional
	IP string `json:"ip,omitempty"`

	// Domain is set for load-balancer ingress points that are DNS based
	// (typically AWS load-balancers)
	// +optional
	Domain string `json:"domain,omitempty"`

	// DomainInternal is set if there is a cluster-local DNS name to access the Ingress.
	//
	// NOTE: This differs from K8s Ingress, since we also desire to have a cluster-local
	//       DNS name to allow routing in case of not having a mesh.
	//
	// +optional
	DomainInternal string `json:"domainInternal,omitempty"`

	// MeshOnly is set if the ClusterIngress is only load-balanced through a Service mesh.
	// +optional
	MeshOnly bool `json:"meshOnly,omitempty"`
}

LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.

func (*LoadBalancerIngressStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerIngressStatus.

func (*LoadBalancerIngressStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LoadBalancerStatus

type LoadBalancerStatus struct {
	// Ingress is a list containing ingress points for the load-balancer.
	// Traffic intended for the service should be sent to these ingress points.
	// +optional
	Ingress []LoadBalancerIngressStatus `json:"ingress,omitempty"`
}

LoadBalancerStatus represents the status of a load-balancer.

func (*LoadBalancerStatus) DeepCopy

func (in *LoadBalancerStatus) DeepCopy() *LoadBalancerStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerStatus.

func (*LoadBalancerStatus) DeepCopyInto

func (in *LoadBalancerStatus) DeepCopyInto(out *LoadBalancerStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServerlessService added in v0.5.0

type ServerlessService struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec is the desired state of the ServerlessService.
	// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
	// +optional
	Spec ServerlessServiceSpec `json:"spec,omitempty"`

	// Status is the current state of the ServerlessService.
	// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
	// +optional
	Status ServerlessServiceStatus `json:"status,omitempty"`
}

ServerlessService is a proxy for the K8s service objects containing the endpoints for the revision, whether those are endpoints of the activator or revision pods. See: https://knative.page.link/naxz for details.

func (*ServerlessService) DeepCopy added in v0.5.0

func (in *ServerlessService) DeepCopy() *ServerlessService

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerlessService.

func (*ServerlessService) DeepCopyInto added in v0.5.0

func (in *ServerlessService) DeepCopyInto(out *ServerlessService)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerlessService) DeepCopyObject added in v0.5.0

func (in *ServerlessService) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ServerlessService) GetGroupVersionKind added in v0.5.0

func (ss *ServerlessService) GetGroupVersionKind() schema.GroupVersionKind

GetGroupVersionKind returns the GVK for the ServerlessService.

func (*ServerlessService) SetDefaults added in v0.5.0

func (c *ServerlessService) SetDefaults(ctx context.Context)

SetDefaults sets default values on the ServerlessServiceSpec.

func (*ServerlessService) Validate added in v0.5.0

func (ci *ServerlessService) Validate(ctx context.Context) *apis.FieldError

Validate inspects and validates ClusterServerlessService object.

type ServerlessServiceList added in v0.5.0

type ServerlessServiceList struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
	// +optional
	metav1.ListMeta `json:"metadata,omitempty"`

	// Items is the list of ServerlessService.
	Items []ServerlessService `json:"items"`
}

ServerlessServiceList is a collection of ServerlessService.

func (*ServerlessServiceList) DeepCopy added in v0.5.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerlessServiceList.

func (*ServerlessServiceList) DeepCopyInto added in v0.5.0

func (in *ServerlessServiceList) DeepCopyInto(out *ServerlessServiceList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerlessServiceList) DeepCopyObject added in v0.5.0

func (in *ServerlessServiceList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ServerlessServiceOperationMode added in v0.5.0

type ServerlessServiceOperationMode string

ServerlessServiceOperationMode is an enumeration of the modes of operation for the ServerlessService.

const (
	// SKSOperationModeServe is reserved for the state when revision
	// pods are serving using traffic.
	SKSOperationModeServe ServerlessServiceOperationMode = "Serve"

	// SKSOperationModeProxy is reserved for the state when activator
	// pods are serving using traffic.
	SKSOperationModeProxy ServerlessServiceOperationMode = "Proxy"
)

type ServerlessServiceSpec added in v0.5.0

type ServerlessServiceSpec struct {
	// Mode describes the mode of operation of the ServerlessService.
	Mode ServerlessServiceOperationMode `json:"mode,omitempty"`

	// Selector describes the pod labels for selection of pods for the
	// revision. Same as K8s service selector.
	// See: https://kubernetes.io/docs/concepts/services-networking/service/.
	Selector map[string]string `json:"selector,omitempty"`

	// The application-layer protocol. Matches `RevisionProtocolType` set on the owning pa/revision.
	// serving imports networking, so just use string.
	ProtocolType networking.ProtocolType
}

ServerlessServiceSpec describes the ServerlessService.

func (*ServerlessServiceSpec) DeepCopy added in v0.5.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerlessServiceSpec.

func (*ServerlessServiceSpec) DeepCopyInto added in v0.5.0

func (in *ServerlessServiceSpec) DeepCopyInto(out *ServerlessServiceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerlessServiceSpec) SetDefaults added in v0.5.0

func (c *ServerlessServiceSpec) SetDefaults(ctx context.Context)

SetDefaults sets default values on the ServerlessServiceSpec.

func (*ServerlessServiceSpec) Validate added in v0.5.0

func (spec *ServerlessServiceSpec) Validate(ctx context.Context) *apis.FieldError

Validate inspects and validates ServerlessServiceSpec object.

type ServerlessServiceStatus added in v0.5.0

type ServerlessServiceStatus struct {
	duckv1alpha1.Status `json:",inline"`

	// ServiceName holds the name of a core K8s Service resource that
	// load balances over the pods backing this Revision (activator or revision).
	// +optional
	ServiceName string `json:"serviceName,omitempty"`
}

ServerlessServiceStatus describes the current state of the ServerlessService.

func (*ServerlessServiceStatus) DeepCopy added in v0.5.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerlessServiceStatus.

func (*ServerlessServiceStatus) DeepCopyInto added in v0.5.0

func (in *ServerlessServiceStatus) DeepCopyInto(out *ServerlessServiceStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerlessServiceStatus) GetCondition added in v0.5.0

GetCondition returns the value of the condition `t`.

func (*ServerlessServiceStatus) InitializeConditions added in v0.5.0

func (sss *ServerlessServiceStatus) InitializeConditions()

InitializeConditions initializes the conditions.

func (*ServerlessServiceStatus) IsReady added in v0.5.0

func (sss *ServerlessServiceStatus) IsReady() bool

IsReady returns true if ServerlessService is ready.

func (*ServerlessServiceStatus) MarkEndpointsPopulated added in v0.5.0

func (sss *ServerlessServiceStatus) MarkEndpointsPopulated()

MarkEndpointsPopulated marks the ServerlessServiceStatus endpoints populated condition to true.

Jump to

Keyboard shortcuts

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