--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.4.1 creationTimestamp: null name: virtualrouters.appmesh.k8s.aws spec: group: appmesh.k8s.aws names: categories: - all kind: VirtualRouter listKind: VirtualRouterList plural: virtualrouters singular: virtualrouter scope: Namespaced versions: - additionalPrinterColumns: - description: The AppMesh VirtualRouter object's Amazon Resource Name jsonPath: .status.virtualRouterARN name: ARN type: string - jsonPath: .metadata.creationTimestamp name: AGE type: date name: v1beta2 schema: 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 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: port: description: Specifies the targeted port of the weighted object format: int64 minimum: 0 type: integer virtualNodeARN: description: Amazon Resource Name to AppMesh VirtualNode object to associate with the weighted target. Exactly one of 'virtualNodeRef' or 'virtualNodeARN' must be specified. type: string virtualNodeRef: description: Reference to Kubernetes VirtualNode CR in cluster to associate with the weighted target. Exactly one of 'virtualNodeRef' or 'virtualNodeARN' must be specified. 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: - 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 required: - end - start 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 port: description: Specifies the port to match requests with format: int64 minimum: 0 type: integer 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 timeout: description: An object that represents a grpc timeout. properties: idle: description: An object that represents idle timeout duration. 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 perRequest: description: An object that represents per request timeout duration. 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 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: port: description: Specifies the targeted port of the weighted object format: int64 minimum: 0 type: integer virtualNodeARN: description: Amazon Resource Name to AppMesh VirtualNode object to associate with the weighted target. Exactly one of 'virtualNodeRef' or 'virtualNodeARN' must be specified. type: string virtualNodeRef: description: Reference to Kubernetes VirtualNode CR in cluster to associate with the weighted target. Exactly one of 'virtualNodeRef' or 'virtualNodeARN' must be specified. 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: - 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 required: - end - start 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 path: description: The client specified Path to match on. properties: exact: description: The value sent by the client must match the specified value exactly. maxLength: 255 minLength: 1 type: string regex: description: The value sent by the client must end with the specified characters. maxLength: 255 minLength: 1 type: string type: object port: description: Specifies the port to match requests with format: int64 minimum: 0 type: integer prefix: description: Specifies the prefix to match requests with type: string queryParameters: description: The client specified queryParameters to match on items: description: HTTPQueryParameters refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_HttpQueryParameter.html properties: match: description: The QueryMatchMethod object. properties: exact: type: string type: object name: type: string required: - name type: object maxItems: 10 minItems: 1 type: array scheme: description: The client request scheme to match on enum: - http - https type: string 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 timeout: description: An object that represents a http timeout. properties: idle: description: An object that represents idle timeout duration. 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 perRequest: description: An object that represents per request timeout duration. 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 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: port: description: Specifies the targeted port of the weighted object format: int64 minimum: 0 type: integer virtualNodeARN: description: Amazon Resource Name to AppMesh VirtualNode object to associate with the weighted target. Exactly one of 'virtualNodeRef' or 'virtualNodeARN' must be specified. type: string virtualNodeRef: description: Reference to Kubernetes VirtualNode CR in cluster to associate with the weighted target. Exactly one of 'virtualNodeRef' or 'virtualNodeARN' must be specified. 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: - 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 required: - end - start 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 path: description: The client specified Path to match on. properties: exact: description: The value sent by the client must match the specified value exactly. maxLength: 255 minLength: 1 type: string regex: description: The value sent by the client must end with the specified characters. maxLength: 255 minLength: 1 type: string type: object port: description: Specifies the port to match requests with format: int64 minimum: 0 type: integer prefix: description: Specifies the prefix to match requests with type: string queryParameters: description: The client specified queryParameters to match on items: description: HTTPQueryParameters refers to https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_HttpQueryParameter.html properties: match: description: The QueryMatchMethod object. properties: exact: type: string type: object name: type: string required: - name type: object maxItems: 10 minItems: 1 type: array scheme: description: The client request scheme to match on enum: - http - https type: string 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 timeout: description: An object that represents a http timeout. properties: idle: description: An object that represents idle timeout duration. 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 perRequest: description: An object that represents per request timeout duration. 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 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: port: description: Specifies the targeted port of the weighted object format: int64 minimum: 0 type: integer virtualNodeARN: description: Amazon Resource Name to AppMesh VirtualNode object to associate with the weighted target. Exactly one of 'virtualNodeRef' or 'virtualNodeARN' must be specified. type: string virtualNodeRef: description: Reference to Kubernetes VirtualNode CR in cluster to associate with the weighted target. Exactly one of 'virtualNodeRef' or 'virtualNodeARN' must be specified. 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: - 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: port: description: Specifies the port to match requests with format: int64 minimum: 0 type: integer type: object timeout: description: An object that represents a tcp timeout. properties: idle: description: An object that represents idle timeout duration. 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 type: object required: - action - match type: object required: - name 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 observedGeneration: description: The generation observed by the VirtualRouter controller. format: int64 type: integer 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 x-kubernetes-preserve-unknown-fields: true served: true storage: true subresources: status: {} status: acceptedNames: kind: "" plural: "" conditions: [] storedVersions: []