Skip to content

Instantly share code, notes, and snippets.

@dennybaa
Created June 4, 2025 13:34
Show Gist options
  • Save dennybaa/1bb213273074ab8d109ea4775e8604de to your computer and use it in GitHub Desktop.
Save dennybaa/1bb213273074ab8d109ea4775e8604de to your computer and use it in GitHub Desktop.
users.yaml
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"apiextensions.k8s.io/v1","kind":"CustomResourceDefinition","metadata":{"annotations":{"controller-gen.kubebuilder.io/version":"v0.14.0"},"name":"users.rabbitmq.com"},"spec":{"group":"rabbitmq.com","names":{"categories":["all","rabbitmq"],"kind":"User","listKind":"UserList","plural":"users","singular":"user"},"scope":"Namespaced","versions":[{"name":"v1beta1","schema":{"openAPIV3Schema":{"description":"User is the Schema for the users API.","properties":{"apiVersion":{"description":"APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds","type":"string"},"metadata":{"type":"object"},"spec":{"description":"Spec configures the desired state of the User object.","properties":{"importCredentialsSecret":{"description":"Defines a Secret used to pre-define the username and password set for this User. User objects created\nwith this field set will not have randomly-generated credentials, and will instead import\nthe username/password values from this Secret.\nThe Secret must contain the keys `username` and `password` in its Data field, or the import will fail.\nNote that this import only occurs at creation time, and is ignored once a password has been set\non a User.","properties":{"name":{"description":"Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?","type":"string"}},"type":"object","x-kubernetes-map-type":"atomic"},"rabbitmqClusterReference":{"description":"Reference to the RabbitmqCluster that the user will be created for. This cluster must\nexist for the User object to be created.","properties":{"connectionSecret":{"description":"Secret contains the http management uri for the RabbitMQ cluster.\nThe Secret must contain the key `uri`, `username` and `password` or operator will error.\nHave to set either name or connectionSecret, but not both.","properties":{"name":{"description":"Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?","type":"string"}},"type":"object","x-kubernetes-map-type":"atomic"},"name":{"description":"The name of the RabbitMQ cluster to reference.\nHave to set either name or connectionSecret, but not both.","type":"string"},"namespace":{"description":"The namespace of the RabbitMQ cluster to reference.\nDefaults to the namespace of the requested resource if omitted.","type":"string"}},"type":"object"},"tags":{"description":"List of permissions tags to associate with the user. This determines the level of\naccess to the RabbitMQ management UI granted to the user. Omitting this field will\nlead to a user than can still connect to the cluster through messaging protocols,\nbut cannot perform any management actions.\nFor more information, see https://www.rabbitmq.com/management.html#permissions.","items":{"description":"UserTag defines the level of access to the management UI allocated to the user.\nFor more information, see https://www.rabbitmq.com/management.html#permissions.","enum":["management","policymaker","monitoring","administrator"],"type":"string"},"type":"array"}},"required":["rabbitmqClusterReference"],"type":"object"},"status":{"description":"Status exposes the observed state of the User object.","properties":{"conditions":{"items":{"properties":{"lastTransitionTime":{"description":"The last time this Condition status changed.","format":"date-time","type":"string"},"message":{"description":"Full text reason for current status of the condition.","type":"string"},"reason":{"description":"One word, camel-case reason for current status of the condition.","type":"string"},"status":{"description":"True, False, or Unknown","type":"string"},"type":{"description":"Type indicates the scope of the custom resource status addressed by the condition.","type":"string"}},"required":["status","type"],"type":"object"},"type":"array"},"credentials":{"description":"Provides a reference to a Secret object containing the user credentials.","properties":{"name":{"description":"Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?","type":"string"}},"type":"object","x-kubernetes-map-type":"atomic"},"observedGeneration":{"description":"observedGeneration is the most recent successful generation observed for this User. It corresponds to the\nUser's generation, which is updated on mutation by the API Server.","format":"int64","type":"integer"},"username":{"description":"Provide rabbitmq Username","type":"string"}},"required":["username"],"type":"object"}},"type":"object"}},"served":true,"storage":true,"subresources":{"status":{}}}]}}
creationTimestamp: "2024-04-05T08:57:58Z"
generation: 1
name: users.rabbitmq.com
resourceVersion: "663367745"
uid: c9c3cdd0-3dde-4345-aecf-a2488ddb9a2b
spec:
conversion:
strategy: None
group: rabbitmq.com
names:
categories:
- all
- rabbitmq
kind: User
listKind: UserList
plural: users
singular: user
scope: Namespaced
versions:
- name: v1beta1
schema:
openAPIV3Schema:
description: User is the Schema for the users 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: Spec configures the desired state of the User object.
properties:
importCredentialsSecret:
description: |-
Defines a Secret used to pre-define the username and password set for this User. User objects created
with this field set will not have randomly-generated credentials, and will instead import
the username/password values from this Secret.
The Secret must contain the keys `username` and `password` in its Data field, or the import will fail.
Note that this import only occurs at creation time, and is ignored once a password has been set
on a User.
properties:
name:
description: |-
Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?
type: string
type: object
x-kubernetes-map-type: atomic
rabbitmqClusterReference:
description: |-
Reference to the RabbitmqCluster that the user will be created for. This cluster must
exist for the User object to be created.
properties:
connectionSecret:
description: |-
Secret contains the http management uri for the RabbitMQ cluster.
The Secret must contain the key `uri`, `username` and `password` or operator will error.
Have to set either name or connectionSecret, but not both.
properties:
name:
description: |-
Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?
type: string
type: object
x-kubernetes-map-type: atomic
name:
description: |-
The name of the RabbitMQ cluster to reference.
Have to set either name or connectionSecret, but not both.
type: string
namespace:
description: |-
The namespace of the RabbitMQ cluster to reference.
Defaults to the namespace of the requested resource if omitted.
type: string
type: object
tags:
description: |-
List of permissions tags to associate with the user. This determines the level of
access to the RabbitMQ management UI granted to the user. Omitting this field will
lead to a user than can still connect to the cluster through messaging protocols,
but cannot perform any management actions.
For more information, see https://www.rabbitmq.com/management.html#permissions.
items:
description: |-
UserTag defines the level of access to the management UI allocated to the user.
For more information, see https://www.rabbitmq.com/management.html#permissions.
enum:
- management
- policymaker
- monitoring
- administrator
type: string
type: array
required:
- rabbitmqClusterReference
type: object
status:
description: Status exposes the observed state of the User object.
properties:
conditions:
items:
properties:
lastTransitionTime:
description: The last time this Condition status changed.
format: date-time
type: string
message:
description: Full text reason for current status of the condition.
type: string
reason:
description: One word, camel-case reason for current status
of the condition.
type: string
status:
description: True, False, or Unknown
type: string
type:
description: Type indicates the scope of the custom resource
status addressed by the condition.
type: string
required:
- status
- type
type: object
type: array
credentials:
description: Provides a reference to a Secret object containing the
user credentials.
properties:
name:
description: |-
Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?
type: string
type: object
x-kubernetes-map-type: atomic
observedGeneration:
description: |-
observedGeneration is the most recent successful generation observed for this User. It corresponds to the
User's generation, which is updated on mutation by the API Server.
format: int64
type: integer
username:
description: Provide rabbitmq Username
type: string
required:
- username
type: object
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
categories:
- all
- rabbitmq
kind: User
listKind: UserList
plural: users
singular: user
conditions:
- lastTransitionTime: "2024-04-05T08:57:59Z"
message: no conflicts found
reason: NoConflicts
status: "True"
type: NamesAccepted
- lastTransitionTime: "2024-04-05T08:57:59Z"
message: the initial names have been accepted
reason: InitialNamesAccepted
status: "True"
type: Established
storedVersions:
- v1beta1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment