Update App Mesh CRD

This commit is contained in:
stefanprodan
2019-10-14 20:26:46 +03:00
parent 1f34c656e9
commit 9b36794c9d
2 changed files with 378 additions and 24 deletions
+105 -8
View File
@@ -28,6 +28,7 @@ type Mesh struct {
type MeshServiceDiscoveryType string
const (
// Dns type is used when mesh is backed by a DNS namespace
Dns MeshServiceDiscoveryType = "Dns"
)
@@ -104,8 +105,12 @@ type VirtualServiceSpec struct {
// VirtualRouter is the spec for a VirtualRouter resource
type VirtualRouter struct {
Name string `json:"name"`
Listeners []Listener `json:"listeners,omitempty"`
Name string `json:"name"`
Listeners []VirtualRouterListener `json:"listeners,omitempty"`
}
type VirtualRouterListener struct {
PortMapping PortMapping `json:"portMapping"`
}
type Route struct {
@@ -114,21 +119,78 @@ type Route struct {
Http *HttpRoute `json:"http,omitempty"`
// +optional
Tcp *TcpRoute `json:"tcp,omitempty"`
// +optional
Priority *int64 `json:"priority,omitempty"`
}
type HttpRoute struct {
Match HttpRouteMatch `json:"match"`
Action HttpRouteAction `json:"action"`
// +optional
RetryPolicy *HttpRetryPolicy `json:"retryPolicy,omitempty"`
}
type HttpRouteMatch struct {
Prefix string `json:"prefix"`
// +optional
Method *string `json:"method,omitempty"`
// +optional
Headers []HttpRouteHeader `json:"headers,omitempty"`
// +optional
Scheme *string `json:"scheme,omitempty"`
}
type HttpRouteHeader struct {
Name string `json:"name"`
// +optional
Invert *bool `json:"invert,omitempty"`
// +optional
Match *HeaderMatchMethod `json:"match,omitempty"`
}
type HeaderMatchMethod struct {
// +optional
Exact *string `json:"exact,omitempty"`
// +optional
Prefix *string `json:"prefix,omitempty"`
// +optional
Range *MatchRange `json:"range,omitempty"`
// +optional
Regex *string `json:"regex,omitempty"`
// +optional
Suffix *string `json:"suffix,omitempty"`
}
type MatchRange struct {
// +optional
Start *int64 `json:"start,omitempty"`
// +optional
End *int64 `json:"end,omitempty"`
}
type HttpRouteAction struct {
WeightedTargets []WeightedTarget `json:"weightedTargets"`
}
type HttpRetryPolicy struct {
// +optional
PerRetryTimeoutMillis *int64 `json:"perRetryTimeoutMillis,omitempty"`
// +optional
MaxRetries *int64 `json:"maxRetries,omitempty"`
// +optional
HttpRetryPolicyEvents []HttpRetryPolicyEvent `json:"httpRetryEvents,omitempty"`
// +optional
TcpRetryPolicyEvents []TcpRetryPolicyEvent `json:"tcpRetryEvents,omitempty"`
}
type HttpRetryPolicyEvent string
type TcpRetryPolicyEvent string
const (
TcpRetryPolicyEventConnectionError TcpRetryPolicyEvent = "connection-error"
)
type TcpRoute struct {
Action TcpRouteAction `json:"action"`
}
@@ -222,6 +284,8 @@ type VirtualNodeSpec struct {
type Listener struct {
PortMapping PortMapping `json:"portMapping"`
// +optional
HealthCheck *HealthCheckPolicy `json:"healthCheck,omitempty"`
}
type PortMapping struct {
@@ -229,6 +293,28 @@ type PortMapping struct {
Protocol string `json:"protocol"`
}
type HealthCheckPolicy struct {
// +optional
HealthyThreshold *int64 `json:"healthyThreshold,omitempty"`
// +optional
IntervalMillis *int64 `json:"intervalMillis,omitempty"`
// +optional
Path *string `json:"path,omitempty"`
// +optional
Port *int64 `json:"port,omitempty"`
// +optional
Protocol *string `json:"protocol,omitempty"`
// +optional
TimeoutMillis *int64 `json:"timeoutMillis,omitempty"`
// +optional
UnhealthyThreshold *int64 `json:"unhealthyThreshold,omitempty"`
}
const (
PortProtocolHttp = "http"
PortProtocolTcp = "tcp"
)
type ServiceDiscovery struct {
// +optional
CloudMap *CloudMapServiceDiscovery `json:"cloudMap,omitempty"`
@@ -237,7 +323,10 @@ type ServiceDiscovery struct {
}
type CloudMapServiceDiscovery struct {
CloudMapServiceName string `json:"cloudMapServiceName"`
ServiceName string `json:"serviceName"`
NamespaceName string `json:"namespaceName"`
// +optional
Attributes map[string]string `json:"attributes,omitempty"`
}
type DnsServiceDiscovery struct {
@@ -272,13 +361,21 @@ type VirtualNodeStatus struct {
MeshArn *string `json:"meshArn,omitempty"`
// VirtualNodeArn is the AppMesh VirtualNode object's Amazon Resource Name
// +optional
VirtualNodeArn *string `json:"virtualNodeArn,omitempty"`
// CloudMapServiceArn is a CloudMap Service object's Amazon Resource Name
VirtualNodeArn *string `json:"virtualNodeArn,omitempty"`
Conditions []VirtualNodeCondition `json:"conditions"`
// CloudMapService is AWS CloudMap Service object's info
// +optional
CloudMapServiceArn *string `json:"cloudMapServiceArn,omitempty"`
CloudMapService *CloudMapServiceStatus `json:"cloudmapService,omitempty"`
}
// CloudMapServiceStatus is AWS CloudMap Service object's info
type CloudMapServiceStatus struct {
// ServiceID is AWS CloudMap Service object's Id
// +optional
QueryParameters map[string]string `json:"queryParameters,omitempty"`
Conditions []VirtualNodeCondition `json:"conditions"`
ServiceID *string `json:"serviceId,omitempty"`
// NamespaceID is AWS CloudMap Service object's namespace Id
// +optional
NamespaceID *string `json:"namespaceId,omitempty"`
}
type VirtualNodeConditionType string
+273 -16
View File
@@ -65,6 +65,13 @@ func (in *Backend) DeepCopy() *Backend {
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CloudMapServiceDiscovery) DeepCopyInto(out *CloudMapServiceDiscovery) {
*out = *in
if in.Attributes != nil {
in, out := &in.Attributes, &out.Attributes
*out = make(map[string]string, len(*in))
for key, val := range *in {
(*out)[key] = val
}
}
return
}
@@ -78,6 +85,32 @@ func (in *CloudMapServiceDiscovery) DeepCopy() *CloudMapServiceDiscovery {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CloudMapServiceStatus) DeepCopyInto(out *CloudMapServiceStatus) {
*out = *in
if in.ServiceID != nil {
in, out := &in.ServiceID, &out.ServiceID
*out = new(string)
**out = **in
}
if in.NamespaceID != nil {
in, out := &in.NamespaceID, &out.NamespaceID
*out = new(string)
**out = **in
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudMapServiceStatus.
func (in *CloudMapServiceStatus) DeepCopy() *CloudMapServiceStatus {
if in == nil {
return nil
}
out := new(CloudMapServiceStatus)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DnsServiceDiscovery) DeepCopyInto(out *DnsServiceDiscovery) {
*out = *in
@@ -110,11 +143,144 @@ func (in *FileAccessLog) DeepCopy() *FileAccessLog {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HeaderMatchMethod) DeepCopyInto(out *HeaderMatchMethod) {
*out = *in
if in.Exact != nil {
in, out := &in.Exact, &out.Exact
*out = new(string)
**out = **in
}
if in.Prefix != nil {
in, out := &in.Prefix, &out.Prefix
*out = new(string)
**out = **in
}
if in.Range != nil {
in, out := &in.Range, &out.Range
*out = new(MatchRange)
(*in).DeepCopyInto(*out)
}
if in.Regex != nil {
in, out := &in.Regex, &out.Regex
*out = new(string)
**out = **in
}
if in.Suffix != nil {
in, out := &in.Suffix, &out.Suffix
*out = new(string)
**out = **in
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HeaderMatchMethod.
func (in *HeaderMatchMethod) DeepCopy() *HeaderMatchMethod {
if in == nil {
return nil
}
out := new(HeaderMatchMethod)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HealthCheckPolicy) DeepCopyInto(out *HealthCheckPolicy) {
*out = *in
if in.HealthyThreshold != nil {
in, out := &in.HealthyThreshold, &out.HealthyThreshold
*out = new(int64)
**out = **in
}
if in.IntervalMillis != nil {
in, out := &in.IntervalMillis, &out.IntervalMillis
*out = new(int64)
**out = **in
}
if in.Path != nil {
in, out := &in.Path, &out.Path
*out = new(string)
**out = **in
}
if in.Port != nil {
in, out := &in.Port, &out.Port
*out = new(int64)
**out = **in
}
if in.Protocol != nil {
in, out := &in.Protocol, &out.Protocol
*out = new(string)
**out = **in
}
if in.TimeoutMillis != nil {
in, out := &in.TimeoutMillis, &out.TimeoutMillis
*out = new(int64)
**out = **in
}
if in.UnhealthyThreshold != nil {
in, out := &in.UnhealthyThreshold, &out.UnhealthyThreshold
*out = new(int64)
**out = **in
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthCheckPolicy.
func (in *HealthCheckPolicy) DeepCopy() *HealthCheckPolicy {
if in == nil {
return nil
}
out := new(HealthCheckPolicy)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HttpRetryPolicy) DeepCopyInto(out *HttpRetryPolicy) {
*out = *in
if in.PerRetryTimeoutMillis != nil {
in, out := &in.PerRetryTimeoutMillis, &out.PerRetryTimeoutMillis
*out = new(int64)
**out = **in
}
if in.MaxRetries != nil {
in, out := &in.MaxRetries, &out.MaxRetries
*out = new(int64)
**out = **in
}
if in.HttpRetryPolicyEvents != nil {
in, out := &in.HttpRetryPolicyEvents, &out.HttpRetryPolicyEvents
*out = make([]HttpRetryPolicyEvent, len(*in))
copy(*out, *in)
}
if in.TcpRetryPolicyEvents != nil {
in, out := &in.TcpRetryPolicyEvents, &out.TcpRetryPolicyEvents
*out = make([]TcpRetryPolicyEvent, len(*in))
copy(*out, *in)
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HttpRetryPolicy.
func (in *HttpRetryPolicy) DeepCopy() *HttpRetryPolicy {
if in == nil {
return nil
}
out := new(HttpRetryPolicy)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HttpRoute) DeepCopyInto(out *HttpRoute) {
*out = *in
out.Match = in.Match
in.Match.DeepCopyInto(&out.Match)
in.Action.DeepCopyInto(&out.Action)
if in.RetryPolicy != nil {
in, out := &in.RetryPolicy, &out.RetryPolicy
*out = new(HttpRetryPolicy)
(*in).DeepCopyInto(*out)
}
return
}
@@ -149,9 +315,52 @@ func (in *HttpRouteAction) DeepCopy() *HttpRouteAction {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HttpRouteHeader) DeepCopyInto(out *HttpRouteHeader) {
*out = *in
if in.Invert != nil {
in, out := &in.Invert, &out.Invert
*out = new(bool)
**out = **in
}
if in.Match != nil {
in, out := &in.Match, &out.Match
*out = new(HeaderMatchMethod)
(*in).DeepCopyInto(*out)
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HttpRouteHeader.
func (in *HttpRouteHeader) DeepCopy() *HttpRouteHeader {
if in == nil {
return nil
}
out := new(HttpRouteHeader)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HttpRouteMatch) DeepCopyInto(out *HttpRouteMatch) {
*out = *in
if in.Method != nil {
in, out := &in.Method, &out.Method
*out = new(string)
**out = **in
}
if in.Headers != nil {
in, out := &in.Headers, &out.Headers
*out = make([]HttpRouteHeader, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
if in.Scheme != nil {
in, out := &in.Scheme, &out.Scheme
*out = new(string)
**out = **in
}
return
}
@@ -169,6 +378,11 @@ func (in *HttpRouteMatch) DeepCopy() *HttpRouteMatch {
func (in *Listener) DeepCopyInto(out *Listener) {
*out = *in
out.PortMapping = in.PortMapping
if in.HealthCheck != nil {
in, out := &in.HealthCheck, &out.HealthCheck
*out = new(HealthCheckPolicy)
(*in).DeepCopyInto(*out)
}
return
}
@@ -203,6 +417,32 @@ func (in *Logging) DeepCopy() *Logging {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MatchRange) DeepCopyInto(out *MatchRange) {
*out = *in
if in.Start != nil {
in, out := &in.Start, &out.Start
*out = new(int64)
**out = **in
}
if in.End != nil {
in, out := &in.End, &out.End
*out = new(int64)
**out = **in
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchRange.
func (in *MatchRange) DeepCopy() *MatchRange {
if in == nil {
return nil
}
out := new(MatchRange)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Mesh) DeepCopyInto(out *Mesh) {
*out = *in
@@ -372,6 +612,11 @@ func (in *Route) DeepCopyInto(out *Route) {
*out = new(TcpRoute)
(*in).DeepCopyInto(*out)
}
if in.Priority != nil {
in, out := &in.Priority, &out.Priority
*out = new(int64)
**out = **in
}
return
}
@@ -391,7 +636,7 @@ func (in *ServiceDiscovery) DeepCopyInto(out *ServiceDiscovery) {
if in.CloudMap != nil {
in, out := &in.CloudMap, &out.CloudMap
*out = new(CloudMapServiceDiscovery)
**out = **in
(*in).DeepCopyInto(*out)
}
if in.Dns != nil {
in, out := &in.Dns, &out.Dns
@@ -546,7 +791,9 @@ func (in *VirtualNodeSpec) DeepCopyInto(out *VirtualNodeSpec) {
if in.Listeners != nil {
in, out := &in.Listeners, &out.Listeners
*out = make([]Listener, len(*in))
copy(*out, *in)
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
if in.ServiceDiscovery != nil {
in, out := &in.ServiceDiscovery, &out.ServiceDiscovery
@@ -589,18 +836,6 @@ func (in *VirtualNodeStatus) DeepCopyInto(out *VirtualNodeStatus) {
*out = new(string)
**out = **in
}
if in.CloudMapServiceArn != nil {
in, out := &in.CloudMapServiceArn, &out.CloudMapServiceArn
*out = new(string)
**out = **in
}
if in.QueryParameters != nil {
in, out := &in.QueryParameters, &out.QueryParameters
*out = make(map[string]string, len(*in))
for key, val := range *in {
(*out)[key] = val
}
}
if in.Conditions != nil {
in, out := &in.Conditions, &out.Conditions
*out = make([]VirtualNodeCondition, len(*in))
@@ -608,6 +843,11 @@ func (in *VirtualNodeStatus) DeepCopyInto(out *VirtualNodeStatus) {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
if in.CloudMapService != nil {
in, out := &in.CloudMapService, &out.CloudMapService
*out = new(CloudMapServiceStatus)
(*in).DeepCopyInto(*out)
}
return
}
@@ -626,7 +866,7 @@ func (in *VirtualRouter) DeepCopyInto(out *VirtualRouter) {
*out = *in
if in.Listeners != nil {
in, out := &in.Listeners, &out.Listeners
*out = make([]Listener, len(*in))
*out = make([]VirtualRouterListener, len(*in))
copy(*out, *in)
}
return
@@ -642,6 +882,23 @@ func (in *VirtualRouter) DeepCopy() *VirtualRouter {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualRouterListener) DeepCopyInto(out *VirtualRouterListener) {
*out = *in
out.PortMapping = in.PortMapping
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualRouterListener.
func (in *VirtualRouterListener) DeepCopy() *VirtualRouterListener {
if in == nil {
return nil
}
out := new(VirtualRouterListener)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VirtualService) DeepCopyInto(out *VirtualService) {
*out = *in