1
0
mirror of https://github.com/rancher/types.git synced 2025-07-05 01:36:12 +00:00

Merge pull request #1089 from rmweir/dynamic-features

Dynamic features
This commit is contained in:
rmweir 2020-02-12 16:50:33 -07:00 committed by GitHub
commit 1a68e3c2bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 99 additions and 28 deletions

View File

@ -18,6 +18,15 @@ type Feature struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Value *bool `json:"value" norman:"required"`
Default bool `json:"default" norman:"nocreate,noupdate"`
Spec FeatureSpec `json:"spec"`
Status FeatureStatus `json:"status"`
}
type FeatureSpec struct {
Value *bool `json:"value" norman:"required"`
}
type FeatureStatus struct {
Dynamic bool `json:"dynamic"`
Default bool `json:"default"`
}

View File

@ -3358,11 +3358,8 @@ func (in *Feature) DeepCopyInto(out *Feature) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
if in.Value != nil {
in, out := &in.Value, &out.Value
*out = new(bool)
**out = **in
}
in.Spec.DeepCopyInto(&out.Spec)
out.Status = in.Status
return
}
@ -3417,6 +3414,43 @@ func (in *FeatureList) DeepCopyObject() runtime.Object {
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *FeatureSpec) DeepCopyInto(out *FeatureSpec) {
*out = *in
if in.Value != nil {
in, out := &in.Value, &out.Value
*out = new(bool)
**out = **in
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureSpec.
func (in *FeatureSpec) DeepCopy() *FeatureSpec {
if in == nil {
return nil
}
out := new(FeatureSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *FeatureStatus) DeepCopyInto(out *FeatureStatus) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureStatus.
func (in *FeatureStatus) DeepCopy() *FeatureStatus {
if in == nil {
return nil
}
out := new(FeatureStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Field) DeepCopyInto(out *Field) {
*out = *in

View File

@ -5,31 +5,37 @@ import (
)
const (
FeatureType = "feature"
FeatureFieldAnnotations = "annotations"
FeatureFieldCreated = "created"
FeatureFieldCreatorID = "creatorId"
FeatureFieldDefault = "default"
FeatureFieldLabels = "labels"
FeatureFieldName = "name"
FeatureFieldOwnerReferences = "ownerReferences"
FeatureFieldRemoved = "removed"
FeatureFieldUUID = "uuid"
FeatureFieldValue = "value"
FeatureType = "feature"
FeatureFieldAnnotations = "annotations"
FeatureFieldCreated = "created"
FeatureFieldCreatorID = "creatorId"
FeatureFieldLabels = "labels"
FeatureFieldName = "name"
FeatureFieldOwnerReferences = "ownerReferences"
FeatureFieldRemoved = "removed"
FeatureFieldState = "state"
FeatureFieldStatus = "status"
FeatureFieldTransitioning = "transitioning"
FeatureFieldTransitioningMessage = "transitioningMessage"
FeatureFieldUUID = "uuid"
FeatureFieldValue = "value"
)
type Feature struct {
types.Resource
Annotations map[string]string `json:"annotations,omitempty" yaml:"annotations,omitempty"`
Created string `json:"created,omitempty" yaml:"created,omitempty"`
CreatorID string `json:"creatorId,omitempty" yaml:"creatorId,omitempty"`
Default bool `json:"default,omitempty" yaml:"default,omitempty"`
Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"`
Name string `json:"name,omitempty" yaml:"name,omitempty"`
OwnerReferences []OwnerReference `json:"ownerReferences,omitempty" yaml:"ownerReferences,omitempty"`
Removed string `json:"removed,omitempty" yaml:"removed,omitempty"`
UUID string `json:"uuid,omitempty" yaml:"uuid,omitempty"`
Value *bool `json:"value,omitempty" yaml:"value,omitempty"`
Annotations map[string]string `json:"annotations,omitempty" yaml:"annotations,omitempty"`
Created string `json:"created,omitempty" yaml:"created,omitempty"`
CreatorID string `json:"creatorId,omitempty" yaml:"creatorId,omitempty"`
Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"`
Name string `json:"name,omitempty" yaml:"name,omitempty"`
OwnerReferences []OwnerReference `json:"ownerReferences,omitempty" yaml:"ownerReferences,omitempty"`
Removed string `json:"removed,omitempty" yaml:"removed,omitempty"`
State string `json:"state,omitempty" yaml:"state,omitempty"`
Status *FeatureStatus `json:"status,omitempty" yaml:"status,omitempty"`
Transitioning string `json:"transitioning,omitempty" yaml:"transitioning,omitempty"`
TransitioningMessage string `json:"transitioningMessage,omitempty" yaml:"transitioningMessage,omitempty"`
UUID string `json:"uuid,omitempty" yaml:"uuid,omitempty"`
Value *bool `json:"value,omitempty" yaml:"value,omitempty"`
}
type FeatureCollection struct {

View File

@ -0,0 +1,10 @@
package client
const (
FeatureSpecType = "featureSpec"
FeatureSpecFieldValue = "value"
)
type FeatureSpec struct {
Value *bool `json:"value,omitempty" yaml:"value,omitempty"`
}

View File

@ -0,0 +1,12 @@
package client
const (
FeatureStatusType = "featureStatus"
FeatureStatusFieldDefault = "default"
FeatureStatusFieldDynamic = "dynamic"
)
type FeatureStatus struct {
Default bool `json:"default,omitempty" yaml:"default,omitempty"`
Dynamic bool `json:"dynamic,omitempty" yaml:"dynamic,omitempty"`
}