Skip to content

Commit 7a9c6f6

Browse files
committed
add new redis addon
1 parent bad602c commit 7a9c6f6

17 files changed

Lines changed: 782 additions & 0 deletions

PROJECT

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,4 +129,11 @@ resources:
129129
group: application
130130
kind: KuberoAddonPostgres
131131
version: v1alpha1
132+
- api:
133+
crdVersion: v1
134+
namespaced: true
135+
domain: kubero.dev
136+
group: application
137+
kind: KuberoAddonRedis
138+
version: v1alpha1
132139
version: "3"
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
apiVersion: apiextensions.k8s.io/v1
3+
kind: CustomResourceDefinition
4+
metadata:
5+
name: kuberoaddonredis.application.kubero.dev
6+
spec:
7+
group: application.kubero.dev
8+
names:
9+
kind: KuberoAddonRedis
10+
listKind: KuberoAddonRedisList
11+
plural: kuberoaddonredis
12+
singular: kuberoaddonredis
13+
scope: Namespaced
14+
versions:
15+
- name: v1alpha1
16+
schema:
17+
openAPIV3Schema:
18+
description: KuberoAddonRedis is the Schema for the kuberoaddonredis API
19+
properties:
20+
apiVersion:
21+
description: 'APIVersion defines the versioned schema of this representation
22+
of an object. Servers should convert recognized schemas to the latest
23+
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
24+
type: string
25+
kind:
26+
description: 'Kind is a string value representing the REST resource this
27+
object represents. Servers may infer this from the endpoint the client
28+
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
29+
type: string
30+
metadata:
31+
type: object
32+
spec:
33+
description: Spec defines the desired state of KuberoAddonRedis
34+
type: object
35+
x-kubernetes-preserve-unknown-fields: true
36+
status:
37+
description: Status defines the observed state of KuberoAddonRedis
38+
type: object
39+
x-kubernetes-preserve-unknown-fields: true
40+
type: object
41+
served: true
42+
storage: true
43+
subresources:
44+
status: {}

config/crd/kustomization.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@ resources:
1919
- bases/application.kubero.dev_kuberobuilds.yaml
2020
- bases/application.kubero.dev_kuberoaddonmysqls.yaml
2121
- bases/application.kubero.dev_kuberoaddonpostgres.yaml
22+
- bases/application.kubero.dev_kuberoaddonredis.yaml
2223
#+kubebuilder:scaffold:crdkustomizeresource
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# This rule is not used by the project kubero-operator itself.
2+
# It is provided to allow the cluster admin to help manage permissions for users.
3+
#
4+
# Grants full permissions ('*') over application.kubero.dev.
5+
# This role is intended for users authorized to modify roles and bindings within the cluster,
6+
# enabling them to delegate specific permissions to other users or groups as needed.
7+
8+
apiVersion: rbac.authorization.k8s.io/v1
9+
kind: ClusterRole
10+
metadata:
11+
labels:
12+
app.kubernetes.io/name: kubero-operator
13+
app.kubernetes.io/managed-by: kustomize
14+
name: kuberoaddonredis-admin-role
15+
rules:
16+
- apiGroups:
17+
- application.kubero.dev
18+
resources:
19+
- kuberoaddonredis
20+
verbs:
21+
- '*'
22+
- apiGroups:
23+
- application.kubero.dev
24+
resources:
25+
- kuberoaddonredis/status
26+
verbs:
27+
- get
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# This rule is not used by the project kubero-operator itself.
2+
# It is provided to allow the cluster admin to help manage permissions for users.
3+
#
4+
# Grants permissions to create, update, and delete resources within the application.kubero.dev.
5+
# This role is intended for users who need to manage these resources
6+
# but should not control RBAC or manage permissions for others.
7+
8+
apiVersion: rbac.authorization.k8s.io/v1
9+
kind: ClusterRole
10+
metadata:
11+
labels:
12+
app.kubernetes.io/name: kubero-operator
13+
app.kubernetes.io/managed-by: kustomize
14+
name: kuberoaddonredis-editor-role
15+
rules:
16+
- apiGroups:
17+
- application.kubero.dev
18+
resources:
19+
- kuberoaddonredis
20+
verbs:
21+
- create
22+
- delete
23+
- get
24+
- list
25+
- patch
26+
- update
27+
- watch
28+
- apiGroups:
29+
- application.kubero.dev
30+
resources:
31+
- kuberoaddonredis/status
32+
verbs:
33+
- get
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# This rule is not used by the project kubero-operator itself.
2+
# It is provided to allow the cluster admin to help manage permissions for users.
3+
#
4+
# Grants read-only access to application.kubero.dev resources.
5+
# This role is intended for users who need visibility into these resources
6+
# without permissions to modify them. It is ideal for monitoring purposes and limited-access viewing.
7+
8+
apiVersion: rbac.authorization.k8s.io/v1
9+
kind: ClusterRole
10+
metadata:
11+
labels:
12+
app.kubernetes.io/name: kubero-operator
13+
app.kubernetes.io/managed-by: kustomize
14+
name: kuberoaddonredis-viewer-role
15+
rules:
16+
- apiGroups:
17+
- application.kubero.dev
18+
resources:
19+
- kuberoaddonredis
20+
verbs:
21+
- get
22+
- list
23+
- watch
24+
- apiGroups:
25+
- application.kubero.dev
26+
resources:
27+
- kuberoaddonredis/status
28+
verbs:
29+
- get

config/rbac/kustomization.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ resources:
2020
# default, aiding admins in cluster management. Those roles are
2121
# not used by the kubero-operator itself. You can comment the following lines
2222
# if you do not want those helpers be installed with your Project.
23+
- kuberoaddonredis_admin_role.yaml
24+
- kuberoaddonredis_editor_role.yaml
25+
- kuberoaddonredis_viewer_role.yaml
2326
- kuberoaddonpostgres_admin_role.yaml
2427
- kuberoaddonpostgres_editor_role.yaml
2528
- kuberoaddonpostgres_viewer_role.yaml

config/rbac/role.yaml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -847,4 +847,35 @@ rules:
847847
resources:
848848
- "deployments"
849849

850+
##
851+
## Rules for application.kubero.dev/v1alpha1, Kind: KuberoAddonRedis
852+
##
853+
- apiGroups:
854+
- application.kubero.dev
855+
resources:
856+
- kuberoaddonredis
857+
- kuberoaddonredis/status
858+
- kuberoaddonredis/finalizers
859+
verbs:
860+
- create
861+
- delete
862+
- get
863+
- list
864+
- patch
865+
- update
866+
- watch
867+
- verbs:
868+
- "*"
869+
apiGroups:
870+
- ""
871+
resources:
872+
- "serviceaccounts"
873+
- "services"
874+
- verbs:
875+
- "*"
876+
apiGroups:
877+
- "apps"
878+
resources:
879+
- "deployments"
880+
850881
#+kubebuilder:scaffold:rules
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
apiVersion: application.kubero.dev/v1alpha1
2+
kind: KuberoAddonRedis
3+
metadata:
4+
name: kuberoaddonredis-sample
5+
spec:
6+
# Default values copied from <project_dir>/helm-charts/kuberoaddonredis/values.yaml
7+
affinity: {}
8+
autoscaling:
9+
enabled: false
10+
maxReplicas: 100
11+
minReplicas: 1
12+
targetCPUUtilizationPercentage: 80
13+
fullnameOverride: ""
14+
image:
15+
pullPolicy: IfNotPresent
16+
repository: nginx
17+
tag: ""
18+
imagePullSecrets: []
19+
ingress:
20+
annotations: {}
21+
className: ""
22+
enabled: false
23+
hosts:
24+
- host: chart-example.local
25+
paths:
26+
- path: /
27+
pathType: ImplementationSpecific
28+
tls: []
29+
livenessProbe:
30+
httpGet:
31+
path: /
32+
port: http
33+
nameOverride: ""
34+
nodeSelector: {}
35+
podAnnotations: {}
36+
podLabels: {}
37+
podSecurityContext: {}
38+
readinessProbe:
39+
httpGet:
40+
path: /
41+
port: http
42+
replicaCount: 1
43+
resources: {}
44+
securityContext: {}
45+
service:
46+
port: 80
47+
type: ClusterIP
48+
serviceAccount:
49+
annotations: {}
50+
automount: true
51+
create: true
52+
name: ""
53+
tolerations: []
54+
volumeMounts: []
55+
volumes: []
56+
57+

config/samples/kustomization.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@ resources:
1717
- application_v1alpha1_kuberobuild.yaml
1818
- application_v1alpha1_kuberoaddonmysql.yaml
1919
- application_v1alpha1_kuberoaddonpostgres.yaml
20+
- application_v1alpha1_kuberoaddonredis.yaml
2021
#+kubebuilder:scaffold:manifestskustomizesamples

0 commit comments

Comments
 (0)