forked from LaconicNetwork/kompose
added OpenShifts fork of Kubernetes
reason for this is that openshift/kubernetes backported k8s.io/kubernetes/pkg/securitycontextconstraints/util that is currently required by something that github.com/openshift/origin/pkg/deploy/api/v1 depends on
This commit is contained in:
+190
@@ -0,0 +1,190 @@
|
||||
// +build !ignore_autogenerated_openshift
|
||||
|
||||
// This file was autogenerated by deepcopy-gen. Do not edit it manually!
|
||||
|
||||
package api
|
||||
|
||||
import (
|
||||
api "k8s.io/kubernetes/pkg/api"
|
||||
unversioned "k8s.io/kubernetes/pkg/api/unversioned"
|
||||
conversion "k8s.io/kubernetes/pkg/conversion"
|
||||
intstr "k8s.io/kubernetes/pkg/util/intstr"
|
||||
)
|
||||
|
||||
func init() {
|
||||
if err := api.Scheme.AddGeneratedDeepCopyFuncs(
|
||||
DeepCopy_api_Route,
|
||||
DeepCopy_api_RouteIngress,
|
||||
DeepCopy_api_RouteIngressCondition,
|
||||
DeepCopy_api_RouteList,
|
||||
DeepCopy_api_RoutePort,
|
||||
DeepCopy_api_RouteSpec,
|
||||
DeepCopy_api_RouteStatus,
|
||||
DeepCopy_api_RouteTargetReference,
|
||||
DeepCopy_api_RouterShard,
|
||||
DeepCopy_api_TLSConfig,
|
||||
); err != nil {
|
||||
// if one of the deep copy functions is malformed, detect it immediately.
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
func DeepCopy_api_Route(in Route, out *Route, c *conversion.Cloner) error {
|
||||
if err := unversioned.DeepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := api.DeepCopy_api_ObjectMeta(in.ObjectMeta, &out.ObjectMeta, c); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := DeepCopy_api_RouteSpec(in.Spec, &out.Spec, c); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := DeepCopy_api_RouteStatus(in.Status, &out.Status, c); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_RouteIngress(in RouteIngress, out *RouteIngress, c *conversion.Cloner) error {
|
||||
out.Host = in.Host
|
||||
out.RouterName = in.RouterName
|
||||
if in.Conditions != nil {
|
||||
in, out := in.Conditions, &out.Conditions
|
||||
*out = make([]RouteIngressCondition, len(in))
|
||||
for i := range in {
|
||||
if err := DeepCopy_api_RouteIngressCondition(in[i], &(*out)[i], c); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
out.Conditions = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_RouteIngressCondition(in RouteIngressCondition, out *RouteIngressCondition, c *conversion.Cloner) error {
|
||||
out.Type = in.Type
|
||||
out.Status = in.Status
|
||||
out.Reason = in.Reason
|
||||
out.Message = in.Message
|
||||
if in.LastTransitionTime != nil {
|
||||
in, out := in.LastTransitionTime, &out.LastTransitionTime
|
||||
*out = new(unversioned.Time)
|
||||
if err := unversioned.DeepCopy_unversioned_Time(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.LastTransitionTime = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_RouteList(in RouteList, out *RouteList, c *conversion.Cloner) error {
|
||||
if err := unversioned.DeepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := unversioned.DeepCopy_unversioned_ListMeta(in.ListMeta, &out.ListMeta, c); err != nil {
|
||||
return err
|
||||
}
|
||||
if in.Items != nil {
|
||||
in, out := in.Items, &out.Items
|
||||
*out = make([]Route, len(in))
|
||||
for i := range in {
|
||||
if err := DeepCopy_api_Route(in[i], &(*out)[i], c); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
out.Items = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_RoutePort(in RoutePort, out *RoutePort, c *conversion.Cloner) error {
|
||||
if err := intstr.DeepCopy_intstr_IntOrString(in.TargetPort, &out.TargetPort, c); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_RouteSpec(in RouteSpec, out *RouteSpec, c *conversion.Cloner) error {
|
||||
out.Host = in.Host
|
||||
out.Path = in.Path
|
||||
if err := DeepCopy_api_RouteTargetReference(in.To, &out.To, c); err != nil {
|
||||
return err
|
||||
}
|
||||
if in.AlternateBackends != nil {
|
||||
in, out := in.AlternateBackends, &out.AlternateBackends
|
||||
*out = make([]RouteTargetReference, len(in))
|
||||
for i := range in {
|
||||
if err := DeepCopy_api_RouteTargetReference(in[i], &(*out)[i], c); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
out.AlternateBackends = nil
|
||||
}
|
||||
if in.Port != nil {
|
||||
in, out := in.Port, &out.Port
|
||||
*out = new(RoutePort)
|
||||
if err := DeepCopy_api_RoutePort(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Port = nil
|
||||
}
|
||||
if in.TLS != nil {
|
||||
in, out := in.TLS, &out.TLS
|
||||
*out = new(TLSConfig)
|
||||
if err := DeepCopy_api_TLSConfig(*in, *out, c); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.TLS = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_RouteStatus(in RouteStatus, out *RouteStatus, c *conversion.Cloner) error {
|
||||
if in.Ingress != nil {
|
||||
in, out := in.Ingress, &out.Ingress
|
||||
*out = make([]RouteIngress, len(in))
|
||||
for i := range in {
|
||||
if err := DeepCopy_api_RouteIngress(in[i], &(*out)[i], c); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
out.Ingress = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_RouteTargetReference(in RouteTargetReference, out *RouteTargetReference, c *conversion.Cloner) error {
|
||||
out.Kind = in.Kind
|
||||
out.Name = in.Name
|
||||
if in.Weight != nil {
|
||||
in, out := in.Weight, &out.Weight
|
||||
*out = new(int32)
|
||||
**out = *in
|
||||
} else {
|
||||
out.Weight = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_RouterShard(in RouterShard, out *RouterShard, c *conversion.Cloner) error {
|
||||
out.ShardName = in.ShardName
|
||||
out.DNSSuffix = in.DNSSuffix
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeepCopy_api_TLSConfig(in TLSConfig, out *TLSConfig, c *conversion.Cloner) error {
|
||||
out.Termination = in.Termination
|
||||
out.Certificate = in.Certificate
|
||||
out.Key = in.Key
|
||||
out.CACertificate = in.CACertificate
|
||||
out.DestinationCACertificate = in.DestinationCACertificate
|
||||
out.InsecureEdgeTerminationPolicy = in.InsecureEdgeTerminationPolicy
|
||||
return nil
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
package api
|
||||
|
||||
import "k8s.io/kubernetes/pkg/fields"
|
||||
|
||||
// RouteToSelectableFields returns a label set that represents the object
|
||||
func RouteToSelectableFields(route *Route) fields.Set {
|
||||
return fields.Set{
|
||||
"metadata.name": route.Name,
|
||||
"metadata.namespace": route.Namespace,
|
||||
"spec.path": route.Spec.Path,
|
||||
"spec.host": route.Spec.Host,
|
||||
"spec.to.name": route.Spec.To.Name,
|
||||
}
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
kapi "k8s.io/kubernetes/pkg/api"
|
||||
)
|
||||
|
||||
// IngressConditionStatus returns the first status and condition matching the provided ingress condition type. Conditions
|
||||
// prefer the first matching entry and clients are allowed to ignore later conditions of the same type.
|
||||
func IngressConditionStatus(ingress *RouteIngress, t RouteIngressConditionType) (kapi.ConditionStatus, RouteIngressCondition) {
|
||||
for _, condition := range ingress.Conditions {
|
||||
if t != condition.Type {
|
||||
continue
|
||||
}
|
||||
return condition.Status, condition
|
||||
}
|
||||
return kapi.ConditionUnknown, RouteIngressCondition{}
|
||||
}
|
||||
|
||||
func RouteLessThan(route1, route2 *Route) bool {
|
||||
if route1.CreationTimestamp.Before(route2.CreationTimestamp) {
|
||||
return true
|
||||
}
|
||||
if route1.CreationTimestamp == route2.CreationTimestamp && route1.UID < route2.UID {
|
||||
return true
|
||||
}
|
||||
if route1.Namespace < route2.Namespace {
|
||||
return true
|
||||
}
|
||||
return route1.Name < route2.Name
|
||||
}
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
)
|
||||
|
||||
const GroupName = ""
|
||||
|
||||
// SchemeGroupVersion is group version used to register these objects
|
||||
var SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
|
||||
|
||||
// Kind takes an unqualified kind and returns back a Group qualified GroupKind
|
||||
func Kind(kind string) unversioned.GroupKind {
|
||||
return SchemeGroupVersion.WithKind(kind).GroupKind()
|
||||
}
|
||||
|
||||
// Resource takes an unqualified resource and returns back a Group qualified GroupResource
|
||||
func Resource(resource string) unversioned.GroupResource {
|
||||
return SchemeGroupVersion.WithResource(resource).GroupResource()
|
||||
}
|
||||
|
||||
func AddToScheme(scheme *runtime.Scheme) {
|
||||
// Add the API to Scheme.
|
||||
addKnownTypes(scheme)
|
||||
}
|
||||
|
||||
// Adds the list of known types to api.Scheme.
|
||||
func addKnownTypes(scheme *runtime.Scheme) {
|
||||
scheme.AddKnownTypes(SchemeGroupVersion,
|
||||
&Route{},
|
||||
&RouteList{},
|
||||
)
|
||||
}
|
||||
|
||||
func (obj *Route) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
|
||||
func (obj *RouteList) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta }
|
||||
+182
@@ -0,0 +1,182 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
kapi "k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/util/intstr"
|
||||
)
|
||||
|
||||
// +genclient=true
|
||||
|
||||
// Route encapsulates the inputs needed to connect an alias to endpoints.
|
||||
type Route struct {
|
||||
unversioned.TypeMeta
|
||||
kapi.ObjectMeta
|
||||
|
||||
// Spec is the desired behavior of the route
|
||||
Spec RouteSpec
|
||||
// Status describes the current observed state of the route
|
||||
Status RouteStatus
|
||||
}
|
||||
|
||||
// RouteSpec describes the desired behavior of a route.
|
||||
type RouteSpec struct {
|
||||
// Host is an alias/DNS that points to the service. Optional
|
||||
// Must follow DNS952 subdomain conventions.
|
||||
Host string
|
||||
// Path that the router watches for, to route traffic for to the service. Optional
|
||||
Path string
|
||||
|
||||
// Objects that the route points to. Only the Service kind is allowed, and it will
|
||||
// be defaulted to Service.
|
||||
To RouteTargetReference
|
||||
|
||||
// Alternate objects that the route may want to point to. Use the 'weight' field to
|
||||
// determine which ones of the several get more emphasis
|
||||
AlternateBackends []RouteTargetReference
|
||||
|
||||
// If specified, the port to be used by the router. Most routers will use all
|
||||
// endpoints exposed by the service by default - set this value to instruct routers
|
||||
// which port to use.
|
||||
Port *RoutePort
|
||||
|
||||
//TLS provides the ability to configure certificates and termination for the route
|
||||
TLS *TLSConfig
|
||||
}
|
||||
|
||||
// RouteTargetReference specifies the target that resolve into endpoints. Only the 'Service'
|
||||
// kind is allowed. Use 'weight' field to emphasize one over others.
|
||||
type RouteTargetReference struct {
|
||||
Kind string
|
||||
Name string
|
||||
Weight *int32
|
||||
}
|
||||
|
||||
// RoutePort defines a port mapping from a router to an endpoint in the service endpoints.
|
||||
type RoutePort struct {
|
||||
// The target port on pods selected by the service this route points to.
|
||||
// If this is a string, it will be looked up as a named port in the target
|
||||
// endpoints port list. Required
|
||||
TargetPort intstr.IntOrString
|
||||
}
|
||||
|
||||
// RouteStatus provides relevant info about the status of a route, including which routers
|
||||
// acknowledge it.
|
||||
type RouteStatus struct {
|
||||
// Ingress describes the places where the route may be exposed. The list of
|
||||
// ingress points may contain duplicate Host or RouterName values. Routes
|
||||
// are considered live once they are `Ready`
|
||||
Ingress []RouteIngress
|
||||
}
|
||||
|
||||
// RouteIngress holds information about the places where a route is exposed
|
||||
type RouteIngress struct {
|
||||
// Host is the host string under which the route is exposed; this value is required
|
||||
Host string
|
||||
// Name is a name chosen by the router to identify itself; this value is required
|
||||
RouterName string
|
||||
// Conditions is the state of the route, may be empty.
|
||||
Conditions []RouteIngressCondition
|
||||
}
|
||||
|
||||
// RouteIngressConditionType is a valid value for RouteCondition
|
||||
type RouteIngressConditionType string
|
||||
|
||||
// These are valid conditions of pod.
|
||||
const (
|
||||
// RouteAdmitted means the route is able to service requests for the provided Host
|
||||
RouteAdmitted RouteIngressConditionType = "Admitted"
|
||||
// RouteExtendedValidationFailed means the route configuration failed an extended validation check.
|
||||
RouteExtendedValidationFailed RouteIngressConditionType = "ExtendedValidationFailed"
|
||||
// TODO: add other route condition types
|
||||
)
|
||||
|
||||
// RouteIngressCondition contains details for the current condition of this pod.
|
||||
// TODO: add LastTransitionTime, Reason, Message to match NodeCondition api.
|
||||
type RouteIngressCondition struct {
|
||||
// Type is the type of the condition.
|
||||
// Currently only Ready.
|
||||
Type RouteIngressConditionType
|
||||
// Status is the status of the condition.
|
||||
// Can be True, False, Unknown.
|
||||
Status kapi.ConditionStatus
|
||||
// (brief) reason for the condition's last transition, and is usually a machine and human
|
||||
// readable constant
|
||||
Reason string
|
||||
// Human readable message indicating details about last transition.
|
||||
Message string
|
||||
// RFC 3339 date and time at which the object was acknowledged by the router.
|
||||
// This may be before the router exposes the route
|
||||
LastTransitionTime *unversioned.Time
|
||||
}
|
||||
|
||||
// RouteList is a collection of Routes.
|
||||
type RouteList struct {
|
||||
unversioned.TypeMeta
|
||||
unversioned.ListMeta
|
||||
|
||||
// Items is a list of routes
|
||||
Items []Route
|
||||
}
|
||||
|
||||
// RouterShard has information of a routing shard and is used to
|
||||
// generate host names and routing table entries when a routing shard is
|
||||
// allocated for a specific route.
|
||||
type RouterShard struct {
|
||||
// ShardName uniquely identifies a router shard in the "set" of
|
||||
// routers used for routing traffic to the services.
|
||||
ShardName string
|
||||
|
||||
// DNSSuffix for the shard ala: shard-1.v3.openshift.com
|
||||
DNSSuffix string
|
||||
}
|
||||
|
||||
// TLSConfig defines config used to secure a route and provide termination
|
||||
type TLSConfig struct {
|
||||
// Termination indicates termination type.
|
||||
Termination TLSTerminationType
|
||||
|
||||
// Certificate provides certificate contents
|
||||
Certificate string
|
||||
|
||||
// Key provides key file contents
|
||||
Key string
|
||||
|
||||
// CACertificate provides the cert authority certificate contents
|
||||
CACertificate string
|
||||
|
||||
// DestinationCACertificate provides the contents of the ca certificate of the final destination. When using reencrypt
|
||||
// termination this file should be provided in order to have routers use it for health checks on the secure connection
|
||||
DestinationCACertificate string
|
||||
|
||||
// InsecureEdgeTerminationPolicy indicates the desired behavior for
|
||||
// insecure connections to an edge-terminated route:
|
||||
// disable, allow or redirect
|
||||
InsecureEdgeTerminationPolicy InsecureEdgeTerminationPolicyType
|
||||
}
|
||||
|
||||
// TLSTerminationType dictates where the secure communication will stop
|
||||
// TODO: Reconsider this type in v2
|
||||
type TLSTerminationType string
|
||||
|
||||
// InsecureEdgeTerminationPolicyType dictates the behavior of insecure
|
||||
// connections to an edge-terminated route.
|
||||
type InsecureEdgeTerminationPolicyType string
|
||||
|
||||
const (
|
||||
// TLSTerminationEdge terminate encryption at the edge router.
|
||||
TLSTerminationEdge TLSTerminationType = "edge"
|
||||
// TLSTerminationPassthrough terminate encryption at the destination, the destination is responsible for decrypting traffic
|
||||
TLSTerminationPassthrough TLSTerminationType = "passthrough"
|
||||
// TLSTerminationReencrypt terminate encryption at the edge router and re-encrypt it with a new certificate supplied by the destination
|
||||
TLSTerminationReencrypt TLSTerminationType = "reencrypt"
|
||||
|
||||
// InsecureEdgeTerminationPolicyNone disables insecure connections for an edge-terminated route.
|
||||
InsecureEdgeTerminationPolicyNone InsecureEdgeTerminationPolicyType = "None"
|
||||
// InsecureEdgeTerminationPolicyAllow allows insecure connections for an edge-terminated route.
|
||||
InsecureEdgeTerminationPolicyAllow InsecureEdgeTerminationPolicyType = "Allow"
|
||||
// InsecureEdgeTerminationPolicyRedirect redirects insecure connections for an edge-terminated route.
|
||||
// As an example, for routers that support HTTP and HTTPS, the
|
||||
// insecure HTTP connections will be redirected to use HTTPS.
|
||||
InsecureEdgeTerminationPolicyRedirect InsecureEdgeTerminationPolicyType = "Redirect"
|
||||
)
|
||||
Reference in New Issue
Block a user