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:
Tomas Kral
2016-07-21 20:37:18 +02:00
parent 2626b51dee
commit 3db5069ff5
224 changed files with 95644 additions and 85623 deletions
+190
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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"
)