cover expapi when genereate types_swagger_doc_generated.go

This commit is contained in:
Chao Xu 2015-09-01 18:33:36 -07:00
parent ac958e5320
commit 530a9a0238
5 changed files with 441 additions and 111 deletions

View File

@ -42,7 +42,7 @@ find_files() {
}
if [[ $# -eq 0 ]]; then
versioned_api_files=`find_files | egrep "pkg/api/v.[^/]*/types\.go"`
versioned_api_files=`find_files | egrep "pkg/.[^/]*/v.[^/]*/types\.go"`
else
versioned_api_files=("${@}")
fi
@ -58,10 +58,12 @@ for file in $versioned_api_files; do
fi
done
internal_types_file="${KUBE_ROOT}/pkg/api/types.go"
if grep json: "${internal_types_file}" | grep -v // | grep description: ; then
echo "Internal API types should not contain descriptions"
result=1
fi
internal_types_files="${KUBE_ROOT}/pkg/api/types.go ${KUBE_ROOT}/pkg/expapi/types.go"
for internal_types_file in $internal_types_files; do
if grep json: "${internal_types_file}" | grep -v // | grep description: ; then
echo "Internal API types should not contain descriptions"
result=1
fi
done
exit ${result}

View File

@ -24,13 +24,13 @@ source "${KUBE_ROOT}/hack/lib/init.sh"
kube::golang::setup_env
function generate_version() {
local version=$1
local groupVersion=$1
local TMPFILE="/tmp/types_swagger_doc_generated.$(date +%s).go"
echo "Generating swagger type docs for version ${version}"
echo "Generating swagger type docs for ${groupVersion}"
sed 's/YEAR/2015/' hack/boilerplate/boilerplate.go.txt > $TMPFILE
echo "package ${version}" >> $TMPFILE
echo "package ${groupVersion##*/}" >> $TMPFILE
cat >> $TMPFILE <<EOF
// This file contains a collection of methods that can be used from go-resful to
@ -46,21 +46,21 @@ function generate_version() {
// AUTO-GENERATED FUNCTIONS START HERE
EOF
GOPATH=$(godep path):$GOPATH go run cmd/genswaggertypedocs/swagger_type_docs.go -s "pkg/api/${version}/types.go" -f - >> $TMPFILE
GOPATH=$(godep path):$GOPATH go run cmd/genswaggertypedocs/swagger_type_docs.go -s "pkg/${groupVersion}/types.go" -f - >> $TMPFILE
echo "// AUTO-GENERATED FUNCTIONS END HERE" >> $TMPFILE
gofmt -w -s $TMPFILE
mv $TMPFILE "pkg/api/${version}/types_swagger_doc_generated.go"
mv $TMPFILE "pkg/${groupVersion}/types_swagger_doc_generated.go"
}
VERSIONS="v1"
GROUP_VERSIONS="api/v1 expapi/v1"
# To avoid compile errors, remove the currently existing files.
for ver in $VERSIONS; do
rm -f "pkg/api/${ver}/types_swagger_doc_generated.go"
for groupVersion in $GROUP_VERSIONS; do
rm -f "pkg/${groupVersion}/types_swagger_doc_generated.go"
done
for ver in $VERSIONS; do
generate_version "${ver}"
for groupVersion in $GROUP_VERSIONS; do
generate_version "${groupVersion}"
done
"${KUBE_ROOT}/hack/update-swagger-spec.sh"

View File

@ -36,29 +36,30 @@ import (
// ScaleSpec describes the attributes a Scale subresource
type ScaleSpec struct {
// Replicas is the number of desired replicas.
Replicas int `json:"replicas,omitempty" description:"number of replicas desired; http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#what-is-a-replication-controller"`
// Replicas is the number of desired replicas. More info: http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#what-is-a-replication-controller"
Replicas int `json:"replicas,omitempty"`
}
// ScaleStatus represents the current status of a Scale subresource.
type ScaleStatus struct {
// Replicas is the number of actual replicas.
Replicas int `json:"replicas" description:"most recently oberved number of replicas; see http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#what-is-a-replication-controller"`
// Replicas is the number of actual replicas. More info: http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#what-is-a-replication-controller
Replicas int `json:"replicas"`
// Selector is a label query over pods that should match the replicas count.
Selector map[string]string `json:"selector,omitempty" description:"label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template; see http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors"`
// Selector is a label query over pods that should match the replicas count. If it is empty, it is defaulted to labels on Pod template; More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors
Selector map[string]string `json:"selector,omitempty"`
}
// Scale subresource, applicable to ReplicationControllers and (in future) Deployment.
type Scale struct {
api.TypeMeta `json:",inline"`
api.ObjectMeta `json:"metadata,omitempty" description:"standard object metadata; see http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata"`
api.TypeMeta `json:",inline"`
// Standard object metadata; More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata.
api.ObjectMeta `json:"metadata,omitempty"`
// Spec defines the behavior of the scale.
Spec ScaleSpec `json:"spec,omitempty" description:"specification of the desired behavior of the scale; http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status"`
// Spec defines the behavior of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status.
Spec ScaleSpec `json:"spec,omitempty"`
// Status represents the current status of the scale.
Status ScaleStatus `json:"status,omitempty" description:"most recently observed status of the service; populated by the system, read-only; http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status"`
// Status represents the current status of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status. Read-only.
Status ScaleStatus `json:"status,omitempty"`
}
// Dummy definition
@ -68,10 +69,15 @@ type ReplicationControllerDummy struct {
// SubresourceReference contains enough information to let you inspect or modify the referred subresource.
type SubresourceReference struct {
Kind string `json:"kind,omitempty"`
Namespace string `json:"namespace,omitempty"`
Name string `json:"name,omitempty"`
APIVersion string `json:"apiVersion,omitempty"`
// Kind of the referent; More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
Kind string `json:"kind,omitempty"`
// Namespace of the referent; More info: http://releases.k8s.io/HEAD/docs/user-guide/namespaces.md
Namespace string `json:"namespace,omitempty"`
// Name of the referent; More info: http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#names
Name string `json:"name,omitempty"`
// API version of the referent
APIVersion string `json:"apiVersion,omitempty"`
// Subresource name of the referent
Subresource string `json:"subresource,omitempty"`
}
@ -101,8 +107,6 @@ type HorizontalPodAutoscalerStatus struct {
CurrentReplicas int `json:"currentReplicas"`
// DesiredReplicas is the desired number of replicas of pods managed by this autoscaler.
// The number may be different because pod downscaling is someteimes delayed to keep the number
// of pods stable.
DesiredReplicas int `json:"desiredReplicas"`
// CurrentConsumption is the current average consumption of the given resource that the autoscaler will
@ -120,7 +124,7 @@ type HorizontalPodAutoscaler struct {
api.TypeMeta `json:",inline"`
api.ObjectMeta `json:"metadata,omitempty"`
// Spec defines the behaviour of autoscaler.
// Spec defines the behaviour of autoscaler. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status.
Spec HorizontalPodAutoscalerSpec `json:"spec,omitempty"`
// Status represents the current information about the autoscaler.
@ -132,39 +136,52 @@ type HorizontalPodAutoscalerList struct {
api.TypeMeta `json:",inline"`
api.ListMeta `json:"metadata,omitempty"`
// Items is the list of horizontal pod autoscalers.
Items []HorizontalPodAutoscaler `json:"items"`
}
// A ThirdPartyResource is a generic representation of a resource, it is used by add-ons and plugins to add new resource
// types to the API. It consists of one or more Versions of the api.
type ThirdPartyResource struct {
api.TypeMeta `json:",inline"`
api.ObjectMeta `json:"metadata,omitempty" description:"standard object metadata"`
api.TypeMeta `json:",inline"`
Description string `json:"description,omitempty" description:"The description of this object"`
// Standard object metadata
api.ObjectMeta `json:"metadata,omitempty"`
Versions []APIVersion `json:"versions,omitempty" description:"The versions for this third party object"`
// Description is the description of this object.
Description string `json:"description,omitempty"`
// Versions are versions for this third party object
Versions []APIVersion `json:"versions,omitempty"`
}
type ThirdPartyResourceList struct {
api.TypeMeta `json:",inline"`
api.ListMeta `json:"metadata,omitempty" description:"standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata"`
Items []ThirdPartyResource `json:"items" description:"items is a list of schema objects"`
// Standard list metadata.
api.ListMeta `json:"metadata,omitempty"`
// Items is the list of horizontal pod autoscalers.
Items []ThirdPartyResource `json:"items"`
}
// An APIVersion represents a single concrete version of an object model.
type APIVersion struct {
Name string `json:"name,omitempty" description:"name of this version (e.g. 'v1')"`
APIGroup string `json:"apiGroup,omitempty" description:"The API group to add this object into, default 'experimental'"`
// Name of this version (e.g. 'v1').
Name string `json:"name,omitempty"`
// The API group to add this object into, default 'experimental'.
APIGroup string `json:"apiGroup,omitempty"`
}
// An internal object, used for versioned storage in etcd. Not exposed to the end user.
type ThirdPartyResourceData struct {
api.TypeMeta `json:",inline"`
api.ObjectMeta `json:"metadata,omitempty" description:"standard object metadata"`
api.TypeMeta `json:",inline"`
// Standard object metadata.
api.ObjectMeta `json:"metadata,omitempty"`
Data []byte `json:"name,omitempty" description:"the raw JSON data for this data"`
// Data is the raw JSON data for this data.
Data []byte `json:"name,omitempty"`
}
type Deployment struct {
@ -179,14 +196,15 @@ type Deployment struct {
}
type DeploymentSpec struct {
// Number of desired pods.
// Number of desired pods. This is a pointer to distinguish between explicit
// zero and not specified. Defaults to 1.
Replicas int `json:"replicas,omitempty"`
// Label selector for pods. Existing ReplicationControllers whose pods are
// selected by this will be scaled down.
Selector map[string]string `json:"selector,omitempty"`
// Describes the pods that will be created.
// Template describes the pods that will be created.
Template *api.PodTemplateSpec `json:"template,omitempty"`
// The deployment strategy to use to replace existing pods with new ones.
@ -199,17 +217,19 @@ type DeploymentSpec struct {
// not add any selector and label. If unspecified, system uses
// "deployment.kubernetes.io/podTemplateHash".
// Value of this key is hash of DeploymentSpec.PodTemplateSpec.
// No label is added if this is set to empty string.
UniqueLabelKey string `json:"uniqueLabelKey,omitempty"`
}
type DeploymentStrategy struct {
// Type of deployment. Can be "Recreate" or "RollingUpdate". Defaults to RollingUpdate.
// Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate.
Type DeploymentType `json:"type,omitempty"`
// TODO: Update this to follow our convention for oneOf, whatever we decide it
// to be.
// Rolling update config params. Present only if DeploymentType =
// RollingUpdate.
//---
// TODO: Update this to follow our convention for oneOf, whatever we decide it
// to be.
RollingUpdate *RollingUpdateDeployment `json:"rollingUpdate,omitempty"`
}
@ -268,18 +288,23 @@ type DeploymentList struct {
api.TypeMeta `json:",inline"`
api.ListMeta `json:"metadata,omitempty"`
// Items is the list of deployments.
Items []Deployment `json:"items"`
}
// DaemonSpec is the specification of a daemon.
type DaemonSpec struct {
// Selector is a label query over pods that are managed by the daemon.
Selector map[string]string `json:"selector"`
// Must match in order to be controlled.
// If empty, defaulted to labels on Pod template.
// More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors
Selector map[string]string `json:"selector,omitempty"`
// Template is the object that describes the pod that will be created.
// The Daemon will create exactly one copy of this pod on every node
// that matches the template's node selector (or on every node if no node
// selector is specified).
// More info: http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#pod-template
Template *api.PodTemplateSpec `json:"template,omitempty"`
}
@ -300,21 +325,30 @@ type DaemonStatus struct {
// Daemon represents the configuration of a daemon.
type Daemon struct {
api.TypeMeta `json:",inline"`
api.TypeMeta `json:",inline"`
// Standard object's metadata.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
api.ObjectMeta `json:"metadata,omitempty"`
// Spec defines the desired behavior of this daemon.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
Spec DaemonSpec `json:"spec,omitempty"`
// Status is the current status of this daemon. This data may be
// out of date by some window of time.
// Populated by the system.
// Read-only.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
Status DaemonStatus `json:"status,omitempty"`
}
// DaemonList is a collection of daemon.
type DaemonList struct {
api.TypeMeta `json:",inline"`
// Standard list metadata.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
api.ListMeta `json:"metadata,omitempty"`
// Items is a list of daemons.
Items []Daemon `json:"items"`
}

View File

@ -24,29 +24,30 @@ import (
// ScaleSpec describes the attributes a Scale subresource
type ScaleSpec struct {
// Replicas is the number of desired replicas.
Replicas int `json:"replicas,omitempty" description:"number of replicas desired; see http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#what-is-a-replication-controller"`
// Replicas is the number of desired replicas. More info: http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#what-is-a-replication-controller"
Replicas int `json:"replicas,omitempty"`
}
// ScaleStatus represents the current status of a Scale subresource.
type ScaleStatus struct {
// Replicas is the number of actual replicas.
Replicas int `json:"replicas" description:"most recently oberved number of replicas; see http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#what-is-a-replication-controller"`
// Replicas is the number of actual replicas. More info: http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#what-is-a-replication-controller
Replicas int `json:"replicas"`
// Selector is a label query over pods that should match the replicas count.
Selector map[string]string `json:"selector,omitempty" description:"label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template; see http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors"`
// Selector is a label query over pods that should match the replicas count. If it is empty, it is defaulted to labels on Pod template; More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors
Selector map[string]string `json:"selector,omitempty"`
}
// Scale subresource, applicable to ReplicationControllers and (in future) Deployment.
type Scale struct {
v1.TypeMeta `json:",inline"`
v1.ObjectMeta `json:"metadata,omitempty" description:"standard object metadata; see http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata"`
v1.TypeMeta `json:",inline"`
// Standard object metadata; More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata.
v1.ObjectMeta `json:"metadata,omitempty"`
// Spec defines the behavior of the scale.
Spec ScaleSpec `json:"spec,omitempty" description:"specification of the desired behavior of the scale; http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status"`
// Spec defines the behavior of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status.
Spec ScaleSpec `json:"spec,omitempty"`
// Status represents the current status of the scale.
Status ScaleStatus `json:"status,omitempty" description:"most recently observed status of the service; populated by the system, read-only; http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status"`
// Status represents the current status of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status. Read-only.
Status ScaleStatus `json:"status,omitempty"`
}
// Dummy definition
@ -56,11 +57,16 @@ type ReplicationControllerDummy struct {
// SubresourceReference contains enough information to let you inspect or modify the referred subresource.
type SubresourceReference struct {
Kind string `json:"kind,omitempty" description:"kind of the referent; see http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"`
Namespace string `json:"namespace,omitempty" description:"namespace of the referent; see http://releases.k8s.io/HEAD/docs/user-guide/namespaces.md"`
Name string `json:"name,omitempty" description:"name of the referent; see http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#names"`
APIVersion string `json:"apiVersion,omitempty" description:"API version of the referent"`
Subresource string `json:"subresource,omitempty" decription:"subresource name of the referent"`
// Kind of the referent; More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
Kind string `json:"kind,omitempty"`
// Namespace of the referent; More info: http://releases.k8s.io/HEAD/docs/user-guide/namespaces.md
Namespace string `json:"namespace,omitempty"`
// Name of the referent; More info: http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#names
Name string `json:"name,omitempty"`
// API version of the referent
APIVersion string `json:"apiVersion,omitempty"`
// Subresource name of the referent
Subresource string `json:"subresource,omitempty"`
}
// ResourceConsumption is an object for specifying average resource consumption of a particular resource.
@ -73,32 +79,32 @@ type ResourceConsumption struct {
type HorizontalPodAutoscalerSpec struct {
// ScaleRef is a reference to Scale subresource. HorizontalPodAutoscaler will learn the current resource consumption from its status,
// and will set the desired number of pods by modyfying its spec.
ScaleRef *SubresourceReference `json:"scaleRef" description:"reference to scale subresource for quering the current resource cosumption and for setting the desired number of pods"`
ScaleRef *SubresourceReference `json:"scaleRef"`
// MinCount is the lower limit for the number of pods that can be set by the autoscaler.
MinCount int `json:"minCount" description:"lower limit for the number of pods"`
MinCount int `json:"minCount"`
// MaxCount is the upper limit for the number of pods that can be set by the autoscaler. It cannot be smaller than MinCount.
MaxCount int `json:"maxCount" description:"upper limit for the number of pods"`
MaxCount int `json:"maxCount"`
// Target is the target average consumption of the given resource that the autoscaler will try to maintain by adjusting the desired number of pods.
// Currently two types of resources are supported: "cpu" and "memory".
Target ResourceConsumption `json:"target" description:"target average consumption of resource that the autoscaler will try to maintain by adjusting the desired number of pods"`
Target ResourceConsumption `json:"target"`
}
// HorizontalPodAutoscalerStatus contains the current status of a horizontal pod autoscaler
type HorizontalPodAutoscalerStatus struct {
// CurrentReplicas is the number of replicas of pods managed by this autoscaler.
CurrentReplicas int `json:"currentReplicas" description:"number of replicas observed by the autoscaler"`
CurrentReplicas int `json:"currentReplicas"`
// DesiredReplicas is the desired number of replicas of pods managed by this autoscaler.
DesiredReplicas int `json:"desiredReplicas" description:"number of desired replicas"`
DesiredReplicas int `json:"desiredReplicas"`
// CurrentConsumption is the current average consumption of the given resource that the autoscaler will
// try to maintain by adjusting the desired number of pods.
// Two types of resources are supported: "cpu" and "memory".
CurrentConsumption *ResourceConsumption `json:"currentConsumption" description:"current resource consumption"`
CurrentConsumption *ResourceConsumption `json:"currentConsumption"`
// LastScaleTimestamp is the last time the HorizontalPodAutoscaler scaled the number of pods.
// This is used by the autoscaler to controll how often the number of pods is changed.
LastScaleTimestamp *util.Time `json:"lastScaleTimestamp,omitempty" description:"last time the autoscaler made decision about changing the number of pods"`
LastScaleTimestamp *util.Time `json:"lastScaleTimestamp,omitempty"`
}
// HorizontalPodAutoscaler represents the configuration of a horizontal pod autoscaler.
@ -106,8 +112,8 @@ type HorizontalPodAutoscaler struct {
v1.TypeMeta `json:",inline"`
v1.ObjectMeta `json:"metadata,omitempty"`
// Spec defines the behaviour of autoscaler.
Spec HorizontalPodAutoscalerSpec `json:"spec,omitempty" description:"specification of the desired behavior of the autoscaler; http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status"`
// Spec defines the behaviour of autoscaler. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status.
Spec HorizontalPodAutoscalerSpec `json:"spec,omitempty"`
// Status represents the current information about the autoscaler.
Status *HorizontalPodAutoscalerStatus `json:"status,omitempty"`
@ -118,39 +124,52 @@ type HorizontalPodAutoscalerList struct {
v1.TypeMeta `json:",inline"`
v1.ListMeta `json:"metadata,omitempty"`
Items []HorizontalPodAutoscaler `json:"items" description:"list of horizontal pod autoscalers"`
// Items is the list of horizontal pod autoscalers.
Items []HorizontalPodAutoscaler `json:"items"`
}
// A ThirdPartyResource is a generic representation of a resource, it is used by add-ons and plugins to add new resource
// types to the API. It consists of one or more Versions of the api.
type ThirdPartyResource struct {
v1.TypeMeta `json:",inline"`
v1.ObjectMeta `json:"metadata,omitempty" description:"standard object metadata"`
v1.TypeMeta `json:",inline"`
Description string `json:"description,omitempty" description:"The description of this object"`
// Standard object metadata
v1.ObjectMeta `json:"metadata,omitempty"`
Versions []APIVersion `json:"versions,omitempty" description:"The versions for this third party object"`
// Description is the description of this object.
Description string `json:"description,omitempty"`
// Versions are versions for this third party object
Versions []APIVersion `json:"versions,omitempty"`
}
type ThirdPartyResourceList struct {
v1.TypeMeta `json:",inline"`
v1.ListMeta `json:"metadata,omitempty" description:"standard list metadata; see http://docs.k8s.io/api-conventions.md#metadata"`
Items []ThirdPartyResource `json:"items" description:"items is a list of schema objects"`
// Standard list metadata.
v1.ListMeta `json:"metadata,omitempty"`
// Items is the list of horizontal pod autoscalers.
Items []ThirdPartyResource `json:"items"`
}
// An APIVersion represents a single concrete version of an object model.
type APIVersion struct {
Name string `json:"name,omitempty" description:"name of this version (e.g. 'v1')"`
APIGroup string `json:"apiGroup,omitempty" description:"The API group to add this object into, default 'experimental'"`
// Name of this version (e.g. 'v1').
Name string `json:"name,omitempty"`
// The API group to add this object into, default 'experimental'.
APIGroup string `json:"apiGroup,omitempty"`
}
// An internal object, used for versioned storage in etcd. Not exposed to the end user.
type ThirdPartyResourceData struct {
v1.TypeMeta `json:",inline"`
v1.ObjectMeta `json:"metadata,omitempty" description:"standard object metadata"`
v1.TypeMeta `json:",inline"`
// Standard object metadata.
v1.ObjectMeta `json:"metadata,omitempty"`
Data []byte `json:"name,omitempty" description:"the raw JSON data for this data"`
// Data is the raw JSON data for this data.
Data []byte `json:"name,omitempty"`
}
type Deployment struct {
@ -158,26 +177,26 @@ type Deployment struct {
v1.ObjectMeta `json:"metadata,omitempty"`
// Specification of the desired behavior of the Deployment.
Spec DeploymentSpec `json:"spec,omitempty" description: "specification of the desired behavior of deployment"`
Spec DeploymentSpec `json:"spec,omitempty"`
// Most recently observed status of the Deployment.
Status DeploymentStatus `json:"status,omitempty" description: "most recently observed status of deployment"`
Status DeploymentStatus `json:"status,omitempty"`
}
type DeploymentSpec struct {
// Number of desired pods. This is a pointer to distinguish between explicit
// zero and not specified. Defaults to 1.
Replicas *int `json:"replicas,omitempty" description:"number of desired pods; Defaults to 1"`
Replicas *int `json:"replicas,omitempty"`
// Label selector for pods. Existing ReplicationControllers whose pods are
// selected by this will be scaled down.
Selector map[string]string `json:"selector,omitempty" description:"label selector for pods; existing replication controllers whose pods are selected by this will be scaled down`
Selector map[string]string `json:"selector,omitempty"`
// Describes the pods that will be created.
Template *v1.PodTemplateSpec `json:"template,omitempty" description:"template to describe the pods that will be created"`
// Template describes the pods that will be created.
Template *v1.PodTemplateSpec `json:"template,omitempty"`
// The deployment strategy to use to replace existing pods with new ones.
Strategy DeploymentStrategy `json:"strategy,omitempty" description:"deployment strategy to use to replace existing pods with new ones"`
Strategy DeploymentStrategy `json:"strategy,omitempty"`
// Key of the selector that is added to existing RCs (and label key that is
// added to its pods) to prevent the existing RCs to select new pods (and old
@ -186,18 +205,20 @@ type DeploymentSpec struct {
// not add any selector and label. If unspecified, system uses
// "deployment.kubernetes.io/podTemplateHash".
// Value of this key is hash of DeploymentSpec.PodTemplateSpec.
UniqueLabelKey *string `json:"uniqueLabelKey,omitempty" description:"key of the label that is added to existing pods to distinguish them from new ones; deployment.kubernetes.io/podTemplateHash is used by default; value of this label is hash of pod template spec; no label is added if this is set to empty string"`
// No label is added if this is set to empty string.
UniqueLabelKey *string `json:"uniqueLabelKey,omitempty"`
}
type DeploymentStrategy struct {
// Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate.
Type DeploymentType `json:"type,omitempty" description:"type of deployment; can be Recreate or RollingUpdate; defaults to RollingUpdate"`
Type DeploymentType `json:"type,omitempty"`
// TODO: Update this to follow our convention for oneOf, whatever we decide it
// to be.
// Rolling update config params. Present only if DeploymentType =
// RollingUpdate.
RollingUpdate *RollingUpdateDeployment `json:"rollingUpdate,omitempty" description:"rolling update config params; present only if deploymentType=RollingUpdate"`
//---
// TODO: Update this to follow our convention for oneOf, whatever we decide it
// to be.
RollingUpdate *RollingUpdateDeployment `json:"rollingUpdate,omitempty"`
}
type DeploymentType string
@ -222,7 +243,7 @@ type RollingUpdateDeployment struct {
// can be scaled down further, followed by scaling up the new RC, ensuring
// that at least 70% of original number of pods are available at all times
// during the update.
MaxUnavailable *util.IntOrString `json:"maxUnavailable,omitempty" description:"max number of pods that can be unavailable during the update; value can be an absolute number or a percentage of total pods at start of update"`
MaxUnavailable *util.IntOrString `json:"maxUnavailable,omitempty"`
// The maximum number of pods that can be scheduled above the original number of
// pods.
@ -234,28 +255,29 @@ type RollingUpdateDeployment struct {
// immediately when the rolling update starts. Once old pods have been killed,
// new RC can be scaled up further, ensuring that total number of pods running
// at any time during the update is atmost 130% of original pods.
MaxSurge *util.IntOrString `json:"maxSurge,omitempty" description:"max number of pods that can be scheduled above the original number of pods; value can be an absolute number or a percentage of total pods at start of update"`
MaxSurge *util.IntOrString `json:"maxSurge,omitempty"`
// Minimum number of seconds for which a newly created pod should be ready
// without any of its container crashing, for it to be considered available.
// Defaults to 0 (pod will be considered available as soon as it is ready)
MinReadySeconds int `json:"minReadySeconds,omitempty" description:"min seconds for which a newly created pod should be ready for it to be considered available"`
MinReadySeconds int `json:"minReadySeconds,omitempty"`
}
type DeploymentStatus struct {
// Total number of ready pods targeted by this deployment (this
// includes both the old and new pods).
Replicas int `json:"replicas,omitempty" description:"total number of ready pods targeted by this deployment (includes both old and new pods"`
Replicas int `json:"replicas,omitempty"`
// Total number of new ready pods with the desired template spec.
UpdatedReplicas int `json:"updatedReplicas,omitempty" description:"total number of new ready pods with the desired template spec"`
UpdatedReplicas int `json:"updatedReplicas,omitempty"`
}
type DeploymentList struct {
v1.TypeMeta `json:",inline"`
v1.ListMeta `json:"metadata,omitempty"`
Items []Deployment `json:"items" description:"list of deployments"`
// Items is the list of deployments.
Items []Deployment `json:"items"`
}
// DaemonSpec is the specification of a daemon.
@ -296,7 +318,7 @@ type Daemon struct {
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
v1.ObjectMeta `json:"metadata,omitempty"`
// Spec defines the specification of the desired behavior of this daemon.
// Spec defines the desired behavior of this daemon.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
Spec DaemonSpec `json:"spec,omitempty"`

View File

@ -0,0 +1,272 @@
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
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.
*/
package v1
// This file contains a collection of methods that can be used from go-resful to
// generate Swagger API documentation for its models. Please read this PR for more
// information on the implementation: https://github.com/emicklei/go-restful/pull/215
//
// TODOs are ignored from the parser. (e.g. TODO(andronat):... || TODO:...) iff
// are on one line! For multiple line or blocks that you want to ignore use ---.
// Any context after a --- is ignored.
//
// Those methods can be generated by using hack/update-generated-swagger-docs.sh
// AUTO-GENERATED FUNCTIONS START HERE
var map_APIVersion = map[string]string{
"": "An APIVersion represents a single concrete version of an object model.",
"name": "Name of this version (e.g. 'v1').",
"apiGroup": "The API group to add this object into, default 'experimental'.",
}
func (APIVersion) SwaggerDoc() map[string]string {
return map_APIVersion
}
var map_Daemon = map[string]string{
"": "Daemon represents the configuration of a daemon.",
"metadata": "Standard object's metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata",
"spec": "Spec defines the desired behavior of this daemon. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status",
"status": "Status is the current status of this daemon. This data may be out of date by some window of time. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status",
}
func (Daemon) SwaggerDoc() map[string]string {
return map_Daemon
}
var map_DaemonList = map[string]string{
"": "DaemonList is a collection of daemon.",
"metadata": "Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata",
"items": "Items is a list of daemons.",
}
func (DaemonList) SwaggerDoc() map[string]string {
return map_DaemonList
}
var map_DaemonSpec = map[string]string{
"": "DaemonSpec is the specification of a daemon.",
"selector": "Selector is a label query over pods that are managed by the daemon. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors",
"template": "Template is the object that describes the pod that will be created. The Daemon will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#pod-template",
}
func (DaemonSpec) SwaggerDoc() map[string]string {
return map_DaemonSpec
}
var map_DaemonStatus = map[string]string{
"": "DaemonStatus represents the current status of a daemon.",
"currentNumberScheduled": "CurrentNumberScheduled is the number of nodes that are running exactly 1 copy of the daemon and are supposed to run the daemon.",
"numberMisscheduled": "NumberMisscheduled is the number of nodes that are running the daemon, but are not supposed to run the daemon.",
"desiredNumberScheduled": "DesiredNumberScheduled is the total number of nodes that should be running the daemon (including nodes correctly running the daemon).",
}
func (DaemonStatus) SwaggerDoc() map[string]string {
return map_DaemonStatus
}
var map_Deployment = map[string]string{
"spec": "Specification of the desired behavior of the Deployment.",
"status": "Most recently observed status of the Deployment.",
}
func (Deployment) SwaggerDoc() map[string]string {
return map_Deployment
}
var map_DeploymentList = map[string]string{
"items": "Items is the list of deployments.",
}
func (DeploymentList) SwaggerDoc() map[string]string {
return map_DeploymentList
}
var map_DeploymentSpec = map[string]string{
"replicas": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.",
"selector": "Label selector for pods. Existing ReplicationControllers whose pods are selected by this will be scaled down.",
"template": "Template describes the pods that will be created.",
"strategy": "The deployment strategy to use to replace existing pods with new ones.",
"uniqueLabelKey": "Key of the selector that is added to existing RCs (and label key that is added to its pods) to prevent the existing RCs to select new pods (and old pods being selected by new RC). Users can set this to an empty string to indicate that the system should not add any selector and label. If unspecified, system uses \"deployment.kubernetes.io/podTemplateHash\". Value of this key is hash of DeploymentSpec.PodTemplateSpec. No label is added if this is set to empty string.",
}
func (DeploymentSpec) SwaggerDoc() map[string]string {
return map_DeploymentSpec
}
var map_DeploymentStatus = map[string]string{
"replicas": "Total number of ready pods targeted by this deployment (this includes both the old and new pods).",
"updatedReplicas": "Total number of new ready pods with the desired template spec.",
}
func (DeploymentStatus) SwaggerDoc() map[string]string {
return map_DeploymentStatus
}
var map_DeploymentStrategy = map[string]string{
"type": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.",
"rollingUpdate": "Rolling update config params. Present only if DeploymentType = RollingUpdate.",
}
func (DeploymentStrategy) SwaggerDoc() map[string]string {
return map_DeploymentStrategy
}
var map_HorizontalPodAutoscaler = map[string]string{
"": "HorizontalPodAutoscaler represents the configuration of a horizontal pod autoscaler.",
"spec": "Spec defines the behaviour of autoscaler. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status.",
"status": "Status represents the current information about the autoscaler.",
}
func (HorizontalPodAutoscaler) SwaggerDoc() map[string]string {
return map_HorizontalPodAutoscaler
}
var map_HorizontalPodAutoscalerList = map[string]string{
"": "HorizontalPodAutoscaler is a collection of pod autoscalers.",
"items": "Items is the list of horizontal pod autoscalers.",
}
func (HorizontalPodAutoscalerList) SwaggerDoc() map[string]string {
return map_HorizontalPodAutoscalerList
}
var map_HorizontalPodAutoscalerSpec = map[string]string{
"": "HorizontalPodAutoscalerSpec is the specification of a horizontal pod autoscaler.",
"scaleRef": "ScaleRef is a reference to Scale subresource. HorizontalPodAutoscaler will learn the current resource consumption from its status, and will set the desired number of pods by modyfying its spec.",
"minCount": "MinCount is the lower limit for the number of pods that can be set by the autoscaler.",
"maxCount": "MaxCount is the upper limit for the number of pods that can be set by the autoscaler. It cannot be smaller than MinCount.",
"target": "Target is the target average consumption of the given resource that the autoscaler will try to maintain by adjusting the desired number of pods. Currently two types of resources are supported: \"cpu\" and \"memory\".",
}
func (HorizontalPodAutoscalerSpec) SwaggerDoc() map[string]string {
return map_HorizontalPodAutoscalerSpec
}
var map_HorizontalPodAutoscalerStatus = map[string]string{
"": "HorizontalPodAutoscalerStatus contains the current status of a horizontal pod autoscaler",
"currentReplicas": "CurrentReplicas is the number of replicas of pods managed by this autoscaler.",
"desiredReplicas": "DesiredReplicas is the desired number of replicas of pods managed by this autoscaler.",
"currentConsumption": "CurrentConsumption is the current average consumption of the given resource that the autoscaler will try to maintain by adjusting the desired number of pods. Two types of resources are supported: \"cpu\" and \"memory\".",
"lastScaleTimestamp": "LastScaleTimestamp is the last time the HorizontalPodAutoscaler scaled the number of pods. This is used by the autoscaler to controll how often the number of pods is changed.",
}
func (HorizontalPodAutoscalerStatus) SwaggerDoc() map[string]string {
return map_HorizontalPodAutoscalerStatus
}
var map_ReplicationControllerDummy = map[string]string{
"": "Dummy definition",
}
func (ReplicationControllerDummy) SwaggerDoc() map[string]string {
return map_ReplicationControllerDummy
}
var map_ResourceConsumption = map[string]string{
"": "ResourceConsumption is an object for specifying average resource consumption of a particular resource.",
}
func (ResourceConsumption) SwaggerDoc() map[string]string {
return map_ResourceConsumption
}
var map_RollingUpdateDeployment = map[string]string{
"": "Spec to control the desired behavior of rolling update.",
"maxUnavailable": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total pods at the start of update (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0 if MaxSurge is 0. By default, a fixed value of 1 is used. Example: when this is set to 30%, the old RC can be scaled down by 30% immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that at least 70% of original number of pods are available at all times during the update.",
"maxSurge": "The maximum number of pods that can be scheduled above the original number of pods. Value can be an absolute number (ex: 5) or a percentage of total pods at the start of the update (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. By default, a value of 1 is used. Example: when this is set to 30%, the new RC can be scaled up by 30% immediately when the rolling update starts. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of original pods.",
"minReadySeconds": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)",
}
func (RollingUpdateDeployment) SwaggerDoc() map[string]string {
return map_RollingUpdateDeployment
}
var map_Scale = map[string]string{
"": "Scale subresource, applicable to ReplicationControllers and (in future) Deployment.",
"metadata": "Standard object metadata; More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata.",
"spec": "Spec defines the behavior of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status.",
"status": "Status represents the current status of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status. Read-only.",
}
func (Scale) SwaggerDoc() map[string]string {
return map_Scale
}
var map_ScaleSpec = map[string]string{
"": "ScaleSpec describes the attributes a Scale subresource",
"replicas": "Replicas is the number of desired replicas. More info: http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#what-is-a-replication-controller\"",
}
func (ScaleSpec) SwaggerDoc() map[string]string {
return map_ScaleSpec
}
var map_ScaleStatus = map[string]string{
"": "ScaleStatus represents the current status of a Scale subresource.",
"replicas": "Replicas is the number of actual replicas. More info: http://releases.k8s.io/HEAD/docs/user-guide/replication-controller.md#what-is-a-replication-controller",
"selector": "Selector is a label query over pods that should match the replicas count. If it is empty, it is defaulted to labels on Pod template; More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors",
}
func (ScaleStatus) SwaggerDoc() map[string]string {
return map_ScaleStatus
}
var map_SubresourceReference = map[string]string{
"": "SubresourceReference contains enough information to let you inspect or modify the referred subresource.",
"kind": "Kind of the referent; More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds\"",
"namespace": "Namespace of the referent; More info: http://releases.k8s.io/HEAD/docs/user-guide/namespaces.md",
"name": "Name of the referent; More info: http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#names",
"apiVersion": "API version of the referent",
"subresource": "Subresource name of the referent",
}
func (SubresourceReference) SwaggerDoc() map[string]string {
return map_SubresourceReference
}
var map_ThirdPartyResource = map[string]string{
"": "A ThirdPartyResource is a generic representation of a resource, it is used by add-ons and plugins to add new resource types to the API. It consists of one or more Versions of the api.",
"metadata": "Standard object metadata",
"description": "Description is the description of this object.",
"versions": "Versions are versions for this third party object",
}
func (ThirdPartyResource) SwaggerDoc() map[string]string {
return map_ThirdPartyResource
}
var map_ThirdPartyResourceData = map[string]string{
"": "An internal object, used for versioned storage in etcd. Not exposed to the end user.",
"metadata": "Standard object metadata.",
"name": "Data is the raw JSON data for this data.",
}
func (ThirdPartyResourceData) SwaggerDoc() map[string]string {
return map_ThirdPartyResourceData
}
var map_ThirdPartyResourceList = map[string]string{
"metadata": "Standard list metadata.",
"items": "Items is the list of horizontal pod autoscalers.",
}
func (ThirdPartyResourceList) SwaggerDoc() map[string]string {
return map_ThirdPartyResourceList
}
// AUTO-GENERATED FUNCTIONS END HERE