From fb8f41cdef6d1c5f928b73c3758a7a9a96a26920 Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Sun, 3 May 2026 06:38:58 +0000 Subject: [PATCH 1/2] changed crds, changed avatar link for tyko #55 --- blog/authors.yml | 6 ++--- docs/crds/index.mdx | 62 +++++++++++++++++++++++++++++++++++---------- 2 files changed, 52 insertions(+), 16 deletions(-) diff --git a/blog/authors.yml b/blog/authors.yml index 3e9ed61..dde0697 100644 --- a/blog/authors.yml +++ b/blog/authors.yml @@ -28,15 +28,15 @@ akyriako: url: https://www.medium.com/akyriako image_url: https://avatars.githubusercontent.com/u/3920167?v=4 page: - # customize the url of the author page at /blog/authors/ permalink: '/all-akyriako-articles' socials: linkedin: akyriako github: akyriako + website: https://medium.com/@akyriako tykobot: name: Tyko title: aka the "litte-thunder" bot - url: https://github.com/akyriako - image_url: https://nextcloud.rhynosaur.com/apps/files_sharing/publicpreview/iREqToGn3kdJD8w?file=/&fileId=3529&x=1920&y=1080&a=true&etag=d33822fd638ceebcc1cbd578b7352393 + url: https://github.com/akyriako/typesense-operator/ + image_url: /img/tyko-logo.png page: true \ No newline at end of file diff --git a/docs/crds/index.mdx b/docs/crds/index.mdx index 2e349db..f229279 100644 --- a/docs/crds/index.mdx +++ b/docs/crds/index.mdx @@ -38,10 +38,11 @@ Typesense Kubernetes Operator is controlling the lifecycle of multiple Typesense | statefulSetAnnotations | user-defined annotations | X | | | podAnnotations | user-defined annotations | X | | | podsInheritStatefulSetAnnotations | propagate all `StatefulSet` annotations to `Pods` | X | false | -| serviceAnnotations | user-defined annotations | X | | +| serviceAnnotations (deprecated) | user-defined annotations | X | | +| service | check `ServiceSpec` [below](#servicespec-optional) | | | | storage | check `StorageSpec` [below](#storagespec-optional) | | | -| ingress | check `IngressSpec` [below](#ingressspec-deprecated) | X | | -| httpRoutes | array of `HttpRouteSpec`; check [below](#httproutespec-optional) | X | | +| ingress | check `IngressSpec` [below](#ingressspec-deprecated) | X | | +| httpRoutes | array of `HttpRouteSpec`; check [below](#httproutespec-optional) | X | | | scrapers | array of `DocSearchScraperSpec`; check [below](#docsearchscraperspec-optional) | X | | | metrics | check `MetricsSpec` [below](#metricsspec-optional) | X | | | healthcheck | check `HealthCheckSpec` [below](#healthcheckspec-optional) | X | | @@ -59,6 +60,30 @@ Typesense Kubernetes Operator is controlling the lifecycle of multiple Typesense ::: +### ServiceSpec (optional) + +| Name | Description | Optional | Default | +| --------------------- | ------------------------ | -------- | ----------- | +| type | type of `Service` | X | `ClusterIP` | +| externalTrafficPolicy | external traffic policy | X | `Cluster` | +| annotations | user-defined annotations | X | | + +:::important +As of **v0.4.1-rc.4**, `ServiceSpec` has been introduced: + +* `TypesenseClusterSpec.serviceAnnotations` **has been deprecated and will be removed in a future release (v0.5.0)**. Both can be still used to set annotations for the discovery service (*caution*: not the headless service) but any overlap will give precedence to +`ServiceSpec.annotations`. + + ⚠️ Nevertheless, you are advised to migrate your existing annotations to the new schema before the deprecated field is removed. + +* `externalTrafficPolicy` is a setting in Kubernetes that controls how external traffic is routed to services, specifically for `LoadBalancer` and `NodePort` types (here only the former is allowed in `type`). It can be set to `Cluster` (the default), +which may obscure the client's source IP, or `Local`, which preserves the client's original IP by only routing traffic to pods on the same node. + +* `type` can be either `ClusterIP` or `LoadBalancer`; the latter for those use-cases they need to expose the Typesense endpoint directly from a load balancer. + + ⛔ You can't combine `type: ClusterIP` & `externalTrafficPolicy: Local`. +::: + ### StorageSpec (optional) | Name | Description | Optional | Default | @@ -127,6 +152,7 @@ _-The Ingress API is no longer being developed, and will have no further changes | tlsSecretName | TLS `Secret` name to use | X | | | ingressClassName | `Ingress` to be used | | | | serviceAnnotations | user-defined annotations | X | | +| labels | user-defined labels | X | | | annotations | user-defined annotations | X | | | resources | resources (request & limit) | X | 150m/100m
64Mi/32Mi | | readOnlyRootFilesystem | check `ReadOnlyRootFilesystemSpec` [below](#readonlyrootfilesystemspec-optional) | X | | @@ -221,12 +247,17 @@ You can follow the related thread in the Typesense Slack channel [here](https:// ### MetricsSpec (optional) -| Name | Description | Optional | Default | -| --------- | ----------------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| image | container image to use | X | [akyriako78/typesense-prometheus-exporter:0.1.9](https://github.com/akyriako/typesense-prometheus-exporter) | -| release | Prometheus release to become a target of | | | -| interval | interval in _seconds_ between two scrapes | X | 15 | -| resources | resources (request & limit) | X | 100m/100m
64Mi/32Mi | +| Name | Description | Optional | Default | +| --------- | ---------------------------------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| image | container image to use | X | [akyriako78/typesense-prometheus-exporter:0.1.9](https://github.com/akyriako/typesense-prometheus-exporter) | +| release | Prometheus release to become a target of | | | +| interval | interval in _seconds_ between two scrapes | X | 15 | +| resources | resources (request & limit) | X | 100m/100m
64Mi/32Mi | +| logLevel | defines the log [Level](https://pkg.go.dev/log/slog#Level) | X | 0 | + +:::info +`logLevel` follows the `slog/Level` type and only accepts one the following values `[-4, 0, 4, 8]`. For more details, see https://pkg.go.dev/log/slog#Level +::: :::tip If you've provisioned Prometheus via [kube-prometheus-stack](https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-prometheus-stack/README.md), you can find the corresponding `release` value of your Prometheus instance by checking the labels of the Prometheus operator pod e.g: @@ -255,10 +286,15 @@ release=promstack ### HealthCheckSpec (optional) -| Name | Description | Optional | Default | -| --------- | --------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| image | container image to use | X | [akyriako78/typesense-healthcheck:0.1.8](https://github.com/akyriako/typesense-healthcheck) | -| resources | resources (request & limit) | X | 100m/100m
64Mi/32Mi | +| Name | Description | Optional | Default | +| --------- | ---------------------------------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| image | container image to use | X | [akyriako78/typesense-healthcheck:0.1.8](https://github.com/akyriako/typesense-healthcheck) | +| resources | resources (request & limit) | X | 100m/100m
64Mi/32Mi | +| logLevel | defines the log [Level](https://pkg.go.dev/log/slog#Level) | X | 0 | + +:::info +`logLevel` follows the `slog/Level` type and only accepts one the following values `[-4, 0, 4, 8]`. For more details, see https://pkg.go.dev/log/slog#Level +::: ### SecurityContextSpec (optional) From 3325d070fc0d4a23b637b6cad0d51619075f84cd Mon Sep 17 00:00:00 2001 From: Kyriakos Akriotis Date: Sun, 3 May 2026 06:52:35 +0000 Subject: [PATCH 2/2] added release blog #55 --- blog/2026-05-03-release-0-4-1-rc.x.md | 43 +++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 blog/2026-05-03-release-0-4-1-rc.x.md diff --git a/blog/2026-05-03-release-0-4-1-rc.x.md b/blog/2026-05-03-release-0-4-1-rc.x.md new file mode 100644 index 0000000..99607b5 --- /dev/null +++ b/blog/2026-05-03-release-0-4-1-rc.x.md @@ -0,0 +1,43 @@ +--- +slug: release-0-4-1-rc.1-4 +title: 0.4.1-rc.1-4 +authors: [tykobot] +tags: [release] +--- + +## What's Changed + +### 0.4.1-rc.4 + +* add rudimentary support for service configurables by @features-not-bugs in https://github.com/akyriako/typesense-operator/pull/249 +* 265 bring serviceannotations under servicespec by @akyriako in https://github.com/akyriako/typesense-operator/pull/266 + +#### New Contributors + +* @features-not-bugs made their first contribution in https://github.com/akyriako/typesense-operator/pull/249 + +**Full Changelog**: https://github.com/akyriako/typesense-operator/compare/typesense-operator-0.4.1-rc.3...typesense-operator-0.4.1-rc.4 + +### 0.4.1-rc.3 + +* added labels to ingress, fixed erroneous tls secret check #263 by @akyriako in https://github.com/akyriako/typesense-operator/pull/264 + +**Full Changelog**: https://github.com/akyriako/typesense-operator/compare/typesense-operator-0.4.1-rc.2...typesense-operator-0.4.1-rc.3 + +### 0.4.1-rc.2 + +* use fallback nodeslist if still pulling image #261 by @akyriako in https://github.com/akyriako/typesense-operator/pull/262 + +**Full Changelog**: https://github.com/akyriako/typesense-operator/compare/typesense-operator-0.4.1-rc.1...typesense-operator-0.4.1-rc.2 + +### 0.4.1-rc.1 + +* fix(quorum): correct ConfigMap key and bootstrap wait gate by @amalsom10 in https://github.com/akyriako/typesense-operator/pull/253 +* 255 rearrange helper functions by @akyriako in https://github.com/akyriako/typesense-operator/pull/259 +* 258 make log level configurable and other env variables for metrics exporter healthcheck sidecar and typesense server by @akyriako in https://github.com/akyriako/typesense-operator/pull/260 + +#### New Contributors + +* @amalsom10 made their first contribution in https://github.com/akyriako/typesense-operator/pull/253 + +**Full Changelog**: https://github.com/akyriako/typesense-operator/compare/typesense-operator-0.4.0...typesense-operator-0.4.1-rc.1 \ No newline at end of file