From a93b1a74a69664b51cc767e8b8b6b6013d700f59 Mon Sep 17 00:00:00 2001 From: Ulf Lilleengen Date: Tue, 30 Jun 2020 13:13:16 +0200 Subject: [PATCH] Re-add CRDs for the time being to prevent excessive logging in operator --- templates/crds/addresses.crd.yaml | 201 ++++++++ templates/crds/addressplans.crd.yaml | 84 ++++ templates/crds/addressspaceplans.crd.yaml | 82 ++++ templates/crds/addressspaces.crd.yaml | 455 ++++++++++++++++++ templates/crds/addressspaceschemas.crd.yaml | 25 + .../crds/authenticationservices.crd.yaml | 221 +++++++++ templates/crds/brokeredinfraconfigs.crd.yaml | 129 +++++ templates/crds/messagingusers.crd.yaml | 123 +++++ templates/crds/standardinfraconfigs.crd.yaml | 203 ++++++++ 9 files changed, 1523 insertions(+) create mode 100644 templates/crds/addresses.crd.yaml create mode 100644 templates/crds/addressplans.crd.yaml create mode 100644 templates/crds/addressspaceplans.crd.yaml create mode 100644 templates/crds/addressspaces.crd.yaml create mode 100644 templates/crds/addressspaceschemas.crd.yaml create mode 100644 templates/crds/authenticationservices.crd.yaml create mode 100644 templates/crds/brokeredinfraconfigs.crd.yaml create mode 100644 templates/crds/messagingusers.crd.yaml create mode 100644 templates/crds/standardinfraconfigs.crd.yaml diff --git a/templates/crds/addresses.crd.yaml b/templates/crds/addresses.crd.yaml new file mode 100644 index 00000000000..9d894c1cf0c --- /dev/null +++ b/templates/crds/addresses.crd.yaml @@ -0,0 +1,201 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: addresses.enmasse.io + labels: + app: enmasse + enmasse-component: tenant-api +spec: + group: enmasse.io + version: v1beta1 + scope: Namespaced + names: + kind: Address + listKind: AddressList + singular: address + plural: addresses + categories: + - enmasse + versions: + - name: v1beta1 + served: true + storage: true + additionalPrinterColumns: + - name: Address + type: string + description: The address + priority: 0 + JSONPath: .spec.address + - name: Type + type: string + description: The address type + priority: 1 + JSONPath: .spec.type + - name: Plan + type: string + priority: 1 + description: The address plan + JSONPath: .spec.plan + - name: Ready + type: boolean + priority: 0 + description: The readiness of the address + JSONPath: .status.isReady + - name: Phase + type: string + priority: 0 + description: The phase of the address + JSONPath: .status.phase + - name: Status + type: string + priority: 1 + description: The status of the address + JSONPath: .status.messages + - name: Age + priority: 0 + type: date + JSONPath: .metadata.creationTimestamp + validation: + openAPIV3Schema: + type: object + description: Address describes a destination for sending and receiving messages. An Address has a type, which defines the semantics of sending messages to and receiving messages from that address. This resource is created by messaging tenants. + properties: + spec: + type: object + required: + - address + - type + - plan + properties: + address: + type: string + description: "Messaging address." + pattern: "^[^\\s]+$" + type: + type: string + description: "Address type for this address." + enum: + - anycast + - multicast + - queue + - topic + - subscription + plan: + type: string + description: "Plan referenced by this address." + topic: + type: string + description: "Address of topic that this subscription refers to (only applicable to subscription types)." + subscription: + type: object + description: "Properties that can be set for subscription type addresses." + properties: + maxConsumers: + type: integer + description: "Maximum number of concurrent consumers that can be attached to this subscription. If unspecified, 1 consumer is allowed per subscription" + messageTtl: + type: object + description: "Further restricts message time-to-live (TTL). Applies to address types queue and topic only. The maximum and minimum values must fall with the minimum/maximum range described by the plan's TTL settings." + properties: + maximum: + description: "Imposes a maximum TTL value (in milliseconds) for messages arriving at the address. Messages arriving with TTL values greater than this value (or no TTL value) will have their expiration adjusted." + type: integer + minimum: + description: "Imposes a minimum TTL value (in milliseconds) for messages arriving at the address. Messages arriving with TTL values less than this value will have their expiration adjusted." + type: integer + forwarders: + type: array + description: "Address forwarders for this address." + items: + type: object + required: + - name + - remoteAddress + - direction + properties: + name: + type: string + description: "Forwarder name." + remoteAddress: + type: string + description: "Remote address to forward to. Must be prefixed with connector name." + direction: + type: string + enum: + - in + - out + status: + type: object + properties: + isReady: + description: "Whether address is ready to use or not." + type: boolean + phase: + type: string + description: "Phase of address." + messages: + type: array + description: "Status and error messages for address." + items: + type: string + brokerStatuses: + type: array + description: "The status of this address in brokers." + items: + type: object + properties: + clusterId: + type: string + brokerId: + type: string + state: + type: string + enum: + - Active + - Migrating + - Draining + subscription: + type: object + description: "Applied properties for subscription type addresses." + properties: + maxConsumers: + type: integer + description: "Maximum number of concurrent consumers that can be attached to this subscription." + planStatus: + type: object + required: + - name + - partitions + - resources + properties: + name: + type: string + partitions: + type: integer + resources: + type: object + messageTtl: + type: object + description: "Applied message TTL properties." + properties: + maximum: + description: "Maximum TTL value" + type: integer + minimum: + description: "Minimum TTL value" + type: integer + forwarders: + type: array + description: "Forwarder status for this address." + items: + type: object + properties: + name: + type: string + pattern: "[a-zA-Z0-9]+" + isReady: + type: boolean + messages: + type: array + items: + type: string diff --git a/templates/crds/addressplans.crd.yaml b/templates/crds/addressplans.crd.yaml new file mode 100644 index 00000000000..8d995b9de9f --- /dev/null +++ b/templates/crds/addressplans.crd.yaml @@ -0,0 +1,84 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: addressplans.admin.enmasse.io + labels: + app: enmasse +spec: + group: admin.enmasse.io + version: v1beta2 + scope: Namespaced + names: + kind: AddressPlan + listKind: AddressPlanList + singular: addressplan + plural: addressplans + categories: + - enmasse + versions: + - name: v1beta2 + served: true + storage: true + additionalPrinterColumns: + - name: Phase + type: string + priority: 0 + description: The phase of the address plan + JSONPath: .status.phase + - name: Status + type: string + priority: 1 + description: The status of the address plan + JSONPath: .status.message + - name: Age + priority: 0 + type: date + JSONPath: .metadata.creationTimestamp + validation: + openAPIV3Schema: + type: object + description: AddressPlan describes the resource usage and common properties of an address. This resource is created by the service administrator. + properties: + status: + properties: + phase: + type: string + description: "Phase of the address plan." + message: + type: string + description: "Status and error messages for the address plan." + spec: + type: object + required: + - addressType + - resources + properties: + displayName: + type: string + displayOrder: + type: integer + shortDescription: + type: string + longDescription: + type: string + addressType: + type: string + partitions: + type: integer + resources: + type: object + properties: + router: + type: number + broker: + type: number + messageTtl: + type: object + description: "Restricts message time-to-live (TTL). Applies to address types queue and topic only." + properties: + maximum: + description: "Imposes a maximum TTL value (in milliseconds) for messages arriving at the address. Messages arriving with TTL values greater than this value (or no TTL value) will have their expiration adjusted." + type: integer + minimum: + description: "Imposes a minimum TTL value (in milliseconds) for messages arriving at the address. Messages arriving with TTL values less than this value will have their expiration adjusted." + type: integer diff --git a/templates/crds/addressspaceplans.crd.yaml b/templates/crds/addressspaceplans.crd.yaml new file mode 100644 index 00000000000..3d6f5c551d4 --- /dev/null +++ b/templates/crds/addressspaceplans.crd.yaml @@ -0,0 +1,82 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: addressspaceplans.admin.enmasse.io + labels: + app: enmasse +spec: + group: admin.enmasse.io + version: v1beta2 + scope: Namespaced + names: + kind: AddressSpacePlan + listKind: AddressSpacePlanList + singular: addressspaceplan + plural: addressspaceplans + categories: + - enmasse + versions: + - name: v1beta2 + served: true + storage: true + additionalPrinterColumns: + - name: Phase + type: string + priority: 0 + description: The phase of the address space plan + JSONPath: .status.phase + - name: Status + type: string + priority: 1 + description: The status of the address space plan + JSONPath: .status.message + - name: Age + priority: 0 + type: date + JSONPath: .metadata.creationTimestamp + validation: + openAPIV3Schema: + type: object + description: AddressSpacePlan describes the allowed resource usage of an address space. This resource is created by the service administrator. + properties: + status: + properties: + phase: + type: string + description: "Phase of the address space plan." + message: + type: string + description: "Status and error messages for the address space plan." + spec: + type: object + required: + - addressSpaceType + - resourceLimits + - addressPlans + - infraConfigRef + properties: + displayName: + type: string + displayOrder: + type: integer + shortDescription: + type: string + longDescription: + type: string + addressSpaceType: + type: string + infraConfigRef: + type: string + resourceLimits: + type: object + properties: + aggregate: + type: number + router: + type: number + broker: + type: number + addressPlans: + type: array + items: + type: string diff --git a/templates/crds/addressspaces.crd.yaml b/templates/crds/addressspaces.crd.yaml new file mode 100644 index 00000000000..9c1199f32e5 --- /dev/null +++ b/templates/crds/addressspaces.crd.yaml @@ -0,0 +1,455 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: addressspaces.enmasse.io + labels: + app: enmasse + enmasse-component: tenant-api +spec: + group: enmasse.io + version: v1beta1 + scope: Namespaced + names: + kind: AddressSpace + listKind: AddressSpaceList + singular: addressspace + plural: addressspaces + categories: + - enmasse + versions: + - name: v1beta1 + served: true + storage: true + additionalPrinterColumns: + - name: Type + type: string + description: The address space type + priority: 1 + JSONPath: .spec.type + - name: Plan + type: string + priority: 1 + description: The address space plan + JSONPath: .spec.plan + - name: Ready + type: boolean + priority: 0 + description: The readiness of the address space + JSONPath: .status.isReady + - name: Phase + type: string + priority: 0 + description: The phase of the address space + JSONPath: .status.phase + - name: Status + type: string + priority: 1 + description: The status of the address space + JSONPath: .status.messages + - name: Age + priority: 0 + type: date + JSONPath: .metadata.creationTimestamp + validation: + openAPIV3Schema: + type: object + description: AddressSpace is a group of addresses that can be accessed through a single connection (per protocol). An AddressSpace can support multiple protocols, as defined by the type. This resource is created by messaging tenants. + properties: + spec: + type: object + required: + - type + - plan + properties: + type: + type: string + description: "The type of address space." + enum: ["standard", "brokered"] + plan: + type: string + description: "The name of the address space plan to apply." + authenticationService: + type: object + description: "The authentication service to use for authenticating messaging clients." + properties: + name: + type: string + description: "The name of the authentication service." + type: + type: string + overrides: + type: object + properties: + host: + type: string + port: + type: integer + realm: + type: string + endpoints: + type: array + description: "Endpoints configured for this address space." + items: + type: object + properties: + name: + type: string + description: "Endpoint name. Use to uniquely identify an endpoint." + service: + type: string + description: "Service referenced by this endpoint. 'console' is no longer supported." + enum: + - messaging + - mqtt + - console + cert: + type: object + description: "Configure certificates to be used for this endpoint." + properties: + provider: + type: string + description: "Certificate provider to use for this endpoint." + enum: + - wildcard + - certBundle + - openshift + - selfsigned + secretName: + type: string + tlsCert: + type: string + description: "TLS certificate to use for 'certBundle' provider." + tlsKey: + type: string + description: "TLS key to use for 'certBundle' provider." + exports: + type: array + description: "Export address space information." + items: + type: object + properties: + kind: + type: string + description: "Type of resource to export address space information into." + enum: + - ConfigMap + - Secret + - Service + name: + description: "Name of resource to export address space information into." + type: string + expose: + description: "Expose configuration of this endpoint." + type: object + properties: + type: + type: string + enum: + - loadbalancer + - route + annotations: + type: object + loadBalancerPorts: + type: array + items: + type: string + loadBalancerSourceRanges: + type: array + items: + type: string + routeHost: + type: string + routeServicePort: + type: string + description: "Service port. Valid values are 'amqps' for the messaging service, 'secure-mqtt' for the mqtt service, and 'https' for the console service." + enum: + - amqps + - https + - secure-mqtt + routeTlsTermination: + type: string + enum: + - passthrough + - reencrypt + anyOf: + - properties: + type: + pattern: loadbalancer + required: + - type + - loadBalancerPorts + - properties: + type: + pattern: route + required: + - type + - routeServicePort + - routeTlsTermination + networkPolicy: + type: object + description: "Define NetworkPolicy for this address space." + properties: + ingress: + type: array + items: + type: object + egress: + type: array + items: + type: object + connectors: + type: array + description: "External AMQP connections." + items: + type: object + required: + - name + - endpointHosts + properties: + name: + type: string + description: "Connector name. Used to uniquely identify a connector." + pattern: "[a-zA-Z0-9]+" + endpointHosts: + type: array + description: "Endpoints to connect to. First entry is used as primary, additional entries are considered failovers." + minItems: 1 + items: + type: object + required: + - host + properties: + host: + type: string + port: + type: integer + role: + type: string + description: "Role of connector. Defaults to 'route-container'." + enum: + - "normal" + - "route-container" + - "edge" + idleTimeout: + type: integer + description: "Idle timeout of AMQP connection (seconds). 0 disables the idle timeout." + maxFrameSize: + type: integer + description: "Max frame size of AMQP connection." + tls: + type: object + description: "TLS configuration for the connector. If not specified, TLS will not be used." + properties: + caCert: + description: "CA certificate to be used by the connector." + type: object + properties: + value: + type: string + description: "Value of field" + valueFromSecret: + type: object + description: "Secret containing value." + required: + - name + properties: + name: + type: string + description: "Name of Secret containing value." + key: + type: string + description: "Key to use for looking up entry." + anyOf: + - required: ['value'] + - required: ['valueFromSecret'] + clientCert: + description: "Client certificate to be used by the connector." + type: object + properties: + value: + type: string + description: "Value of field" + valueFromSecret: + type: object + description: "Secret containing value." + required: + - name + properties: + name: + type: string + description: "Name of Secret containing value." + key: + type: string + description: "Key to use for looking up entry." + anyOf: + - required: ['value'] + - required: ['valueFromSecret'] + clientKey: + description: "Client key to be used by the connector." + type: object + properties: + value: + type: string + description: "Value of field" + valueFromSecret: + type: object + description: "Secret containing value." + required: + - name + properties: + name: + type: string + description: "Name of Secret containing value." + key: + type: string + description: "Key to use for looking up entry." + anyOf: + - required: ['value'] + - required: ['valueFromSecret'] + credentials: + type: object + description: "Credentials used when connecting to endpoints." + properties: + username: + description: "Username to use for connector." + type: object + properties: + value: + type: string + description: "Value of field" + valueFromSecret: + type: object + description: "Secret containing value." + required: + - name + properties: + name: + type: string + description: "Name of Secret containing value." + key: + type: string + description: "Key to use for looking up entry." + anyOf: + - required: ['value'] + - required: ['valueFromSecret'] + password: + description: "Password to use for connector." + type: object + properties: + value: + type: string + description: "Value of field" + valueFromSecret: + type: object + description: "Secret containing value." + required: + - name + properties: + name: + type: string + description: "Name of Secret containing value." + key: + type: string + description: "Key to use for looking up entry." + anyOf: + - required: ['value'] + - required: ['valueFromSecret'] + required: + - username + - password + addresses: + type: array + description: "Addresses to make be accessible via this address space." + items: + type: object + required: + - name + - pattern + properties: + name: + type: string + description: "Identifier of address pattern. Used to uniquely identify a pattern." + pattern: + type: string + description: "Pattern used to match addresses. The pattern will be prefixed by the connector name and a forward slash ('myconnector/'). A pattern consists of one or more tokens separated by a forward slash /. A token can be one of the following: a * character, a # character, or a sequence of characters that do not include /, *, or #. The * token matches any single token. The # token matches zero or more tokens. * has higher precedence than #, and exact match has the highest precedence." + pattern: "([^/#*]+|\\*|#)(/([^/#*]+|\\*|#))*" + status: + type: object + properties: + isReady: + description: "Whether address space is ready to use or not." + type: boolean + phase: + type: string + description: "Phase of address space." + messages: + type: array + description: "Status and error messages for address space." + items: + type: string + caCert: + description: "CA certificate for endpoints." + type: string + routers: + type: array + description: "Router status for this address space." + items: + type: object + required: + - id + properties: + id: + type: string + undelivered: + type: integer + neighbors: + type: array + items: + type: string + connectors: + type: array + description: "Connector status for this address space." + items: + type: object + properties: + name: + type: string + isReady: + type: boolean + messages: + type: array + items: + type: string + endpointStatuses: + type: array + description: "Endpoint status for this address space." + items: + type: object + properties: + name: + type: string + externalHost: + type: string + externalPorts: + type: array + items: + type: object + name: + type: string + port: + type: integer + serviceHost: + type: string + servicePorts: + type: array + items: + type: object + name: + type: string + port: + type: integer + messages: + type: array + items: + type: string + diff --git a/templates/crds/addressspaceschemas.crd.yaml b/templates/crds/addressspaceschemas.crd.yaml new file mode 100644 index 00000000000..49d37ffd4a2 --- /dev/null +++ b/templates/crds/addressspaceschemas.crd.yaml @@ -0,0 +1,25 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: addressspaceschemas.enmasse.io + labels: + app: enmasse +spec: + group: enmasse.io + version: v1beta1 + scope: Cluster + names: + kind: AddressSpaceSchema + listKind: AddressSpaceSchemaList + singular: addressspaceschema + plural: addressspaceschemas + categories: + - enmasse + versions: + - name: v1beta1 + served: true + storage: true + validation: + openAPIV3Schema: + type: object + description: AddressSpaceSchema describes the available plans and authentication services for an address space type. diff --git a/templates/crds/authenticationservices.crd.yaml b/templates/crds/authenticationservices.crd.yaml new file mode 100644 index 00000000000..ae5ed74ce43 --- /dev/null +++ b/templates/crds/authenticationservices.crd.yaml @@ -0,0 +1,221 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: authenticationservices.admin.enmasse.io + labels: + app: enmasse +spec: + group: admin.enmasse.io + version: v1beta1 + scope: Namespaced + names: + kind: AuthenticationService + listKind: AuthenticationServiceList + singular: authenticationservice + plural: authenticationservices + categories: + - enmasse + additionalPrinterColumns: + - name: Phase + type: string + priority: 0 + description: The phase of the authentication service + JSONPath: .status.phase + - name: Status + type: string + priority: 1 + description: The status of the authentication service + JSONPath: .status.message + - name: Age + priority: 0 + type: date + JSONPath: .metadata.creationTimestamp + validation: + openAPIV3Schema: + type: object + description: AuthenticationService describes a service that can be used for authenticating messaging clients for one or more address spaces. This resource is created by the service administrator. + properties: + spec: + type: object + properties: + type: + type: string + enum: + - none + - standard + - external + realm: + type: string + none: + type: object + properties: + replicas: + type: integer + certificateSecret: + type: object + properties: + name: + type: string + namespace: + type: string + image: + type: object + properties: + name: + type: string + pullPolicy: + type: string + resources: + type: object + properties: + requests: + type: object + properties: + cpu: + type: string + memory: + type: string + limits: + type: object + properties: + cpu: + type: string + memory: + type: string + standard: + type: object + properties: + replicas: + type: integer + certificateSecret: + type: object + properties: + name: + type: string + namespace: + type: string + credentialsSecret: + type: object + properties: + name: + type: string + namespace: + type: string + initImage: + type: object + properties: + name: + type: string + pullPolicy: + type: string + jvmOptions: + type: string + image: + type: object + properties: + name: + type: string + pullPolicy: + type: string + deploymentName: + type: string + serviceName: + type: string + routeName: + type: string + storage: + type: object + required: + - type + properties: + type: + type: string + enum: + - ephemeral + - persistent-claim + class: + type: string + size: + type: string + claimName: + type: string + deleteClaim: + type: boolean + resources: + type: object + properties: + requests: + type: object + properties: + cpu: + type: string + memory: + type: string + limits: + type: object + properties: + cpu: + type: string + memory: + type: string + datasource: + type: object + required: + - type + properties: + type: + type: string + host: + type: string + port: + type: integer + database: + type: string + credentialsSecret: + type: object + properties: + name: + type: string + namespace: + type: string + securityContext: + type: object + external: + type: object + required: + - host + - port + properties: + allowOverride: + type: boolean + host: + type: string + port: + type: integer + caCertSecret: + type: object + properties: + name: + type: string + namespace: + type: string + clientCertSecret: + type: object + properties: + name: + type: string + namespace: + type: string + status: + type: object + properties: + phase: + type: string + description: "Phase of the authentication service." + message: + type: string + description: "Status and error messages for the authentication service." + host: + type: string + port: + type: integer diff --git a/templates/crds/brokeredinfraconfigs.crd.yaml b/templates/crds/brokeredinfraconfigs.crd.yaml new file mode 100644 index 00000000000..f765ef3b225 --- /dev/null +++ b/templates/crds/brokeredinfraconfigs.crd.yaml @@ -0,0 +1,129 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: brokeredinfraconfigs.admin.enmasse.io + labels: + app: enmasse +spec: + group: admin.enmasse.io + version: v1beta1 + scope: Namespaced + names: + kind: BrokeredInfraConfig + listKind: BrokeredInfraConfigList + singular: brokeredinfraconfig + plural: brokeredinfraconfigs + categories: + - enmasse + versions: + - name: v1beta1 + served: true + storage: true + - name: v1alpha1 + served: true + storage: false + validation: + openAPIV3Schema: + type: object + description: BrokeredInfraConfig defines configuration applied to brokers for an instance of the brokered address space type. This resource is created by the service administrator. + properties: + spec: + type: object + properties: + version: + type: string + networkPolicy: + type: object + properties: + ingress: + type: array + egress: + type: array + admin: + type: object + properties: + podTemplate: + type: object + properties: + metadata: + type: object + properties: + labels: + type: object + spec: + type: object + properties: + affinity: + type: object + tolerations: + type: array + items: + type: object + priorityClassName: + type: string + securityContext: + type: object + containers: + type: array + items: + type: object + properties: + resources: + type: object + resources: + type: object + properties: + cpu: + type: string + memory: + type: string + broker: + type: object + properties: + podTemplate: + type: object + properties: + metadata: + type: object + properties: + labels: + type: object + spec: + type: object + properties: + affinity: + type: object + tolerations: + type: array + priorityClassName: + type: string + securityContext: + type: object + resources: + type: object + resources: + type: object + properties: + cpu: + type: string + memory: + type: string + storage: + type: string + javaOpts: + type: string + addressFullPolicy: + type: string + enum: + - PAGE + - BLOCK + - FAIL + - DROP + globalMaxSize: + pattern: "^(?i)\\d+\\s*[kmg]?b?$" + type: string + description: Sets a global limit to the amount of memory the broker can use before it applies the rules determined by addressFullPolicy. Value in bytes or use a byte suffix ("B", "K", "MB", "GB") + storageClassName: + type: string + updatePersistentVolumeClaim: + type: boolean diff --git a/templates/crds/messagingusers.crd.yaml b/templates/crds/messagingusers.crd.yaml new file mode 100644 index 00000000000..bf8f9ad35a6 --- /dev/null +++ b/templates/crds/messagingusers.crd.yaml @@ -0,0 +1,123 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: messagingusers.user.enmasse.io + labels: + app: enmasse + enmasse-component: tenant-api +spec: + group: user.enmasse.io + version: v1beta1 + scope: Namespaced + names: + kind: MessagingUser + listKind: MessagingUserList + singular: messaginguser + plural: messagingusers + categories: + - enmasse + versions: + - name: v1beta1 + served: true + storage: true + additionalPrinterColumns: + - name: Username + type: string + description: The user name used by clients + priority: 0 + JSONPath: .spec.username + - name: Type + type: string + description: Authentication type of the user + priority: 0 + JSONPath: .spec.authentication.type + - name: Phase + priority: 0 + type: string + description: Phase of the Messaging User + JSONPath: .status.phase + - name: Message + priority: 1 + type: string + description: Message of the Messaging User + JSONPath: .status.message + - name: Age + priority: 0 + type: date + JSONPath: .metadata.creationTimestamp + subresources: + status: {} + validation: + openAPIV3Schema: + description: MessagingUser is a user that can be used to authenticate and authorize a messaging application. This resource is created by messaging tenants. + properties: + status: + type: object + properties: + phase: + description: "The lifecycle phase of the messaging user" + type: string + message: + description: "Message describing the current state" + type: string + generation: + description: "Applied generation" + type: integer + spec: + type: object + required: + - username + - authentication + properties: + username: + type: string + description: "The username used by messaging clients." + pattern: "^[a-z0-9]+([a-z0-9_@.:\\-]*[a-z0-9]+|[a-z0-9]*)$" + authentication: + type: object + description: "The authentication specification." + required: + - type + properties: + type: + type: string + description: "The type of authentication." + enum: + - password + - federated + - serviceaccount + password: + type: string + description: "Base64-encoded password for the 'password' authentication type." + provider: + type: string + description: "Federated identity provider for the 'federated' authentication type." + federatedUserid: + type: string + description: "Federated user id for the 'federated' authentication type." + federatedUsername: + type: string + description: "Federated user name for the 'federated' authentication type." + authorization: + type: array + description: "The authorization rules for the user." + items: + type: object + properties: + operations: + type: array + description: "The operations that should apply to addresses matched by this rule." + items: + type: string + enum: + - send + - recv + - view + - manage + addresses: + type: array + description: "The addresses the rule should apply to." + items: + type: string + description: "Pattern used to match addresses. The pattern will be prefixed by the connector name and a forward slash ('myconnector/'). A pattern consists of one or more tokens separated by a forward slash /. A token can be one of the following: a * character, a # character, or a sequence of characters that do not include /, *, or #. The * token matches any single token. The # token matches zero or more tokens. * has higher precedence than #, and exact match has the highest precedence." + pattern: "([^/#*]+|\\*|#)(/([^/#*]+|\\*|#))*" diff --git a/templates/crds/standardinfraconfigs.crd.yaml b/templates/crds/standardinfraconfigs.crd.yaml new file mode 100644 index 00000000000..11261edd862 --- /dev/null +++ b/templates/crds/standardinfraconfigs.crd.yaml @@ -0,0 +1,203 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: standardinfraconfigs.admin.enmasse.io + labels: + app: enmasse +spec: + group: admin.enmasse.io + version: v1beta1 + scope: Namespaced + names: + kind: StandardInfraConfig + listKind: StandardInfraConfigList + singular: standardinfraconfig + plural: standardinfraconfigs + categories: + - enmasse + versions: + - name: v1beta1 + served: true + storage: true + - name: v1alpha1 + served: true + storage: false + validation: + openAPIV3Schema: + type: object + description: StandardInfraConfig defines configuration applied to routers and brokers for an instance of the standard address space type. This resource is created by the service administrator. + properties: + spec: + type: object + properties: + version: + type: string + networkPolicy: + type: object + properties: + ingress: + type: array + egress: + type: array + admin: + type: object + properties: + resources: + type: object + properties: + memory: + type: string + cpu: + type: string + podTemplate: + type: object + properties: + metadata: + type: object + properties: + labels: + type: object + spec: + type: object + properties: + affinity: + type: object + tolerations: + type: array + items: + type: object + priorityClassName: + type: string + securityContext: + type: object + containers: + type: array + items: + type: object + properties: + resources: + type: object + broker: + type: object + properties: + minAvailable: + anyOf: + - type: integer + - type: string + maxUnavailable: + anyOf: + - type: integer + - type: string + podTemplate: + type: object + properties: + metadata: + type: object + properties: + labels: + type: object + spec: + type: object + properties: + affinity: + type: object + tolerations: + type: array + priorityClassName: + type: string + securityContext: + type: object + resources: + type: object + resources: + type: object + properties: + cpu: + type: string + memory: + type: string + storage: + type: string + javaOpts: + type: string + addressFullPolicy: + type: string + enum: + - PAGE + - BLOCK + - FAIL + - DROP + globalMaxSize: + pattern: "^(?i)\\d+\\s*[kmg]?b?$" + type: string + description: Sets a global limit to the amount of memory the broker can use before it applies the rules determined by addressFullPolicy. Value in bytes or use a byte suffix ("B", "K", "MB", "GB") + storageClassName: + type: string + updatePersistentVolumeClaim: + type: boolean + connectorIdleTimeout: + type: integer + connectorWorkerThreads: + type: integer + router: + type: object + properties: + podTemplate: + type: object + properties: + metadata: + type: object + properties: + labels: + type: object + spec: + type: object + properties: + affinity: + type: object + tolerations: + type: array + priorityClassName: + type: string + securityContext: + type: object + resources: + type: object + resources: + type: object + properties: + cpu: + type: string + memory: + type: string + minReplicas: + type: integer + minAvailable: + anyOf: + - type: integer + - type: string + maxUnavailable: + anyOf: + - type: integer + - type: string + linkCapacity: + type: integer + idleTimeout: + type: integer + workerThreads: + type: integer + policy: + type: object + properties: + maxConnections: + type: integer + maxConnectionsPerUser: + type: integer + maxConnectionsPerHost: + type: integer + maxSessionsPerConnection: + type: integer + maxSendersPerConnection: + type: integer + maxReceiversPerConnection: + type: integer