Commit 0191433d authored by mbohlool's avatar mbohlool

Generated protobufs

parent c1096211
...@@ -34,12 +34,15 @@ option go_package = "v1beta1"; ...@@ -34,12 +34,15 @@ option go_package = "v1beta1";
message Cluster { message Cluster {
// Standard object's metadata. // Standard object's metadata.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// Spec defines the behavior of the Cluster. // Spec defines the behavior of the Cluster.
// +optional
optional ClusterSpec spec = 2; optional ClusterSpec spec = 2;
// Status describes the current status of a Cluster // Status describes the current status of a Cluster
// +optional
optional ClusterStatus status = 3; optional ClusterStatus status = 3;
} }
...@@ -52,15 +55,19 @@ message ClusterCondition { ...@@ -52,15 +55,19 @@ message ClusterCondition {
optional string status = 2; optional string status = 2;
// Last time the condition was checked. // Last time the condition was checked.
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.Time lastProbeTime = 3; optional k8s.io.kubernetes.pkg.api.unversioned.Time lastProbeTime = 3;
// Last time the condition transit from one status to another. // Last time the condition transit from one status to another.
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.Time lastTransitionTime = 4; optional k8s.io.kubernetes.pkg.api.unversioned.Time lastTransitionTime = 4;
// (brief) reason for the condition's last transition. // (brief) reason for the condition's last transition.
// +optional
optional string reason = 5; optional string reason = 5;
// Human readable message indicating details about last transition. // Human readable message indicating details about last transition.
// +optional
optional string message = 6; optional string message = 6;
} }
...@@ -68,6 +75,7 @@ message ClusterCondition { ...@@ -68,6 +75,7 @@ message ClusterCondition {
message ClusterList { message ClusterList {
// Standard list metadata. // Standard list metadata.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1;
// List of Cluster objects. // List of Cluster objects.
...@@ -87,19 +95,23 @@ message ClusterSpec { ...@@ -87,19 +95,23 @@ message ClusterSpec {
// Admin needs to ensure that the required secret exists. Secret should be in the same namespace where federation control plane is hosted and it should have kubeconfig in its data with key "kubeconfig". // Admin needs to ensure that the required secret exists. Secret should be in the same namespace where federation control plane is hosted and it should have kubeconfig in its data with key "kubeconfig".
// This will later be changed to a reference to secret in federation control plane when the federation control plane supports secrets. // This will later be changed to a reference to secret in federation control plane when the federation control plane supports secrets.
// This can be left empty if the cluster allows insecure access. // This can be left empty if the cluster allows insecure access.
// +optional
optional k8s.io.kubernetes.pkg.api.v1.LocalObjectReference secretRef = 2; optional k8s.io.kubernetes.pkg.api.v1.LocalObjectReference secretRef = 2;
} }
// ClusterStatus is information about the current status of a cluster updated by cluster controller peridocally. // ClusterStatus is information about the current status of a cluster updated by cluster controller peridocally.
message ClusterStatus { message ClusterStatus {
// Conditions is an array of current cluster conditions. // Conditions is an array of current cluster conditions.
// +optional
repeated ClusterCondition conditions = 1; repeated ClusterCondition conditions = 1;
// Zones is the list of availability zones in which the nodes of the cluster exist, e.g. 'us-east1-a'. // Zones is the list of availability zones in which the nodes of the cluster exist, e.g. 'us-east1-a'.
// These will always be in the same region. // These will always be in the same region.
// +optional
repeated string zones = 5; repeated string zones = 5;
// Region is the name of the region in which all of the nodes in the cluster exist. e.g. 'us-east1'. // Region is the name of the region in which all of the nodes in the cluster exist. e.g. 'us-east1'.
// +optional
optional string region = 6; optional string region = 6;
} }
......
...@@ -38,6 +38,7 @@ message APIGroup { ...@@ -38,6 +38,7 @@ message APIGroup {
// preferredVersion is the version preferred by the API server, which // preferredVersion is the version preferred by the API server, which
// probably is the storage version. // probably is the storage version.
// +optional
optional GroupVersionForDiscovery preferredVersion = 3; optional GroupVersionForDiscovery preferredVersion = 3;
// a map of client CIDR to server address that is serving this group. // a map of client CIDR to server address that is serving this group.
...@@ -185,9 +186,11 @@ message LabelSelector { ...@@ -185,9 +186,11 @@ message LabelSelector {
// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels // matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
// map is equivalent to an element of matchExpressions, whose key field is "key", the // map is equivalent to an element of matchExpressions, whose key field is "key", the
// operator is "In", and the values array contains only "value". The requirements are ANDed. // operator is "In", and the values array contains only "value". The requirements are ANDed.
// +optional
map<string, string> matchLabels = 1; map<string, string> matchLabels = 1;
// matchExpressions is a list of label selector requirements. The requirements are ANDed. // matchExpressions is a list of label selector requirements. The requirements are ANDed.
// +optional
repeated LabelSelectorRequirement matchExpressions = 2; repeated LabelSelectorRequirement matchExpressions = 2;
} }
...@@ -205,6 +208,7 @@ message LabelSelectorRequirement { ...@@ -205,6 +208,7 @@ message LabelSelectorRequirement {
// the values array must be non-empty. If the operator is Exists or DoesNotExist, // the values array must be non-empty. If the operator is Exists or DoesNotExist,
// the values array must be empty. This array is replaced during a strategic // the values array must be empty. This array is replaced during a strategic
// merge patch. // merge patch.
// +optional
repeated string values = 3; repeated string values = 3;
} }
...@@ -214,6 +218,7 @@ message ListMeta { ...@@ -214,6 +218,7 @@ message ListMeta {
// SelfLink is a URL representing this object. // SelfLink is a URL representing this object.
// Populated by the system. // Populated by the system.
// Read-only. // Read-only.
// +optional
optional string selfLink = 1; optional string selfLink = 1;
// String that identifies the server's internal version of this object that // String that identifies the server's internal version of this object that
...@@ -222,6 +227,7 @@ message ListMeta { ...@@ -222,6 +227,7 @@ message ListMeta {
// Populated by the system. // Populated by the system.
// Read-only. // Read-only.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency
// +optional
optional string resourceVersion = 2; optional string resourceVersion = 2;
} }
...@@ -246,29 +252,35 @@ message ServerAddressByClientCIDR { ...@@ -246,29 +252,35 @@ message ServerAddressByClientCIDR {
message Status { message Status {
// Standard list metadata. // Standard list metadata.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds
// +optional
optional ListMeta metadata = 1; optional ListMeta metadata = 1;
// Status of the operation. // Status of the operation.
// One of: "Success" or "Failure". // One of: "Success" or "Failure".
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
// +optional
optional string status = 2; optional string status = 2;
// A human-readable description of the status of this operation. // A human-readable description of the status of this operation.
// +optional
optional string message = 3; optional string message = 3;
// A machine-readable description of why this operation is in the // A machine-readable description of why this operation is in the
// "Failure" status. If this value is empty there // "Failure" status. If this value is empty there
// is no information available. A Reason clarifies an HTTP status // is no information available. A Reason clarifies an HTTP status
// code but does not override it. // code but does not override it.
// +optional
optional string reason = 4; optional string reason = 4;
// Extended data associated with the reason. Each reason may define its // Extended data associated with the reason. Each reason may define its
// own extended details. This field is optional and the data returned // own extended details. This field is optional and the data returned
// is not guaranteed to conform to any schema except that defined by // is not guaranteed to conform to any schema except that defined by
// the reason type. // the reason type.
// +optional
optional StatusDetails details = 5; optional StatusDetails details = 5;
// Suggested HTTP return code for this status, 0 if not set. // Suggested HTTP return code for this status, 0 if not set.
// +optional
optional int32 code = 6; optional int32 code = 6;
} }
...@@ -277,10 +289,12 @@ message Status { ...@@ -277,10 +289,12 @@ message Status {
message StatusCause { message StatusCause {
// A machine-readable description of the cause of the error. If this value is // A machine-readable description of the cause of the error. If this value is
// empty there is no information available. // empty there is no information available.
// +optional
optional string reason = 1; optional string reason = 1;
// A human-readable description of the cause of the error. This field may be // A human-readable description of the cause of the error. This field may be
// presented as-is to a reader. // presented as-is to a reader.
// +optional
optional string message = 2; optional string message = 2;
// The field of the resource that has caused this error, as named by its JSON // The field of the resource that has caused this error, as named by its JSON
...@@ -292,6 +306,7 @@ message StatusCause { ...@@ -292,6 +306,7 @@ message StatusCause {
// Examples: // Examples:
// "name" - the field "name" on the current resource // "name" - the field "name" on the current resource
// "items[0].name" - the field "name" on the first array entry in "items" // "items[0].name" - the field "name" on the first array entry in "items"
// +optional
optional string field = 3; optional string field = 3;
} }
...@@ -304,21 +319,26 @@ message StatusCause { ...@@ -304,21 +319,26 @@ message StatusCause {
message StatusDetails { message StatusDetails {
// The name attribute of the resource associated with the status StatusReason // The name attribute of the resource associated with the status StatusReason
// (when there is a single name which can be described). // (when there is a single name which can be described).
// +optional
optional string name = 1; optional string name = 1;
// The group attribute of the resource associated with the status StatusReason. // The group attribute of the resource associated with the status StatusReason.
// +optional
optional string group = 2; optional string group = 2;
// The kind attribute of the resource associated with the status StatusReason. // The kind attribute of the resource associated with the status StatusReason.
// On some operations may differ from the requested resource Kind. // On some operations may differ from the requested resource Kind.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds
// +optional
optional string kind = 3; optional string kind = 3;
// The Causes array includes more details associated with the StatusReason // The Causes array includes more details associated with the StatusReason
// failure. Not all StatusReasons may provide detailed causes. // failure. Not all StatusReasons may provide detailed causes.
// +optional
repeated StatusCause causes = 4; repeated StatusCause causes = 4;
// If specified, the time in seconds before the operation should be retried. // If specified, the time in seconds before the operation should be retried.
// +optional
optional int32 retryAfterSeconds = 5; optional int32 retryAfterSeconds = 5;
} }
...@@ -367,12 +387,14 @@ message TypeMeta { ...@@ -367,12 +387,14 @@ message TypeMeta {
// Cannot be updated. // Cannot be updated.
// In CamelCase. // In CamelCase.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds
// +optional
optional string kind = 1; optional string kind = 1;
// APIVersion defines the versioned schema of this representation of an object. // APIVersion defines the versioned schema of this representation of an object.
// Servers should convert recognized schemas to the latest internal value, and // Servers should convert recognized schemas to the latest internal value, and
// may reject unrecognized values. // may reject unrecognized values.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources
// +optional
optional string apiVersion = 2; optional string apiVersion = 2;
} }
...@@ -38,18 +38,22 @@ option go_package = "v1alpha1"; ...@@ -38,18 +38,22 @@ option go_package = "v1alpha1";
// map to the same storage identity. PetSet is currently in alpha // map to the same storage identity. PetSet is currently in alpha
// and subject to change without notice. // and subject to change without notice.
message PetSet { message PetSet {
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// Spec defines the desired identities of pets in this set. // Spec defines the desired identities of pets in this set.
// +optional
optional PetSetSpec spec = 2; optional PetSetSpec spec = 2;
// Status is the current status of Pets in this PetSet. This data // Status is the current status of Pets in this PetSet. This data
// may be out of date by some window of time. // may be out of date by some window of time.
// +optional
optional PetSetStatus status = 3; optional PetSetStatus status = 3;
} }
// PetSetList is a collection of PetSets. // PetSetList is a collection of PetSets.
message PetSetList { message PetSetList {
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1;
repeated PetSet items = 2; repeated PetSet items = 2;
...@@ -62,11 +66,13 @@ message PetSetSpec { ...@@ -62,11 +66,13 @@ message PetSetSpec {
// same Template, but individual replicas also have a consistent identity. // same Template, but individual replicas also have a consistent identity.
// If unspecified, defaults to 1. // If unspecified, defaults to 1.
// TODO: Consider a rename of this field. // TODO: Consider a rename of this field.
// +optional
optional int32 replicas = 1; optional int32 replicas = 1;
// Selector is a label query over pods that should match the replica count. // Selector is a label query over pods that should match the replica count.
// If empty, defaulted to labels on the pod template. // If empty, defaulted to labels on the pod template.
// More info: http://kubernetes.io/docs/user-guide/labels#label-selectors // More info: http://kubernetes.io/docs/user-guide/labels#label-selectors
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.LabelSelector selector = 2; optional k8s.io.kubernetes.pkg.api.unversioned.LabelSelector selector = 2;
// Template is the object that describes the pod that will be created if // Template is the object that describes the pod that will be created if
...@@ -82,6 +88,7 @@ message PetSetSpec { ...@@ -82,6 +88,7 @@ message PetSetSpec {
// container in the template. A claim in this list takes precedence over // container in the template. A claim in this list takes precedence over
// any volumes in the template, with the same name. // any volumes in the template, with the same name.
// TODO: Define the behavior if a claim already exists with the same name. // TODO: Define the behavior if a claim already exists with the same name.
// +optional
repeated k8s.io.kubernetes.pkg.api.v1.PersistentVolumeClaim volumeClaimTemplates = 4; repeated k8s.io.kubernetes.pkg.api.v1.PersistentVolumeClaim volumeClaimTemplates = 4;
// ServiceName is the name of the service that governs this PetSet. // ServiceName is the name of the service that governs this PetSet.
...@@ -95,6 +102,7 @@ message PetSetSpec { ...@@ -95,6 +102,7 @@ message PetSetSpec {
// PetSetStatus represents the current state of a PetSet. // PetSetStatus represents the current state of a PetSet.
message PetSetStatus { message PetSetStatus {
// most recent generation observed by this autoscaler. // most recent generation observed by this autoscaler.
// +optional
optional int64 observedGeneration = 1; optional int64 observedGeneration = 1;
// Replicas is the number of actual replicas. // Replicas is the number of actual replicas.
......
...@@ -43,30 +43,36 @@ message ExtraValue { ...@@ -43,30 +43,36 @@ message ExtraValue {
// Note: TokenReview requests may be cached by the webhook token authenticator // Note: TokenReview requests may be cached by the webhook token authenticator
// plugin in the kube-apiserver. // plugin in the kube-apiserver.
message TokenReview { message TokenReview {
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// Spec holds information about the request being evaluated // Spec holds information about the request being evaluated
optional TokenReviewSpec spec = 2; optional TokenReviewSpec spec = 2;
// Status is filled in by the server and indicates whether the request can be authenticated. // Status is filled in by the server and indicates whether the request can be authenticated.
// +optional
optional TokenReviewStatus status = 3; optional TokenReviewStatus status = 3;
} }
// TokenReviewSpec is a description of the token authentication request. // TokenReviewSpec is a description of the token authentication request.
message TokenReviewSpec { message TokenReviewSpec {
// Token is the opaque bearer token. // Token is the opaque bearer token.
// +optional
optional string token = 1; optional string token = 1;
} }
// TokenReviewStatus is the result of the token authentication request. // TokenReviewStatus is the result of the token authentication request.
message TokenReviewStatus { message TokenReviewStatus {
// Authenticated indicates that the token was associated with a known user. // Authenticated indicates that the token was associated with a known user.
// +optional
optional bool authenticated = 1; optional bool authenticated = 1;
// User is the UserInfo associated with the provided token. // User is the UserInfo associated with the provided token.
// +optional
optional UserInfo user = 2; optional UserInfo user = 2;
// Error indicates that the token couldn't be checked // Error indicates that the token couldn't be checked
// +optional
optional string error = 3; optional string error = 3;
} }
...@@ -74,17 +80,21 @@ message TokenReviewStatus { ...@@ -74,17 +80,21 @@ message TokenReviewStatus {
// user.Info interface. // user.Info interface.
message UserInfo { message UserInfo {
// The name that uniquely identifies this user among all active users. // The name that uniquely identifies this user among all active users.
// +optional
optional string username = 1; optional string username = 1;
// A unique value that identifies this user across time. If this user is // A unique value that identifies this user across time. If this user is
// deleted and another user by the same name is added, they will have // deleted and another user by the same name is added, they will have
// different UIDs. // different UIDs.
// +optional
optional string uid = 2; optional string uid = 2;
// The names of groups this user is a part of. // The names of groups this user is a part of.
// +optional
repeated string groups = 3; repeated string groups = 3;
// Any additional information provided by the authenticator. // Any additional information provided by the authenticator.
// +optional
map<string, ExtraValue> extra = 4; map<string, ExtraValue> extra = 4;
} }
...@@ -43,6 +43,7 @@ message ExtraValue { ...@@ -43,6 +43,7 @@ message ExtraValue {
// Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions // Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions
// checking. // checking.
message LocalSubjectAccessReview { message LocalSubjectAccessReview {
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace // Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace
...@@ -50,15 +51,18 @@ message LocalSubjectAccessReview { ...@@ -50,15 +51,18 @@ message LocalSubjectAccessReview {
optional SubjectAccessReviewSpec spec = 2; optional SubjectAccessReviewSpec spec = 2;
// Status is filled in by the server and indicates whether the request is allowed or not // Status is filled in by the server and indicates whether the request is allowed or not
// +optional
optional SubjectAccessReviewStatus status = 3; optional SubjectAccessReviewStatus status = 3;
} }
// NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface // NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface
message NonResourceAttributes { message NonResourceAttributes {
// Path is the URL path of the request // Path is the URL path of the request
// +optional
optional string path = 1; optional string path = 1;
// Verb is the standard HTTP verb // Verb is the standard HTTP verb
// +optional
optional string verb = 2; optional string verb = 2;
} }
...@@ -68,24 +72,31 @@ message ResourceAttributes { ...@@ -68,24 +72,31 @@ message ResourceAttributes {
// "" (empty) is defaulted for LocalSubjectAccessReviews // "" (empty) is defaulted for LocalSubjectAccessReviews
// "" (empty) is empty for cluster-scoped resources // "" (empty) is empty for cluster-scoped resources
// "" (empty) means "all" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview // "" (empty) means "all" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview
// +optional
optional string namespace = 1; optional string namespace = 1;
// Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. "*" means all. // Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. "*" means all.
// +optional
optional string verb = 2; optional string verb = 2;
// Group is the API Group of the Resource. "*" means all. // Group is the API Group of the Resource. "*" means all.
// +optional
optional string group = 3; optional string group = 3;
// Version is the API Version of the Resource. "*" means all. // Version is the API Version of the Resource. "*" means all.
// +optional
optional string version = 4; optional string version = 4;
// Resource is one of the existing resource types. "*" means all. // Resource is one of the existing resource types. "*" means all.
// +optional
optional string resource = 5; optional string resource = 5;
// Subresource is one of the existing resource types. "" means none. // Subresource is one of the existing resource types. "" means none.
// +optional
optional string subresource = 6; optional string subresource = 6;
// Name is the name of the resource being requested for a "get" or deleted for a "delete". "" (empty) means all. // Name is the name of the resource being requested for a "get" or deleted for a "delete". "" (empty) means all.
// +optional
optional string name = 7; optional string name = 7;
} }
...@@ -93,12 +104,14 @@ message ResourceAttributes { ...@@ -93,12 +104,14 @@ message ResourceAttributes {
// spec.namespace means "in all namespaces". Self is a special case, because users should always be able // spec.namespace means "in all namespaces". Self is a special case, because users should always be able
// to check whether they can perform an action // to check whether they can perform an action
message SelfSubjectAccessReview { message SelfSubjectAccessReview {
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// Spec holds information about the request being evaluated. user and groups must be empty // Spec holds information about the request being evaluated. user and groups must be empty
optional SelfSubjectAccessReviewSpec spec = 2; optional SelfSubjectAccessReviewSpec spec = 2;
// Status is filled in by the server and indicates whether the request is allowed or not // Status is filled in by the server and indicates whether the request is allowed or not
// +optional
optional SubjectAccessReviewStatus status = 3; optional SubjectAccessReviewStatus status = 3;
} }
...@@ -106,20 +119,24 @@ message SelfSubjectAccessReview { ...@@ -106,20 +119,24 @@ message SelfSubjectAccessReview {
// and NonResourceAuthorizationAttributes must be set // and NonResourceAuthorizationAttributes must be set
message SelfSubjectAccessReviewSpec { message SelfSubjectAccessReviewSpec {
// ResourceAuthorizationAttributes describes information for a resource access request // ResourceAuthorizationAttributes describes information for a resource access request
// +optional
optional ResourceAttributes resourceAttributes = 1; optional ResourceAttributes resourceAttributes = 1;
// NonResourceAttributes describes information for a non-resource access request // NonResourceAttributes describes information for a non-resource access request
// +optional
optional NonResourceAttributes nonResourceAttributes = 2; optional NonResourceAttributes nonResourceAttributes = 2;
} }
// SubjectAccessReview checks whether or not a user or group can perform an action. // SubjectAccessReview checks whether or not a user or group can perform an action.
message SubjectAccessReview { message SubjectAccessReview {
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// Spec holds information about the request being evaluated // Spec holds information about the request being evaluated
optional SubjectAccessReviewSpec spec = 2; optional SubjectAccessReviewSpec spec = 2;
// Status is filled in by the server and indicates whether the request is allowed or not // Status is filled in by the server and indicates whether the request is allowed or not
// +optional
optional SubjectAccessReviewStatus status = 3; optional SubjectAccessReviewStatus status = 3;
} }
...@@ -127,20 +144,25 @@ message SubjectAccessReview { ...@@ -127,20 +144,25 @@ message SubjectAccessReview {
// and NonResourceAuthorizationAttributes must be set // and NonResourceAuthorizationAttributes must be set
message SubjectAccessReviewSpec { message SubjectAccessReviewSpec {
// ResourceAuthorizationAttributes describes information for a resource access request // ResourceAuthorizationAttributes describes information for a resource access request
// +optional
optional ResourceAttributes resourceAttributes = 1; optional ResourceAttributes resourceAttributes = 1;
// NonResourceAttributes describes information for a non-resource access request // NonResourceAttributes describes information for a non-resource access request
// +optional
optional NonResourceAttributes nonResourceAttributes = 2; optional NonResourceAttributes nonResourceAttributes = 2;
// User is the user you're testing for. // User is the user you're testing for.
// If you specify "User" but not "Group", then is it interpreted as "What if User were not a member of any groups // If you specify "User" but not "Group", then is it interpreted as "What if User were not a member of any groups
// +optional
optional string verb = 3; optional string verb = 3;
// Groups is the groups you're testing for. // Groups is the groups you're testing for.
// +optional
repeated string group = 4; repeated string group = 4;
// Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer // Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer
// it needs a reflection here. // it needs a reflection here.
// +optional
map<string, ExtraValue> extra = 5; map<string, ExtraValue> extra = 5;
} }
...@@ -150,11 +172,13 @@ message SubjectAccessReviewStatus { ...@@ -150,11 +172,13 @@ message SubjectAccessReviewStatus {
optional bool allowed = 1; optional bool allowed = 1;
// Reason is optional. It indicates why a request was allowed or denied. // Reason is optional. It indicates why a request was allowed or denied.
// +optional
optional string reason = 2; optional string reason = 2;
// EvaluationError is an indication that some error occurred during the authorization check. // EvaluationError is an indication that some error occurred during the authorization check.
// It is entirely possible to get an error and be able to continue determine authorization status in spite of it. // It is entirely possible to get an error and be able to continue determine authorization status in spite of it.
// For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request. // For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.
// +optional
optional string evaluationError = 3; optional string evaluationError = 3;
} }
...@@ -39,24 +39,29 @@ message CrossVersionObjectReference { ...@@ -39,24 +39,29 @@ message CrossVersionObjectReference {
optional string name = 2; optional string name = 2;
// API version of the referent // API version of the referent
// +optional
optional string apiVersion = 3; optional string apiVersion = 3;
} }
// configuration of a horizontal pod autoscaler. // configuration of a horizontal pod autoscaler.
message HorizontalPodAutoscaler { message HorizontalPodAutoscaler {
// Standard object metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata // Standard object metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// behaviour of autoscaler. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status. // behaviour of autoscaler. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status.
// +optional
optional HorizontalPodAutoscalerSpec spec = 2; optional HorizontalPodAutoscalerSpec spec = 2;
// current information about the autoscaler. // current information about the autoscaler.
// +optional
optional HorizontalPodAutoscalerStatus status = 3; optional HorizontalPodAutoscalerStatus status = 3;
} }
// list of horizontal pod autoscaler objects. // list of horizontal pod autoscaler objects.
message HorizontalPodAutoscalerList { message HorizontalPodAutoscalerList {
// Standard list metadata. // Standard list metadata.
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1;
// list of horizontal pod autoscaler objects. // list of horizontal pod autoscaler objects.
...@@ -70,6 +75,7 @@ message HorizontalPodAutoscalerSpec { ...@@ -70,6 +75,7 @@ message HorizontalPodAutoscalerSpec {
optional CrossVersionObjectReference scaleTargetRef = 1; optional CrossVersionObjectReference scaleTargetRef = 1;
// lower limit for the number of pods that can be set by the autoscaler, default 1. // lower limit for the number of pods that can be set by the autoscaler, default 1.
// +optional
optional int32 minReplicas = 2; optional int32 minReplicas = 2;
// upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas. // upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.
...@@ -77,16 +83,19 @@ message HorizontalPodAutoscalerSpec { ...@@ -77,16 +83,19 @@ message HorizontalPodAutoscalerSpec {
// target average CPU utilization (represented as a percentage of requested CPU) over all the pods; // target average CPU utilization (represented as a percentage of requested CPU) over all the pods;
// if not specified the default autoscaling policy will be used. // if not specified the default autoscaling policy will be used.
// +optional
optional int32 targetCPUUtilizationPercentage = 4; optional int32 targetCPUUtilizationPercentage = 4;
} }
// current status of a horizontal pod autoscaler // current status of a horizontal pod autoscaler
message HorizontalPodAutoscalerStatus { message HorizontalPodAutoscalerStatus {
// most recent generation observed by this autoscaler. // most recent generation observed by this autoscaler.
// +optional
optional int64 observedGeneration = 1; optional int64 observedGeneration = 1;
// last time the HorizontalPodAutoscaler scaled the number of pods; // last time the HorizontalPodAutoscaler scaled the number of pods;
// used by the autoscaler to control how often the number of pods is changed. // used by the autoscaler to control how often the number of pods is changed.
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.Time lastScaleTime = 2; optional k8s.io.kubernetes.pkg.api.unversioned.Time lastScaleTime = 2;
// current number of replicas of pods managed by this autoscaler. // current number of replicas of pods managed by this autoscaler.
...@@ -97,24 +106,29 @@ message HorizontalPodAutoscalerStatus { ...@@ -97,24 +106,29 @@ message HorizontalPodAutoscalerStatus {
// current average CPU utilization over all pods, represented as a percentage of requested CPU, // current average CPU utilization over all pods, represented as a percentage of requested CPU,
// e.g. 70 means that an average pod is using now 70% of its requested CPU. // e.g. 70 means that an average pod is using now 70% of its requested CPU.
// +optional
optional int32 currentCPUUtilizationPercentage = 5; optional int32 currentCPUUtilizationPercentage = 5;
} }
// Scale represents a scaling request for a resource. // Scale represents a scaling request for a resource.
message Scale { message Scale {
// Standard object metadata; More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata. // Standard object metadata; More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata.
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// defines the behavior of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status. // defines the behavior of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status.
// +optional
optional ScaleSpec spec = 2; optional ScaleSpec spec = 2;
// current status of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status. Read-only. // current status of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status. Read-only.
// +optional
optional ScaleStatus status = 3; optional ScaleStatus status = 3;
} }
// ScaleSpec describes the attributes of a scale subresource. // ScaleSpec describes the attributes of a scale subresource.
message ScaleSpec { message ScaleSpec {
// desired number of instances for the scaled object. // desired number of instances for the scaled object.
// +optional
optional int32 replicas = 1; optional int32 replicas = 1;
} }
...@@ -127,6 +141,7 @@ message ScaleStatus { ...@@ -127,6 +141,7 @@ message ScaleStatus {
// as the label selector but in the string format to avoid introspection // as the label selector but in the string format to avoid introspection
// by clients. The string will be in the same format as the query-param syntax. // by clients. The string will be in the same format as the query-param syntax.
// More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors // More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors
// +optional
optional string selector = 2; optional string selector = 2;
} }
...@@ -34,14 +34,17 @@ option go_package = "v1"; ...@@ -34,14 +34,17 @@ option go_package = "v1";
message Job { message Job {
// Standard object's metadata. // Standard object's metadata.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// Spec is a structure defining the expected behavior of a job. // Spec is a structure defining the expected behavior of a job.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
// +optional
optional JobSpec spec = 2; optional JobSpec spec = 2;
// Status is a structure describing current status of a job. // Status is a structure describing current status of a job.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
// +optional
optional JobStatus status = 3; optional JobStatus status = 3;
} }
...@@ -54,15 +57,19 @@ message JobCondition { ...@@ -54,15 +57,19 @@ message JobCondition {
optional string status = 2; optional string status = 2;
// Last time the condition was checked. // Last time the condition was checked.
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.Time lastProbeTime = 3; optional k8s.io.kubernetes.pkg.api.unversioned.Time lastProbeTime = 3;
// Last time the condition transit from one status to another. // Last time the condition transit from one status to another.
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.Time lastTransitionTime = 4; optional k8s.io.kubernetes.pkg.api.unversioned.Time lastTransitionTime = 4;
// (brief) reason for the condition's last transition. // (brief) reason for the condition's last transition.
// +optional
optional string reason = 5; optional string reason = 5;
// Human readable message indicating details about last transition. // Human readable message indicating details about last transition.
// +optional
optional string message = 6; optional string message = 6;
} }
...@@ -70,6 +77,7 @@ message JobCondition { ...@@ -70,6 +77,7 @@ message JobCondition {
message JobList { message JobList {
// Standard list metadata // Standard list metadata
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1;
// Items is the list of Job. // Items is the list of Job.
...@@ -83,6 +91,7 @@ message JobSpec { ...@@ -83,6 +91,7 @@ message JobSpec {
// be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), // be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism),
// i.e. when the work left to do is less than max parallelism. // i.e. when the work left to do is less than max parallelism.
// More info: http://kubernetes.io/docs/user-guide/jobs // More info: http://kubernetes.io/docs/user-guide/jobs
// +optional
optional int32 parallelism = 1; optional int32 parallelism = 1;
// Completions specifies the desired number of successfully finished pods the // Completions specifies the desired number of successfully finished pods the
...@@ -91,15 +100,18 @@ message JobSpec { ...@@ -91,15 +100,18 @@ message JobSpec {
// value. Setting to 1 means that parallelism is limited to 1 and the success of that // value. Setting to 1 means that parallelism is limited to 1 and the success of that
// pod signals the success of the job. // pod signals the success of the job.
// More info: http://kubernetes.io/docs/user-guide/jobs // More info: http://kubernetes.io/docs/user-guide/jobs
// +optional
optional int32 completions = 2; optional int32 completions = 2;
// Optional duration in seconds relative to the startTime that the job may be active // Optional duration in seconds relative to the startTime that the job may be active
// before the system tries to terminate it; value must be positive integer // before the system tries to terminate it; value must be positive integer
// +optional
optional int64 activeDeadlineSeconds = 3; optional int64 activeDeadlineSeconds = 3;
// Selector is a label query over pods that should match the pod count. // Selector is a label query over pods that should match the pod count.
// Normally, the system sets this field for you. // Normally, the system sets this field for you.
// More info: http://kubernetes.io/docs/user-guide/labels#label-selectors // More info: http://kubernetes.io/docs/user-guide/labels#label-selectors
// +optional
optional LabelSelector selector = 4; optional LabelSelector selector = 4;
// ManualSelector controls generation of pod labels and pod selectors. // ManualSelector controls generation of pod labels and pod selectors.
...@@ -112,6 +124,7 @@ message JobSpec { ...@@ -112,6 +124,7 @@ message JobSpec {
// `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` // `manualSelector=true` in jobs that were created with the old `extensions/v1beta1`
// API. // API.
// More info: http://releases.k8s.io/HEAD/docs/design/selector-generation.md // More info: http://releases.k8s.io/HEAD/docs/design/selector-generation.md
// +optional
optional bool manualSelector = 5; optional bool manualSelector = 5;
// Template is the object that describes the pod that will be created when // Template is the object that describes the pod that will be created when
...@@ -124,25 +137,31 @@ message JobSpec { ...@@ -124,25 +137,31 @@ message JobSpec {
message JobStatus { message JobStatus {
// Conditions represent the latest available observations of an object's current state. // Conditions represent the latest available observations of an object's current state.
// More info: http://kubernetes.io/docs/user-guide/jobs // More info: http://kubernetes.io/docs/user-guide/jobs
// +optional
repeated JobCondition conditions = 1; repeated JobCondition conditions = 1;
// StartTime represents time when the job was acknowledged by the Job Manager. // StartTime represents time when the job was acknowledged by the Job Manager.
// It is not guaranteed to be set in happens-before order across separate operations. // It is not guaranteed to be set in happens-before order across separate operations.
// It is represented in RFC3339 form and is in UTC. // It is represented in RFC3339 form and is in UTC.
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.Time startTime = 2; optional k8s.io.kubernetes.pkg.api.unversioned.Time startTime = 2;
// CompletionTime represents time when the job was completed. It is not guaranteed to // CompletionTime represents time when the job was completed. It is not guaranteed to
// be set in happens-before order across separate operations. // be set in happens-before order across separate operations.
// It is represented in RFC3339 form and is in UTC. // It is represented in RFC3339 form and is in UTC.
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.Time completionTime = 3; optional k8s.io.kubernetes.pkg.api.unversioned.Time completionTime = 3;
// Active is the number of actively running pods. // Active is the number of actively running pods.
// +optional
optional int32 active = 4; optional int32 active = 4;
// Succeeded is the number of pods which reached Phase Succeeded. // Succeeded is the number of pods which reached Phase Succeeded.
// +optional
optional int32 succeeded = 5; optional int32 succeeded = 5;
// Failed is the number of pods which reached Phase Failed. // Failed is the number of pods which reached Phase Failed.
// +optional
optional int32 failed = 6; optional int32 failed = 6;
} }
...@@ -153,9 +172,11 @@ message LabelSelector { ...@@ -153,9 +172,11 @@ message LabelSelector {
// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels // matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
// map is equivalent to an element of matchExpressions, whose key field is "key", the // map is equivalent to an element of matchExpressions, whose key field is "key", the
// operator is "In", and the values array contains only "value". The requirements are ANDed. // operator is "In", and the values array contains only "value". The requirements are ANDed.
// +optional
map<string, string> matchLabels = 1; map<string, string> matchLabels = 1;
// matchExpressions is a list of label selector requirements. The requirements are ANDed. // matchExpressions is a list of label selector requirements. The requirements are ANDed.
// +optional
repeated LabelSelectorRequirement matchExpressions = 2; repeated LabelSelectorRequirement matchExpressions = 2;
} }
...@@ -173,6 +194,7 @@ message LabelSelectorRequirement { ...@@ -173,6 +194,7 @@ message LabelSelectorRequirement {
// the values array must be non-empty. If the operator is Exists or DoesNotExist, // the values array must be non-empty. If the operator is Exists or DoesNotExist,
// the values array must be empty. This array is replaced during a strategic // the values array must be empty. This array is replaced during a strategic
// merge patch. // merge patch.
// +optional
repeated string values = 3; repeated string values = 3;
} }
...@@ -34,14 +34,17 @@ option go_package = "v2alpha1"; ...@@ -34,14 +34,17 @@ option go_package = "v2alpha1";
message Job { message Job {
// Standard object's metadata. // Standard object's metadata.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// Spec is a structure defining the expected behavior of a job. // Spec is a structure defining the expected behavior of a job.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
// +optional
optional JobSpec spec = 2; optional JobSpec spec = 2;
// Status is a structure describing current status of a job. // Status is a structure describing current status of a job.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
// +optional
optional JobStatus status = 3; optional JobStatus status = 3;
} }
...@@ -54,15 +57,19 @@ message JobCondition { ...@@ -54,15 +57,19 @@ message JobCondition {
optional string status = 2; optional string status = 2;
// Last time the condition was checked. // Last time the condition was checked.
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.Time lastProbeTime = 3; optional k8s.io.kubernetes.pkg.api.unversioned.Time lastProbeTime = 3;
// Last time the condition transit from one status to another. // Last time the condition transit from one status to another.
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.Time lastTransitionTime = 4; optional k8s.io.kubernetes.pkg.api.unversioned.Time lastTransitionTime = 4;
// (brief) reason for the condition's last transition. // (brief) reason for the condition's last transition.
// +optional
optional string reason = 5; optional string reason = 5;
// Human readable message indicating details about last transition. // Human readable message indicating details about last transition.
// +optional
optional string message = 6; optional string message = 6;
} }
...@@ -70,6 +77,7 @@ message JobCondition { ...@@ -70,6 +77,7 @@ message JobCondition {
message JobList { message JobList {
// Standard list metadata // Standard list metadata
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1;
// Items is the list of Job. // Items is the list of Job.
...@@ -83,6 +91,7 @@ message JobSpec { ...@@ -83,6 +91,7 @@ message JobSpec {
// be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), // be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism),
// i.e. when the work left to do is less than max parallelism. // i.e. when the work left to do is less than max parallelism.
// More info: http://kubernetes.io/docs/user-guide/jobs // More info: http://kubernetes.io/docs/user-guide/jobs
// +optional
optional int32 parallelism = 1; optional int32 parallelism = 1;
// Completions specifies the desired number of successfully finished pods the // Completions specifies the desired number of successfully finished pods the
...@@ -91,15 +100,18 @@ message JobSpec { ...@@ -91,15 +100,18 @@ message JobSpec {
// value. Setting to 1 means that parallelism is limited to 1 and the success of that // value. Setting to 1 means that parallelism is limited to 1 and the success of that
// pod signals the success of the job. // pod signals the success of the job.
// More info: http://kubernetes.io/docs/user-guide/jobs // More info: http://kubernetes.io/docs/user-guide/jobs
// +optional
optional int32 completions = 2; optional int32 completions = 2;
// Optional duration in seconds relative to the startTime that the job may be active // Optional duration in seconds relative to the startTime that the job may be active
// before the system tries to terminate it; value must be positive integer // before the system tries to terminate it; value must be positive integer
// +optional
optional int64 activeDeadlineSeconds = 3; optional int64 activeDeadlineSeconds = 3;
// Selector is a label query over pods that should match the pod count. // Selector is a label query over pods that should match the pod count.
// Normally, the system sets this field for you. // Normally, the system sets this field for you.
// More info: http://kubernetes.io/docs/user-guide/labels#label-selectors // More info: http://kubernetes.io/docs/user-guide/labels#label-selectors
// +optional
optional LabelSelector selector = 4; optional LabelSelector selector = 4;
// ManualSelector controls generation of pod labels and pod selectors. // ManualSelector controls generation of pod labels and pod selectors.
...@@ -112,6 +124,7 @@ message JobSpec { ...@@ -112,6 +124,7 @@ message JobSpec {
// `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` // `manualSelector=true` in jobs that were created with the old `extensions/v1beta1`
// API. // API.
// More info: http://releases.k8s.io/HEAD/docs/design/selector-generation.md // More info: http://releases.k8s.io/HEAD/docs/design/selector-generation.md
// +optional
optional bool manualSelector = 5; optional bool manualSelector = 5;
// Template is the object that describes the pod that will be created when // Template is the object that describes the pod that will be created when
...@@ -124,25 +137,31 @@ message JobSpec { ...@@ -124,25 +137,31 @@ message JobSpec {
message JobStatus { message JobStatus {
// Conditions represent the latest available observations of an object's current state. // Conditions represent the latest available observations of an object's current state.
// More info: http://kubernetes.io/docs/user-guide/jobs // More info: http://kubernetes.io/docs/user-guide/jobs
// +optional
repeated JobCondition conditions = 1; repeated JobCondition conditions = 1;
// StartTime represents time when the job was acknowledged by the Job Manager. // StartTime represents time when the job was acknowledged by the Job Manager.
// It is not guaranteed to be set in happens-before order across separate operations. // It is not guaranteed to be set in happens-before order across separate operations.
// It is represented in RFC3339 form and is in UTC. // It is represented in RFC3339 form and is in UTC.
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.Time startTime = 2; optional k8s.io.kubernetes.pkg.api.unversioned.Time startTime = 2;
// CompletionTime represents time when the job was completed. It is not guaranteed to // CompletionTime represents time when the job was completed. It is not guaranteed to
// be set in happens-before order across separate operations. // be set in happens-before order across separate operations.
// It is represented in RFC3339 form and is in UTC. // It is represented in RFC3339 form and is in UTC.
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.Time completionTime = 3; optional k8s.io.kubernetes.pkg.api.unversioned.Time completionTime = 3;
// Active is the number of actively running pods. // Active is the number of actively running pods.
// +optional
optional int32 active = 4; optional int32 active = 4;
// Succeeded is the number of pods which reached Phase Succeeded. // Succeeded is the number of pods which reached Phase Succeeded.
// +optional
optional int32 succeeded = 5; optional int32 succeeded = 5;
// Failed is the number of pods which reached Phase Failed. // Failed is the number of pods which reached Phase Failed.
// +optional
optional int32 failed = 6; optional int32 failed = 6;
} }
...@@ -150,10 +169,12 @@ message JobStatus { ...@@ -150,10 +169,12 @@ message JobStatus {
message JobTemplate { message JobTemplate {
// Standard object's metadata. // Standard object's metadata.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// Template defines jobs that will be created from this template // Template defines jobs that will be created from this template
// http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status // http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
// +optional
optional JobTemplateSpec template = 2; optional JobTemplateSpec template = 2;
} }
...@@ -161,10 +182,12 @@ message JobTemplate { ...@@ -161,10 +182,12 @@ message JobTemplate {
message JobTemplateSpec { message JobTemplateSpec {
// Standard object's metadata of the jobs created from this template. // Standard object's metadata of the jobs created from this template.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// Specification of the desired behavior of the job. // Specification of the desired behavior of the job.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
// +optional
optional JobSpec spec = 2; optional JobSpec spec = 2;
} }
...@@ -175,9 +198,11 @@ message LabelSelector { ...@@ -175,9 +198,11 @@ message LabelSelector {
// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels // matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
// map is equivalent to an element of matchExpressions, whose key field is "key", the // map is equivalent to an element of matchExpressions, whose key field is "key", the
// operator is "In", and the values array contains only "value". The requirements are ANDed. // operator is "In", and the values array contains only "value". The requirements are ANDed.
// +optional
map<string, string> matchLabels = 1; map<string, string> matchLabels = 1;
// matchExpressions is a list of label selector requirements. The requirements are ANDed. // matchExpressions is a list of label selector requirements. The requirements are ANDed.
// +optional
repeated LabelSelectorRequirement matchExpressions = 2; repeated LabelSelectorRequirement matchExpressions = 2;
} }
...@@ -195,6 +220,7 @@ message LabelSelectorRequirement { ...@@ -195,6 +220,7 @@ message LabelSelectorRequirement {
// the values array must be non-empty. If the operator is Exists or DoesNotExist, // the values array must be non-empty. If the operator is Exists or DoesNotExist,
// the values array must be empty. This array is replaced during a strategic // the values array must be empty. This array is replaced during a strategic
// merge patch. // merge patch.
// +optional
repeated string values = 3; repeated string values = 3;
} }
...@@ -202,14 +228,17 @@ message LabelSelectorRequirement { ...@@ -202,14 +228,17 @@ message LabelSelectorRequirement {
message ScheduledJob { message ScheduledJob {
// Standard object's metadata. // Standard object's metadata.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// Spec is a structure defining the expected behavior of a job, including the schedule. // Spec is a structure defining the expected behavior of a job, including the schedule.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
// +optional
optional ScheduledJobSpec spec = 2; optional ScheduledJobSpec spec = 2;
// Status is a structure describing current status of a job. // Status is a structure describing current status of a job.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status
// +optional
optional ScheduledJobStatus status = 3; optional ScheduledJobStatus status = 3;
} }
...@@ -217,6 +246,7 @@ message ScheduledJob { ...@@ -217,6 +246,7 @@ message ScheduledJob {
message ScheduledJobList { message ScheduledJobList {
// Standard list metadata // Standard list metadata
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1;
// Items is the list of ScheduledJob. // Items is the list of ScheduledJob.
...@@ -230,13 +260,16 @@ message ScheduledJobSpec { ...@@ -230,13 +260,16 @@ message ScheduledJobSpec {
// Optional deadline in seconds for starting the job if it misses scheduled // Optional deadline in seconds for starting the job if it misses scheduled
// time for any reason. Missed jobs executions will be counted as failed ones. // time for any reason. Missed jobs executions will be counted as failed ones.
// +optional
optional int64 startingDeadlineSeconds = 2; optional int64 startingDeadlineSeconds = 2;
// ConcurrencyPolicy specifies how to treat concurrent executions of a Job. // ConcurrencyPolicy specifies how to treat concurrent executions of a Job.
// +optional
optional string concurrencyPolicy = 3; optional string concurrencyPolicy = 3;
// Suspend flag tells the controller to suspend subsequent executions, it does // Suspend flag tells the controller to suspend subsequent executions, it does
// not apply to already started executions. Defaults to false. // not apply to already started executions. Defaults to false.
// +optional
optional bool suspend = 4; optional bool suspend = 4;
// JobTemplate is the object that describes the job that will be created when // JobTemplate is the object that describes the job that will be created when
...@@ -247,9 +280,11 @@ message ScheduledJobSpec { ...@@ -247,9 +280,11 @@ message ScheduledJobSpec {
// ScheduledJobStatus represents the current state of a Job. // ScheduledJobStatus represents the current state of a Job.
message ScheduledJobStatus { message ScheduledJobStatus {
// Active holds pointers to currently running jobs. // Active holds pointers to currently running jobs.
// +optional
repeated k8s.io.kubernetes.pkg.api.v1.ObjectReference active = 1; repeated k8s.io.kubernetes.pkg.api.v1.ObjectReference active = 1;
// LastScheduleTime keeps information of when was the last time the job was successfully scheduled. // LastScheduleTime keeps information of when was the last time the job was successfully scheduled.
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.Time lastScheduleTime = 4; optional k8s.io.kubernetes.pkg.api.unversioned.Time lastScheduleTime = 4;
} }
...@@ -32,12 +32,15 @@ option go_package = "v1alpha1"; ...@@ -32,12 +32,15 @@ option go_package = "v1alpha1";
// Describes a certificate signing request // Describes a certificate signing request
message CertificateSigningRequest { message CertificateSigningRequest {
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// The certificate request itself and any additional information. // The certificate request itself and any additional information.
// +optional
optional CertificateSigningRequestSpec spec = 2; optional CertificateSigningRequestSpec spec = 2;
// Derived information about the request. // Derived information about the request.
// +optional
optional CertificateSigningRequestStatus status = 3; optional CertificateSigningRequestStatus status = 3;
} }
...@@ -46,16 +49,20 @@ message CertificateSigningRequestCondition { ...@@ -46,16 +49,20 @@ message CertificateSigningRequestCondition {
optional string type = 1; optional string type = 1;
// brief reason for the request state // brief reason for the request state
// +optional
optional string reason = 2; optional string reason = 2;
// human readable message with details about the request state // human readable message with details about the request state
// +optional
optional string message = 3; optional string message = 3;
// timestamp for the last update to this condition // timestamp for the last update to this condition
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.Time lastUpdateTime = 4; optional k8s.io.kubernetes.pkg.api.unversioned.Time lastUpdateTime = 4;
} }
message CertificateSigningRequestList { message CertificateSigningRequestList {
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1;
repeated CertificateSigningRequest items = 2; repeated CertificateSigningRequest items = 2;
...@@ -70,18 +77,23 @@ message CertificateSigningRequestSpec { ...@@ -70,18 +77,23 @@ message CertificateSigningRequestSpec {
// Information about the requesting user (if relevant) // Information about the requesting user (if relevant)
// See user.Info interface for details // See user.Info interface for details
// +optional
optional string username = 2; optional string username = 2;
// +optional
optional string uid = 3; optional string uid = 3;
// +optional
repeated string groups = 4; repeated string groups = 4;
} }
message CertificateSigningRequestStatus { message CertificateSigningRequestStatus {
// Conditions applied to the request, such as approval or denial. // Conditions applied to the request, such as approval or denial.
// +optional
repeated CertificateSigningRequestCondition conditions = 1; repeated CertificateSigningRequestCondition conditions = 1;
// If request was approved, the controller will place the issued certificate here. // If request was approved, the controller will place the issued certificate here.
// +optional
optional bytes certificate = 2; optional bytes certificate = 2;
} }
...@@ -32,32 +32,38 @@ option go_package = "v1alpha1"; ...@@ -32,32 +32,38 @@ option go_package = "v1alpha1";
// ImageReview checks if the set of images in a pod are allowed. // ImageReview checks if the set of images in a pod are allowed.
message ImageReview { message ImageReview {
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// Spec holds information about the pod being evaluated // Spec holds information about the pod being evaluated
optional ImageReviewSpec spec = 2; optional ImageReviewSpec spec = 2;
// Status is filled in by the backend and indicates whether the pod should be allowed. // Status is filled in by the backend and indicates whether the pod should be allowed.
// +optional
optional ImageReviewStatus status = 3; optional ImageReviewStatus status = 3;
} }
// ImageReviewContainerSpec is a description of a container within the pod creation request. // ImageReviewContainerSpec is a description of a container within the pod creation request.
message ImageReviewContainerSpec { message ImageReviewContainerSpec {
// This can be in the form image:tag or image@SHA:012345679abcdef. // This can be in the form image:tag or image@SHA:012345679abcdef.
// +optional
optional string image = 1; optional string image = 1;
} }
// ImageReviewSpec is a description of the pod creation request. // ImageReviewSpec is a description of the pod creation request.
message ImageReviewSpec { message ImageReviewSpec {
// Containers is a list of a subset of the information in each container of the Pod being created. // Containers is a list of a subset of the information in each container of the Pod being created.
// +optional
repeated ImageReviewContainerSpec containers = 1; repeated ImageReviewContainerSpec containers = 1;
// Annotations is a list of key-value pairs extracted from the Pod's annotations. // Annotations is a list of key-value pairs extracted from the Pod's annotations.
// It only includes keys which match the pattern `*.image-policy.k8s.io/*`. // It only includes keys which match the pattern `*.image-policy.k8s.io/*`.
// It is up to each webhook backend to determine how to interpret these annotations, if at all. // It is up to each webhook backend to determine how to interpret these annotations, if at all.
// +optional
map<string, string> annotations = 2; map<string, string> annotations = 2;
// Namespace is the namespace the pod is being created in. // Namespace is the namespace the pod is being created in.
// +optional
optional string namespace = 3; optional string namespace = 3;
} }
...@@ -69,6 +75,7 @@ message ImageReviewStatus { ...@@ -69,6 +75,7 @@ message ImageReviewStatus {
// Reason should be empty unless Allowed is false in which case it // Reason should be empty unless Allowed is false in which case it
// may contain a short description of what is wrong. Kubernetes // may contain a short description of what is wrong. Kubernetes
// may truncate excessively long errors when displaying to the user. // may truncate excessively long errors when displaying to the user.
// +optional
optional string reason = 2; optional string reason = 2;
} }
...@@ -35,25 +35,31 @@ option go_package = "v1alpha1"; ...@@ -35,25 +35,31 @@ option go_package = "v1alpha1";
// created by POSTing to .../pods/<pod name>/evictions. // created by POSTing to .../pods/<pod name>/evictions.
message Eviction { message Eviction {
// ObjectMeta describes the pod that is being evicted. // ObjectMeta describes the pod that is being evicted.
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// DeleteOptions may be provided // DeleteOptions may be provided
// +optional
optional k8s.io.kubernetes.pkg.api.v1.DeleteOptions deleteOptions = 2; optional k8s.io.kubernetes.pkg.api.v1.DeleteOptions deleteOptions = 2;
} }
// PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods // PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods
message PodDisruptionBudget { message PodDisruptionBudget {
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// Specification of the desired behavior of the PodDisruptionBudget. // Specification of the desired behavior of the PodDisruptionBudget.
// +optional
optional PodDisruptionBudgetSpec spec = 2; optional PodDisruptionBudgetSpec spec = 2;
// Most recently observed status of the PodDisruptionBudget. // Most recently observed status of the PodDisruptionBudget.
// +optional
optional PodDisruptionBudgetStatus status = 3; optional PodDisruptionBudgetStatus status = 3;
} }
// PodDisruptionBudgetList is a collection of PodDisruptionBudgets. // PodDisruptionBudgetList is a collection of PodDisruptionBudgets.
message PodDisruptionBudgetList { message PodDisruptionBudgetList {
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1;
repeated PodDisruptionBudget items = 2; repeated PodDisruptionBudget items = 2;
...@@ -65,10 +71,12 @@ message PodDisruptionBudgetSpec { ...@@ -65,10 +71,12 @@ message PodDisruptionBudgetSpec {
// "selector" will still be available after the eviction, i.e. even in the // "selector" will still be available after the eviction, i.e. even in the
// absence of the evicted pod. So for example you can prevent all voluntary // absence of the evicted pod. So for example you can prevent all voluntary
// evictions by specifying "100%". // evictions by specifying "100%".
// +optional
optional k8s.io.kubernetes.pkg.util.intstr.IntOrString minAvailable = 1; optional k8s.io.kubernetes.pkg.util.intstr.IntOrString minAvailable = 1;
// Label query over pods whose evictions are managed by the disruption // Label query over pods whose evictions are managed by the disruption
// budget. // budget.
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.LabelSelector selector = 2; optional k8s.io.kubernetes.pkg.api.unversioned.LabelSelector selector = 2;
} }
......
...@@ -33,6 +33,7 @@ option go_package = "v1alpha1"; ...@@ -33,6 +33,7 @@ option go_package = "v1alpha1";
// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. // ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.
message ClusterRole { message ClusterRole {
// Standard object's metadata. // Standard object's metadata.
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// Rules holds all the PolicyRules for this ClusterRole // Rules holds all the PolicyRules for this ClusterRole
...@@ -43,6 +44,7 @@ message ClusterRole { ...@@ -43,6 +44,7 @@ message ClusterRole {
// and adds who information via Subject. // and adds who information via Subject.
message ClusterRoleBinding { message ClusterRoleBinding {
// Standard object's metadata. // Standard object's metadata.
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// Subjects holds references to the objects the role applies to. // Subjects holds references to the objects the role applies to.
...@@ -56,6 +58,7 @@ message ClusterRoleBinding { ...@@ -56,6 +58,7 @@ message ClusterRoleBinding {
// ClusterRoleBindingList is a collection of ClusterRoleBindings // ClusterRoleBindingList is a collection of ClusterRoleBindings
message ClusterRoleBindingList { message ClusterRoleBindingList {
// Standard object's metadata. // Standard object's metadata.
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1;
// Items is a list of ClusterRoleBindings // Items is a list of ClusterRoleBindings
...@@ -65,6 +68,7 @@ message ClusterRoleBindingList { ...@@ -65,6 +68,7 @@ message ClusterRoleBindingList {
// ClusterRoleList is a collection of ClusterRoles // ClusterRoleList is a collection of ClusterRoles
message ClusterRoleList { message ClusterRoleList {
// Standard object's metadata. // Standard object's metadata.
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1;
// Items is a list of ClusterRoles // Items is a list of ClusterRoles
...@@ -79,28 +83,34 @@ message PolicyRule { ...@@ -79,28 +83,34 @@ message PolicyRule {
// AttributeRestrictions will vary depending on what the Authorizer/AuthorizationAttributeBuilder pair supports. // AttributeRestrictions will vary depending on what the Authorizer/AuthorizationAttributeBuilder pair supports.
// If the Authorizer does not recognize how to handle the AttributeRestrictions, the Authorizer should report an error. // If the Authorizer does not recognize how to handle the AttributeRestrictions, the Authorizer should report an error.
// +optional
optional k8s.io.kubernetes.pkg.runtime.RawExtension attributeRestrictions = 2; optional k8s.io.kubernetes.pkg.runtime.RawExtension attributeRestrictions = 2;
// APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of // APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of
// the enumerated resources in any API group will be allowed. // the enumerated resources in any API group will be allowed.
// +optional
repeated string apiGroups = 3; repeated string apiGroups = 3;
// Resources is a list of resources this rule applies to. ResourceAll represents all resources. // Resources is a list of resources this rule applies to. ResourceAll represents all resources.
// +optional
repeated string resources = 4; repeated string resources = 4;
// ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. // ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.
// +optional
repeated string resourceNames = 5; repeated string resourceNames = 5;
// NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path // NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path
// This name is intentionally different than the internal type so that the DefaultConvert works nicely and because the ordering may be different. // This name is intentionally different than the internal type so that the DefaultConvert works nicely and because the ordering may be different.
// Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. // Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding.
// Rules can either apply to API resources (such as "pods" or "secrets") or non-resource URL paths (such as "/api"), but not both. // Rules can either apply to API resources (such as "pods" or "secrets") or non-resource URL paths (such as "/api"), but not both.
// +optional
repeated string nonResourceURLs = 6; repeated string nonResourceURLs = 6;
} }
// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. // Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.
message Role { message Role {
// Standard object's metadata. // Standard object's metadata.
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// Rules holds all the PolicyRules for this Role // Rules holds all the PolicyRules for this Role
...@@ -112,6 +122,7 @@ message Role { ...@@ -112,6 +122,7 @@ message Role {
// namespace only have effect in that namespace. // namespace only have effect in that namespace.
message RoleBinding { message RoleBinding {
// Standard object's metadata. // Standard object's metadata.
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// Subjects holds references to the objects the role applies to. // Subjects holds references to the objects the role applies to.
...@@ -125,6 +136,7 @@ message RoleBinding { ...@@ -125,6 +136,7 @@ message RoleBinding {
// RoleBindingList is a collection of RoleBindings // RoleBindingList is a collection of RoleBindings
message RoleBindingList { message RoleBindingList {
// Standard object's metadata. // Standard object's metadata.
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1;
// Items is a list of RoleBindings // Items is a list of RoleBindings
...@@ -134,6 +146,7 @@ message RoleBindingList { ...@@ -134,6 +146,7 @@ message RoleBindingList {
// RoleList is a collection of Roles // RoleList is a collection of Roles
message RoleList { message RoleList {
// Standard object's metadata. // Standard object's metadata.
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1;
// Items is a list of Roles // Items is a list of Roles
...@@ -160,6 +173,7 @@ message Subject { ...@@ -160,6 +173,7 @@ message Subject {
optional string kind = 1; optional string kind = 1;
// APIVersion holds the API group and version of the referenced object. // APIVersion holds the API group and version of the referenced object.
// +optional
optional string apiVersion = 2; optional string apiVersion = 2;
// Name of the object being referenced. // Name of the object being referenced.
...@@ -167,6 +181,7 @@ message Subject { ...@@ -167,6 +181,7 @@ message Subject {
// Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty // Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty
// the Authorizer should report an error. // the Authorizer should report an error.
// +optional
optional string namespace = 4; optional string namespace = 4;
} }
...@@ -38,6 +38,7 @@ option go_package = "v1beta1"; ...@@ -38,6 +38,7 @@ option go_package = "v1beta1";
message StorageClass { message StorageClass {
// Standard object's metadata. // Standard object's metadata.
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
// +optional
optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.v1.ObjectMeta metadata = 1;
// Provisioner indicates the type of the provisioner. // Provisioner indicates the type of the provisioner.
...@@ -45,6 +46,7 @@ message StorageClass { ...@@ -45,6 +46,7 @@ message StorageClass {
// Parameters holds the parameters for the provisioner that should // Parameters holds the parameters for the provisioner that should
// create volumes of this storage class. // create volumes of this storage class.
// +optional
map<string, string> parameters = 3; map<string, string> parameters = 3;
} }
...@@ -52,6 +54,7 @@ message StorageClass { ...@@ -52,6 +54,7 @@ message StorageClass {
message StorageClassList { message StorageClassList {
// Standard list metadata // Standard list metadata
// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
// +optional
optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1; optional k8s.io.kubernetes.pkg.api.unversioned.ListMeta metadata = 1;
// Items is the list of StorageClasses // Items is the list of StorageClasses
......
...@@ -94,8 +94,10 @@ message RawExtension { ...@@ -94,8 +94,10 @@ message RawExtension {
// +protobuf=true // +protobuf=true
// +k8s:openapi-gen=true // +k8s:openapi-gen=true
message TypeMeta { message TypeMeta {
// +optional
optional string apiVersion = 1; optional string apiVersion = 1;
// +optional
optional string kind = 2; optional string kind = 2;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment