...

Source file src/github.com/datawire/ambassador/v2/pkg/kates/aliases.go

Documentation: github.com/datawire/ambassador/v2/pkg/kates

     1  package kates
     2  
     3  import (
     4  	appsv1 "k8s.io/api/apps/v1"
     5  	corev1 "k8s.io/api/core/v1"
     6  	rbacv1 "k8s.io/api/rbac/v1"
     7  	xv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
     8  	apierrors "k8s.io/apimachinery/pkg/api/errors"
     9  	"k8s.io/apimachinery/pkg/api/resource"
    10  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    11  	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
    12  	"k8s.io/apimachinery/pkg/labels"
    13  	"k8s.io/apimachinery/pkg/runtime"
    14  	"k8s.io/apimachinery/pkg/types"
    15  	"k8s.io/apimachinery/pkg/util/intstr"
    16  	"k8s.io/apimachinery/pkg/version"
    17  	"k8s.io/cli-runtime/pkg/genericclioptions"
    18  	k8s_util_node "k8s.io/kubernetes/pkg/util/node"
    19  	metrics "k8s.io/metrics/pkg/apis/metrics/v1beta1"
    20  )
    21  
    22  // The kubernetes client libraries and core protobufs are split across so many different packages
    23  // that it is extremely difficult to keep them straight. The naming conventions are also very poorly
    24  // chosen resulting in frequent name collisions under even simple uses. Case in point, there are a
    25  // whole lot of v1 packages (core/v1, apiextensions/v1, meta/v1, apps/v1) just to name a few, and
    26  // you need to use at least 3 of these together in order to accomplish almost anything. The types
    27  // within packages are often horribly named as well (e.g. dynamic.Interface, rest.Config,
    28  // version.Info are not super description when you omit the packages).
    29  //
    30  // The aliases in this file are intended to do several things:
    31  //
    32  //   1. Make our kubernetes code easier to read by providing a standard set of aliases instead of
    33  //      requiring developers to make up potentially different aliases at the point of use.
    34  //
    35  //   2. Make for a simpler and easier Quickstart for our kubernetes library by providing a single
    36  //      entry point.
    37  //
    38  //   3. Allow us to build a set of simpler and easier to use APIs on top of client-go while using
    39  //      types that are compatible with client-go so we have a good escape hatch for directly using
    40  //      client-go.
    41  //
    42  //   4. Provide a single file that helps me (rhs@datawire.io) remember where the hell everything is.
    43  
    44  // type related aliases
    45  
    46  type TypeMeta = metav1.TypeMeta
    47  type ObjectMeta = metav1.ObjectMeta
    48  type APIResource = metav1.APIResource
    49  
    50  type Namespace = corev1.Namespace
    51  
    52  type ObjectReference = corev1.ObjectReference
    53  type LocalObjectReference = corev1.LocalObjectReference
    54  
    55  type Event = corev1.Event
    56  type ConfigMap = corev1.ConfigMap
    57  
    58  type Secret = corev1.Secret
    59  
    60  const SecretTypeServiceAccountToken = corev1.SecretTypeServiceAccountToken
    61  const SecretTypeTLS = corev1.SecretTypeTLS
    62  
    63  type Service = corev1.Service
    64  type ServiceSpec = corev1.ServiceSpec
    65  type ServicePort = corev1.ServicePort
    66  type Endpoints = corev1.Endpoints
    67  type EndpointSubset = corev1.EndpointSubset
    68  type EndpointAddress = corev1.EndpointAddress
    69  type EndpointPort = corev1.EndpointPort
    70  
    71  type Protocol = corev1.Protocol
    72  
    73  var ProtocolTCP = corev1.ProtocolTCP
    74  var ProtocolUDP = corev1.ProtocolUDP
    75  var ProtocolSCTP = corev1.ProtocolSCTP
    76  
    77  var ServiceTypeLoadBalancer = corev1.ServiceTypeLoadBalancer
    78  var ServiceTypeClusterIP = corev1.ServiceTypeClusterIP
    79  
    80  type ServiceAccount = corev1.ServiceAccount
    81  
    82  type Role = rbacv1.Role
    83  type RoleBinding = rbacv1.RoleBinding
    84  type ClusterRole = rbacv1.ClusterRole
    85  type ClusterRoleBinding = rbacv1.ClusterRoleBinding
    86  
    87  type Pod = corev1.Pod
    88  type PodSpec = corev1.PodSpec
    89  type PodTemplateSpec = corev1.PodTemplateSpec
    90  type Container = corev1.Container
    91  type EnvVar = corev1.EnvVar
    92  type SecurityContext = corev1.SecurityContext
    93  type PodCondition = corev1.PodCondition
    94  type PodLogOptions = corev1.PodLogOptions
    95  type Toleration = corev1.Toleration
    96  type TolerationOperator = corev1.TolerationOperator
    97  
    98  var TolerationOpExists = corev1.TolerationOpExists
    99  var TolerationOpEqual = corev1.TolerationOpEqual
   100  
   101  var PodSucceeded = corev1.PodSucceeded
   102  var PodFailed = corev1.PodFailed
   103  var PodReady = corev1.PodReady
   104  var CoreConditionTrue = corev1.ConditionTrue
   105  
   106  type Node = corev1.Node
   107  
   108  const NodeUnreachablePodReason = k8s_util_node.NodeUnreachablePodReason
   109  
   110  type Volume = corev1.Volume
   111  type VolumeSource = corev1.VolumeSource
   112  type PersistentVolumeClaimVolumeSource = corev1.PersistentVolumeClaimVolumeSource
   113  type VolumeMount = corev1.VolumeMount
   114  
   115  type ResourceRequirements = corev1.ResourceRequirements
   116  type ResourceList = corev1.ResourceList
   117  
   118  const ResourceCPU = corev1.ResourceCPU
   119  const ResourceMemory = corev1.ResourceMemory
   120  
   121  type PersistentVolumeClaim = corev1.PersistentVolumeClaim
   122  
   123  type Deployment = appsv1.Deployment
   124  type ReplicaSet = appsv1.ReplicaSet
   125  type StatefulSet = appsv1.StatefulSet
   126  
   127  type CustomResourceDefinition = xv1.CustomResourceDefinition
   128  
   129  var NamesAccepted = xv1.NamesAccepted
   130  var Established = xv1.Established
   131  var ConditionTrue = xv1.ConditionTrue
   132  
   133  type NodeMetrics = metrics.NodeMetrics
   134  type PodMetrics = metrics.PodMetrics
   135  type ContainerMetrics = metrics.ContainerMetrics
   136  
   137  type Unstructured = unstructured.Unstructured
   138  
   139  var MustParseQuantity = resource.MustParse
   140  
   141  type Quantity = resource.Quantity
   142  type IntOrString = intstr.IntOrString
   143  type Time = metav1.Time
   144  
   145  var Int = intstr.Int
   146  
   147  // client related aliases
   148  
   149  type ConfigFlags = genericclioptions.ConfigFlags
   150  
   151  var NewConfigFlags = genericclioptions.NewConfigFlags
   152  
   153  type VersionInfo = version.Info
   154  
   155  type PatchType = types.PatchType
   156  
   157  var (
   158  	JSONPatchType           = types.JSONPatchType
   159  	MergePatchType          = types.MergePatchType
   160  	StrategicMergePatchType = types.StrategicMergePatchType
   161  	ApplyPatchType          = types.ApplyPatchType
   162  )
   163  
   164  type GetOptions = metav1.GetOptions
   165  type ListOptions = metav1.ListOptions
   166  type CreateOptions = metav1.CreateOptions
   167  type UpdateOptions = metav1.UpdateOptions
   168  type PatchOptions = metav1.PatchOptions
   169  type DeleteOptions = metav1.DeleteOptions
   170  
   171  var NamespaceAll = metav1.NamespaceAll
   172  var NamespaceNone = metav1.NamespaceNone
   173  
   174  type LabelSelector = metav1.LabelSelector
   175  
   176  type Selector = labels.Selector
   177  type LabelSet = labels.Set
   178  
   179  var ParseSelector = labels.Parse
   180  
   181  // error related aliases
   182  
   183  var IsNotFound = apierrors.IsNotFound
   184  var IsConflict = apierrors.IsConflict
   185  
   186  //
   187  
   188  type Object interface {
   189  	// runtime.Object gives the following methods:
   190  	//
   191  	//   GetObjectKind() k8s.io/apimachinery/pkg/runtime/schema.ObjectKind
   192  	//   DeepCopyObject() k8s.io/apimachinery/pkg/runtime.Object
   193  	runtime.Object
   194  
   195  	// metav1.Object gives the following methods:
   196  	//
   197  	//   GetNamespace() string
   198  	//   SetNamespace(namespace string)
   199  	//   GetName() string
   200  	//   SetName(name string)
   201  	//   GetGenerateName() string
   202  	//   SetGenerateName(name string)
   203  	//   GetUID() k8s.io/apimachinery/pkg/types.UID
   204  	//   SetUID(uid k8s.io/apimachinery/pkg/types.UID)
   205  	//   GetResourceVersion() string
   206  	//   SetResourceVersion(version string)
   207  	//   GetGeneration() int64
   208  	//   SetGeneration(generation int64)
   209  	//   GetSelfLink() string
   210  	//   SetSelfLink(selfLink string)
   211  	//   GetCreationTimestamp() metav1.Time
   212  	//   SetCreationTimestamp(timestamp metav1.Time)
   213  	//   GetDeletionTimestamp() *metav1.Time
   214  	//   SetDeletionTimestamp(timestamp *metav1.Time)
   215  	//   GetDeletionGracePeriodSeconds() *int64
   216  	//   SetDeletionGracePeriodSeconds(*int64)
   217  	//   GetLabels() map[string]string
   218  	//   SetLabels(labels map[string]string)
   219  	//   GetAnnotations() map[string]string
   220  	//   SetAnnotations(annotations map[string]string)
   221  	//   GetFinalizers() []string
   222  	//   SetFinalizers(finalizers []string)
   223  	//   GetOwnerReferences() []metav1.OwnerReference
   224  	//   SetOwnerReferences([]metav1.OwnerReference)
   225  	//   GetClusterName() string
   226  	//   SetClusterName(clusterName string)
   227  	//   GetManagedFields() []metav1.ManagedFieldsEntry
   228  	//   SetManagedFields(managedFields []metav1.ManagedFieldsEntry)
   229  	metav1.Object
   230  }
   231  

View as plain text