Skip to content

Commit

Permalink
chore(crds): add stackable crds
Browse files Browse the repository at this point in the history
  • Loading branch information
tunahanertekin committed Dec 31, 2023
1 parent d87ed26 commit 7acc86d
Show file tree
Hide file tree
Showing 11 changed files with 14,402 additions and 0 deletions.
273 changes: 273 additions & 0 deletions crds/external/authenticationclass.yaml

Large diffs are not rendered by default.

124 changes: 124 additions & 0 deletions crds/external/listener.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: listeners.listeners.stackable.tech
annotations:
helm.sh/resource-policy: keep
spec:
group: listeners.stackable.tech
names:
categories: []
kind: Listener
plural: listeners
shortNames: []
singular: listener
scope: Namespaced
versions:
- additionalPrinterColumns: []
name: v1alpha1
schema:
openAPIV3Schema:
description: Auto-generated derived type for ListenerSpec via `CustomResource`
properties:
spec:
description: |-
Exposes a set of pods to the outside world.
Essentially a Stackable extension of a Kubernetes Service. Compared to a Service, a Listener changes three things: 1. It uses a cluster-level policy object (ListenerClass) to define how exactly the exposure works 2. It has a consistent API for reading back the exposed address(es) of the service 3. The Pod must mount a Volume referring to the Listener, which also allows ["sticky" scheduling](https://docs.stackable.tech/home/nightly/listener-operator/listener#_sticky_scheduling).
Learn more in the [Listener documentation](https://docs.stackable.tech/home/nightly/listener-operator/listener).
properties:
className:
description: The name of the [ListenerClass](https://docs.stackable.tech/home/nightly/listener-operator/listenerclass).
nullable: true
type: string
extraPodSelectorLabels:
additionalProperties:
type: string
default: {}
description: Extra labels that the Pods must match in order to be exposed. They must _also_ still have a Volume referring to the Listener.
type: object
ports:
description: Ports that should be exposed.
items:
properties:
name:
description: |-
The name of the port.
The name of each port *must* be unique within a single Listener.
type: string
port:
description: The port number.
format: int32
type: integer
protocol:
description: The layer-4 protocol (`TCP` or `UDP`).
nullable: true
type: string
required:
- name
- port
type: object
nullable: true
type: array
publishNotReadyAddresses:
default: true
description: Whether incoming traffic should also be directed to Pods that are not `Ready`.
nullable: true
type: boolean
type: object
status:
description: Informs users about how to reach the Listener.
nullable: true
properties:
ingressAddresses:
description: All addresses that the Listener is currently reachable from.
items:
description: One address that a Listener is accessible from.
properties:
address:
description: The hostname or IP address to the Listener.
type: string
addressType:
description: The type of address (`Hostname` or `IP`).
enum:
- Hostname
- IP
type: string
ports:
additionalProperties:
format: int32
type: integer
description: Port mapping table.
type: object
required:
- address
- addressType
- ports
type: object
nullable: true
type: array
nodePorts:
additionalProperties:
format: int32
type: integer
description: |-
Port mappings for accessing the Listener on each Node that the Pods are currently running on.
This is only intended for internal use by listener-operator itself. This will be left unset if using a ListenerClass that does not require Node-local access.
nullable: true
type: object
serviceName:
description: The backing Kubernetes Service.
nullable: true
type: string
type: object
required:
- spec
title: Listener
type: object
served: true
storage: true
subresources:
status: {}
48 changes: 48 additions & 0 deletions crds/external/listenerclass.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: listenerclasses.listeners.stackable.tech
annotations:
helm.sh/resource-policy: keep
spec:
group: listeners.stackable.tech
names:
categories: []
kind: ListenerClass
plural: listenerclasses
shortNames: []
singular: listenerclass
scope: Cluster
versions:
- additionalPrinterColumns: []
name: v1alpha1
schema:
openAPIV3Schema:
description: Auto-generated derived type for ListenerClassSpec via `CustomResource`
properties:
spec:
description: Defines a policy for how [Listeners](https://docs.stackable.tech/home/nightly/listener-operator/listener) should be exposed. Read the [ListenerClass documentation](https://docs.stackable.tech/home/nightly/listener-operator/listenerclass) for more information.
properties:
serviceAnnotations:
additionalProperties:
type: string
default: {}
description: Annotations that should be added to the Service object.
type: object
serviceType:
description: The method used to access the services.
enum:
- NodePort
- LoadBalancer
- ClusterIP
type: string
required:
- serviceType
type: object
required:
- spec
title: ListenerClass
type: object
served: true
storage: true
subresources: {}
Loading

0 comments on commit 7acc86d

Please sign in to comment.