Skip to content

Instantly share code, notes, and snippets.

@M00nF1sh
Created May 1, 2020 12:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save M00nF1sh/77d90a5a8a8178b3c57254a3773cc644 to your computer and use it in GitHub Desktop.
Save M00nF1sh/77d90a5a8a8178b3c57254a3773cc644 to your computer and use it in GitHub Desktop.
appmesh_v2
---
apiVersion: v1
kind: Namespace
metadata:
name: demo-4cabd2e
---
apiVersion: appmesh.k8s.aws/v1beta2
kind: Mesh
metadata:
name: mesh-demo-4cabd2e
spec:
namespaceSelector: {} # selects all namespaces, you can also label namespace and select specific namespace here.
---
apiVersion: appmesh.k8s.aws/v1beta2
kind: VirtualNode # this virtualNode don't have a listener, so envoy don't don't intercept traffic. (also we don't need a serviceDiscovery since we have no listener)
metadata:
namespace: demo-4cabd2e
name: colorgateway
spec:
podSelector: # matches labels on pod
matchLabels:
app: colorgateway
backends:
- virtualService:
virtualServiceRef:
name: colorteller
logging:
accessLog:
file:
path: /dev/stdout
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: demo-4cabd2e
name: colorgateway
spec:
replicas: 1
selector:
matchLabels:
app: colorgateway
template:
metadata:
labels:
app: colorgateway
spec:
securityContext:
fsGroup: 1337
containers:
- name: colorgateway
image: 970805265562.dkr.ecr.us-west-2.amazonaws.com/gateway:latest
ports:
- containerPort: 9080
env:
- name: "SERVER_PORT"
value: "9080"
- name: "COLOR_TELLER_ENDPOINT"
value: "colorteller.demo-4cabd2e:9080"
---
apiVersion: v1
kind: Service
metadata:
namespace: demo-4cabd2e
name: colorgateway # this service provides entry point to our gateway, access it in your browser.
spec:
ports:
- port: 80
targetPort: 9080
name: http
selector:
app: colorgateway
type: LoadBalancer
---
apiVersion: appmesh.k8s.aws/v1beta2
kind: VirtualNode
metadata:
namespace: demo-4cabd2e
name: colorteller-black
spec:
podSelector:
matchLabels:
app: colorteller
version: black
listeners:
- portMapping:
port: 9080
protocol: http
serviceDiscovery:
dns:
hostname: colorteller-black.demo-4cabd2e.svc.cluster.local # matches the DNSName of your service.
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: demo-4cabd2e
name: colorteller-black
spec:
replicas: 1
selector:
matchLabels:
app: colorteller
version: black
template:
metadata:
labels:
app: colorteller
version: black
spec:
securityContext:
fsGroup: 1337
containers:
- name: colorteller
image: 970805265562.dkr.ecr.us-west-2.amazonaws.com/colorteller:latest
ports:
- containerPort: 9080
env:
- name: "SERVER_PORT"
value: "9080"
- name: "COLOR"
value: "black"
---
apiVersion: v1
kind: Service
metadata:
namespace: demo-4cabd2e
name: colorteller-black # provides dns serviceDiscovery for your virtualNode
spec:
ports:
- port: 9080
name: http
selector:
app: colorteller
version: black
type: ClusterIP
---
apiVersion: appmesh.k8s.aws/v1beta2
kind: VirtualNode
metadata:
namespace: demo-4cabd2e
name: colorteller-white
spec:
listeners:
- portMapping:
port: 9080
protocol: http
serviceDiscovery:
dns:
hostname: colorteller-white.demo-4cabd2e.svc.cluster.local
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: demo-4cabd2e
name: colorteller-white
spec:
replicas: 1
selector:
matchLabels:
app: colorteller
version: white
template:
metadata:
labels:
app: colorteller
version: white
spec:
securityContext:
fsGroup: 1337
containers:
- name: colorteller
image: 970805265562.dkr.ecr.us-west-2.amazonaws.com/colorteller:latest
ports:
- containerPort: 9080
env:
- name: "SERVER_PORT"
value: "9080"
- name: "COLOR"
value: "white"
---
apiVersion: v1
kind: Service
metadata:
namespace: demo-4cabd2e
name: colorteller-white
spec:
ports:
- port: 9080
name: http
selector:
app: colorteller
version: white
type: ClusterIP
---
apiVersion: appmesh.k8s.aws/v1beta2
kind: VirtualNode
metadata:
namespace: demo-4cabd2e
name: colorteller-blue
spec:
listeners:
- portMapping:
port: 9080
protocol: http
serviceDiscovery:
dns:
hostname: colorteller-blue.demo-4cabd2e.svc.cluster.local
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: demo-4cabd2e
name: colorteller-blue
spec:
replicas: 1
selector:
matchLabels:
app: colorteller
version: blue
template:
metadata:
labels:
app: colorteller
version: blue
spec:
securityContext:
fsGroup: 1337
containers:
- name: colorteller
image: 970805265562.dkr.ecr.us-west-2.amazonaws.com/colorteller:latest
ports:
- containerPort: 9080
env:
- name: "SERVER_PORT"
value: "9080"
- name: "COLOR"
value: "blue"
---
apiVersion: v1
kind: Service
metadata:
namespace: demo-4cabd2e
name: colorteller-blue
spec:
ports:
- port: 9080
name: http
selector:
app: colorteller
version: blue
type: ClusterIP
---
apiVersion: appmesh.k8s.aws/v1beta2
kind: VirtualRouter
metadata:
namespace: demo-4cabd2e
name: colorteller
spec:
listeners:
- portMapping:
port: 9080
protocol: http
routes:
- name: color-route
httpRoute:
match:
prefix: /
action:
weightedTargets:
- virtualNodeRef:
# namespace: demo-4cabd2e optional
name: colorteller-black
weight: 1
- virtualNodeRef:
# namespace: demo-4cabd2e optional
name: colorteller-white
weight: 2
- virtualNodeRef:
# namespace: demo-4cabd2e optional
name: colorteller-blue
weight: 3
---
apiVersion: appmesh.k8s.aws/v1beta2
kind: VirtualService
metadata:
namespace: demo-4cabd2e
name: colorteller
spec:
provider:
virtualRouter:
virtualRouterRef:
# namespace: demo-4cabd2e optional
name: colorteller
---
apiVersion: v1
kind: Service
metadata:
namespace: demo-4cabd2e
name: colorteller # used to provide a DNS entry for colorteller VS
spec:
ports:
- port: 9080
name: http
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: gatewayroutes.appmesh.k8s.aws
spec:
group: appmesh.k8s.aws
names:
kind: GatewayRoute
listKind: GatewayRouteList
plural: gatewayroutes
singular: gatewayroute
scope: Namespaced
validation:
openAPIV3Schema:
description: GatewayRoute is the Schema for the gatewayroutes API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: GatewayRouteSpec defines the desired state of GatewayRoute
refers to https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_gateways.html
properties:
awsName:
description: AWSName is the AppMesh GatewayRoute object's name. If unspecified
or empty, it defaults to be "${name}_${namespace}" of k8s GatewayRoute
type: string
grpcRoute:
description: An object that represents the specification of a gRPC gatewayRoute.
properties:
action:
description: An object that represents the action to take if a match
is determined.
properties:
target:
description: An object that represents the target that traffic
is routed to when a request matches the route.
properties:
virtualService:
description: The virtual service to associate with the gateway
route target.
properties:
virtualServiceRef:
description: The virtual service reference to associate
with the gateway route virtual service target.
properties:
name:
description: Name is the name of VirtualService
CR
type: string
namespace:
description: Namespace is the namespace of VirtualService
CR. If unspecified, defaults to the referencing
object's namespace
type: string
required:
- name
type: object
required:
- virtualServiceRef
type: object
required:
- virtualService
type: object
required:
- target
type: object
match:
description: An object that represents the criteria for determining
a request match.
properties:
serviceName:
description: The fully qualified domain name for the service
to match from the request.
type: string
type: object
required:
- action
- match
type: object
http2Route:
description: An object that represents the specification of an HTTP/2
gatewayRoute.
properties:
action:
description: An object that represents the action to take if a match
is determined.
properties:
target:
description: An object that represents the target that traffic
is routed to when a request matches the route.
properties:
virtualService:
description: The virtual service to associate with the gateway
route target.
properties:
virtualServiceRef:
description: The virtual service reference to associate
with the gateway route virtual service target.
properties:
name:
description: Name is the name of VirtualService
CR
type: string
namespace:
description: Namespace is the namespace of VirtualService
CR. If unspecified, defaults to the referencing
object's namespace
type: string
required:
- name
type: object
required:
- virtualServiceRef
type: object
required:
- virtualService
type: object
required:
- target
type: object
match:
description: An object that represents the criteria for determining
a request match.
properties:
prefix:
description: Specifies the path to match requests with
type: string
required:
- prefix
type: object
required:
- action
- match
type: object
httpRoute:
description: An object that represents the specification of an HTTP
gatewayRoute.
properties:
action:
description: An object that represents the action to take if a match
is determined.
properties:
target:
description: An object that represents the target that traffic
is routed to when a request matches the route.
properties:
virtualService:
description: The virtual service to associate with the gateway
route target.
properties:
virtualServiceRef:
description: The virtual service reference to associate
with the gateway route virtual service target.
properties:
name:
description: Name is the name of VirtualService
CR
type: string
namespace:
description: Namespace is the namespace of VirtualService
CR. If unspecified, defaults to the referencing
object's namespace
type: string
required:
- name
type: object
required:
- virtualServiceRef
type: object
required:
- virtualService
type: object
required:
- target
type: object
match:
description: An object that represents the criteria for determining
a request match.
properties:
prefix:
description: Specifies the path to match requests with
type: string
required:
- prefix
type: object
required:
- action
- match
type: object
meshRef:
description: "A reference to k8s Mesh CR that this GatewayRoute belongs
to. The admission controller populates it using Meshes's selector,
and prevents users from setting this field. \n Populated by the system.
Read-only."
properties:
name:
description: Name is the name of Mesh CR
type: string
uid:
description: UID is the UID of Mesh CR
type: string
required:
- name
- uid
type: object
virtualGatewayRef:
description: "A reference to k8s VirtualGateway CR that this GatewayRoute
belongs to. The admission controller populates it using VirtualGateway's
selector, and prevents users from setting this field. \n Populated
by the system. Read-only."
properties:
name:
description: Name is the name of VirtualGateway CR
type: string
namespace:
description: Namespace is the namespace of VirtualGateway CR. If
unspecified, defaults to the referencing object's namespace
type: string
uid:
description: UID is the UID of VirtualGateway CR
type: string
required:
- name
- uid
type: object
type: object
status:
description: GatewayRouteStatus defines the observed state of GatewayRoute
properties:
conditions:
description: The current GatewayRoute status.
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of GatewayRoute condition.
type: string
required:
- status
- type
type: object
type: array
gatewayRouteARN:
description: GatewayRouteARNs is a map of AppMesh GatewayRoute objects'
Amazon Resource Names, indexed by gatewayRoute name.
type: string
type: object
type: object
version: v1beta2
versions:
- name: v1beta2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: meshes.appmesh.k8s.aws
spec:
group: appmesh.k8s.aws
names:
kind: Mesh
listKind: MeshList
plural: meshes
singular: mesh
scope: Cluster
validation:
openAPIV3Schema:
description: Mesh is the Schema for the meshes API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: MeshSpec defines the desired state of Mesh refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_MeshSpec.html
properties:
awsName:
description: AWSName is the AppMesh Mesh object's name. If unspecified
or empty, it defaults to be "${name}" of k8s Mesh
type: string
egressFilter:
description: The egress filter rules for the service mesh. If unspecified,
default settings from AWS API will be applied. Refer to AWS Docs for
default settings.
properties:
type:
description: The egress filter type.
enum:
- ALLOW_ALL
- DROP_ALL
type: string
required:
- type
type: object
meshOwner:
description: The AWS IAM account ID of the service mesh owner. Required
if the account ID is not your own.
type: string
namespaceSelector:
description: NamespaceSelector selects Namespaces using labels to designate
mesh membership. This field follows standard label selector semantics;
if present but empty, it selects all namespaces.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: A label selector requirement is a selector that contains
values, a key, and an operator that relates the key and values.
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: operator represents a key's relationship to a
set of values. Valid operators are In, NotIn, Exists and
DoesNotExist.
type: string
values:
description: values is an array of string values. If the operator
is In or NotIn, 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 merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: 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 operator is
"In", and the values array contains only "value". The requirements
are ANDed.
type: object
type: object
type: object
status:
description: MeshStatus defines the observed state of Mesh
properties:
conditions:
description: The current Mesh status.
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of mesh condition.
type: string
required:
- status
- type
type: object
type: array
meshARN:
description: MeshARN is the AppMesh Mesh object's Amazon Resource Name
type: string
type: object
type: object
version: v1beta2
versions:
- name: v1beta2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: virtualgateways.appmesh.k8s.aws
spec:
group: appmesh.k8s.aws
names:
kind: VirtualGateway
listKind: VirtualGatewayList
plural: virtualgateways
singular: virtualgateway
scope: Namespaced
validation:
openAPIV3Schema:
description: VirtualGateway is the Schema for the virtualgateways API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: VirtualGatewaySpec defines the desired state of VirtualGateway
refers to https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_gateways.html
properties:
awsName:
description: AWSName is the AppMesh VirtualGateway object's name. If
unspecified or empty, it defaults to be "${name}_${namespace}" of
k8s VirtualGateway
type: string
backendDefaults:
description: A reference to an object that represents the defaults for
backend GatewayRoutes.
properties:
clientPolicy:
description: A reference to an object that represents a client policy.
properties:
tls:
description: A reference to an object that represents a Transport
Layer Security (TLS) client policy.
properties:
enforce:
description: Whether the policy is enforced. If unspecified,
default settings from AWS API will be applied. Refer to
AWS Docs for default settings.
type: boolean
ports:
description: The range of ports that the policy is enforced
for.
items:
format: int64
maximum: 65535
minimum: 1
type: integer
type: array
validation:
description: A reference to an object that represents a
TLS validation context.
properties:
trust:
description: A reference to an object that represents
a TLS validation context trust
properties:
acm:
description: A reference to an object that represents
a TLS validation context trust for an AWS Certicate
Manager (ACM) certificate.
properties:
certificateAuthorityARNs:
description: One or more ACM Amazon Resource
Name (ARN)s.
items:
type: string
maxItems: 3
minItems: 1
type: array
required:
- certificateAuthorityARNs
type: object
file:
description: An object that represents a TLS validation
context trust for a local file.
properties:
certificateChain:
description: The certificate trust chain for
a certificate stored on the file system of
the virtual Gateway.
maxLength: 255
minLength: 1
type: string
required:
- certificateChain
type: object
type: object
required:
- trust
type: object
required:
- validation
type: object
type: object
type: object
listeners:
description: The listener that the virtual gateway is expected to receive
inbound traffic from
items:
description: VirtualGatewayListener refers to https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_gateways.html
properties:
healthCheck:
description: The health check information for the listener.
properties:
healthyThreshold:
description: The number of consecutive successful health checks
that must occur before declaring listener healthy. If unspecified,
defaults to be 10
format: int64
maximum: 10
minimum: 2
type: integer
intervalMillis:
description: The time period in milliseconds between each
health check execution. If unspecified, defaults to be 30000
format: int64
maximum: 300000
minimum: 5000
type: integer
path:
description: The destination path for the health check request.
This value is only used if the specified protocol is http
or http2. For any other protocol, this value is ignored.
type: string
port:
description: The destination port for the health check request.
If unspecified, defaults to be same as port defined in the
PortMapping for the listener.
format: int64
maximum: 65535
minimum: 1
type: integer
protocol:
description: The protocol for the health check request If
unspecified, defaults to be same as protocol defined in
the PortMapping for the listener.
enum:
- grpc
- http
- http2
type: string
timeoutMillis:
description: The amount of time to wait when receiving a response
from the health check, in milliseconds. If unspecified,
defaults to be 5000
format: int64
maximum: 60000
minimum: 2000
type: integer
unhealthyThreshold:
description: The number of consecutive failed health checks
that must occur before declaring a virtual Gateway unhealthy.
If unspecified, defaults to be 2
format: int64
maximum: 10
minimum: 2
type: integer
type: object
logging:
description: The inbound and outbound access logging information
for the virtual gateway.
properties:
accessLog:
description: The access log configuration for a virtual Gateway.
properties:
file:
description: The file object to send virtual gateway access
logs to.
properties:
path:
description: The file path to write access logs to.
maxLength: 255
minLength: 1
type: string
required:
- path
type: object
type: object
type: object
portMapping:
description: The port mapping information for the listener.
properties:
port:
description: The port used for the port mapping.
format: int64
maximum: 65535
minimum: 1
type: integer
protocol:
description: The protocol used for the port mapping.
enum:
- grpc
- http
- http2
type: string
required:
- port
- protocol
type: object
tls:
description: A reference to an object that represents the Transport
Layer Security (TLS) properties for a listener.
properties:
certificate:
description: A reference to an object that represents a listener's
TLS certificate.
properties:
acm:
description: A reference to an object that represents
an AWS Certificate Manager (ACM) certificate.
properties:
certificateARN:
description: The Amazon Resource Name (ARN) for the
certificate.
type: string
required:
- certificateARN
type: object
file:
description: A reference to an object that represents
a local file certificate.
properties:
certificateChain:
description: The certificate chain for the certificate.
maxLength: 255
minLength: 1
type: string
privateKey:
description: The private key for a certificate stored
on the file system of the virtual Gateway.
maxLength: 255
minLength: 1
type: string
required:
- certificateChain
- privateKey
type: object
type: object
mode:
description: ListenerTLS mode
enum:
- DISABLED
- PERMISSIVE
- STRICT
type: string
required:
- certificate
- mode
type: object
required:
- portMapping
type: object
maxItems: 1
minItems: 0
type: array
meshRef:
description: "A reference to k8s Mesh CR that this VirtualGateway belongs
to. The admission controller populates it using Meshes's selector,
and prevents users from setting this field. \n Populated by the system.
Read-only."
properties:
name:
description: Name is the name of Mesh CR
type: string
uid:
description: UID is the UID of Mesh CR
type: string
required:
- name
- uid
type: object
namespaceSelector:
description: NamespaceSelector selects Namespaces using labels to designate
GatewayRoute membership. This field follows standard label selector
semantics; if present but empty, it selects all namespaces.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: A label selector requirement is a selector that contains
values, a key, and an operator that relates the key and values.
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: operator represents a key's relationship to a
set of values. Valid operators are In, NotIn, Exists and
DoesNotExist.
type: string
values:
description: values is an array of string values. If the operator
is In or NotIn, 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 merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: 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 operator is
"In", and the values array contains only "value". The requirements
are ANDed.
type: object
type: object
podSelector:
description: PodSelector selects Pods using labels to designate VirtualGateway
membership. if unspecified or empty, it selects no pods.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: A label selector requirement is a selector that contains
values, a key, and an operator that relates the key and values.
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: operator represents a key's relationship to a
set of values. Valid operators are In, NotIn, Exists and
DoesNotExist.
type: string
values:
description: values is an array of string values. If the operator
is In or NotIn, 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 merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: 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 operator is
"In", and the values array contains only "value". The requirements
are ANDed.
type: object
type: object
type: object
status:
description: VirtualGatewayStatus defines the observed state of VirtualGateway
properties:
conditions:
description: The current VirtualGateway status.
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of VirtualGateway condition.
type: string
required:
- status
- type
type: object
type: array
virtualGatewayARN:
description: VirtualGatewayARN is the AppMesh VirtualGateway object's
Amazon Resource Name
type: string
type: object
type: object
version: v1beta2
versions:
- name: v1beta2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: virtualnodes.appmesh.k8s.aws
spec:
group: appmesh.k8s.aws
names:
kind: VirtualNode
listKind: VirtualNodeList
plural: virtualnodes
singular: virtualnode
scope: Namespaced
validation:
openAPIV3Schema:
description: VirtualNode is the Schema for the virtualnodes API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: VirtualNodeSpec defines the desired state of VirtualNode refers
to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_VirtualServiceSpec.html
properties:
awsName:
description: AWSName is the AppMesh VirtualNode object's name. If unspecified
or empty, it defaults to be "${name}_${namespace}" of k8s VirtualNode
type: string
backendDefaults:
description: A reference to an object that represents the defaults for
backends.
properties:
clientPolicy:
description: A reference to an object that represents a client policy.
properties:
tls:
description: A reference to an object that represents a Transport
Layer Security (TLS) client policy.
properties:
enforce:
description: Whether the policy is enforced. If unspecified,
default settings from AWS API will be applied. Refer to
AWS Docs for default settings.
type: boolean
ports:
description: The range of ports that the policy is enforced
for.
items:
format: int64
maximum: 65535
minimum: 1
type: integer
type: array
validation:
description: A reference to an object that represents a
TLS validation context.
properties:
trust:
description: A reference to an object that represents
a TLS validation context trust
properties:
acm:
description: A reference to an object that represents
a TLS validation context trust for an AWS Certicate
Manager (ACM) certificate.
properties:
certificateAuthorityARNs:
description: One or more ACM Amazon Resource
Name (ARN)s.
items:
type: string
maxItems: 3
minItems: 1
type: array
required:
- certificateAuthorityARNs
type: object
file:
description: An object that represents a TLS validation
context trust for a local file.
properties:
certificateChain:
description: The certificate trust chain for
a certificate stored on the file system of
the virtual node that the proxy is running
on.
maxLength: 255
minLength: 1
type: string
required:
- certificateChain
type: object
type: object
required:
- trust
type: object
required:
- validation
type: object
type: object
type: object
backends:
description: The backends that the virtual node is expected to send
outbound traffic to.
items:
description: Backend refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_Backend.html
properties:
virtualService:
description: Specifies a virtual service to use as a backend for
a virtual node.
properties:
clientPolicy:
description: A reference to an object that represents the
client policy for a backend.
properties:
tls:
description: A reference to an object that represents
a Transport Layer Security (TLS) client policy.
properties:
enforce:
description: Whether the policy is enforced. If unspecified,
default settings from AWS API will be applied. Refer
to AWS Docs for default settings.
type: boolean
ports:
description: The range of ports that the policy is
enforced for.
items:
format: int64
maximum: 65535
minimum: 1
type: integer
type: array
validation:
description: A reference to an object that represents
a TLS validation context.
properties:
trust:
description: A reference to an object that represents
a TLS validation context trust
properties:
acm:
description: A reference to an object that
represents a TLS validation context trust
for an AWS Certicate Manager (ACM) certificate.
properties:
certificateAuthorityARNs:
description: One or more ACM Amazon Resource
Name (ARN)s.
items:
type: string
maxItems: 3
minItems: 1
type: array
required:
- certificateAuthorityARNs
type: object
file:
description: An object that represents a TLS
validation context trust for a local file.
properties:
certificateChain:
description: The certificate trust chain
for a certificate stored on the file
system of the virtual node that the
proxy is running on.
maxLength: 255
minLength: 1
type: string
required:
- certificateChain
type: object
type: object
required:
- trust
type: object
required:
- validation
type: object
type: object
virtualServiceRef:
description: The VirtualService that is acting as a virtual
node backend.
properties:
name:
description: Name is the name of VirtualService CR
type: string
namespace:
description: Namespace is the namespace of VirtualService
CR. If unspecified, defaults to the referencing object's
namespace
type: string
required:
- name
type: object
required:
- virtualServiceRef
type: object
required:
- virtualService
type: object
type: array
listeners:
description: The listener that the virtual node is expected to receive
inbound traffic from
items:
description: Listener refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_Listener.html
properties:
healthCheck:
description: The health check information for the listener.
properties:
healthyThreshold:
description: The number of consecutive successful health checks
that must occur before declaring listener healthy. If unspecified,
defaults to be 10
format: int64
maximum: 10
minimum: 2
type: integer
intervalMillis:
description: The time period in milliseconds between each
health check execution. If unspecified, defaults to be 30000
format: int64
maximum: 300000
minimum: 5000
type: integer
path:
description: The destination path for the health check request.
This value is only used if the specified protocol is http
or http2. For any other protocol, this value is ignored.
type: string
port:
description: The destination port for the health check request.
If unspecified, defaults to be same as port defined in the
PortMapping for the listener.
format: int64
maximum: 65535
minimum: 1
type: integer
protocol:
description: The protocol for the health check request If
unspecified, defaults to be same as protocol defined in
the PortMapping for the listener.
enum:
- grpc
- http
- http2
- tcp
type: string
timeoutMillis:
description: The amount of time to wait when receiving a response
from the health check, in milliseconds. If unspecified,
defaults to be 5000
format: int64
maximum: 60000
minimum: 2000
type: integer
unhealthyThreshold:
description: The number of consecutive failed health checks
that must occur before declaring a virtual node unhealthy.
If unspecified, defaults to be 2
format: int64
maximum: 10
minimum: 2
type: integer
type: object
portMapping:
description: The port mapping information for the listener.
properties:
port:
description: The port used for the port mapping.
format: int64
maximum: 65535
minimum: 1
type: integer
protocol:
description: The protocol used for the port mapping.
enum:
- grpc
- http
- http2
- tcp
type: string
required:
- port
- protocol
type: object
tls:
description: A reference to an object that represents the Transport
Layer Security (TLS) properties for a listener.
properties:
certificate:
description: A reference to an object that represents a listener's
TLS certificate.
properties:
acm:
description: A reference to an object that represents
an AWS Certificate Manager (ACM) certificate.
properties:
certificateARN:
description: The Amazon Resource Name (ARN) for the
certificate.
type: string
required:
- certificateARN
type: object
file:
description: A reference to an object that represents
a local file certificate.
properties:
certificateChain:
description: The certificate chain for the certificate.
maxLength: 255
minLength: 1
type: string
privateKey:
description: The private key for a certificate stored
on the file system of the virtual node that the
proxy is running on.
maxLength: 255
minLength: 1
type: string
required:
- certificateChain
- privateKey
type: object
type: object
mode:
description: ListenerTLS mode
enum:
- DISABLED
- PERMISSIVE
- STRICT
type: string
required:
- certificate
- mode
type: object
required:
- portMapping
type: object
maxItems: 1
minItems: 0
type: array
logging:
description: The inbound and outbound access logging information for
the virtual node.
properties:
accessLog:
description: The access log configuration for a virtual node.
properties:
file:
description: The file object to send virtual node access logs
to.
properties:
path:
description: The file path to write access logs to.
maxLength: 255
minLength: 1
type: string
required:
- path
type: object
type: object
type: object
meshRef:
description: "A reference to k8s Mesh CR that this VirtualNode belongs
to. The admission controller populates it using Meshes's selector,
and prevents users from setting this field. \n Populated by the system.
Read-only."
properties:
name:
description: Name is the name of Mesh CR
type: string
uid:
description: UID is the UID of Mesh CR
type: string
required:
- name
- uid
type: object
podSelector:
description: PodSelector selects Pods using labels to designate VirtualNode
membership. if unspecified or empty, it selects no pods.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: A label selector requirement is a selector that contains
values, a key, and an operator that relates the key and values.
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: operator represents a key's relationship to a
set of values. Valid operators are In, NotIn, Exists and
DoesNotExist.
type: string
values:
description: values is an array of string values. If the operator
is In or NotIn, 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 merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: 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 operator is
"In", and the values array contains only "value". The requirements
are ANDed.
type: object
type: object
serviceDiscovery:
description: The service discovery information for the virtual node.
properties:
awsCloudMap:
description: Specifies any AWS Cloud Map information for the virtual
node.
properties:
attributes:
description: A string map that contains attributes with values
that you can use to filter instances by any custom attribute
that you specified when you registered the instance
items:
description: AWSCloudMapInstanceAttribute refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_AwsCloudMapInstanceAttribute.html
properties:
key:
description: The name of an AWS Cloud Map service instance
attribute key.
maxLength: 255
minLength: 1
type: string
value:
description: The value of an AWS Cloud Map service instance
attribute key.
maxLength: 1024
minLength: 1
type: string
required:
- key
- value
type: object
type: array
namespaceName:
description: The name of the AWS Cloud Map namespace to use.
maxLength: 1024
minLength: 1
type: string
serviceName:
description: The name of the AWS Cloud Map service to use.
maxLength: 1024
minLength: 1
type: string
required:
- namespaceName
- serviceName
type: object
dns:
description: Specifies the DNS information for the virtual node.
properties:
hostname:
description: Specifies the DNS service discovery hostname for
the virtual node.
type: string
required:
- hostname
type: object
type: object
type: object
status:
description: VirtualNodeStatus defines the observed state of VirtualNode
properties:
awsCloudMapServiceStatus:
description: AWSCloudMapServiceStatus is AWS CloudMap Service object's
info
properties:
namespaceID:
description: NamespaceID is AWS CloudMap Service object's namespace
Id
type: string
serviceID:
description: ServiceID is AWS CloudMap Service object's Id
type: string
type: object
conditions:
description: The current VirtualNode status.
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of VirtualNode condition.
type: string
required:
- status
- type
type: object
type: array
virtualNodeARN:
description: VirtualNodeARN is the AppMesh VirtualNode object's Amazon
Resource Name
type: string
type: object
type: object
version: v1beta2
versions:
- name: v1beta2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: virtualrouters.appmesh.k8s.aws
spec:
group: appmesh.k8s.aws
names:
kind: VirtualRouter
listKind: VirtualRouterList
plural: virtualrouters
singular: virtualrouter
scope: Namespaced
validation:
openAPIV3Schema:
description: VirtualRouter is the Schema for the virtualrouters API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: VirtualRouterSpec defines the desired state of VirtualRouter
refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_VirtualRouterSpec.html
properties:
awsName:
description: AWSName is the AppMesh VirtualRouter object's name. If
unspecified or empty, it defaults to be "${name}_${namespace}" of
k8s VirtualRouter
type: string
listeners:
description: The listeners that the virtual router is expected to receive
inbound traffic from
items:
description: VirtualRouterListener refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_VirtualRouterListener.html
properties:
portMapping:
description: The port mapping information for the listener.
properties:
port:
description: The port used for the port mapping.
format: int64
maximum: 65535
minimum: 1
type: integer
protocol:
description: The protocol used for the port mapping.
enum:
- grpc
- http
- http2
- tcp
type: string
required:
- port
- protocol
type: object
required:
- portMapping
type: object
maxItems: 1
minItems: 1
type: array
meshRef:
description: "A reference to k8s Mesh CR that this VirtualRouter belongs
to. The admission controller populates it using Meshes's selector,
and prevents users from setting this field. \n Populated by the system.
Read-only."
properties:
name:
description: Name is the name of Mesh CR
type: string
uid:
description: UID is the UID of Mesh CR
type: string
required:
- name
- uid
type: object
routes:
description: The routes associated with VirtualRouter
items:
description: Route refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_RouteSpec.html
properties:
grpcRoute:
description: An object that represents the specification of a
gRPC route.
properties:
action:
description: An object that represents the action to take
if a match is determined.
properties:
weightedTargets:
description: An object that represents the targets that
traffic is routed to when a request matches the route.
items:
description: WeightedTarget refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_WeightedTarget.html
properties:
virtualNodeRef:
description: The virtual node to associate with
the weighted target.
properties:
name:
description: Name is the name of VirtualNode
CR
type: string
namespace:
description: Namespace is the namespace of VirtualNode
CR. If unspecified, defaults to the referencing
object's namespace
type: string
required:
- name
type: object
weight:
description: The relative weight of the weighted
target.
format: int64
maximum: 100
minimum: 0
type: integer
required:
- virtualNodeRef
- weight
type: object
maxItems: 10
minItems: 1
type: array
required:
- weightedTargets
type: object
match:
description: An object that represents the criteria for determining
a request match.
properties:
metadata:
description: An object that represents the data to match
from the request.
items:
description: GRPCRouteMetadata refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_GrpcRouteMetadata.html
properties:
invert:
description: Specify True to match anything except
the match criteria. The default value is False.
type: boolean
match:
description: An object that represents the data
to match from the request.
properties:
exact:
description: The value sent by the client must
match the specified value exactly.
maxLength: 255
minLength: 1
type: string
prefix:
description: The value sent by the client must
begin with the specified characters.
maxLength: 255
minLength: 1
type: string
range:
description: An object that represents the range
of values to match on
properties:
end:
description: The end of the range.
format: int64
type: integer
start:
description: The start of the range.
format: int64
type: integer
type: object
regex:
description: The value sent by the client must
include the specified characters.
maxLength: 255
minLength: 1
type: string
suffix:
description: The value sent by the client must
end with the specified characters.
maxLength: 255
minLength: 1
type: string
type: object
name:
description: The name of the route.
maxLength: 50
minLength: 1
type: string
required:
- name
type: object
maxItems: 10
minItems: 1
type: array
methodName:
description: The method name to match from the request.
If you specify a name, you must also specify a serviceName.
maxLength: 50
minLength: 1
type: string
serviceName:
description: The fully qualified domain name for the service
to match from the request.
type: string
type: object
retryPolicy:
description: An object that represents a retry policy.
properties:
grpcRetryEvents:
items:
enum:
- cancelled
- deadline-exceeded
- internal
- resource-exhausted
- unavailable
type: string
maxItems: 5
minItems: 1
type: array
httpRetryEvents:
items:
enum:
- server-error
- gateway-error
- client-error
- stream-error
type: string
maxItems: 25
minItems: 1
type: array
maxRetries:
description: The maximum number of retry attempts.
format: int64
minimum: 0
type: integer
perRetryTimeout:
description: An object that represents a duration of time.
properties:
unit:
description: A unit of time.
enum:
- s
- ms
type: string
value:
description: A number of time units.
format: int64
minimum: 0
type: integer
required:
- unit
- value
type: object
tcpRetryEvents:
items:
enum:
- connection-error
type: string
maxItems: 1
minItems: 1
type: array
required:
- maxRetries
- perRetryTimeout
type: object
required:
- action
- match
type: object
http2Route:
description: An object that represents the specification of an
HTTP/2 route.
properties:
action:
description: An object that represents the action to take
if a match is determined.
properties:
weightedTargets:
description: An object that represents the targets that
traffic is routed to when a request matches the route.
items:
description: WeightedTarget refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_WeightedTarget.html
properties:
virtualNodeRef:
description: The virtual node to associate with
the weighted target.
properties:
name:
description: Name is the name of VirtualNode
CR
type: string
namespace:
description: Namespace is the namespace of VirtualNode
CR. If unspecified, defaults to the referencing
object's namespace
type: string
required:
- name
type: object
weight:
description: The relative weight of the weighted
target.
format: int64
maximum: 100
minimum: 0
type: integer
required:
- virtualNodeRef
- weight
type: object
maxItems: 10
minItems: 1
type: array
required:
- weightedTargets
type: object
match:
description: An object that represents the criteria for determining
a request match.
properties:
headers:
description: An object that represents the client request
headers to match on.
items:
description: HTTPRouteHeader refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_HttpRouteHeader.html
properties:
invert:
description: Specify True to match anything except
the match criteria. The default value is False.
type: boolean
match:
description: The HeaderMatchMethod object.
properties:
exact:
description: The value sent by the client must
match the specified value exactly.
maxLength: 255
minLength: 1
type: string
prefix:
description: The value sent by the client must
begin with the specified characters.
maxLength: 255
minLength: 1
type: string
range:
description: An object that represents the range
of values to match on.
properties:
end:
description: The end of the range.
format: int64
type: integer
start:
description: The start of the range.
format: int64
type: integer
type: object
regex:
description: The value sent by the client must
include the specified characters.
maxLength: 255
minLength: 1
type: string
suffix:
description: The value sent by the client must
end with the specified characters.
maxLength: 255
minLength: 1
type: string
type: object
name:
description: A name for the HTTP header in the client
request that will be matched on.
maxLength: 50
minLength: 1
type: string
required:
- name
type: object
maxItems: 10
minItems: 1
type: array
method:
description: The client request method to match on.
enum:
- CONNECT
- DELETE
- GET
- HEAD
- OPTIONS
- PATCH
- POST
- PUT
- TRACE
type: string
prefix:
description: Specifies the path to match requests with
type: string
scheme:
description: The client request scheme to match on
enum:
- http
- https
type: string
required:
- prefix
type: object
retryPolicy:
description: An object that represents a retry policy.
properties:
httpRetryEvents:
items:
enum:
- server-error
- gateway-error
- client-error
- stream-error
type: string
maxItems: 25
minItems: 1
type: array
maxRetries:
description: The maximum number of retry attempts.
format: int64
minimum: 0
type: integer
perRetryTimeout:
description: An object that represents a duration of time
properties:
unit:
description: A unit of time.
enum:
- s
- ms
type: string
value:
description: A number of time units.
format: int64
minimum: 0
type: integer
required:
- unit
- value
type: object
tcpRetryEvents:
items:
enum:
- connection-error
type: string
maxItems: 1
minItems: 1
type: array
required:
- maxRetries
- perRetryTimeout
type: object
required:
- action
- match
type: object
httpRoute:
description: An object that represents the specification of an
HTTP route.
properties:
action:
description: An object that represents the action to take
if a match is determined.
properties:
weightedTargets:
description: An object that represents the targets that
traffic is routed to when a request matches the route.
items:
description: WeightedTarget refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_WeightedTarget.html
properties:
virtualNodeRef:
description: The virtual node to associate with
the weighted target.
properties:
name:
description: Name is the name of VirtualNode
CR
type: string
namespace:
description: Namespace is the namespace of VirtualNode
CR. If unspecified, defaults to the referencing
object's namespace
type: string
required:
- name
type: object
weight:
description: The relative weight of the weighted
target.
format: int64
maximum: 100
minimum: 0
type: integer
required:
- virtualNodeRef
- weight
type: object
maxItems: 10
minItems: 1
type: array
required:
- weightedTargets
type: object
match:
description: An object that represents the criteria for determining
a request match.
properties:
headers:
description: An object that represents the client request
headers to match on.
items:
description: HTTPRouteHeader refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_HttpRouteHeader.html
properties:
invert:
description: Specify True to match anything except
the match criteria. The default value is False.
type: boolean
match:
description: The HeaderMatchMethod object.
properties:
exact:
description: The value sent by the client must
match the specified value exactly.
maxLength: 255
minLength: 1
type: string
prefix:
description: The value sent by the client must
begin with the specified characters.
maxLength: 255
minLength: 1
type: string
range:
description: An object that represents the range
of values to match on.
properties:
end:
description: The end of the range.
format: int64
type: integer
start:
description: The start of the range.
format: int64
type: integer
type: object
regex:
description: The value sent by the client must
include the specified characters.
maxLength: 255
minLength: 1
type: string
suffix:
description: The value sent by the client must
end with the specified characters.
maxLength: 255
minLength: 1
type: string
type: object
name:
description: A name for the HTTP header in the client
request that will be matched on.
maxLength: 50
minLength: 1
type: string
required:
- name
type: object
maxItems: 10
minItems: 1
type: array
method:
description: The client request method to match on.
enum:
- CONNECT
- DELETE
- GET
- HEAD
- OPTIONS
- PATCH
- POST
- PUT
- TRACE
type: string
prefix:
description: Specifies the path to match requests with
type: string
scheme:
description: The client request scheme to match on
enum:
- http
- https
type: string
required:
- prefix
type: object
retryPolicy:
description: An object that represents a retry policy.
properties:
httpRetryEvents:
items:
enum:
- server-error
- gateway-error
- client-error
- stream-error
type: string
maxItems: 25
minItems: 1
type: array
maxRetries:
description: The maximum number of retry attempts.
format: int64
minimum: 0
type: integer
perRetryTimeout:
description: An object that represents a duration of time
properties:
unit:
description: A unit of time.
enum:
- s
- ms
type: string
value:
description: A number of time units.
format: int64
minimum: 0
type: integer
required:
- unit
- value
type: object
tcpRetryEvents:
items:
enum:
- connection-error
type: string
maxItems: 1
minItems: 1
type: array
required:
- maxRetries
- perRetryTimeout
type: object
required:
- action
- match
type: object
name:
description: Route's name
type: string
priority:
description: The priority for the route.
format: int64
maximum: 1000
minimum: 0
type: integer
tcpRoute:
description: An object that represents the specification of a
TCP route.
properties:
action:
description: The action to take if a match is determined.
properties:
weightedTargets:
description: An object that represents the targets that
traffic is routed to when a request matches the route.
items:
description: WeightedTarget refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_WeightedTarget.html
properties:
virtualNodeRef:
description: The virtual node to associate with
the weighted target.
properties:
name:
description: Name is the name of VirtualNode
CR
type: string
namespace:
description: Namespace is the namespace of VirtualNode
CR. If unspecified, defaults to the referencing
object's namespace
type: string
required:
- name
type: object
weight:
description: The relative weight of the weighted
target.
format: int64
maximum: 100
minimum: 0
type: integer
required:
- virtualNodeRef
- weight
type: object
maxItems: 10
minItems: 1
type: array
required:
- weightedTargets
type: object
required:
- action
type: object
type: object
type: array
type: object
status:
description: VirtualRouterStatus defines the observed state of VirtualRouter
properties:
conditions:
description: The current VirtualRouter status.
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of VirtualRouter condition.
type: string
required:
- status
- type
type: object
type: array
routeARNs:
additionalProperties:
type: string
description: RouteARNs is a map of AppMesh Route objects' Amazon Resource
Names, indexed by route name.
type: object
virtualRouterARN:
description: VirtualRouterARN is the AppMesh VirtualRouter object's
Amazon Resource Name.
type: string
type: object
type: object
version: v1beta2
versions:
- name: v1beta2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: virtualservices.appmesh.k8s.aws
spec:
group: appmesh.k8s.aws
names:
kind: VirtualService
listKind: VirtualServiceList
plural: virtualservices
singular: virtualservice
scope: Namespaced
validation:
openAPIV3Schema:
description: VirtualService is the Schema for the virtualservices API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: VirtualServiceSpec defines the desired state of VirtualService
properties:
awsName:
description: AWSName is the AppMesh VirtualService object's name. If
unspecified or empty, it defaults to be "${name}.${namespace}" of
k8s VirtualService
type: string
meshRef:
description: "A reference to k8s Mesh CR that this VirtualService belongs
to. The admission controller populates it using Meshes's selector,
and prevents users from setting this field. \n Populated by the system.
Read-only."
properties:
name:
description: Name is the name of Mesh CR
type: string
uid:
description: UID is the UID of Mesh CR
type: string
required:
- name
- uid
type: object
provider:
description: The provider for virtual services. You can specify a single
virtual node or virtual router.
properties:
virtualNode:
description: The virtual node associated with a virtual service.
properties:
virtualNodeRef:
description: The virtual node that is acting as a service provider.
properties:
name:
description: Name is the name of VirtualNode CR
type: string
namespace:
description: Namespace is the namespace of VirtualNode CR.
If unspecified, defaults to the referencing object's namespace
type: string
required:
- name
type: object
required:
- virtualNodeRef
type: object
virtualRouter:
description: The virtual router associated with a virtual service.
properties:
virtualRouterRef:
description: The virtual router that is acting as a service
provider.
properties:
name:
description: Name is the name of VirtualRouter CR
type: string
namespace:
description: Namespace is the namespace of VirtualRouter
CR. If unspecified, defaults to the referencing object's
namespace
type: string
required:
- name
type: object
required:
- virtualRouterRef
type: object
type: object
type: object
status:
description: VirtualServiceStatus defines the observed state of VirtualService
properties:
conditions:
description: The current VirtualService status.
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of VirtualService condition.
type: string
required:
- status
- type
type: object
type: array
virtualServiceARN:
description: VirtualServiceARN is the AppMesh VirtualService object's
Amazon Resource Name.
type: string
type: object
type: object
version: v1beta2
versions:
- name: v1beta2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
apiVersion: v1
kind: Namespace
metadata:
labels:
control-plane: controller-manager
name: appmesh-system
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: gatewayroutes.appmesh.k8s.aws
spec:
group: appmesh.k8s.aws
names:
kind: GatewayRoute
listKind: GatewayRouteList
plural: gatewayroutes
singular: gatewayroute
scope: Namespaced
validation:
openAPIV3Schema:
description: GatewayRoute is the Schema for the gatewayroutes API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: GatewayRouteSpec defines the desired state of GatewayRoute
refers to https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_gateways.html
properties:
awsName:
description: AWSName is the AppMesh GatewayRoute object's name. If unspecified
or empty, it defaults to be "${name}_${namespace}" of k8s GatewayRoute
type: string
grpcRoute:
description: An object that represents the specification of a gRPC gatewayRoute.
properties:
action:
description: An object that represents the action to take if a match
is determined.
properties:
target:
description: An object that represents the target that traffic
is routed to when a request matches the route.
properties:
virtualService:
description: The virtual service to associate with the gateway
route target.
properties:
virtualServiceRef:
description: The virtual service reference to associate
with the gateway route virtual service target.
properties:
name:
description: Name is the name of VirtualService
CR
type: string
namespace:
description: Namespace is the namespace of VirtualService
CR. If unspecified, defaults to the referencing
object's namespace
type: string
required:
- name
type: object
required:
- virtualServiceRef
type: object
required:
- virtualService
type: object
required:
- target
type: object
match:
description: An object that represents the criteria for determining
a request match.
properties:
serviceName:
description: The fully qualified domain name for the service
to match from the request.
type: string
type: object
required:
- action
- match
type: object
http2Route:
description: An object that represents the specification of an HTTP/2
gatewayRoute.
properties:
action:
description: An object that represents the action to take if a match
is determined.
properties:
target:
description: An object that represents the target that traffic
is routed to when a request matches the route.
properties:
virtualService:
description: The virtual service to associate with the gateway
route target.
properties:
virtualServiceRef:
description: The virtual service reference to associate
with the gateway route virtual service target.
properties:
name:
description: Name is the name of VirtualService
CR
type: string
namespace:
description: Namespace is the namespace of VirtualService
CR. If unspecified, defaults to the referencing
object's namespace
type: string
required:
- name
type: object
required:
- virtualServiceRef
type: object
required:
- virtualService
type: object
required:
- target
type: object
match:
description: An object that represents the criteria for determining
a request match.
properties:
prefix:
description: Specifies the path to match requests with
type: string
required:
- prefix
type: object
required:
- action
- match
type: object
httpRoute:
description: An object that represents the specification of an HTTP
gatewayRoute.
properties:
action:
description: An object that represents the action to take if a match
is determined.
properties:
target:
description: An object that represents the target that traffic
is routed to when a request matches the route.
properties:
virtualService:
description: The virtual service to associate with the gateway
route target.
properties:
virtualServiceRef:
description: The virtual service reference to associate
with the gateway route virtual service target.
properties:
name:
description: Name is the name of VirtualService
CR
type: string
namespace:
description: Namespace is the namespace of VirtualService
CR. If unspecified, defaults to the referencing
object's namespace
type: string
required:
- name
type: object
required:
- virtualServiceRef
type: object
required:
- virtualService
type: object
required:
- target
type: object
match:
description: An object that represents the criteria for determining
a request match.
properties:
prefix:
description: Specifies the path to match requests with
type: string
required:
- prefix
type: object
required:
- action
- match
type: object
meshRef:
description: "A reference to k8s Mesh CR that this GatewayRoute belongs
to. The admission controller populates it using Meshes's selector,
and prevents users from setting this field. \n Populated by the system.
Read-only."
properties:
name:
description: Name is the name of Mesh CR
type: string
uid:
description: UID is the UID of Mesh CR
type: string
required:
- name
- uid
type: object
virtualGatewayRef:
description: "A reference to k8s VirtualGateway CR that this GatewayRoute
belongs to. The admission controller populates it using VirtualGateway's
selector, and prevents users from setting this field. \n Populated
by the system. Read-only."
properties:
name:
description: Name is the name of VirtualGateway CR
type: string
namespace:
description: Namespace is the namespace of VirtualGateway CR. If
unspecified, defaults to the referencing object's namespace
type: string
uid:
description: UID is the UID of VirtualGateway CR
type: string
required:
- name
- uid
type: object
type: object
status:
description: GatewayRouteStatus defines the observed state of GatewayRoute
properties:
conditions:
description: The current GatewayRoute status.
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of GatewayRoute condition.
type: string
required:
- status
- type
type: object
type: array
gatewayRouteARN:
description: GatewayRouteARNs is a map of AppMesh GatewayRoute objects'
Amazon Resource Names, indexed by gatewayRoute name.
type: string
type: object
type: object
version: v1beta2
versions:
- name: v1beta2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: meshes.appmesh.k8s.aws
spec:
group: appmesh.k8s.aws
names:
kind: Mesh
listKind: MeshList
plural: meshes
singular: mesh
scope: Cluster
validation:
openAPIV3Schema:
description: Mesh is the Schema for the meshes API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: MeshSpec defines the desired state of Mesh refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_MeshSpec.html
properties:
awsName:
description: AWSName is the AppMesh Mesh object's name. If unspecified
or empty, it defaults to be "${name}" of k8s Mesh
type: string
egressFilter:
description: The egress filter rules for the service mesh. If unspecified,
default settings from AWS API will be applied. Refer to AWS Docs for
default settings.
properties:
type:
description: The egress filter type.
enum:
- ALLOW_ALL
- DROP_ALL
type: string
required:
- type
type: object
meshOwner:
description: The AWS IAM account ID of the service mesh owner. Required
if the account ID is not your own.
type: string
namespaceSelector:
description: NamespaceSelector selects Namespaces using labels to designate
mesh membership. This field follows standard label selector semantics;
if present but empty, it selects all namespaces.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: A label selector requirement is a selector that contains
values, a key, and an operator that relates the key and values.
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: operator represents a key's relationship to a
set of values. Valid operators are In, NotIn, Exists and
DoesNotExist.
type: string
values:
description: values is an array of string values. If the operator
is In or NotIn, 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 merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: 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 operator is
"In", and the values array contains only "value". The requirements
are ANDed.
type: object
type: object
type: object
status:
description: MeshStatus defines the observed state of Mesh
properties:
conditions:
description: The current Mesh status.
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of mesh condition.
type: string
required:
- status
- type
type: object
type: array
meshARN:
description: MeshARN is the AppMesh Mesh object's Amazon Resource Name
type: string
type: object
type: object
version: v1beta2
versions:
- name: v1beta2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: virtualgateways.appmesh.k8s.aws
spec:
group: appmesh.k8s.aws
names:
kind: VirtualGateway
listKind: VirtualGatewayList
plural: virtualgateways
singular: virtualgateway
scope: Namespaced
validation:
openAPIV3Schema:
description: VirtualGateway is the Schema for the virtualgateways API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: VirtualGatewaySpec defines the desired state of VirtualGateway
refers to https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_gateways.html
properties:
awsName:
description: AWSName is the AppMesh VirtualGateway object's name. If
unspecified or empty, it defaults to be "${name}_${namespace}" of
k8s VirtualGateway
type: string
backendDefaults:
description: A reference to an object that represents the defaults for
backend GatewayRoutes.
properties:
clientPolicy:
description: A reference to an object that represents a client policy.
properties:
tls:
description: A reference to an object that represents a Transport
Layer Security (TLS) client policy.
properties:
enforce:
description: Whether the policy is enforced. If unspecified,
default settings from AWS API will be applied. Refer to
AWS Docs for default settings.
type: boolean
ports:
description: The range of ports that the policy is enforced
for.
items:
format: int64
maximum: 65535
minimum: 1
type: integer
type: array
validation:
description: A reference to an object that represents a
TLS validation context.
properties:
trust:
description: A reference to an object that represents
a TLS validation context trust
properties:
acm:
description: A reference to an object that represents
a TLS validation context trust for an AWS Certicate
Manager (ACM) certificate.
properties:
certificateAuthorityARNs:
description: One or more ACM Amazon Resource
Name (ARN)s.
items:
type: string
maxItems: 3
minItems: 1
type: array
required:
- certificateAuthorityARNs
type: object
file:
description: An object that represents a TLS validation
context trust for a local file.
properties:
certificateChain:
description: The certificate trust chain for
a certificate stored on the file system of
the virtual Gateway.
maxLength: 255
minLength: 1
type: string
required:
- certificateChain
type: object
type: object
required:
- trust
type: object
required:
- validation
type: object
type: object
type: object
listeners:
description: The listener that the virtual gateway is expected to receive
inbound traffic from
items:
description: VirtualGatewayListener refers to https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_gateways.html
properties:
healthCheck:
description: The health check information for the listener.
properties:
healthyThreshold:
description: The number of consecutive successful health checks
that must occur before declaring listener healthy. If unspecified,
defaults to be 10
format: int64
maximum: 10
minimum: 2
type: integer
intervalMillis:
description: The time period in milliseconds between each
health check execution. If unspecified, defaults to be 30000
format: int64
maximum: 300000
minimum: 5000
type: integer
path:
description: The destination path for the health check request.
This value is only used if the specified protocol is http
or http2. For any other protocol, this value is ignored.
type: string
port:
description: The destination port for the health check request.
If unspecified, defaults to be same as port defined in the
PortMapping for the listener.
format: int64
maximum: 65535
minimum: 1
type: integer
protocol:
description: The protocol for the health check request If
unspecified, defaults to be same as protocol defined in
the PortMapping for the listener.
enum:
- grpc
- http
- http2
type: string
timeoutMillis:
description: The amount of time to wait when receiving a response
from the health check, in milliseconds. If unspecified,
defaults to be 5000
format: int64
maximum: 60000
minimum: 2000
type: integer
unhealthyThreshold:
description: The number of consecutive failed health checks
that must occur before declaring a virtual Gateway unhealthy.
If unspecified, defaults to be 2
format: int64
maximum: 10
minimum: 2
type: integer
type: object
logging:
description: The inbound and outbound access logging information
for the virtual gateway.
properties:
accessLog:
description: The access log configuration for a virtual Gateway.
properties:
file:
description: The file object to send virtual gateway access
logs to.
properties:
path:
description: The file path to write access logs to.
maxLength: 255
minLength: 1
type: string
required:
- path
type: object
type: object
type: object
portMapping:
description: The port mapping information for the listener.
properties:
port:
description: The port used for the port mapping.
format: int64
maximum: 65535
minimum: 1
type: integer
protocol:
description: The protocol used for the port mapping.
enum:
- grpc
- http
- http2
type: string
required:
- port
- protocol
type: object
tls:
description: A reference to an object that represents the Transport
Layer Security (TLS) properties for a listener.
properties:
certificate:
description: A reference to an object that represents a listener's
TLS certificate.
properties:
acm:
description: A reference to an object that represents
an AWS Certificate Manager (ACM) certificate.
properties:
certificateARN:
description: The Amazon Resource Name (ARN) for the
certificate.
type: string
required:
- certificateARN
type: object
file:
description: A reference to an object that represents
a local file certificate.
properties:
certificateChain:
description: The certificate chain for the certificate.
maxLength: 255
minLength: 1
type: string
privateKey:
description: The private key for a certificate stored
on the file system of the virtual Gateway.
maxLength: 255
minLength: 1
type: string
required:
- certificateChain
- privateKey
type: object
type: object
mode:
description: ListenerTLS mode
enum:
- DISABLED
- PERMISSIVE
- STRICT
type: string
required:
- certificate
- mode
type: object
required:
- portMapping
type: object
maxItems: 1
minItems: 0
type: array
meshRef:
description: "A reference to k8s Mesh CR that this VirtualGateway belongs
to. The admission controller populates it using Meshes's selector,
and prevents users from setting this field. \n Populated by the system.
Read-only."
properties:
name:
description: Name is the name of Mesh CR
type: string
uid:
description: UID is the UID of Mesh CR
type: string
required:
- name
- uid
type: object
namespaceSelector:
description: NamespaceSelector selects Namespaces using labels to designate
GatewayRoute membership. This field follows standard label selector
semantics; if present but empty, it selects all namespaces.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: A label selector requirement is a selector that contains
values, a key, and an operator that relates the key and values.
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: operator represents a key's relationship to a
set of values. Valid operators are In, NotIn, Exists and
DoesNotExist.
type: string
values:
description: values is an array of string values. If the operator
is In or NotIn, 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 merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: 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 operator is
"In", and the values array contains only "value". The requirements
are ANDed.
type: object
type: object
podSelector:
description: PodSelector selects Pods using labels to designate VirtualGateway
membership. if unspecified or empty, it selects no pods.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: A label selector requirement is a selector that contains
values, a key, and an operator that relates the key and values.
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: operator represents a key's relationship to a
set of values. Valid operators are In, NotIn, Exists and
DoesNotExist.
type: string
values:
description: values is an array of string values. If the operator
is In or NotIn, 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 merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: 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 operator is
"In", and the values array contains only "value". The requirements
are ANDed.
type: object
type: object
type: object
status:
description: VirtualGatewayStatus defines the observed state of VirtualGateway
properties:
conditions:
description: The current VirtualGateway status.
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of VirtualGateway condition.
type: string
required:
- status
- type
type: object
type: array
virtualGatewayARN:
description: VirtualGatewayARN is the AppMesh VirtualGateway object's
Amazon Resource Name
type: string
type: object
type: object
version: v1beta2
versions:
- name: v1beta2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: virtualnodes.appmesh.k8s.aws
spec:
group: appmesh.k8s.aws
names:
kind: VirtualNode
listKind: VirtualNodeList
plural: virtualnodes
singular: virtualnode
scope: Namespaced
validation:
openAPIV3Schema:
description: VirtualNode is the Schema for the virtualnodes API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: VirtualNodeSpec defines the desired state of VirtualNode refers
to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_VirtualServiceSpec.html
properties:
awsName:
description: AWSName is the AppMesh VirtualNode object's name. If unspecified
or empty, it defaults to be "${name}_${namespace}" of k8s VirtualNode
type: string
backendDefaults:
description: A reference to an object that represents the defaults for
backends.
properties:
clientPolicy:
description: A reference to an object that represents a client policy.
properties:
tls:
description: A reference to an object that represents a Transport
Layer Security (TLS) client policy.
properties:
enforce:
description: Whether the policy is enforced. If unspecified,
default settings from AWS API will be applied. Refer to
AWS Docs for default settings.
type: boolean
ports:
description: The range of ports that the policy is enforced
for.
items:
format: int64
maximum: 65535
minimum: 1
type: integer
type: array
validation:
description: A reference to an object that represents a
TLS validation context.
properties:
trust:
description: A reference to an object that represents
a TLS validation context trust
properties:
acm:
description: A reference to an object that represents
a TLS validation context trust for an AWS Certicate
Manager (ACM) certificate.
properties:
certificateAuthorityARNs:
description: One or more ACM Amazon Resource
Name (ARN)s.
items:
type: string
maxItems: 3
minItems: 1
type: array
required:
- certificateAuthorityARNs
type: object
file:
description: An object that represents a TLS validation
context trust for a local file.
properties:
certificateChain:
description: The certificate trust chain for
a certificate stored on the file system of
the virtual node that the proxy is running
on.
maxLength: 255
minLength: 1
type: string
required:
- certificateChain
type: object
type: object
required:
- trust
type: object
required:
- validation
type: object
type: object
type: object
backends:
description: The backends that the virtual node is expected to send
outbound traffic to.
items:
description: Backend refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_Backend.html
properties:
virtualService:
description: Specifies a virtual service to use as a backend for
a virtual node.
properties:
clientPolicy:
description: A reference to an object that represents the
client policy for a backend.
properties:
tls:
description: A reference to an object that represents
a Transport Layer Security (TLS) client policy.
properties:
enforce:
description: Whether the policy is enforced. If unspecified,
default settings from AWS API will be applied. Refer
to AWS Docs for default settings.
type: boolean
ports:
description: The range of ports that the policy is
enforced for.
items:
format: int64
maximum: 65535
minimum: 1
type: integer
type: array
validation:
description: A reference to an object that represents
a TLS validation context.
properties:
trust:
description: A reference to an object that represents
a TLS validation context trust
properties:
acm:
description: A reference to an object that
represents a TLS validation context trust
for an AWS Certicate Manager (ACM) certificate.
properties:
certificateAuthorityARNs:
description: One or more ACM Amazon Resource
Name (ARN)s.
items:
type: string
maxItems: 3
minItems: 1
type: array
required:
- certificateAuthorityARNs
type: object
file:
description: An object that represents a TLS
validation context trust for a local file.
properties:
certificateChain:
description: The certificate trust chain
for a certificate stored on the file
system of the virtual node that the
proxy is running on.
maxLength: 255
minLength: 1
type: string
required:
- certificateChain
type: object
type: object
required:
- trust
type: object
required:
- validation
type: object
type: object
virtualServiceRef:
description: The VirtualService that is acting as a virtual
node backend.
properties:
name:
description: Name is the name of VirtualService CR
type: string
namespace:
description: Namespace is the namespace of VirtualService
CR. If unspecified, defaults to the referencing object's
namespace
type: string
required:
- name
type: object
required:
- virtualServiceRef
type: object
required:
- virtualService
type: object
type: array
listeners:
description: The listener that the virtual node is expected to receive
inbound traffic from
items:
description: Listener refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_Listener.html
properties:
healthCheck:
description: The health check information for the listener.
properties:
healthyThreshold:
description: The number of consecutive successful health checks
that must occur before declaring listener healthy. If unspecified,
defaults to be 10
format: int64
maximum: 10
minimum: 2
type: integer
intervalMillis:
description: The time period in milliseconds between each
health check execution. If unspecified, defaults to be 30000
format: int64
maximum: 300000
minimum: 5000
type: integer
path:
description: The destination path for the health check request.
This value is only used if the specified protocol is http
or http2. For any other protocol, this value is ignored.
type: string
port:
description: The destination port for the health check request.
If unspecified, defaults to be same as port defined in the
PortMapping for the listener.
format: int64
maximum: 65535
minimum: 1
type: integer
protocol:
description: The protocol for the health check request If
unspecified, defaults to be same as protocol defined in
the PortMapping for the listener.
enum:
- grpc
- http
- http2
- tcp
type: string
timeoutMillis:
description: The amount of time to wait when receiving a response
from the health check, in milliseconds. If unspecified,
defaults to be 5000
format: int64
maximum: 60000
minimum: 2000
type: integer
unhealthyThreshold:
description: The number of consecutive failed health checks
that must occur before declaring a virtual node unhealthy.
If unspecified, defaults to be 2
format: int64
maximum: 10
minimum: 2
type: integer
type: object
portMapping:
description: The port mapping information for the listener.
properties:
port:
description: The port used for the port mapping.
format: int64
maximum: 65535
minimum: 1
type: integer
protocol:
description: The protocol used for the port mapping.
enum:
- grpc
- http
- http2
- tcp
type: string
required:
- port
- protocol
type: object
tls:
description: A reference to an object that represents the Transport
Layer Security (TLS) properties for a listener.
properties:
certificate:
description: A reference to an object that represents a listener's
TLS certificate.
properties:
acm:
description: A reference to an object that represents
an AWS Certificate Manager (ACM) certificate.
properties:
certificateARN:
description: The Amazon Resource Name (ARN) for the
certificate.
type: string
required:
- certificateARN
type: object
file:
description: A reference to an object that represents
a local file certificate.
properties:
certificateChain:
description: The certificate chain for the certificate.
maxLength: 255
minLength: 1
type: string
privateKey:
description: The private key for a certificate stored
on the file system of the virtual node that the
proxy is running on.
maxLength: 255
minLength: 1
type: string
required:
- certificateChain
- privateKey
type: object
type: object
mode:
description: ListenerTLS mode
enum:
- DISABLED
- PERMISSIVE
- STRICT
type: string
required:
- certificate
- mode
type: object
required:
- portMapping
type: object
maxItems: 1
minItems: 0
type: array
logging:
description: The inbound and outbound access logging information for
the virtual node.
properties:
accessLog:
description: The access log configuration for a virtual node.
properties:
file:
description: The file object to send virtual node access logs
to.
properties:
path:
description: The file path to write access logs to.
maxLength: 255
minLength: 1
type: string
required:
- path
type: object
type: object
type: object
meshRef:
description: "A reference to k8s Mesh CR that this VirtualNode belongs
to. The admission controller populates it using Meshes's selector,
and prevents users from setting this field. \n Populated by the system.
Read-only."
properties:
name:
description: Name is the name of Mesh CR
type: string
uid:
description: UID is the UID of Mesh CR
type: string
required:
- name
- uid
type: object
podSelector:
description: PodSelector selects Pods using labels to designate VirtualNode
membership. if unspecified or empty, it selects no pods.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements.
The requirements are ANDed.
items:
description: A label selector requirement is a selector that contains
values, a key, and an operator that relates the key and values.
properties:
key:
description: key is the label key that the selector applies
to.
type: string
operator:
description: operator represents a key's relationship to a
set of values. Valid operators are In, NotIn, Exists and
DoesNotExist.
type: string
values:
description: values is an array of string values. If the operator
is In or NotIn, 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 merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: 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 operator is
"In", and the values array contains only "value". The requirements
are ANDed.
type: object
type: object
serviceDiscovery:
description: The service discovery information for the virtual node.
properties:
awsCloudMap:
description: Specifies any AWS Cloud Map information for the virtual
node.
properties:
attributes:
description: A string map that contains attributes with values
that you can use to filter instances by any custom attribute
that you specified when you registered the instance
items:
description: AWSCloudMapInstanceAttribute refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_AwsCloudMapInstanceAttribute.html
properties:
key:
description: The name of an AWS Cloud Map service instance
attribute key.
maxLength: 255
minLength: 1
type: string
value:
description: The value of an AWS Cloud Map service instance
attribute key.
maxLength: 1024
minLength: 1
type: string
required:
- key
- value
type: object
type: array
namespaceName:
description: The name of the AWS Cloud Map namespace to use.
maxLength: 1024
minLength: 1
type: string
serviceName:
description: The name of the AWS Cloud Map service to use.
maxLength: 1024
minLength: 1
type: string
required:
- namespaceName
- serviceName
type: object
dns:
description: Specifies the DNS information for the virtual node.
properties:
hostname:
description: Specifies the DNS service discovery hostname for
the virtual node.
type: string
required:
- hostname
type: object
type: object
type: object
status:
description: VirtualNodeStatus defines the observed state of VirtualNode
properties:
awsCloudMapServiceStatus:
description: AWSCloudMapServiceStatus is AWS CloudMap Service object's
info
properties:
namespaceID:
description: NamespaceID is AWS CloudMap Service object's namespace
Id
type: string
serviceID:
description: ServiceID is AWS CloudMap Service object's Id
type: string
type: object
conditions:
description: The current VirtualNode status.
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of VirtualNode condition.
type: string
required:
- status
- type
type: object
type: array
virtualNodeARN:
description: VirtualNodeARN is the AppMesh VirtualNode object's Amazon
Resource Name
type: string
type: object
type: object
version: v1beta2
versions:
- name: v1beta2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: virtualrouters.appmesh.k8s.aws
spec:
group: appmesh.k8s.aws
names:
kind: VirtualRouter
listKind: VirtualRouterList
plural: virtualrouters
singular: virtualrouter
scope: Namespaced
validation:
openAPIV3Schema:
description: VirtualRouter is the Schema for the virtualrouters API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: VirtualRouterSpec defines the desired state of VirtualRouter
refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_VirtualRouterSpec.html
properties:
awsName:
description: AWSName is the AppMesh VirtualRouter object's name. If
unspecified or empty, it defaults to be "${name}_${namespace}" of
k8s VirtualRouter
type: string
listeners:
description: The listeners that the virtual router is expected to receive
inbound traffic from
items:
description: VirtualRouterListener refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_VirtualRouterListener.html
properties:
portMapping:
description: The port mapping information for the listener.
properties:
port:
description: The port used for the port mapping.
format: int64
maximum: 65535
minimum: 1
type: integer
protocol:
description: The protocol used for the port mapping.
enum:
- grpc
- http
- http2
- tcp
type: string
required:
- port
- protocol
type: object
required:
- portMapping
type: object
maxItems: 1
minItems: 1
type: array
meshRef:
description: "A reference to k8s Mesh CR that this VirtualRouter belongs
to. The admission controller populates it using Meshes's selector,
and prevents users from setting this field. \n Populated by the system.
Read-only."
properties:
name:
description: Name is the name of Mesh CR
type: string
uid:
description: UID is the UID of Mesh CR
type: string
required:
- name
- uid
type: object
routes:
description: The routes associated with VirtualRouter
items:
description: Route refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_RouteSpec.html
properties:
grpcRoute:
description: An object that represents the specification of a
gRPC route.
properties:
action:
description: An object that represents the action to take
if a match is determined.
properties:
weightedTargets:
description: An object that represents the targets that
traffic is routed to when a request matches the route.
items:
description: WeightedTarget refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_WeightedTarget.html
properties:
virtualNodeRef:
description: The virtual node to associate with
the weighted target.
properties:
name:
description: Name is the name of VirtualNode
CR
type: string
namespace:
description: Namespace is the namespace of VirtualNode
CR. If unspecified, defaults to the referencing
object's namespace
type: string
required:
- name
type: object
weight:
description: The relative weight of the weighted
target.
format: int64
maximum: 100
minimum: 0
type: integer
required:
- virtualNodeRef
- weight
type: object
maxItems: 10
minItems: 1
type: array
required:
- weightedTargets
type: object
match:
description: An object that represents the criteria for determining
a request match.
properties:
metadata:
description: An object that represents the data to match
from the request.
items:
description: GRPCRouteMetadata refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_GrpcRouteMetadata.html
properties:
invert:
description: Specify True to match anything except
the match criteria. The default value is False.
type: boolean
match:
description: An object that represents the data
to match from the request.
properties:
exact:
description: The value sent by the client must
match the specified value exactly.
maxLength: 255
minLength: 1
type: string
prefix:
description: The value sent by the client must
begin with the specified characters.
maxLength: 255
minLength: 1
type: string
range:
description: An object that represents the range
of values to match on
properties:
end:
description: The end of the range.
format: int64
type: integer
start:
description: The start of the range.
format: int64
type: integer
type: object
regex:
description: The value sent by the client must
include the specified characters.
maxLength: 255
minLength: 1
type: string
suffix:
description: The value sent by the client must
end with the specified characters.
maxLength: 255
minLength: 1
type: string
type: object
name:
description: The name of the route.
maxLength: 50
minLength: 1
type: string
required:
- name
type: object
maxItems: 10
minItems: 1
type: array
methodName:
description: The method name to match from the request.
If you specify a name, you must also specify a serviceName.
maxLength: 50
minLength: 1
type: string
serviceName:
description: The fully qualified domain name for the service
to match from the request.
type: string
type: object
retryPolicy:
description: An object that represents a retry policy.
properties:
grpcRetryEvents:
items:
enum:
- cancelled
- deadline-exceeded
- internal
- resource-exhausted
- unavailable
type: string
maxItems: 5
minItems: 1
type: array
httpRetryEvents:
items:
enum:
- server-error
- gateway-error
- client-error
- stream-error
type: string
maxItems: 25
minItems: 1
type: array
maxRetries:
description: The maximum number of retry attempts.
format: int64
minimum: 0
type: integer
perRetryTimeout:
description: An object that represents a duration of time.
properties:
unit:
description: A unit of time.
enum:
- s
- ms
type: string
value:
description: A number of time units.
format: int64
minimum: 0
type: integer
required:
- unit
- value
type: object
tcpRetryEvents:
items:
enum:
- connection-error
type: string
maxItems: 1
minItems: 1
type: array
required:
- maxRetries
- perRetryTimeout
type: object
required:
- action
- match
type: object
http2Route:
description: An object that represents the specification of an
HTTP/2 route.
properties:
action:
description: An object that represents the action to take
if a match is determined.
properties:
weightedTargets:
description: An object that represents the targets that
traffic is routed to when a request matches the route.
items:
description: WeightedTarget refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_WeightedTarget.html
properties:
virtualNodeRef:
description: The virtual node to associate with
the weighted target.
properties:
name:
description: Name is the name of VirtualNode
CR
type: string
namespace:
description: Namespace is the namespace of VirtualNode
CR. If unspecified, defaults to the referencing
object's namespace
type: string
required:
- name
type: object
weight:
description: The relative weight of the weighted
target.
format: int64
maximum: 100
minimum: 0
type: integer
required:
- virtualNodeRef
- weight
type: object
maxItems: 10
minItems: 1
type: array
required:
- weightedTargets
type: object
match:
description: An object that represents the criteria for determining
a request match.
properties:
headers:
description: An object that represents the client request
headers to match on.
items:
description: HTTPRouteHeader refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_HttpRouteHeader.html
properties:
invert:
description: Specify True to match anything except
the match criteria. The default value is False.
type: boolean
match:
description: The HeaderMatchMethod object.
properties:
exact:
description: The value sent by the client must
match the specified value exactly.
maxLength: 255
minLength: 1
type: string
prefix:
description: The value sent by the client must
begin with the specified characters.
maxLength: 255
minLength: 1
type: string
range:
description: An object that represents the range
of values to match on.
properties:
end:
description: The end of the range.
format: int64
type: integer
start:
description: The start of the range.
format: int64
type: integer
type: object
regex:
description: The value sent by the client must
include the specified characters.
maxLength: 255
minLength: 1
type: string
suffix:
description: The value sent by the client must
end with the specified characters.
maxLength: 255
minLength: 1
type: string
type: object
name:
description: A name for the HTTP header in the client
request that will be matched on.
maxLength: 50
minLength: 1
type: string
required:
- name
type: object
maxItems: 10
minItems: 1
type: array
method:
description: The client request method to match on.
enum:
- CONNECT
- DELETE
- GET
- HEAD
- OPTIONS
- PATCH
- POST
- PUT
- TRACE
type: string
prefix:
description: Specifies the path to match requests with
type: string
scheme:
description: The client request scheme to match on
enum:
- http
- https
type: string
required:
- prefix
type: object
retryPolicy:
description: An object that represents a retry policy.
properties:
httpRetryEvents:
items:
enum:
- server-error
- gateway-error
- client-error
- stream-error
type: string
maxItems: 25
minItems: 1
type: array
maxRetries:
description: The maximum number of retry attempts.
format: int64
minimum: 0
type: integer
perRetryTimeout:
description: An object that represents a duration of time
properties:
unit:
description: A unit of time.
enum:
- s
- ms
type: string
value:
description: A number of time units.
format: int64
minimum: 0
type: integer
required:
- unit
- value
type: object
tcpRetryEvents:
items:
enum:
- connection-error
type: string
maxItems: 1
minItems: 1
type: array
required:
- maxRetries
- perRetryTimeout
type: object
required:
- action
- match
type: object
httpRoute:
description: An object that represents the specification of an
HTTP route.
properties:
action:
description: An object that represents the action to take
if a match is determined.
properties:
weightedTargets:
description: An object that represents the targets that
traffic is routed to when a request matches the route.
items:
description: WeightedTarget refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_WeightedTarget.html
properties:
virtualNodeRef:
description: The virtual node to associate with
the weighted target.
properties:
name:
description: Name is the name of VirtualNode
CR
type: string
namespace:
description: Namespace is the namespace of VirtualNode
CR. If unspecified, defaults to the referencing
object's namespace
type: string
required:
- name
type: object
weight:
description: The relative weight of the weighted
target.
format: int64
maximum: 100
minimum: 0
type: integer
required:
- virtualNodeRef
- weight
type: object
maxItems: 10
minItems: 1
type: array
required:
- weightedTargets
type: object
match:
description: An object that represents the criteria for determining
a request match.
properties:
headers:
description: An object that represents the client request
headers to match on.
items:
description: HTTPRouteHeader refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_HttpRouteHeader.html
properties:
invert:
description: Specify True to match anything except
the match criteria. The default value is False.
type: boolean
match:
description: The HeaderMatchMethod object.
properties:
exact:
description: The value sent by the client must
match the specified value exactly.
maxLength: 255
minLength: 1
type: string
prefix:
description: The value sent by the client must
begin with the specified characters.
maxLength: 255
minLength: 1
type: string
range:
description: An object that represents the range
of values to match on.
properties:
end:
description: The end of the range.
format: int64
type: integer
start:
description: The start of the range.
format: int64
type: integer
type: object
regex:
description: The value sent by the client must
include the specified characters.
maxLength: 255
minLength: 1
type: string
suffix:
description: The value sent by the client must
end with the specified characters.
maxLength: 255
minLength: 1
type: string
type: object
name:
description: A name for the HTTP header in the client
request that will be matched on.
maxLength: 50
minLength: 1
type: string
required:
- name
type: object
maxItems: 10
minItems: 1
type: array
method:
description: The client request method to match on.
enum:
- CONNECT
- DELETE
- GET
- HEAD
- OPTIONS
- PATCH
- POST
- PUT
- TRACE
type: string
prefix:
description: Specifies the path to match requests with
type: string
scheme:
description: The client request scheme to match on
enum:
- http
- https
type: string
required:
- prefix
type: object
retryPolicy:
description: An object that represents a retry policy.
properties:
httpRetryEvents:
items:
enum:
- server-error
- gateway-error
- client-error
- stream-error
type: string
maxItems: 25
minItems: 1
type: array
maxRetries:
description: The maximum number of retry attempts.
format: int64
minimum: 0
type: integer
perRetryTimeout:
description: An object that represents a duration of time
properties:
unit:
description: A unit of time.
enum:
- s
- ms
type: string
value:
description: A number of time units.
format: int64
minimum: 0
type: integer
required:
- unit
- value
type: object
tcpRetryEvents:
items:
enum:
- connection-error
type: string
maxItems: 1
minItems: 1
type: array
required:
- maxRetries
- perRetryTimeout
type: object
required:
- action
- match
type: object
name:
description: Route's name
type: string
priority:
description: The priority for the route.
format: int64
maximum: 1000
minimum: 0
type: integer
tcpRoute:
description: An object that represents the specification of a
TCP route.
properties:
action:
description: The action to take if a match is determined.
properties:
weightedTargets:
description: An object that represents the targets that
traffic is routed to when a request matches the route.
items:
description: WeightedTarget refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_WeightedTarget.html
properties:
virtualNodeRef:
description: The virtual node to associate with
the weighted target.
properties:
name:
description: Name is the name of VirtualNode
CR
type: string
namespace:
description: Namespace is the namespace of VirtualNode
CR. If unspecified, defaults to the referencing
object's namespace
type: string
required:
- name
type: object
weight:
description: The relative weight of the weighted
target.
format: int64
maximum: 100
minimum: 0
type: integer
required:
- virtualNodeRef
- weight
type: object
maxItems: 10
minItems: 1
type: array
required:
- weightedTargets
type: object
required:
- action
type: object
type: object
type: array
type: object
status:
description: VirtualRouterStatus defines the observed state of VirtualRouter
properties:
conditions:
description: The current VirtualRouter status.
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of VirtualRouter condition.
type: string
required:
- status
- type
type: object
type: array
routeARNs:
additionalProperties:
type: string
description: RouteARNs is a map of AppMesh Route objects' Amazon Resource
Names, indexed by route name.
type: object
virtualRouterARN:
description: VirtualRouterARN is the AppMesh VirtualRouter object's
Amazon Resource Name.
type: string
type: object
type: object
version: v1beta2
versions:
- name: v1beta2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: virtualservices.appmesh.k8s.aws
spec:
group: appmesh.k8s.aws
names:
kind: VirtualService
listKind: VirtualServiceList
plural: virtualservices
singular: virtualservice
scope: Namespaced
validation:
openAPIV3Schema:
description: VirtualService is the Schema for the virtualservices API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: VirtualServiceSpec defines the desired state of VirtualService
properties:
awsName:
description: AWSName is the AppMesh VirtualService object's name. If
unspecified or empty, it defaults to be "${name}.${namespace}" of
k8s VirtualService
type: string
meshRef:
description: "A reference to k8s Mesh CR that this VirtualService belongs
to. The admission controller populates it using Meshes's selector,
and prevents users from setting this field. \n Populated by the system.
Read-only."
properties:
name:
description: Name is the name of Mesh CR
type: string
uid:
description: UID is the UID of Mesh CR
type: string
required:
- name
- uid
type: object
provider:
description: The provider for virtual services. You can specify a single
virtual node or virtual router.
properties:
virtualNode:
description: The virtual node associated with a virtual service.
properties:
virtualNodeRef:
description: The virtual node that is acting as a service provider.
properties:
name:
description: Name is the name of VirtualNode CR
type: string
namespace:
description: Namespace is the namespace of VirtualNode CR.
If unspecified, defaults to the referencing object's namespace
type: string
required:
- name
type: object
required:
- virtualNodeRef
type: object
virtualRouter:
description: The virtual router associated with a virtual service.
properties:
virtualRouterRef:
description: The virtual router that is acting as a service
provider.
properties:
name:
description: Name is the name of VirtualRouter CR
type: string
namespace:
description: Namespace is the namespace of VirtualRouter
CR. If unspecified, defaults to the referencing object's
namespace
type: string
required:
- name
type: object
required:
- virtualRouterRef
type: object
type: object
type: object
status:
description: VirtualServiceStatus defines the observed state of VirtualService
properties:
conditions:
description: The current VirtualService status.
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
message:
description: A human readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of VirtualService condition.
type: string
required:
- status
- type
type: object
type: array
virtualServiceARN:
description: VirtualServiceARN is the AppMesh VirtualService object's
Amazon Resource Name.
type: string
type: object
type: object
version: v1beta2
versions:
- name: v1beta2
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
---
apiVersion: admissionregistration.k8s.io/v1beta1
kind: MutatingWebhookConfiguration
metadata:
annotations:
cert-manager.io/inject-ca-from: appmesh-system/appmesh-serving-cert
creationTimestamp: null
name: appmesh-mutating-webhook-configuration
webhooks:
- clientConfig:
caBundle: Cg==
service:
name: appmesh-webhook-service
namespace: appmesh-system
path: /mutate-appmesh-k8s-aws-v1beta2-mesh
failurePolicy: Fail
name: mmesh.appmesh.k8s.aws
rules:
- apiGroups:
- appmesh.k8s.aws
apiVersions:
- v1beta2
operations:
- CREATE
- UPDATE
resources:
- meshes
- clientConfig:
caBundle: Cg==
service:
name: appmesh-webhook-service
namespace: appmesh-system
path: /mutate-appmesh-k8s-aws-v1beta2-virtualnode
failurePolicy: Fail
name: mvirtualnode.appmesh.k8s.aws
rules:
- apiGroups:
- appmesh.k8s.aws
apiVersions:
- v1beta2
operations:
- CREATE
- UPDATE
resources:
- virtualnodes
- clientConfig:
caBundle: Cg==
service:
name: appmesh-webhook-service
namespace: appmesh-system
path: /mutate-appmesh-k8s-aws-v1beta2-virtualrouter
failurePolicy: Fail
name: mvirtualrouter.appmesh.k8s.aws
rules:
- apiGroups:
- appmesh.k8s.aws
apiVersions:
- v1beta2
operations:
- CREATE
- UPDATE
resources:
- virtualrouters
- clientConfig:
caBundle: Cg==
service:
name: appmesh-webhook-service
namespace: appmesh-system
path: /mutate-appmesh-k8s-aws-v1beta2-virtualservice
failurePolicy: Fail
name: mvirtualservice.appmesh.k8s.aws
rules:
- apiGroups:
- appmesh.k8s.aws
apiVersions:
- v1beta2
operations:
- CREATE
- UPDATE
resources:
- virtualservices
- clientConfig:
caBundle: Cg==
service:
name: appmesh-webhook-service
namespace: appmesh-system
path: /mutate-v1-pod
failurePolicy: Ignore
name: mpod.appmesh.k8s.aws
rules:
- apiGroups:
- ""
apiVersions:
- v1
operations:
- CREATE
resources:
- pods
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: appmesh-leader-election-role
namespace: appmesh-system
rules:
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- ""
resources:
- configmaps/status
verbs:
- get
- update
- patch
- apiGroups:
- ""
resources:
- events
verbs:
- create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
creationTimestamp: null
name: appmesh-manager-role
rules:
- apiGroups:
- ""
resources:
- events
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- ""
resources:
- namespaces
verbs:
- get
- list
- watch
- apiGroups:
- appmesh.k8s.aws
resources:
- gatewayroutes
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- appmesh.k8s.aws
resources:
- gatewayroutes/status
verbs:
- get
- patch
- update
- apiGroups:
- appmesh.k8s.aws
resources:
- meshes
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- appmesh.k8s.aws
resources:
- meshes/status
verbs:
- get
- patch
- update
- apiGroups:
- appmesh.k8s.aws
resources:
- virtualgateways
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- appmesh.k8s.aws
resources:
- virtualgateways/status
verbs:
- get
- patch
- update
- apiGroups:
- appmesh.k8s.aws
resources:
- virtualnodes
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- appmesh.k8s.aws
resources:
- virtualnodes/status
verbs:
- get
- patch
- update
- apiGroups:
- appmesh.k8s.aws
resources:
- virtualrouters
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- appmesh.k8s.aws
resources:
- virtualrouters/status
verbs:
- get
- patch
- update
- apiGroups:
- appmesh.k8s.aws
resources:
- virtualservices
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- appmesh.k8s.aws
resources:
- virtualservices/status
verbs:
- get
- patch
- update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: appmesh-proxy-role
rules:
- apiGroups:
- authentication.k8s.io
resources:
- tokenreviews
verbs:
- create
- apiGroups:
- authorization.k8s.io
resources:
- subjectaccessreviews
verbs:
- create
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: appmesh-metrics-reader
rules:
- nonResourceURLs:
- /metrics
verbs:
- get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: appmesh-leader-election-rolebinding
namespace: appmesh-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: appmesh-leader-election-role
subjects:
- kind: ServiceAccount
name: default
namespace: appmesh-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: appmesh-manager-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: appmesh-manager-role
subjects:
- kind: ServiceAccount
name: default
namespace: appmesh-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: appmesh-proxy-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: appmesh-proxy-role
subjects:
- kind: ServiceAccount
name: default
namespace: appmesh-system
---
apiVersion: v1
kind: Service
metadata:
labels:
control-plane: controller-manager
name: appmesh-controller-manager-metrics-service
namespace: appmesh-system
spec:
ports:
- name: https
port: 8443
targetPort: https
selector:
control-plane: controller-manager
---
apiVersion: v1
kind: Service
metadata:
name: appmesh-webhook-service
namespace: appmesh-system
spec:
ports:
- port: 443
targetPort: 9443
selector:
control-plane: controller-manager
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
control-plane: controller-manager
name: appmesh-controller-manager
namespace: appmesh-system
spec:
replicas: 1
selector:
matchLabels:
control-plane: controller-manager
template:
metadata:
labels:
control-plane: controller-manager
spec:
containers:
- args:
- --secure-listen-address=0.0.0.0:8443
- --upstream=http://127.0.0.1:8080/
- --logtostderr=true
- --v=10
image: gcr.io/kubebuilder/kube-rbac-proxy:v0.5.0
name: kube-rbac-proxy
ports:
- containerPort: 8443
name: https
- args:
- --metrics-addr=127.0.0.1:8080
- --enable-leader-election
command:
- /manager
image: m00nf1sh/misc:appmesh-v1beta2-b5
name: manager
ports:
- containerPort: 9443
name: webhook-server
protocol: TCP
resources:
limits:
cpu: 100m
memory: 30Mi
requests:
cpu: 100m
memory: 20Mi
volumeMounts:
- mountPath: /tmp/k8s-webhook-server/serving-certs
name: cert
readOnly: true
terminationGracePeriodSeconds: 10
volumes:
- name: cert
secret:
defaultMode: 420
secretName: webhook-server-cert
---
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
name: appmesh-serving-cert
namespace: appmesh-system
spec:
dnsNames:
- appmesh-webhook-service.appmesh-system.svc
- appmesh-webhook-service.appmesh-system.svc.cluster.local
issuerRef:
kind: Issuer
name: appmesh-selfsigned-issuer
secretName: webhook-server-cert
---
apiVersion: cert-manager.io/v1alpha2
kind: Issuer
metadata:
name: appmesh-selfsigned-issuer
namespace: appmesh-system
spec:
selfSigned: {}
---
apiVersion: admissionregistration.k8s.io/v1beta1
kind: ValidatingWebhookConfiguration
metadata:
annotations:
cert-manager.io/inject-ca-from: appmesh-system/appmesh-serving-cert
creationTimestamp: null
name: appmesh-validating-webhook-configuration
webhooks:
- clientConfig:
caBundle: Cg==
service:
name: appmesh-webhook-service
namespace: appmesh-system
path: /validate-appmesh-k8s-aws-v1beta2-mesh
failurePolicy: Fail
name: vmesh.appmesh.k8s.aws
rules:
- apiGroups:
- appmesh.k8s.aws
apiVersions:
- v1beta2
operations:
- CREATE
- UPDATE
resources:
- meshes
- clientConfig:
caBundle: Cg==
service:
name: appmesh-webhook-service
namespace: appmesh-system
path: /validate-appmesh-k8s-aws-v1beta2-virtualnode
failurePolicy: Fail
name: vvirtualnode.appmesh.k8s.aws
rules:
- apiGroups:
- appmesh.k8s.aws
apiVersions:
- v1beta2
operations:
- CREATE
- UPDATE
resources:
- virtualnodes
- clientConfig:
caBundle: Cg==
service:
name: appmesh-webhook-service
namespace: appmesh-system
path: /validate-appmesh-k8s-aws-v1beta2-virtualrouter
failurePolicy: Fail
name: vvirtualrouter.appmesh.k8s.aws
rules:
- apiGroups:
- appmesh.k8s.aws
apiVersions:
- v1beta2
operations:
- CREATE
- UPDATE
resources:
- virtualrouters
- clientConfig:
caBundle: Cg==
service:
name: appmesh-webhook-service
namespace: appmesh-system
path: /validate-appmesh-k8s-aws-v1beta2-virtualservice
failurePolicy: Fail
name: vvirtualservice.appmesh.k8s.aws
rules:
- apiGroups:
- appmesh.k8s.aws
apiVersions:
- v1beta2
operations:
- CREATE
- UPDATE
resources:
- virtualservices
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment