v1

package
v0.14.3 Latest Latest
Warning

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

Go to latest
Published: Aug 17, 2020 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Overview

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

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const (
	// DefaultUserPort is the system default port value exposed on the user-container.
	DefaultUserPort = 8080

	// UserPortName is the name that will be used for the Port on the
	// Deployment and Pod created by a Revision. This name will be set regardless of if
	// a user specifies a port or the default value is chosen.
	UserPortName = "user-port"

	// QueueAdminPortName specifies the port name for
	// health check and lifecycle hooks for queue-proxy.
	QueueAdminPortName string = "http-queueadm"

	// AutoscalingQueueMetricsPortName specifies the port name to use for metrics
	// emitted by queue-proxy for autoscaler.
	AutoscalingQueueMetricsPortName = "http-autometric"

	// UserQueueMetricsPortName specifies the port name to use for metrics
	// emitted by queue-proxy for end user.
	UserQueueMetricsPortName = "http-usermetric"

	AnnotationParseErrorTypeMissing = "Missing"
	AnnotationParseErrorTypeInvalid = "Invalid"
	LabelParserErrorTypeMissing     = "Missing"
	LabelParserErrorTypeInvalid     = "Invalid"
)
View Source
const (
	// ReasonContainerMissing defines the reason for marking container healthiness status
	// as false if the a container image for the revision is missing.
	ReasonContainerMissing = "ContainerMissing"

	// ReasonDeploying defines the reason for marking revision availability status as
	// unknown if the revision is still deploying.
	ReasonDeploying = "Deploying"

	// ReasonNotOwned defines the reason for marking revision availability status as
	// false due to resource ownership issues.
	ReasonNotOwned = "NotOwned"

	// ReasonProgressDeadlineExceeded defines the reason for marking revision availability
	// status as false if progress has exceeded the deadline.
	ReasonProgressDeadlineExceeded = "ProgressDeadlineExceeded"
)
View Source
const (
	// RevisionConditionReady is set when the revision is starting to materialize
	// runtime resources, and becomes true when those resources are ready.
	RevisionConditionReady = apis.ConditionReady

	// RevisionConditionResourcesAvailable is set when underlying
	// Kubernetes resources have been provisioned.
	RevisionConditionResourcesAvailable apis.ConditionType = "ResourcesAvailable"

	// RevisionConditionContainerHealthy is set when the revision readiness check completes.
	RevisionConditionContainerHealthy apis.ConditionType = "ContainerHealthy"

	// RevisionConditionActive is set when the revision is receiving traffic.
	RevisionConditionActive apis.ConditionType = "Active"
)
View Source
const (
	// RouteConditionReady is set when the service is configured
	// and has available backends ready to receive traffic.
	RouteConditionReady = apis.ConditionReady

	// RouteConditionAllTrafficAssigned is set to False when the
	// service is not configured properly or has no available
	// backends ready to receive traffic.
	RouteConditionAllTrafficAssigned apis.ConditionType = "AllTrafficAssigned"

	// RouteConditionIngressReady is set to False when the
	// Ingress fails to become Ready.
	RouteConditionIngressReady apis.ConditionType = "IngressReady"

	// RouteConditionCertificateProvisioned is set to False when the
	// Knative Certificates fail to be provisioned for the Route.
	RouteConditionCertificateProvisioned apis.ConditionType = "CertificateProvisioned"
)
View Source
const (
	// ServiceConditionReady is set when the service is configured
	// and has available backends ready to receive traffic.
	ServiceConditionReady = apis.ConditionReady

	// ServiceConditionRoutesReady is set when the service's underlying
	// routes have reported readiness.
	ServiceConditionRoutesReady apis.ConditionType = "RoutesReady"

	// ServiceConditionConfigurationsReady is set when the service's underlying
	// configurations have reported readiness.
	ServiceConditionConfigurationsReady apis.ConditionType = "ConfigurationsReady"
)

ConditionType represents a Service condition value

View Source
const (
	// ConfigurationConditionReady is set when the configuration's latest
	// underlying revision has reported readiness.
	ConfigurationConditionReady = apis.ConditionReady
)

Variables

View Source
var (
	// SchemeBuilder registers the addKnownTypes function.
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	// AddToScheme applies all the stored functions to the scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var FuzzerFuncs = fuzzer.MergeFuzzerFuncs(
	func(codecs serializer.CodecFactory) []interface{} {
		return []interface{}{
			func(s *ConfigurationStatus, c fuzz.Continue) {
				c.FuzzNoCustom(s)

				s.Status.SetConditions(nil)

				s.InitializeConditions()
				pkgfuzzer.FuzzConditions(&s.Status, c)
			},
			func(s *RevisionStatus, c fuzz.Continue) {
				c.FuzzNoCustom(s)

				s.Status.SetConditions(nil)

				s.InitializeConditions()
				pkgfuzzer.FuzzConditions(&s.Status, c)
			},
			func(s *RouteStatus, c fuzz.Continue) {
				c.FuzzNoCustom(s)

				s.Status.SetConditions(nil)

				s.InitializeConditions()
				pkgfuzzer.FuzzConditions(&s.Status, c)
			},
			func(s *ServiceStatus, c fuzz.Continue) {
				c.FuzzNoCustom(s)

				s.Status.SetConditions(nil)

				s.InitializeConditions()
				pkgfuzzer.FuzzConditions(&s.Status, c)
			},
			func(ps *corev1.PodSpec, c fuzz.Continue) {
				c.FuzzNoCustom(ps)

				if len(ps.Containers) == 0 {

					ps.Containers = append(ps.Containers, corev1.Container{})
					c.Fuzz(&ps.Containers[0])
				}
			},
		}
	},
)

FuzzerFuncs includes fuzzing funcs for knative.dev/serving v1 types

For other examples see https://github.com/kubernetes/apimachinery/blob/master/pkg/apis/meta/fuzzer/fuzzer.go

View Source
var SchemeGroupVersion = schema.GroupVersion{Group: serving.GroupName, Version: "v1"}

SchemeGroupVersion is group version used to register these objects.

Functions

func ExitCodeReason added in v0.13.0

func ExitCodeReason(exitCode int32) string

ExitCodeReason constructs the status message from an exit code

func HasDefaultConfigurationName

func HasDefaultConfigurationName(ctx context.Context) bool

HasDefaultConfigurationName checks to see whether the given context has been marked as having a default configurationName.

func IsConfigurationCondition added in v0.13.0

func IsConfigurationCondition(t apis.ConditionType) bool

func IsRevisionCondition added in v0.13.0

func IsRevisionCondition(t apis.ConditionType) bool

IsRevisionCondition returns true if the ConditionType is a revision condition type

func IsRouteCondition added in v0.13.0

func IsRouteCondition(t apis.ConditionType) bool

IsRouteCondition returns true if the ConditionType is a route condition type

func IsServiceCondition added in v0.13.0

func IsServiceCondition(t apis.ConditionType) bool

IsServiceCondition returns true if the ConditionType is a service condition type

func IsUpgradeViaDefaulting

func IsUpgradeViaDefaulting(ctx context.Context) bool

IsUpgradeViaDefaulting checks whether we should be "defaulting" from v1alpha1 to the v1 subset.

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.

func ResourceNotOwnedMessage added in v0.13.0

func ResourceNotOwnedMessage(kind, name string) string

ResourceNotOwnedMessage constructs the status message if ownership on the resource is not right.

func RevisionContainerExitingMessage added in v0.13.0

func RevisionContainerExitingMessage(message string) string

RevisionContainerExitingMessage constructs the status message if a container fails to come up.

func RevisionContainerMissingMessage added in v0.13.0

func RevisionContainerMissingMessage(image string, message string) string

RevisionContainerMissingMessage constructs the status message if a given image cannot be pulled correctly.

func RevisionLastPinnedString added in v0.13.0

func RevisionLastPinnedString(t time.Time) string

RevisionLastPinnedString returns a string representation of the specified time

func WithDefaultConfigurationName

func WithDefaultConfigurationName(ctx context.Context) context.Context

WithDefaultConfigurationName notes on the context for nested validation that there is a default configuration name, which affects how an empty configurationName is validated.

func WithUpgradeViaDefaulting

func WithUpgradeViaDefaulting(ctx context.Context) context.Context

WithUpgradeViaDefaulting notes on the context that we want defaulting to rewrite from v1alpha1 to v1.

Types

type AnnotationParseError added in v0.13.0

type AnnotationParseError struct {
	Type  string
	Value string
	Err   error
}

+k8s:deepcopy-gen=false

type Configuration

type Configuration struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +optional
	Spec ConfigurationSpec `json:"spec,omitempty"`

	// +optional
	Status ConfigurationStatus `json:"status,omitempty"`
}

Configuration represents the "floating HEAD" of a linear history of Revisions. Users create new Revisions by updating the Configuration's spec. The "latest created" revision's name is available under status, as is the "latest ready" revision's name. See also: https://github.com/knative/serving/blob/master/docs/spec/overview.md#configuration

func (*Configuration) ConvertFrom added in v0.13.0

func (sink *Configuration) ConvertFrom(ctx context.Context, source apis.Convertible) error

ConvertFrom implements apis.Convertible

func (*Configuration) ConvertTo added in v0.13.0

func (source *Configuration) ConvertTo(ctx context.Context, sink apis.Convertible) error

ConvertTo implements apis.Convertible

func (*Configuration) DeepCopy

func (in *Configuration) DeepCopy() *Configuration

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

func (*Configuration) DeepCopyInto

func (in *Configuration) DeepCopyInto(out *Configuration)

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

func (*Configuration) DeepCopyObject

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

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

func (*Configuration) GetGroupVersionKind

func (r *Configuration) GetGroupVersionKind() schema.GroupVersionKind

GetGroupVersionKind returns the GroupVersionKind.

func (*Configuration) SetDefaults

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

SetDefaults implements apis.Defaultable

func (*Configuration) Validate

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

Validate makes sure that Configuration is properly configured.

type ConfigurationList

type ConfigurationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	Items []Configuration `json:"items"`
}

ConfigurationList is a list of Configuration resources

func (*ConfigurationList) DeepCopy

func (in *ConfigurationList) DeepCopy() *ConfigurationList

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

func (*ConfigurationList) DeepCopyInto

func (in *ConfigurationList) DeepCopyInto(out *ConfigurationList)

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

func (*ConfigurationList) DeepCopyObject

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

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

type ConfigurationSpec

type ConfigurationSpec struct {
	// Template holds the latest specification for the Revision to be stamped out.
	// +optional
	Template RevisionTemplateSpec `json:"template"`
}

ConfigurationSpec holds the desired state of the Configuration (from the client).

func (*ConfigurationSpec) DeepCopy

func (in *ConfigurationSpec) DeepCopy() *ConfigurationSpec

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

func (*ConfigurationSpec) DeepCopyInto

func (in *ConfigurationSpec) DeepCopyInto(out *ConfigurationSpec)

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

func (*ConfigurationSpec) GetTemplate added in v0.13.0

func (cs *ConfigurationSpec) GetTemplate() *RevisionTemplateSpec

GetTemplate returns a pointer to the relevant RevisionTemplateSpec field. It is never nil and should be exactly the specified template as guaranteed by validation.

func (*ConfigurationSpec) SetDefaults

func (cs *ConfigurationSpec) SetDefaults(ctx context.Context)

SetDefaults implements apis.Defaultable

func (*ConfigurationSpec) Validate

func (cs *ConfigurationSpec) Validate(ctx context.Context) *apis.FieldError

Validate implements apis.Validatable

type ConfigurationStatus

type ConfigurationStatus struct {
	duckv1.Status `json:",inline"`

	ConfigurationStatusFields `json:",inline"`
}

ConfigurationStatus communicates the observed state of the Configuration (from the controller).

func (*ConfigurationStatus) DeepCopy

func (in *ConfigurationStatus) DeepCopy() *ConfigurationStatus

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

func (*ConfigurationStatus) DeepCopyInto

func (in *ConfigurationStatus) DeepCopyInto(out *ConfigurationStatus)

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

func (*ConfigurationStatus) InitializeConditions added in v0.13.0

func (cs *ConfigurationStatus) InitializeConditions()

InitializeConditions sets the initial values to the conditions.

func (*ConfigurationStatus) IsLatestReadyRevisionNameUpToDate added in v0.13.0

func (cs *ConfigurationStatus) IsLatestReadyRevisionNameUpToDate() bool

IsLatestReadyRevisionNameUpToDate returns true if the Configuration is ready and LatestCreateRevisionName is equal to LatestReadyRevisionName. Otherwise it returns false.

func (*ConfigurationStatus) IsReady

func (cs *ConfigurationStatus) IsReady() bool

IsReady returns if the configuration is ready to serve the requested configuration.

func (*ConfigurationStatus) MarkLatestCreatedFailed added in v0.13.0

func (cs *ConfigurationStatus) MarkLatestCreatedFailed(name, message string)

func (*ConfigurationStatus) MarkLatestReadyDeleted added in v0.13.0

func (cs *ConfigurationStatus) MarkLatestReadyDeleted()

func (*ConfigurationStatus) MarkRevisionCreationFailed added in v0.13.0

func (cs *ConfigurationStatus) MarkRevisionCreationFailed(message string)

func (*ConfigurationStatus) SetLatestCreatedRevisionName added in v0.13.0

func (cs *ConfigurationStatus) SetLatestCreatedRevisionName(name string)

func (*ConfigurationStatus) SetLatestReadyRevisionName added in v0.13.0

func (cs *ConfigurationStatus) SetLatestReadyRevisionName(name string)

func (*ConfigurationStatus) Validate

func (cs *ConfigurationStatus) Validate(ctx context.Context) *apis.FieldError

Validate implements apis.Validatable

type ConfigurationStatusFields

type ConfigurationStatusFields struct {
	// LatestReadyRevisionName holds the name of the latest Revision stamped out
	// from this Configuration that has had its "Ready" condition become "True".
	// +optional
	LatestReadyRevisionName string `json:"latestReadyRevisionName,omitempty"`

	// LatestCreatedRevisionName is the last revision that was created from this
	// Configuration. It might not be ready yet, for that use LatestReadyRevisionName.
	// +optional
	LatestCreatedRevisionName string `json:"latestCreatedRevisionName,omitempty"`
}

ConfigurationStatusFields holds the fields of Configuration's status that are not generally shared. This is defined separately and inlined so that other types can readily consume these fields via duck typing.

func (*ConfigurationStatusFields) DeepCopy

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

func (*ConfigurationStatusFields) DeepCopyInto

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

func (*ConfigurationStatusFields) Validate

Validate implements apis.Validatable

type LastPinnedParseError added in v0.13.0

type LastPinnedParseError AnnotationParseError

+k8s:deepcopy-gen=false

func (LastPinnedParseError) Error added in v0.13.0

func (e LastPinnedParseError) Error() string

type Revision

type Revision struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +optional
	Spec RevisionSpec `json:"spec,omitempty"`

	// +optional
	Status RevisionStatus `json:"status,omitempty"`
}

Revision is an immutable snapshot of code and configuration. A revision references a container image. Revisions are created by updates to a Configuration.

See also: https://github.com/knative/serving/blob/master/docs/spec/overview.md#revision

func (*Revision) ConvertFrom added in v0.13.0

func (sink *Revision) ConvertFrom(ctx context.Context, source apis.Convertible) error

ConvertFrom implements apis.Convertible

func (*Revision) ConvertTo added in v0.13.0

func (source *Revision) ConvertTo(ctx context.Context, sink apis.Convertible) error

ConvertTo implements apis.Convertible

func (*Revision) DeepCopy

func (in *Revision) DeepCopy() *Revision

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

func (*Revision) DeepCopyInto

func (in *Revision) DeepCopyInto(out *Revision)

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

func (*Revision) DeepCopyObject

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

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

func (*Revision) GetGroupVersionKind

func (r *Revision) GetGroupVersionKind() schema.GroupVersionKind

GetGroupVersionKind returns the GroupVersionKind.

func (*Revision) GetLastPinned added in v0.13.0

func (r *Revision) GetLastPinned() (time.Time, error)

GetLastPinned returns the time the revision was last pinned

func (*Revision) GetProtocol added in v0.13.0

func (r *Revision) GetProtocol() (p net.ProtocolType)

GetProtocol returns the app level network protocol.

func (*Revision) IsReachable added in v0.13.0

func (r *Revision) IsReachable() bool

IsReachable returns whether or not the revision can be reached by a route.

func (*Revision) SetDefaults

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

SetDefaults implements apis.Defaultable

func (*Revision) SetLastPinned added in v0.13.0

func (r *Revision) SetLastPinned(t time.Time)

SetLastPinned sets the revision's last pinned annotations to be the specified time

func (*Revision) Validate

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

Validate ensures Revision is properly configured.

func (*Revision) ValidateLabels

func (r *Revision) ValidateLabels() (errs *apis.FieldError)

ValidateLabels function validates service labels

type RevisionList

type RevisionList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	Items []Revision `json:"items"`
}

RevisionList is a list of Revision resources

func (*RevisionList) DeepCopy

func (in *RevisionList) DeepCopy() *RevisionList

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

func (*RevisionList) DeepCopyInto

func (in *RevisionList) DeepCopyInto(out *RevisionList)

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

func (*RevisionList) DeepCopyObject

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

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

type RevisionSpec

type RevisionSpec struct {
	corev1.PodSpec `json:",inline"`

	// ContainerConcurrency specifies the maximum allowed in-flight (concurrent)
	// requests per container of the Revision.  Defaults to `0` which means
	// concurrency to the application is not limited, and the system decides the
	// target concurrency for the autoscaler.
	// +optional
	ContainerConcurrency *int64 `json:"containerConcurrency,omitempty"`

	// TimeoutSeconds holds the max duration the instance is allowed for
	// responding to a request.  If unspecified, a system default will
	// be provided.
	// +optional
	TimeoutSeconds *int64 `json:"timeoutSeconds,omitempty"`
}

RevisionSpec holds the desired state of the Revision (from the client).

func (*RevisionSpec) DeepCopy

func (in *RevisionSpec) DeepCopy() *RevisionSpec

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

func (*RevisionSpec) DeepCopyInto

func (in *RevisionSpec) DeepCopyInto(out *RevisionSpec)

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

func (*RevisionSpec) GetContainer added in v0.13.0

func (rs *RevisionSpec) GetContainer() *corev1.Container

GetContainer returns a pointer to the relevant corev1.Container field. It is never nil and should be exactly the specified container as guaranteed by validation.

func (*RevisionSpec) GetContainerConcurrency

func (rs *RevisionSpec) GetContainerConcurrency() int64

GetContainerConcurrency returns the container concurrency. If container concurrency is not set, the default value will be returned. We use the original default (0) here for backwards compatibility. Previous versions of Knative equated unspecified and zero, so to avoid changing the value used by Revisions with unspecified values when a different default is configured, we use the original default instead of the configured default to remain safe across upgrades.

func (*RevisionSpec) SetDefaults

func (rs *RevisionSpec) SetDefaults(ctx context.Context)

SetDefaults implements apis.Defaultable

func (*RevisionSpec) Validate

func (rs *RevisionSpec) Validate(ctx context.Context) *apis.FieldError

Validate implements apis.Validatable

type RevisionStatus

type RevisionStatus struct {
	duckv1.Status `json:",inline"`

	// ServiceName holds the name of a core Kubernetes Service resource that
	// load balances over the pods backing this Revision.
	// +optional
	ServiceName string `json:"serviceName,omitempty"`

	// LogURL specifies the generated logging url for this particular revision
	// based on the revision url template specified in the controller's config.
	// +optional
	LogURL string `json:"logUrl,omitempty"`

	// ImageDigest holds the resolved digest for the image specified
	// within .Spec.Container.Image. The digest is resolved during the creation
	// of Revision. This field holds the digest value regardless of whether
	// a tag or digest was originally specified in the Container object. It
	// may be empty if the image comes from a registry listed to skip resolution.
	// +optional
	ImageDigest string `json:"imageDigest,omitempty"`
}

RevisionStatus communicates the observed state of the Revision (from the controller).

func (*RevisionStatus) DeepCopy

func (in *RevisionStatus) DeepCopy() *RevisionStatus

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

func (*RevisionStatus) DeepCopyInto

func (in *RevisionStatus) DeepCopyInto(out *RevisionStatus)

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

func (*RevisionStatus) InitializeConditions added in v0.13.0

func (rs *RevisionStatus) InitializeConditions()

InitializeConditions sets the initial values to the conditions.

func (*RevisionStatus) IsActivationRequired added in v0.13.0

func (rs *RevisionStatus) IsActivationRequired() bool

IsActivationRequired returns true if activation is required.

func (*RevisionStatus) IsReady

func (rs *RevisionStatus) IsReady() bool

IsReady returns if the revision is ready to serve the requested configuration.

func (*RevisionStatus) MarkActiveFalse added in v0.13.0

func (rs *RevisionStatus) MarkActiveFalse(reason, message string)

MarkActiveFalse marks Active status on revision as False

func (*RevisionStatus) MarkActiveTrue added in v0.13.0

func (rs *RevisionStatus) MarkActiveTrue()

MarkActiveTrue marks Active status on revision as True

func (*RevisionStatus) MarkActiveUnknown added in v0.13.0

func (rs *RevisionStatus) MarkActiveUnknown(reason, message string)

MarkActiveUnknown marks Active status on revision as Unknown

func (*RevisionStatus) MarkContainerHealthyFalse added in v0.13.0

func (rs *RevisionStatus) MarkContainerHealthyFalse(reason, message string)

MarkContainerHealthyFalse marks ContainerHealthy status on revision as False

func (*RevisionStatus) MarkContainerHealthyTrue added in v0.13.0

func (rs *RevisionStatus) MarkContainerHealthyTrue()

MarkContainerHealthyTrue marks ContainerHealthy status on revision as True

func (*RevisionStatus) MarkContainerHealthyUnknown added in v0.13.0

func (rs *RevisionStatus) MarkContainerHealthyUnknown(reason, message string)

MarkContainerHealthyUnknown marks ContainerHealthy status on revision as Unknown

func (*RevisionStatus) MarkResourcesAvailableFalse added in v0.13.0

func (rs *RevisionStatus) MarkResourcesAvailableFalse(reason, message string)

MarkResourcesAvailableFalse marks ResourcesAvailable status on revision as False

func (*RevisionStatus) MarkResourcesAvailableTrue added in v0.13.0

func (rs *RevisionStatus) MarkResourcesAvailableTrue()

MarkResourcesAvailableTrue marks ResourcesAvailable status on revision as True

func (*RevisionStatus) MarkResourcesAvailableUnknown added in v0.13.0

func (rs *RevisionStatus) MarkResourcesAvailableUnknown(reason, message string)

MarkResourcesAvailableUnknown marks ResourcesAvailable status on revision as Unknown

func (*RevisionStatus) PropagateAutoscalerStatus added in v0.13.0

func (rs *RevisionStatus) PropagateAutoscalerStatus(ps *av1alpha1.PodAutoscalerStatus)

PropagateAutoscalerStatus propagates autoscaler's status to the revision's status.

func (*RevisionStatus) PropagateDeploymentStatus added in v0.13.0

func (rs *RevisionStatus) PropagateDeploymentStatus(original *appsv1.DeploymentStatus)

PropagateDeploymentStatus takes the Deployment status and applies its values to the Revision status.

func (*RevisionStatus) Validate

func (rs *RevisionStatus) Validate(ctx context.Context) *apis.FieldError

Validate implements apis.Validatable

type RevisionTemplateSpec

type RevisionTemplateSpec struct {
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +optional
	Spec RevisionSpec `json:"spec,omitempty"`
}

RevisionTemplateSpec describes the data a revision should have when created from a template. Based on: https://github.com/kubernetes/api/blob/e771f807/core/v1/types.go#L3179-L3190

func (*RevisionTemplateSpec) DeepCopy

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

func (*RevisionTemplateSpec) DeepCopyInto

func (in *RevisionTemplateSpec) DeepCopyInto(out *RevisionTemplateSpec)

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

func (*RevisionTemplateSpec) SetDefaults

func (rts *RevisionTemplateSpec) SetDefaults(ctx context.Context)

SetDefaults implements apis.Defaultable

func (*RevisionTemplateSpec) Validate

func (rts *RevisionTemplateSpec) Validate(ctx context.Context) *apis.FieldError

Validate implements apis.Validatable

func (*RevisionTemplateSpec) VerifyNameChange

func (current *RevisionTemplateSpec) VerifyNameChange(ctx context.Context, og RevisionTemplateSpec) *apis.FieldError

VerifyNameChange checks that if a user brought their own name previously that it changes at the appropriate times.

type Route

type Route struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec holds the desired state of the Route (from the client).
	// +optional
	Spec RouteSpec `json:"spec,omitempty"`

	// Status communicates the observed state of the Route (from the controller).
	// +optional
	Status RouteStatus `json:"status,omitempty"`
}

Route is responsible for configuring ingress over a collection of Revisions. Some of the Revisions a Route distributes traffic over may be specified by referencing the Configuration responsible for creating them; in these cases the Route is additionally responsible for monitoring the Configuration for "latest ready revision" changes, and smoothly rolling out latest revisions. See also: https://github.com/knative/serving/blob/master/docs/spec/overview.md#route

func (*Route) ConvertFrom added in v0.13.0

func (sink *Route) ConvertFrom(ctx context.Context, source apis.Convertible) error

ConvertFrom implements apis.Convertible

func (*Route) ConvertTo added in v0.13.0

func (source *Route) ConvertTo(ctx context.Context, sink apis.Convertible) error

ConvertTo implements apis.Convertible

func (*Route) DeepCopy

func (in *Route) DeepCopy() *Route

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

func (*Route) DeepCopyInto

func (in *Route) DeepCopyInto(out *Route)

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

func (*Route) DeepCopyObject

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

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

func (*Route) GetGroupVersionKind

func (r *Route) GetGroupVersionKind() schema.GroupVersionKind

GetGroupVersionKind returns the GroupVersionKind.

func (*Route) SetDefaults

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

SetDefaults implements apis.Defaultable

func (*Route) Validate

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

Validate makes sure that Route is properly configured.

type RouteList

type RouteList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	Items []Route `json:"items"`
}

RouteList is a list of Route resources

func (*RouteList) DeepCopy

func (in *RouteList) DeepCopy() *RouteList

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

func (*RouteList) DeepCopyInto

func (in *RouteList) DeepCopyInto(out *RouteList)

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

func (*RouteList) DeepCopyObject

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

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

type RouteSpec

type RouteSpec struct {
	// Traffic specifies how to distribute traffic over a collection of
	// revisions and configurations.
	// +optional
	Traffic []TrafficTarget `json:"traffic,omitempty"`
}

RouteSpec holds the desired state of the Route (from the client).

func (*RouteSpec) DeepCopy

func (in *RouteSpec) DeepCopy() *RouteSpec

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

func (*RouteSpec) DeepCopyInto

func (in *RouteSpec) DeepCopyInto(out *RouteSpec)

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

func (*RouteSpec) SetDefaults

func (rs *RouteSpec) SetDefaults(ctx context.Context)

SetDefaults implements apis.Defaultable

func (*RouteSpec) Validate

func (rs *RouteSpec) Validate(ctx context.Context) *apis.FieldError

Validate implements apis.Validatable

type RouteStatus

type RouteStatus struct {
	duckv1.Status `json:",inline"`

	RouteStatusFields `json:",inline"`
}

RouteStatus communicates the observed state of the Route (from the controller).

func (*RouteStatus) DeepCopy

func (in *RouteStatus) DeepCopy() *RouteStatus

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

func (*RouteStatus) DeepCopyInto

func (in *RouteStatus) DeepCopyInto(out *RouteStatus)

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

func (*RouteStatus) InitializeConditions added in v0.13.0

func (rs *RouteStatus) InitializeConditions()

InitializeConditions sets the initial values to the conditions.

func (*RouteStatus) IsReady

func (rs *RouteStatus) IsReady() bool

IsReady returns if the route is ready to serve the requested configuration.

func (*RouteStatus) MarkCertificateNotOwned added in v0.13.0

func (rs *RouteStatus) MarkCertificateNotOwned(name string)

func (*RouteStatus) MarkCertificateNotReady added in v0.13.0

func (rs *RouteStatus) MarkCertificateNotReady(name string)

func (*RouteStatus) MarkCertificateProvisionFailed added in v0.13.0

func (rs *RouteStatus) MarkCertificateProvisionFailed(name string)

func (*RouteStatus) MarkCertificateReady added in v0.13.0

func (rs *RouteStatus) MarkCertificateReady(name string)

func (*RouteStatus) MarkConfigurationFailed added in v0.13.0

func (rs *RouteStatus) MarkConfigurationFailed(name string)

func (*RouteStatus) MarkConfigurationNotReady added in v0.13.0

func (rs *RouteStatus) MarkConfigurationNotReady(name string)

func (*RouteStatus) MarkIngressNotConfigured added in v0.13.0

func (rs *RouteStatus) MarkIngressNotConfigured()

MarkIngressNotConfigured changes the IngressReady condition to be unknown to reflect that the Ingress does not yet have a Status

func (*RouteStatus) MarkMissingTrafficTarget added in v0.13.0

func (rs *RouteStatus) MarkMissingTrafficTarget(kind, name string)

func (*RouteStatus) MarkRevisionFailed added in v0.13.0

func (rs *RouteStatus) MarkRevisionFailed(name string)

func (*RouteStatus) MarkRevisionNotReady added in v0.13.0

func (rs *RouteStatus) MarkRevisionNotReady(name string)

func (*RouteStatus) MarkServiceNotOwned added in v0.13.0

func (rs *RouteStatus) MarkServiceNotOwned(name string)

MarkServiceNotOwned changes the IngressReady status to be false with the reason being that there is a pre-existing placeholder service with the name we wanted to use.

func (*RouteStatus) MarkTrafficAssigned added in v0.13.0

func (rs *RouteStatus) MarkTrafficAssigned()

func (*RouteStatus) MarkUnknownTrafficError added in v0.13.0

func (rs *RouteStatus) MarkUnknownTrafficError(msg string)

func (*RouteStatus) PropagateIngressStatus added in v0.13.0

func (rs *RouteStatus) PropagateIngressStatus(cs v1alpha1.IngressStatus)

PropagateIngressStatus update RouteConditionIngressReady condition in RouteStatus according to IngressStatus.

func (*RouteStatus) Validate

func (rs *RouteStatus) Validate(ctx context.Context) *apis.FieldError

Validate implements apis.Validatable.

type RouteStatusFields

type RouteStatusFields struct {
	// URL holds the url that will distribute traffic over the provided traffic targets.
	// It generally has the form http[s]://{route-name}.{route-namespace}.{cluster-level-suffix}
	// +optional
	URL *apis.URL `json:"url,omitempty"`

	// Address holds the information needed for a Route to be the target of an event.
	// +optional
	Address *duckv1.Addressable `json:"address,omitempty"`

	// Traffic holds the configured traffic distribution.
	// These entries will always contain RevisionName references.
	// When ConfigurationName appears in the spec, this will hold the
	// LatestReadyRevisionName that we last observed.
	// +optional
	Traffic []TrafficTarget `json:"traffic,omitempty"`
}

RouteStatusFields holds the fields of Route's status that are not generally shared. This is defined separately and inlined so that other types can readily consume these fields via duck typing.

func (*RouteStatusFields) DeepCopy

func (in *RouteStatusFields) DeepCopy() *RouteStatusFields

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

func (*RouteStatusFields) DeepCopyInto

func (in *RouteStatusFields) DeepCopyInto(out *RouteStatusFields)

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

func (*RouteStatusFields) Validate

func (rsf *RouteStatusFields) Validate(ctx context.Context) *apis.FieldError

Validate implements apis.Validatable.

type Service

type Service struct {
	metav1.TypeMeta `json:",inline"`
	// +optional
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +optional
	Spec ServiceSpec `json:"spec,omitempty"`

	// +optional
	Status ServiceStatus `json:"status,omitempty"`
}

Service acts as a top-level container that manages a Route and Configuration which implement a network service. Service exists to provide a singular abstraction which can be access controlled, reasoned about, and which encapsulates software lifecycle decisions such as rollout policy and team resource ownership. Service acts only as an orchestrator of the underlying Routes and Configurations (much as a kubernetes Deployment orchestrates ReplicaSets), and its usage is optional but recommended.

The Service's controller will track the statuses of its owned Configuration and Route, reflecting their statuses and conditions as its own.

See also: https://github.com/knative/serving/blob/master/docs/spec/overview.md#service

func (*Service) ConvertFrom added in v0.13.0

func (sink *Service) ConvertFrom(ctx context.Context, source apis.Convertible) error

ConvertFrom implements apis.Convertible

func (*Service) ConvertTo added in v0.13.0

func (source *Service) ConvertTo(ctx context.Context, sink apis.Convertible) error

ConvertTo implements apis.Convertible

func (*Service) DeepCopy

func (in *Service) DeepCopy() *Service

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

func (*Service) DeepCopyInto

func (in *Service) DeepCopyInto(out *Service)

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

func (*Service) DeepCopyObject

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

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

func (*Service) GetGroupVersionKind

func (s *Service) GetGroupVersionKind() schema.GroupVersionKind

GetGroupVersionKind returns the GroupVersionKind.

func (*Service) SetDefaults

func (s *Service) SetDefaults(ctx context.Context)

SetDefaults implements apis.Defaultable

func (*Service) Validate

func (s *Service) Validate(ctx context.Context) (errs *apis.FieldError)

Validate makes sure that Service is properly configured.

type ServiceList

type ServiceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	Items []Service `json:"items"`
}

ServiceList is a list of Service resources

func (*ServiceList) DeepCopy

func (in *ServiceList) DeepCopy() *ServiceList

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

func (*ServiceList) DeepCopyInto

func (in *ServiceList) DeepCopyInto(out *ServiceList)

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

func (*ServiceList) DeepCopyObject

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

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

type ServiceSpec

type ServiceSpec struct {
	// ServiceSpec inlines an unrestricted ConfigurationSpec.
	ConfigurationSpec `json:",inline"`

	// ServiceSpec inlines RouteSpec and restricts/defaults its fields
	// via webhook.  In particular, this spec can only reference this
	// Service's configuration and revisions (which also influences
	// defaults).
	RouteSpec `json:",inline"`
}

ServiceSpec represents the configuration for the Service object. A Service's specification is the union of the specifications for a Route and Configuration. The Service restricts what can be expressed in these fields, e.g. the Route must reference the provided Configuration; however, these limitations also enable friendlier defaulting, e.g. Route never needs a Configuration name, and may be defaulted to the appropriate "run latest" spec.

func (*ServiceSpec) DeepCopy

func (in *ServiceSpec) DeepCopy() *ServiceSpec

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

func (*ServiceSpec) DeepCopyInto

func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec)

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

func (*ServiceSpec) SetDefaults

func (ss *ServiceSpec) SetDefaults(ctx context.Context)

SetDefaults implements apis.Defaultable

func (*ServiceSpec) Validate

func (ss *ServiceSpec) Validate(ctx context.Context) *apis.FieldError

Validate implements apis.Validatable

type ServiceStatus

type ServiceStatus struct {
	duckv1.Status `json:",inline"`

	// In addition to inlining ConfigurationSpec, we also inline the fields
	// specific to ConfigurationStatus.
	ConfigurationStatusFields `json:",inline"`

	// In addition to inlining RouteSpec, we also inline the fields
	// specific to RouteStatus.
	RouteStatusFields `json:",inline"`
}

ServiceStatus represents the Status stanza of the Service resource.

func (*ServiceStatus) DeepCopy

func (in *ServiceStatus) DeepCopy() *ServiceStatus

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

func (*ServiceStatus) DeepCopyInto

func (in *ServiceStatus) DeepCopyInto(out *ServiceStatus)

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

func (*ServiceStatus) InitializeConditions added in v0.13.0

func (ss *ServiceStatus) InitializeConditions()

InitializeConditions sets the initial values to the conditions.

func (*ServiceStatus) IsReady

func (ss *ServiceStatus) IsReady() bool

IsReady returns if the service is ready to serve the requested configuration.

func (*ServiceStatus) MarkConfigurationNotOwned added in v0.13.0

func (ss *ServiceStatus) MarkConfigurationNotOwned(name string)

MarkConfigurationNotOwned surfaces a failure via the ConfigurationsReady status noting that the Configuration with the name we want has already been created and we do not own it.

func (*ServiceStatus) MarkConfigurationNotReconciled added in v0.13.0

func (ss *ServiceStatus) MarkConfigurationNotReconciled()

MarkConfigurationNotReconciled notes that the Configuration controller has not yet caught up to the desired changes we have specified.

func (*ServiceStatus) MarkRevisionNameTaken added in v0.13.0

func (ss *ServiceStatus) MarkRevisionNameTaken(name string)

MarkRevisionNameTaken notes that the Route has not been programmed because the revision name is taken by a conflicting revision definition.

func (*ServiceStatus) MarkRouteNotOwned added in v0.13.0

func (ss *ServiceStatus) MarkRouteNotOwned(name string)

MarkRouteNotOwned surfaces a failure via the RoutesReady status noting that the Route with the name we want has already been created and we do not own it.

func (*ServiceStatus) MarkRouteNotReconciled added in v0.13.0

func (ss *ServiceStatus) MarkRouteNotReconciled()

MarkRouteNotReconciled notes that the Route controller has not yet caught up to the desired changes we have specified.

func (*ServiceStatus) MarkRouteNotYetReady added in v0.13.0

func (ss *ServiceStatus) MarkRouteNotYetReady()

MarkRouteNotYetReady marks the service `RouteReady` condition to the `Unknown` state. See: #2430, for details.

func (*ServiceStatus) PropagateConfigurationStatus added in v0.13.0

func (ss *ServiceStatus) PropagateConfigurationStatus(cs *ConfigurationStatus)

PropagateConfigurationStatus takes the Configuration status and applies its values to the Service status.

func (*ServiceStatus) PropagateRouteStatus added in v0.13.0

func (ss *ServiceStatus) PropagateRouteStatus(rs *RouteStatus)

PropagateRouteStatus propagates route's status to the service's status.

func (*ServiceStatus) Validate

func (ss *ServiceStatus) Validate(ctx context.Context) *apis.FieldError

Validate implements apis.Validatable

type TrafficTarget

type TrafficTarget struct {
	// Tag is optionally used to expose a dedicated url for referencing
	// this target exclusively.
	// +optional
	Tag string `json:"tag,omitempty"`

	// RevisionName of a specific revision to which to send this portion of
	// traffic.  This is mutually exclusive with ConfigurationName.
	// +optional
	RevisionName string `json:"revisionName,omitempty"`

	// ConfigurationName of a configuration to whose latest revision we will send
	// this portion of traffic. When the "status.latestReadyRevisionName" of the
	// referenced configuration changes, we will automatically migrate traffic
	// from the prior "latest ready" revision to the new one.  This field is never
	// set in Route's status, only its spec.  This is mutually exclusive with
	// RevisionName.
	// +optional
	ConfigurationName string `json:"configurationName,omitempty"`

	// LatestRevision may be optionally provided to indicate that the latest
	// ready Revision of the Configuration should be used for this traffic
	// target.  When provided LatestRevision must be true if RevisionName is
	// empty; it must be false when RevisionName is non-empty.
	// +optional
	LatestRevision *bool `json:"latestRevision,omitempty"`

	// Percent indicates that percentage based routing should be used and
	// the value indicates the percent of traffic that is be routed to this
	// Revision or Configuration. `0` (zero) mean no traffic, `100` means all
	// traffic.
	// When percentage based routing is being used the follow rules apply:
	// - the sum of all percent values must equal 100
	// - when not specified, the implied value for `percent` is zero for
	//   that particular Revision or Configuration
	// +optional
	Percent *int64 `json:"percent,omitempty"`

	// URL displays the URL for accessing named traffic targets. URL is displayed in
	// status, and is disallowed on spec. URL must contain a scheme (e.g. http://) and
	// a hostname, but may not contain anything else (e.g. basic auth, url path, etc.)
	// +optional
	URL *apis.URL `json:"url,omitempty"`
}

TrafficTarget holds a single entry of the routing table for a Route.

func (*TrafficTarget) DeepCopy

func (in *TrafficTarget) DeepCopy() *TrafficTarget

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

func (*TrafficTarget) DeepCopyInto

func (in *TrafficTarget) DeepCopyInto(out *TrafficTarget)

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

func (*TrafficTarget) SetDefaults

func (tt *TrafficTarget) SetDefaults(ctx context.Context)

SetDefaults implements apis.Defaultable

func (*TrafficTarget) Validate

func (tt *TrafficTarget) Validate(ctx context.Context) *apis.FieldError

Validate verifies that TrafficTarget is properly configured.

Jump to

Keyboard shortcuts

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