From f02eee83a69db7f95f1f8fd7146632f984fedb85 Mon Sep 17 00:00:00 2001 From: Cameron Bates Date: Tue, 25 Mar 2025 13:19:30 -0400 Subject: [PATCH 1/3] RC: Create Pro database changes --- .../create-pro-database-new.md | 6 +++--- .../rc/flexible-add-database-advanced.png | Bin 20676 -> 14743 bytes .../images/rc/flexible-add-database-basic.png | Bin 24475 -> 20396 bytes 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/operate/rc/databases/create-database/create-pro-database-new.md b/content/operate/rc/databases/create-database/create-pro-database-new.md index 1c54d9297e..db4c60949b 100644 --- a/content/operate/rc/databases/create-database/create-pro-database-new.md +++ b/content/operate/rc/databases/create-database/create-pro-database-new.md @@ -160,11 +160,10 @@ By default, you're shown basic settings, which include: | Database setting | Description | |:---------|:-----------| | **Name** | A custom name for your database (_required_) | -| **Advanced Capabilities** | [Advanced features and data types]({{< relref "/operate/rc/databases/configuration/advanced-capabilities" >}}) used by the database. Choose from [Search and query]({{< relref "/operate/oss_and_stack/stack-with-enterprise/search" >}}), [JSON]({{< relref "/operate/oss_and_stack/stack-with-enterprise/json" >}}), [Time series]({{< relref "/operate/oss_and_stack/stack-with-enterprise/timeseries" >}}), or [Probabilistic]({{< relref "/operate/oss_and_stack/stack-with-enterprise/bloom" >}}).
Databases with Search and query have specific sizing requirements, see [Search and query sizing]({{< relref "/operate/rc/databases/configuration/advanced-capabilities#search-and-query-sizing" >}}) for more information. | -| **Query performance factor** | *(Search and query databases on Redis 7.2 or later only)* Adds additional compute power to process your query and vector search workloads and boost your queries per second. See [Search and query sizing]({{< relref "/operate/rc/databases/configuration/advanced-capabilities#search-and-query-sizing" >}}) for more information. | -| **Throughput** | Identifies maximum throughput for the database, which is specified in terms of operations per second (**Ops/sec**). See [Throughput]({{< relref "/operate/rc/databases/configuration/clustering#throughput" >}}) for more information.
Databases with Search and query have specific throughput requirements, see [Search and query sizing]({{< relref "/operate/rc/databases/configuration/advanced-capabilities#search-and-query-sizing" >}}) for more information. | | **Dataset size (GB)** | The amount of data for your dataset. Specify small sizes as decimals of 1.0 GB; example: `0.1` GB (minimum). We calculate the total memory limit for you based on the other settings you choose for your database.
Databases with Search and query have specific sizing requirements, see [Search and query sizing]({{< relref "/operate/rc/databases/configuration/advanced-capabilities#search-and-query-sizing" >}}) for more information. | | **High Availability** | Indicates whether a replica copy of the database is maintained in case the primary database becomes unavailable. (Warning: Doubles memory consumption). See [High Availability]({{< relref "/operate/rc/databases/configuration/high-availability" >}}). | +| **Throughput** | Identifies maximum throughput for the database, which is specified in terms of operations per second (**Ops/sec**). See [Throughput]({{< relref "/operate/rc/databases/configuration/clustering#throughput" >}}) for more information.
Databases with Search and query have specific throughput requirements, see [Search and query sizing]({{< relref "/operate/rc/databases/configuration/advanced-capabilities#search-and-query-sizing" >}}) for more information. | +| **Query performance factor** | *(Search and query databases on Redis 7.2 or later only)* Adds additional compute power to process your query and vector search workloads and boost your queries per second. See [Search and query sizing]({{< relref "/operate/rc/databases/configuration/advanced-capabilities#search-and-query-sizing" >}}) for more information. | | **Data Persistence** | Defines the data persistence policy, if any. See [Data persistence]({{< relref "/operate/rc/databases/configuration/data-persistence.md" >}}). | Select **More options** to specify values for the following settings. @@ -173,6 +172,7 @@ Select **More options** to specify values for the following settings. | Database option | Description | |:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Advanced Capabilities** | [Advanced features and data types]({{< relref "/operate/rc/databases/configuration/advanced-capabilities" >}}) used by the database. Choose from [Search and query]({{< relref "/operate/oss_and_stack/stack-with-enterprise/search" >}}), [JSON]({{< relref "/operate/oss_and_stack/stack-with-enterprise/json" >}}), [Time series]({{< relref "/operate/oss_and_stack/stack-with-enterprise/timeseries" >}}), or [Probabilistic]({{< relref "/operate/oss_and_stack/stack-with-enterprise/bloom" >}}).
Databases with Search and query have specific sizing requirements, see [Search and query sizing]({{< relref "/operate/rc/databases/configuration/advanced-capabilities#search-and-query-sizing" >}}) for more information. | | **OSS Cluster API** | Enable to use the [Redis Cluster API]({{< relref "/operate/rc/databases/configuration/clustering#oss-cluster-api" >}}). | | **Type** | Set to **Redis**, otherwise **Memcached** database for legacy database support. | | **Supported Protocol(s)** | Choose between RESP2 and RESP3 _(Redis 7.2 only)_. See [Redis serialization protocol]({{< relref "/develop/reference/protocol-spec" >}}#resp-versions) for details | diff --git a/static/images/rc/flexible-add-database-advanced.png b/static/images/rc/flexible-add-database-advanced.png index 1a5922af2f381bff46739fd8564003c742b3c5de..490d4ca9465ac9620383eefe79ae9546e15a1df3 100644 GIT binary patch literal 14743 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 JsueB6{|9-@Yli>; diff --git a/static/images/rc/flexible-add-database-basic.png b/static/images/rc/flexible-add-database-basic.png index db0d967565ff7ea1be582013b3c541921eb7f753..8305733ad8382fd1704decaa1d116f870abd3aaa 100644 GIT binary patch literal 20396 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 literal 24475 zcmbrl1yCKq(=U2(cPBW(U4rYu-QD5f2?Td{Ke$714elN+2M_MwHzSq2T67#RQnpvlQfssjMf5C8zC4-w`chg>Zn_aEa~ zRZ&ywl@1`Qz#N_3`QX?&0nJ;oGtmN=Jw&@=I!d{;p+P4 z{Oa!N?DhQO>hkpE^y235?Ct#T^WU@Uzo!q!r&oVZ&Q1@X4o@x*k5BfG?)Hx_j`#1k zj^6eUk9QBxw-3%%_usbmZV$F^ws#NKcTd*0uXoli=C@uqw)R%Hj+ZyCmN$=PHeOfP zw-?tB7gsMgmQEMe4*sk@&aYf7t!~V(?k}!v%r2cTEU&N39nUQ9%`dI}nLnFa+?knQ zUifn`KEE|Fb2>J=IXS&BJH7*%UZ40g51ITsJ~cNywKn;Cb6{e1VDuO=KHWZg_iJpq zZ*+NRWNNbews-h&qwCTYoM-ss=Il*rL(`Lb*rhp?`OwEVcT_k{X|vUSba-RdCO>L@p;S7 z(Zc$Jn#Ru3CP+!`dPyUss=mFU;&);Fa9K@De(g|R#Y$;)b4|%$c2$2-MMG7=uZ)Uc z<$1kng-dxQHKn=TsU?NWz|u{@q|-((O2^C@q!liu z-)5>7qGtF_Oshpn*VaHWfLEzeR>M+T+M8XbPF%@ERn(0|vQ|jekWsuwp8q?)lpc+6 zH4ji*lFOb$L|u&4nu$+|pU#YqTb`Ojnv_YLjYN-tRtTN+3ltV3!CGBA0AOe+Cn>J! zxpF!$Y@?w@5`Oi-6Qs%_DKCzwTp>aFSCx(qAu;&RG&<7YFC|R4M$NxlrUdE8R3L0a zSIkpQdRF8Pe%$o2;{_U3#FUu=$OH<|@rE*-J402$&wrQy`;&?1BtP`OXYT(Jg*MJg`mk;UMOSL&C^Hbzwb`Wt>6Wx02GU}~ zW6yu>B@)>ioc|EnlSia9_DR$Dz2CZ>=l^irj%x{D`Ec*uR!mmfpK4rT-QOk6MA};P zKyRY+@me6ib|JQbyzIKNuyMjx)RuTQbPjIh`diCBjn2=jaf;4wbQ~&_sl&)P9>;`- z7o%4~i!7kPXy*MqTtt4t-~6+?bEzu!_vXBe;X=XJ*S)TI6n@r^8*utq2XX0hI7zxs z*xGVuqfqcCFZ)@!0@CXp_t_CExny_o8Mn^zxiP=a9@BL0d)MFY*TySX1tkme z#Md)5-8W+DS1#tA983(o%T3vv*GbyM_rD^zZr!zmKO05r%saCh&Td8skyE*i<;;Lf z%p}OdvRa29jHXD!x=eX_h-(g;4$`eLsS4Qvo-jy6= zFEP|Ut6me*3tbd?s3juzyCg@H@U?-}U3vDKfea9rD`X;qTF|9sBIP9_J$?mT<_s0S zExTekCQ>96N|15eKCAa5+BgtCH261G<}6tUq9tc7)6YS(^6P(z=MxKC`}DQcN)Uk24h(J&^P zD&>cz>#c{$8MU2M&H@h0jK(zJ@LOJSui!xqAxoE{2?JLy(V!3wNtrH@g|eQt&xtv7 zo;Uid&|7X+#hB;Ad!2>x8Nz-EmR)Etn3Oi<|*vO&p4Mnf~%*} zTG*}F_?4}ysYabln?C=&x%BmSmq~lOZ-!sCxn`p99pAJ_WkW?G3xEY$zmjU+a`kes zUy29ElIx2;Mu|QaNrBZUdgFe4WQan2cz%IJ^*S|yDg4B-rilzQvGCpyif~Ob6#G0m zKQip>n^ijgr?I{ETpc+K8Q@_YoHH(Xz<%GFeBez2xJF~D7mC938D~zjD1~Gsbu#HK zDrT9x2uYwo)NCsW#Kvos)?Fa|>MM%;dVXG&?B=OV?2$7Sq*r*ZL!zTVX+I)%hU3(G zLuj$4`T(E3ryq2#F_kzBytU$`{krj1914v(&Na9DY^&OK?T^e#S!%UlshI|NJruk2 zUp+V=zqBe!srhNts7wQ8C><#t4mS0?si|{FpU3zE9)$Oas`&X5Djak!z?n*A6#d zfahy2w3uSh>r_bc4J}v13I#$Y+H!Od{S9wqHJM+BO~cpwiww4SZJ)sWH+j*Wf6zML zW1{Tw#n*j-c>T6jJ(!{>``aXnK{P^Y2eKIWY$A0)F6OTX55|X_`S2q{QG>P}2I?z{ zIS4D-d9YBE*s5zi@j5MGz;3piC243dJ>VVGr%L!IhCm=GutEs%&!SWSs2A+WkEzKj z_z-~R%(lf`+0T|TqcL?z;0n6UxsK34yUvS7+Y;gRnS2~36^Z%sbkYlWg1>QeeDFsS zyXP{ZQ1A{AepCyJjc|5wFdmrlFA3Of2!-cAuc0jY^aI)}bQp>*#24+T$V>C4kD7oJ zo?tICcBv^js%djM46s*?2*qaq4NNzZw4@gf3BBwpW+RBf5&~1y0yw<)bWlNW<@-TI z^4=xQV?U;SfJPLHP?{d9BLgVysMR)L7S3&g(e{}JF^Y0S_j5W1_>j`o00+QzFk_ct z2=dvDf&ga?Z|1zsbZlSDCI7{hOsM~EK6m$e(GZhJ6yW1Z%pcknBp?$*b`Swjrh#xe z`0p8gy~JYGgEi@u$~|M6UR6K_#hix|Fw6>&COFOrA>Vl}6?b0gvLY$;J{)rle)9VI zh1tTDCG}mZx30RHxnmzpqhx zr&4L8?msalS=Lf0??U6BT^a)QvJHMylF3X+fOmC+X^M!oRL^`J8=yWdS_A$ZtKj_` zH@TEwH$kAt3G{NIqDg@F%FPoEDbb^L5Q*(|Cp&wc4@{rEm2s+TLvhoMS*?li>Djd& zVLgr&fX;Ui|5#2w<3IE+?27%bYPHI?Zp$wB*2^LNBiLV>^0 zr3#w!l474F_=xnDQ^O!& zgM0_pgajO}$pY=ig^B~-(2gFT&(dRV@F7V;T4ALVU~z04HKor=4RUB=RV}*>GC7o- zL)qtw0B$<~>_=i75x#Z59hZL~h`AF0&fR67i9Vt09+vL;Tj%BoyzBAcDg2yGx%C!f zlytUsbg6U|q96iQsO8VqNqAGQKRnm*%Fe$#tSGp=r!%qwet6(G1{QgJx_Z-qs*7B{ z7^4{(;WX#?y35~XC{-*2Ai#aNUa*s1G^UCAg1<@spkKfsKP$_h_mfqVOZxo(^*GD&Mh447H4S8Wo>AF9 z%#Ym{#8l_%^k#3mjuh>APPY)eq`1vG#cg`EUVOyzkm4<}M&&i3BRNvXbddXKAhjTFHi<(Y8C((O6HoAju!?|F#`O02lw5mw$irF0qb zxQ!D@lV@REUPa&N{?xuAvR$3GfLM*u-`sQW`nn|2Ey@ZOkikgdSeE6wCz!h=<_{ik zZ;vPxf73|-5e{F`d26DF23m;0 z(h;Punlm7_x*|n}qOvL*!Hy&i6(n!%d-j1vHlk&dN3PQnf{h2g0+0YCmrb0?#opWbv zR}Yj0;xR61DScSTRlA~f3Pi}7=Q4r#VUhLFgMn!wKfwDG^dNr3f2Y752@#&F(I~Pe z%LGaSy`hCfs6kYoD>nWX-c4bCK(q^VpbDq+N%r8B zcPK&;(ygz5DC^L;exFcX(Fxe3m!ear|UBrdVde15?9J33JE+XNu_TP$_;a#v)d z+u>>+S{Sn<`toh}!6JD6On-8X=96~m(}ajo8#_e&je~LfymHQrbaub&wH)eqtI8qD zAZ2>`BD;%1JcTUU`I;inID*+!MsFDkXf7oDaXiw z=NxcL)x-Au0TEw)nDRq^p$F0-%u?t&hwf0PTQn-di;GpAdu^NvfIOAw24ldE*S$-f z`Cy(4zW818FNB=MX{z+F^1sehF@h3*iCJob)ohOm%}eNMBB)S>K?pu|nhTUDKqBqG zG$Dx%YWULP-*2`i286tpl;L2=$U=iDnlOWryn5u<=v%{-hW2~FLMxphjODwe$GxX+R``duA^{dHq_^w8k;>nPKUwBxA^!I^^K_ zG)q%a0XYtT_9y-#8QUJzYRbKdzRiWwFzZo=lERFB#e`^-8E1s6lS!OLS36OE$ z6)<~-|?!dHKBBmJl@AcW@o8>+mKOD)r13M0dy`lcQ9jRy8B+LcJ ze>?o2WgA>BPG_02N8l{=w-r3%QRa<{KTzK4l->Awr;LuMDwWmtoP{2aEnnrzd116s zWqVj;B5>abmDYGQV=y^0?s5jdeN6t-PJRc(yS7aJ$)`ss1Z_lkQ

;!F+ub-v7Q(j1;{`;BFtnt$ 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 From 9e5875364cb0fa1444a365f0bf075a7eae74191e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 25 Mar 2025 22:30:11 +0000 Subject: [PATCH 2/3] k8s api docs 7.8.6-1 --- .../embeds/k8s/log_collector_role_all_mode.md | 7 - content/embeds/k8s/openshift_rec.md | 20 +- content/embeds/k8s/openshift_role.md | 22 +- content/embeds/k8s/reaadb.md | 3 +- content/embeds/k8s/rec.md | 18 +- content/embeds/k8s/redb.md | 11 +- content/embeds/k8s/rerc.md | 15 +- content/embeds/k8s/role.md | 22 +- ...s_enterprise_active_active_database_api.md | 598 +++++++++++++++++- .../reference/redis_enterprise_cluster_api.md | 74 ++- .../redis_enterprise_database_api.md | 10 +- 11 files changed, 716 insertions(+), 84 deletions(-) diff --git a/content/embeds/k8s/log_collector_role_all_mode.md b/content/embeds/k8s/log_collector_role_all_mode.md index 6f56c7a6d1..2a96722342 100644 --- a/content/embeds/k8s/log_collector_role_all_mode.md +++ b/content/embeds/k8s/log_collector_role_all_mode.md @@ -170,13 +170,6 @@ rules: verbs: - get - list -- apiGroups: - - policy - resources: - - podsecuritypolicy - verbs: - - get - - list - apiGroups: - certificates.k8s.io resources: diff --git a/content/embeds/k8s/openshift_rec.md b/content/embeds/k8s/openshift_rec.md index 7f4978586d..ac360007fd 100644 --- a/content/embeds/k8s/openshift_rec.md +++ b/content/embeds/k8s/openshift_rec.md @@ -6,11 +6,27 @@ metadata: labels: app: redis-enterprise spec: - # Add fields here + # The number of Redis Enterprise nodes in the clusters. nodes: 3 + + persistentSpec: + # Whether to enable persistent storage for the Redis Enterprise nodes. + enabled: true + + # The size of the persistent volume for each Redis Enterprise node. + volumeSize: 20Gi + + # The resources allocated to each Redis Enterprise node. + redisEnterpriseNodeResources: + requests: + cpu: 2 + memory: 4Gi + limits: + cpu: 2 + memory: 4Gi redisEnterpriseImageSpec: repository: registry.connect.redhat.com/redislabs/redis-enterprise - versionTag: 7.8.4-66.rhel8-openshift + versionTag: 7.8.6-13 redisEnterpriseServicesRiggerImageSpec: repository: registry.connect.redhat.com/redislabs/services-manager bootstrapperImageSpec: diff --git a/content/embeds/k8s/openshift_role.md b/content/embeds/k8s/openshift_role.md index e228260e83..4ec70f6635 100644 --- a/content/embeds/k8s/openshift_role.md +++ b/content/embeds/k8s/openshift_role.md @@ -22,18 +22,7 @@ rules: - apiGroups: - app.redislabs.com resources: - - redisenterpriseclusters - - redisenterpriseclusters/status - - redisenterpriseclusters/finalizers - - redisenterprisedatabases - - redisenterprisedatabases/status - - redisenterprisedatabases/finalizers - - redisenterpriseremoteclusters - - redisenterpriseremoteclusters/status - - redisenterpriseremoteclusters/finalizers - - redisenterpriseactiveactivedatabases - - redisenterpriseactiveactivedatabases/status - - redisenterpriseactiveactivedatabases/finalizers + - "*" verbs: - delete - get @@ -93,6 +82,7 @@ rules: - get - list - watch + - update - apiGroups: - "" resources: @@ -138,14 +128,6 @@ rules: - create - delete - watch - - apiGroups: - - policy - resourceNames: - - redis-enterprise-psp - resources: - - podsecuritypolicies - verbs: - - use - apiGroups: - networking.k8s.io resources: diff --git a/content/embeds/k8s/reaadb.md b/content/embeds/k8s/reaadb.md index 744c6f65e2..b68cfeb78c 100644 --- a/content/embeds/k8s/reaadb.md +++ b/content/embeds/k8s/reaadb.md @@ -2,13 +2,14 @@ apiVersion: app.redislabs.com/v1alpha1 kind: RedisEnterpriseActiveActiveDatabase metadata: - name: reaadb-1 + name: reaadb labels: app: redis-enterprise spec: participatingClusters: # Participating cluster pointing to RERC named: 'new-york-1'. - name: new-york-1 + # Participating cluster pointing to RERC named: 'boston-1'. - name: boston-1 ``` diff --git a/content/embeds/k8s/rec.md b/content/embeds/k8s/rec.md index 0092204c5c..d24e1e874c 100644 --- a/content/embeds/k8s/rec.md +++ b/content/embeds/k8s/rec.md @@ -6,6 +6,22 @@ metadata: labels: app: redis-enterprise spec: - # Add fields here + # The number of Redis Enterprise nodes in the clusters. nodes: 3 + + persistentSpec: + # Whether to enable persistent storage for the Redis Enterprise nodes. + enabled: true + + # The size of the persistent volume for each Redis Enterprise node. + volumeSize: 20Gi + + # The resources allocated to each Redis Enterprise node. + redisEnterpriseNodeResources: + requests: + cpu: 2 + memory: 4Gi + limits: + cpu: 2 + memory: 4Gi ``` diff --git a/content/embeds/k8s/redb.md b/content/embeds/k8s/redb.md index 5470c080c6..e5dfd2a2bb 100644 --- a/content/embeds/k8s/redb.md +++ b/content/embeds/k8s/redb.md @@ -2,7 +2,16 @@ apiVersion: app.redislabs.com/v1alpha1 kind: RedisEnterpriseDatabase metadata: - name: redis-enterprise-database + name: redb labels: app: redis-enterprise +spec: + # Memory size of the database. + memorySize: 256MB + + # Number of shards in the database. + shardCount: 1 + + # Determines whether replication will be enabled for the database. + replication: false ``` diff --git a/content/embeds/k8s/rerc.md b/content/embeds/k8s/rerc.md index 48e80bee38..0bbe2ca09b 100644 --- a/content/embeds/k8s/rerc.md +++ b/content/embeds/k8s/rerc.md @@ -2,21 +2,24 @@ apiVersion: app.redislabs.com/v1alpha1 kind: RedisEnterpriseRemoteCluster metadata: - # Your name of the RERC. name: new-york-1 labels: app: redis-enterprise spec: - # The name of the REC that the RERC is pointing at + # The name of the REC that the RERC is pointing at. recName: rec - # The Namespace of the REC that the RERC is pointing at + + # The namespace of the REC that the RERC is pointing at. recNamespace: ns1 - # The URL of the cluster, will be used for the active-active database URL + + # The URL of the cluster, will be used for the active-active database URL. apiFqdnUrl: testapi-new-york-1-ns1.redislabs.com + # The database URL suffix, will be used for the active-active - # database replication endpoint and replication endpoint SNI + # database replication endpoint and replication endpoint SNI. dbFqdnSuffix: -example-new-york-1-ns1.redislabs.com + # The name of the secret containing cluster credentials. - # Need to follow format: "redis-enterprise-"' + # Needs to be formatted as: "redis-enterprise-" secretName: redis-enterprise-new-york-1 ``` diff --git a/content/embeds/k8s/role.md b/content/embeds/k8s/role.md index 661fad55be..54e8004198 100644 --- a/content/embeds/k8s/role.md +++ b/content/embeds/k8s/role.md @@ -22,18 +22,7 @@ rules: - apiGroups: - app.redislabs.com resources: - - redisenterpriseclusters - - redisenterpriseclusters/status - - redisenterpriseclusters/finalizers - - redisenterprisedatabases - - redisenterprisedatabases/status - - redisenterprisedatabases/finalizers - - redisenterpriseremoteclusters - - redisenterpriseremoteclusters/status - - redisenterpriseremoteclusters/finalizers - - redisenterpriseactiveactivedatabases - - redisenterpriseactiveactivedatabases/status - - redisenterpriseactiveactivedatabases/finalizers + - "*" verbs: - delete - get @@ -93,6 +82,7 @@ rules: - get - list - watch + - update - apiGroups: - "" resources: @@ -138,14 +128,6 @@ rules: - create - delete - watch - - apiGroups: - - policy - resourceNames: - - redis-enterprise-psp - resources: - - podsecuritypolicies - verbs: - - use - apiGroups: - networking.k8s.io resources: diff --git a/content/operate/kubernetes/reference/redis_enterprise_active_active_database_api.md b/content/operate/kubernetes/reference/redis_enterprise_active_active_database_api.md index 013a201a28..735601b0de 100644 --- a/content/operate/kubernetes/reference/redis_enterprise_active_active_database_api.md +++ b/content/operate/kubernetes/reference/redis_enterprise_active_active_database_api.md @@ -128,6 +128,13 @@ RedisEnterpriseActiveActiveDatabaseSpec defines the desired state of RedisEnterp The name of the remote cluster CR to link.
true + + externalReplicationPort + integer + + The desired replication endpoint's port number for users who utilize LoadBalancers for sync between AA replicas and need to provide the specific port number that the LoadBalancer listens to.
+ + false @@ -153,6 +160,13 @@ The Active-Active database global configurations, contains the global properties Connection/ association to the Active-Active database.
false + + alertSettings + object + + Settings for database alerts. Note - Alert settings are not supported for Active-Active database.
+ + false backup object @@ -227,7 +241,7 @@ The Active-Active database global configurations, contains the global properties modulesList []object - List of modules associated with database. Note - For Active-Active databases this feature is currently in preview. For this feature to take effect for Active-Active databases, set a boolean environment variable with the name "ENABLE_ALPHA_FEATURES" to True. This variable can be set via the redis-enterprise-operator pod spec, or through the operator-environment-config Config Map.
+ List of modules associated with the database. The list of valid modules for the specific cluster can be retrieved from the status of the REC object. Use the "name" and "versions" fields for the specific module configuration. If specifying an explicit version for a module, automatic modules versions upgrade must be disabled by setting the '.upgradeSpec.upgradeModulesToLatest' field in the REC to 'false'. Note that the option to specify module versions is deprecated, and will be removed in future releases.
false @@ -390,6 +404,571 @@ Connection/ association to the Active-Active database. + +### spec.globalConfigurations.alertSettings +[↩ Parent](#specglobalconfigurations) + +Settings for database alerts. Note - Alert settings are not supported for Active-Active database. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
bdb_backup_delayedobject + Periodic backup has been delayed for longer than specified threshold value [minutes]
+
false
bdb_crdt_src_high_syncer_lagobject + Active-active source - sync lag is higher than specified threshold value [seconds]
+
false
bdb_crdt_src_syncer_connection_errorobject + Active-active source - sync has connection error while trying to connect replica source
+
false
bdb_crdt_src_syncer_general_errorobject + Active-active source - sync encountered in general error
+
false
bdb_high_latencyobject + Latency is higher than specified threshold value [micro-sec]
+
false
bdb_high_throughputobject + Throughput is higher than specified threshold value [requests / sec.]
+
false
bdb_long_running_actionobject + An alert for state-machines that are running for too long
+
false
bdb_low_throughputobject + Throughput is lower than specified threshold value [requests / sec.]
+
false
bdb_ram_dataset_overheadobject + Dataset RAM overhead of a shard has reached the threshold value [% of its RAM limit]
+
false
bdb_ram_valuesobject + Percent of values kept in a shard's RAM is lower than [% of its key count]
+
false
bdb_replica_src_high_syncer_lagobject + Replica-of source - sync lag is higher than specified threshold value [seconds]
+
false
bdb_replica_src_syncer_connection_errorobject + Replica-of source - sync has connection error while trying to connect replica source
+
false
bdb_shard_num_ram_valuesobject + Number of values kept in a shard's RAM is lower than [values]
+
false
bdb_sizeobject + Dataset size has reached the threshold value [% of the memory limit]
+
false
+ + +### spec.globalConfigurations.alertSettings.bdb_backup_delayed +[↩ Parent](#specglobalconfigurationsalertsettings) + +Periodic backup has been delayed for longer than specified threshold value [minutes] + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
enabledboolean + Alert enabled or disabled
+
true
thresholdstring + Threshold for alert going on/off
+
true
+ + +### spec.globalConfigurations.alertSettings.bdb_crdt_src_high_syncer_lag +[↩ Parent](#specglobalconfigurationsalertsettings) + +Active-active source - sync lag is higher than specified threshold value [seconds] + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
enabledboolean + Alert enabled or disabled
+
true
thresholdstring + Threshold for alert going on/off
+
true
+ + +### spec.globalConfigurations.alertSettings.bdb_crdt_src_syncer_connection_error +[↩ Parent](#specglobalconfigurationsalertsettings) + +Active-active source - sync has connection error while trying to connect replica source + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
enabledboolean + Alert enabled or disabled
+
true
thresholdstring + Threshold for alert going on/off
+
true
+ + +### spec.globalConfigurations.alertSettings.bdb_crdt_src_syncer_general_error +[↩ Parent](#specglobalconfigurationsalertsettings) + +Active-active source - sync encountered in general error + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
enabledboolean + Alert enabled or disabled
+
true
thresholdstring + Threshold for alert going on/off
+
true
+ + +### spec.globalConfigurations.alertSettings.bdb_high_latency +[↩ Parent](#specglobalconfigurationsalertsettings) + +Latency is higher than specified threshold value [micro-sec] + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
enabledboolean + Alert enabled or disabled
+
true
thresholdstring + Threshold for alert going on/off
+
true
+ + +### spec.globalConfigurations.alertSettings.bdb_high_throughput +[↩ Parent](#specglobalconfigurationsalertsettings) + +Throughput is higher than specified threshold value [requests / sec.] + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
enabledboolean + Alert enabled or disabled
+
true
thresholdstring + Threshold for alert going on/off
+
true
+ + +### spec.globalConfigurations.alertSettings.bdb_long_running_action +[↩ Parent](#specglobalconfigurationsalertsettings) + +An alert for state-machines that are running for too long + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
enabledboolean + Alert enabled or disabled
+
true
thresholdstring + Threshold for alert going on/off
+
true
+ + +### spec.globalConfigurations.alertSettings.bdb_low_throughput +[↩ Parent](#specglobalconfigurationsalertsettings) + +Throughput is lower than specified threshold value [requests / sec.] + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
enabledboolean + Alert enabled or disabled
+
true
thresholdstring + Threshold for alert going on/off
+
true
+ + +### spec.globalConfigurations.alertSettings.bdb_ram_dataset_overhead +[↩ Parent](#specglobalconfigurationsalertsettings) + +Dataset RAM overhead of a shard has reached the threshold value [% of its RAM limit] + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
enabledboolean + Alert enabled or disabled
+
true
thresholdstring + Threshold for alert going on/off
+
true
+ + +### spec.globalConfigurations.alertSettings.bdb_ram_values +[↩ Parent](#specglobalconfigurationsalertsettings) + +Percent of values kept in a shard's RAM is lower than [% of its key count] + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
enabledboolean + Alert enabled or disabled
+
true
thresholdstring + Threshold for alert going on/off
+
true
+ + +### spec.globalConfigurations.alertSettings.bdb_replica_src_high_syncer_lag +[↩ Parent](#specglobalconfigurationsalertsettings) + +Replica-of source - sync lag is higher than specified threshold value [seconds] + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
enabledboolean + Alert enabled or disabled
+
true
thresholdstring + Threshold for alert going on/off
+
true
+ + +### spec.globalConfigurations.alertSettings.bdb_replica_src_syncer_connection_error +[↩ Parent](#specglobalconfigurationsalertsettings) + +Replica-of source - sync has connection error while trying to connect replica source + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
enabledboolean + Alert enabled or disabled
+
true
thresholdstring + Threshold for alert going on/off
+
true
+ + +### spec.globalConfigurations.alertSettings.bdb_shard_num_ram_values +[↩ Parent](#specglobalconfigurationsalertsettings) + +Number of values kept in a shard's RAM is lower than [values] + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
enabledboolean + Alert enabled or disabled
+
true
thresholdstring + Threshold for alert going on/off
+
true
+ + +### spec.globalConfigurations.alertSettings.bdb_size +[↩ Parent](#specglobalconfigurationsalertsettings) + +Dataset size has reached the threshold value [% of the memory limit] + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescriptionRequired
enabledboolean + Alert enabled or disabled
+
true
thresholdstring + Threshold for alert going on/off
+
true
+ + ### spec.globalConfigurations.backup [↩ Parent](#specglobalconfigurations) @@ -712,7 +1291,7 @@ MountPointStorage ### spec.globalConfigurations.modulesList[] [↩ Parent](#specglobalconfigurations) -Redis Enterprise Module: https://redislabs.com/redis-enterprise/modules/ +Redis Enterprise module (see https://redis.io/docs/latest/develop/reference/modules/) @@ -727,28 +1306,21 @@ Redis Enterprise Module: https://redislabs.com/redis-enterprise/modules/ - - - - - @@ -897,7 +1469,7 @@ Specifications for DB upgrade. diff --git a/content/operate/kubernetes/reference/redis_enterprise_cluster_api.md b/content/operate/kubernetes/reference/redis_enterprise_cluster_api.md index 5b9bd89676..045a522829 100644 --- a/content/operate/kubernetes/reference/redis_enterprise_cluster_api.md +++ b/content/operate/kubernetes/reference/redis_enterprise_cluster_api.md @@ -283,14 +283,6 @@ RedisEnterpriseClusterSpec defines the desired state of RedisEnterpriseCluster Override for the default anti-affinity rules of the Redis Enterprise pods. More info: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#an-example-of-a-pod-that-uses-pod-affinity
- - - - - @@ -12161,6 +12153,15 @@ Specification for service rigger + + + + + + + + + + + + + + + + + + + + @@ -26649,6 +26675,31 @@ Stores information about cluster certificates and their update process. In Activ
+ + + + + + + + + + + + + + + @@ -26656,6 +26707,13 @@ Stores information about cluster certificates and their update process. In Activ
+ + + + +
name string - The module's name e.g "ft" for redissearch
+ The name of the module, e.g. "search" or "ReJSON". The complete list of modules available in the cluster can be retrieved from the '.status.modules' field in the REC.
true
config string - Module command line arguments e.g. VKEY_MAX_ENTITY_COUNT 30
-
false
uidstring - Module's uid - do not set, for system use only nolint:staticcheck // custom json tag unknown to the linter
+ Module command line arguments e.g. VKEY_MAX_ENTITY_COUNT 30 30
false
version string - Module's semantic version e.g "1.6.12" - optional only in REDB, must be set in REAADB
+ The semantic version of the module, e.g. '1.6.12'. Optional for REDB, must be set for REAADB. Note that this field is deprecated, and will be removed in future releases.
false
upgradeModulesToLatest boolean - Upgrades the modules to the latest version that supportes the DB version during a DB upgrade action, to upgrade the DB version view the 'redisVersion' field. Note - This field is currently not supported for Active-Active databases.
+ Upgrades the modules to the latest version that supports the DB version during a DB upgrade action, to upgrade the DB version view the 'redisVersion' field. Note - This field is currently not supported for Active-Active databases.
true
false
podSecurityPolicyNamestring - DEPRECATED PodSecurityPolicy support is removed in Kubernetes v1.25 and the use of this field is invalid for use when running on Kubernetes v1.25+. Future versions of the RedisEnterpriseCluster API will remove support for this field altogether. For migration instructions, see https://kubernetes.io/docs/tasks/configure-pod-container/migrate-from-psp/ - Name of pod security policy to use on pods
-
false
podStartingPolicy object
databaseServicePortPolicyenum + databaseServicePortPolicy instructs how to determine the service ports for REDB services. Defaults to DatabasePortForward, if not specified otherwise. DatabasePortForward - The service port will be the same as the database port. RedisDefaultPort - The service port will be the default Redis port (6379).
+
+ Enum: DatabasePortForward, RedisDefaultPort
+
false
databaseServiceType string @@ -26642,6 +26643,31 @@ Stores information about cluster certificates and their update process. In Activ
false
features[]string +
+
false
flashShardsinteger +
+
+ Format: int32
+
false
flashShardsLimitinteger +
+
+ Format: int32
+
false
licenseState string false
ownerstring +
+
false
ramShardsinteger +
+
+ Format: int32
+
false
ramShardsLimitinteger +
+
+ Format: int32
+
false
shardsLimit integer false
shardsUsagestring +
+
false
diff --git a/content/operate/kubernetes/reference/redis_enterprise_database_api.md b/content/operate/kubernetes/reference/redis_enterprise_database_api.md index 5205ddf989..e74581ed01 100644 --- a/content/operate/kubernetes/reference/redis_enterprise_database_api.md +++ b/content/operate/kubernetes/reference/redis_enterprise_database_api.md @@ -171,7 +171,7 @@ RedisEnterpriseDatabaseSpec defines the desired state of RedisEnterpriseDatabase modulesList []object - List of modules associated with database. Note - For Active-Active databases this feature is currently in preview. For this feature to take effect for Active-Active databases, set a boolean environment variable with the name "ENABLE_ALPHA_FEATURES" to True. This variable can be set via the redis-enterprise-operator pod spec, or through the operator-environment-config Config Map. Note - if you do not want to upgrade to the latest version you must set upgradeSpec -> upgradeModulesToLatest to false. if you specify a version and do not set the upgradeModulesToLatest it can result errors in the operator. in addition, the option to specify specific version is Deprecated and will be deleted in next releases.
+ List of modules associated with the database. The list of valid modules for the specific cluster can be retrieved from the status of the REC object. Use the "name" and "versions" fields for the specific module configuration. If specifying an explicit version for a module, automatic modules versions upgrade must be disabled by setting the '.upgradeSpec.upgradeModulesToLatest' field in the REC to 'false'. Note that the option to specify module versions is deprecated, and will be removed in future releases.
false @@ -1125,7 +1125,7 @@ MountPointStorage ### spec.modulesList[] [↩ Parent](#spec) -Redis Enterprise Module: https://redislabs.com/redis-enterprise/modules/ +Redis Enterprise module (see https://redis.io/docs/latest/develop/reference/modules/) @@ -1140,21 +1140,21 @@ Redis Enterprise Module: https://redislabs.com/redis-enterprise/modules/ From 3fe68f9bee23cd24e1284476be4780dd3e7189e2 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Tue, 25 Mar 2025 17:47:10 -0500 Subject: [PATCH 3/3] remove alertsettings from REAADB --- ...s_enterprise_active_active_database_api.md | 572 ------------------ 1 file changed, 572 deletions(-) diff --git a/content/operate/kubernetes/reference/redis_enterprise_active_active_database_api.md b/content/operate/kubernetes/reference/redis_enterprise_active_active_database_api.md index 735601b0de..86be70118a 100644 --- a/content/operate/kubernetes/reference/redis_enterprise_active_active_database_api.md +++ b/content/operate/kubernetes/reference/redis_enterprise_active_active_database_api.md @@ -160,13 +160,6 @@ The Active-Active database global configurations, contains the global properties Connection/ association to the Active-Active database.
- - - - - @@ -404,571 +397,6 @@ Connection/ association to the Active-Active database.
name string - The module's name e.g "ft" for redissearch
+ The name of the module, e.g. "search" or "ReJSON". The complete list of modules available in the cluster can be retrieved from the '.status.modules' field in the REC.
true
config string - Module command line arguments e.g. VKEY_MAX_ENTITY_COUNT 30
+ Module command line arguments e.g. VKEY_MAX_ENTITY_COUNT 30 30
false
version string - DEPRECATED - Module's semantic version e.g "1.6.12" - optional only in REDB, must be set in REAADB
+ The semantic version of the module, e.g. '1.6.12'. Optional for REDB, must be set for REAADB. Note that this field is deprecated, and will be removed in future releases.
false
false
alertSettingsobject - Settings for database alerts. Note - Alert settings are not supported for Active-Active database.
-
false
backup object
- -### spec.globalConfigurations.alertSettings -[↩ Parent](#specglobalconfigurations) - -Settings for database alerts. Note - Alert settings are not supported for Active-Active database. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
bdb_backup_delayedobject - Periodic backup has been delayed for longer than specified threshold value [minutes]
-
false
bdb_crdt_src_high_syncer_lagobject - Active-active source - sync lag is higher than specified threshold value [seconds]
-
false
bdb_crdt_src_syncer_connection_errorobject - Active-active source - sync has connection error while trying to connect replica source
-
false
bdb_crdt_src_syncer_general_errorobject - Active-active source - sync encountered in general error
-
false
bdb_high_latencyobject - Latency is higher than specified threshold value [micro-sec]
-
false
bdb_high_throughputobject - Throughput is higher than specified threshold value [requests / sec.]
-
false
bdb_long_running_actionobject - An alert for state-machines that are running for too long
-
false
bdb_low_throughputobject - Throughput is lower than specified threshold value [requests / sec.]
-
false
bdb_ram_dataset_overheadobject - Dataset RAM overhead of a shard has reached the threshold value [% of its RAM limit]
-
false
bdb_ram_valuesobject - Percent of values kept in a shard's RAM is lower than [% of its key count]
-
false
bdb_replica_src_high_syncer_lagobject - Replica-of source - sync lag is higher than specified threshold value [seconds]
-
false
bdb_replica_src_syncer_connection_errorobject - Replica-of source - sync has connection error while trying to connect replica source
-
false
bdb_shard_num_ram_valuesobject - Number of values kept in a shard's RAM is lower than [values]
-
false
bdb_sizeobject - Dataset size has reached the threshold value [% of the memory limit]
-
false
- - -### spec.globalConfigurations.alertSettings.bdb_backup_delayed -[↩ Parent](#specglobalconfigurationsalertsettings) - -Periodic backup has been delayed for longer than specified threshold value [minutes] - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
enabledboolean - Alert enabled or disabled
-
true
thresholdstring - Threshold for alert going on/off
-
true
- - -### spec.globalConfigurations.alertSettings.bdb_crdt_src_high_syncer_lag -[↩ Parent](#specglobalconfigurationsalertsettings) - -Active-active source - sync lag is higher than specified threshold value [seconds] - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
enabledboolean - Alert enabled or disabled
-
true
thresholdstring - Threshold for alert going on/off
-
true
- - -### spec.globalConfigurations.alertSettings.bdb_crdt_src_syncer_connection_error -[↩ Parent](#specglobalconfigurationsalertsettings) - -Active-active source - sync has connection error while trying to connect replica source - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
enabledboolean - Alert enabled or disabled
-
true
thresholdstring - Threshold for alert going on/off
-
true
- - -### spec.globalConfigurations.alertSettings.bdb_crdt_src_syncer_general_error -[↩ Parent](#specglobalconfigurationsalertsettings) - -Active-active source - sync encountered in general error - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
enabledboolean - Alert enabled or disabled
-
true
thresholdstring - Threshold for alert going on/off
-
true
- - -### spec.globalConfigurations.alertSettings.bdb_high_latency -[↩ Parent](#specglobalconfigurationsalertsettings) - -Latency is higher than specified threshold value [micro-sec] - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
enabledboolean - Alert enabled or disabled
-
true
thresholdstring - Threshold for alert going on/off
-
true
- - -### spec.globalConfigurations.alertSettings.bdb_high_throughput -[↩ Parent](#specglobalconfigurationsalertsettings) - -Throughput is higher than specified threshold value [requests / sec.] - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
enabledboolean - Alert enabled or disabled
-
true
thresholdstring - Threshold for alert going on/off
-
true
- - -### spec.globalConfigurations.alertSettings.bdb_long_running_action -[↩ Parent](#specglobalconfigurationsalertsettings) - -An alert for state-machines that are running for too long - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
enabledboolean - Alert enabled or disabled
-
true
thresholdstring - Threshold for alert going on/off
-
true
- - -### spec.globalConfigurations.alertSettings.bdb_low_throughput -[↩ Parent](#specglobalconfigurationsalertsettings) - -Throughput is lower than specified threshold value [requests / sec.] - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
enabledboolean - Alert enabled or disabled
-
true
thresholdstring - Threshold for alert going on/off
-
true
- - -### spec.globalConfigurations.alertSettings.bdb_ram_dataset_overhead -[↩ Parent](#specglobalconfigurationsalertsettings) - -Dataset RAM overhead of a shard has reached the threshold value [% of its RAM limit] - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
enabledboolean - Alert enabled or disabled
-
true
thresholdstring - Threshold for alert going on/off
-
true
- - -### spec.globalConfigurations.alertSettings.bdb_ram_values -[↩ Parent](#specglobalconfigurationsalertsettings) - -Percent of values kept in a shard's RAM is lower than [% of its key count] - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
enabledboolean - Alert enabled or disabled
-
true
thresholdstring - Threshold for alert going on/off
-
true
- - -### spec.globalConfigurations.alertSettings.bdb_replica_src_high_syncer_lag -[↩ Parent](#specglobalconfigurationsalertsettings) - -Replica-of source - sync lag is higher than specified threshold value [seconds] - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
enabledboolean - Alert enabled or disabled
-
true
thresholdstring - Threshold for alert going on/off
-
true
- - -### spec.globalConfigurations.alertSettings.bdb_replica_src_syncer_connection_error -[↩ Parent](#specglobalconfigurationsalertsettings) - -Replica-of source - sync has connection error while trying to connect replica source - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
enabledboolean - Alert enabled or disabled
-
true
thresholdstring - Threshold for alert going on/off
-
true
- - -### spec.globalConfigurations.alertSettings.bdb_shard_num_ram_values -[↩ Parent](#specglobalconfigurationsalertsettings) - -Number of values kept in a shard's RAM is lower than [values] - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
enabledboolean - Alert enabled or disabled
-
true
thresholdstring - Threshold for alert going on/off
-
true
- - -### spec.globalConfigurations.alertSettings.bdb_size -[↩ Parent](#specglobalconfigurationsalertsettings) - -Dataset size has reached the threshold value [% of the memory limit] - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescriptionRequired
enabledboolean - Alert enabled or disabled
-
true
thresholdstring - Threshold for alert going on/off
-
true
- - ### spec.globalConfigurations.backup [↩ Parent](#specglobalconfigurations)