mirror of
https://github.com/searxng/searxng
synced 2024-01-01 19:24:07 +01:00
Add helm chart for SearXNG
This commit is contained in:
parent
0ce9d9e893
commit
c52fb8a657
10 changed files with 390 additions and 0 deletions
26
kubernetes/chart/.helmignore
Normal file
26
kubernetes/chart/.helmignore
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
# Patterns to ignore when building packages.
|
||||||
|
# This supports shell glob matching, relative path matching, and
|
||||||
|
# negation (prefixed with !). Only one pattern per line.
|
||||||
|
.DS_Store
|
||||||
|
# Common VCS dirs
|
||||||
|
.git/
|
||||||
|
.gitignore
|
||||||
|
.bzr/
|
||||||
|
.bzrignore
|
||||||
|
.hg/
|
||||||
|
.hgignore
|
||||||
|
.svn/
|
||||||
|
# Common backup files
|
||||||
|
*.swp
|
||||||
|
*.bak
|
||||||
|
*.tmp
|
||||||
|
*~
|
||||||
|
# Various IDEs
|
||||||
|
.project
|
||||||
|
.idea/
|
||||||
|
*.tmproj
|
||||||
|
.vscode/
|
||||||
|
# OWNERS file for Kubernetes
|
||||||
|
OWNERS
|
||||||
|
# helm-docs templates
|
||||||
|
*.gotmpl
|
27
kubernetes/chart/Chart.yaml
Normal file
27
kubernetes/chart/Chart.yaml
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
apiVersion: v2
|
||||||
|
appVersion: latest
|
||||||
|
description: SearXNG is a free internet metasearch engine which aggregates results from various search services and databases.
|
||||||
|
name: searxng
|
||||||
|
version: 1.0.0
|
||||||
|
kubeVersion: ">=1.16.0-0"
|
||||||
|
keywords:
|
||||||
|
- searx
|
||||||
|
- searxng
|
||||||
|
- search engine
|
||||||
|
- privacy
|
||||||
|
icon: https://github.com/searxng/searxng/blob/master/searx/static/themes/simple/img/favicon.png?raw=true
|
||||||
|
sources:
|
||||||
|
- https://github.com/searxng/searxng
|
||||||
|
- https://docs.searxng.org
|
||||||
|
- https://hub.docker.com/r/searxng/searxng
|
||||||
|
maintainers:
|
||||||
|
- name: unixfox
|
||||||
|
email: searxngatunixfoxdoteu
|
||||||
|
dependencies:
|
||||||
|
- name: common
|
||||||
|
repository: https://library-charts.k8s-at-home.com
|
||||||
|
version: 4.4.2
|
||||||
|
- name: redis
|
||||||
|
version: 0.0.3
|
||||||
|
repository: https://charts.pascaliske.dev
|
||||||
|
condition: redis.enabled
|
83
kubernetes/chart/README.md
Normal file
83
kubernetes/chart/README.md
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
# searxng
|
||||||
|
|
||||||
|
SearXNG is a free internet metasearch engine which aggregates results from various search services and databases. Users are neither tracked nor profiled.
|
||||||
|
|
||||||
|
## Source Code
|
||||||
|
|
||||||
|
* https://github.com/searxng/searxng
|
||||||
|
* https://docs.searxng.org
|
||||||
|
* https://hub.docker.com/r/searxng/searxng
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
Kubernetes: `>=1.16.0-0`
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
| Repository | Name | Version |
|
||||||
|
|------------|------|---------|
|
||||||
|
| https://library-charts.k8s-at-home.com | common | 4.4.2 |
|
||||||
|
| https://charts.pascaliske.dev | redis | 0.0.3 |
|
||||||
|
|
||||||
|
## Installing the Chart
|
||||||
|
|
||||||
|
To install the chart with the release name `searxng`
|
||||||
|
|
||||||
|
```console
|
||||||
|
git clone https://github.com/searxng/searxng.git
|
||||||
|
cd kubernetes/chart
|
||||||
|
helm install searxng .
|
||||||
|
```
|
||||||
|
|
||||||
|
## Uninstalling the Chart
|
||||||
|
|
||||||
|
To uninstall the `searx` deployment
|
||||||
|
|
||||||
|
```console
|
||||||
|
helm uninstall searxng
|
||||||
|
```
|
||||||
|
|
||||||
|
The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
|
||||||
|
Other values may be used from the [values.yaml](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common).
|
||||||
|
|
||||||
|
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
|
||||||
|
|
||||||
|
```console
|
||||||
|
helm install searxng \
|
||||||
|
--set env.TZ="America/New York" \
|
||||||
|
.
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
|
||||||
|
|
||||||
|
```console
|
||||||
|
helm install searxng . -f values.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
## Custom configuration
|
||||||
|
|
||||||
|
Through the parameter `searxng.config`, you can set the settings in settings.yaml.
|
||||||
|
|
||||||
|
The default values are in https://github.com/searxng/searxng/blob/master/searx/settings.yml
|
||||||
|
|
||||||
|
## Values
|
||||||
|
|
||||||
|
**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common)
|
||||||
|
|
||||||
|
| Key | Type | Default | Description |
|
||||||
|
|-----|------|---------|-------------|
|
||||||
|
| searxng.config | object | See values.yaml | Set parameters for the file `settings.yml` |
|
||||||
|
| env.INSTANCE_NAME | string | `"my-instance"` | Your instance name |
|
||||||
|
| env.BASE_URL | string | `"http://localhost:8080/"` | The base URL of your instance |
|
||||||
|
| env.AUTOCOMPLETE | string | `"false"` | Enable or not the autocomplete by default |
|
||||||
|
| redis.enable | bool | `false` | Deploy redis |
|
||||||
|
|
||||||
|
## Changelog
|
||||||
|
|
||||||
|
### Version 1.1.0
|
||||||
|
|
||||||
|
Initial version
|
99
kubernetes/chart/README.md.gotmpl
Normal file
99
kubernetes/chart/README.md.gotmpl
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
{{- define "custom.repository.organization" -}}
|
||||||
|
k8s-at-home
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "custom.repository.url" -}}
|
||||||
|
https://github.com/k8s-at-home/charts
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "custom.helm.url" -}}
|
||||||
|
https://k8s-at-home.com/charts/
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "custom.helm.path" -}}
|
||||||
|
{{ template "custom.repository.organization" . }}/{{ template "chart.name" . }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "custom.notes" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "custom.requirements" -}}
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
{{ template "chart.kubeVersionLine" . }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "custom.dependencies" -}}
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
{{ template "chart.requirementsTable" . }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "custom.install" -}}
|
||||||
|
## Installing the Chart
|
||||||
|
|
||||||
|
This is a [Helm Library Chart](https://helm.sh/docs/topics/library_charts/#helm).
|
||||||
|
|
||||||
|
**WARNING: THIS CHART IS NOT MEANT TO BE INSTALLED DIRECTLY**
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "custom.usage" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "custom.configuration.header" -}}
|
||||||
|
## Configuration
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "custom.configuration.readValues" -}}
|
||||||
|
Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "custom.valuesSection" -}}
|
||||||
|
## Values
|
||||||
|
|
||||||
|
**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common)
|
||||||
|
|
||||||
|
{{ template "chart.valuesTable" . }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "custom.support" -}}
|
||||||
|
## Support
|
||||||
|
|
||||||
|
- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
|
||||||
|
- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
|
||||||
|
- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
|
||||||
|
- Join our [Discord](https://discord.gg/sTMX7Vh) community
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{ template "chart.header" . }}
|
||||||
|
|
||||||
|
{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
|
||||||
|
|
||||||
|
{{ template "chart.description" . }}
|
||||||
|
|
||||||
|
{{ template "custom.notes" . }}
|
||||||
|
|
||||||
|
{{ template "chart.sourcesSection" . }}
|
||||||
|
|
||||||
|
{{ template "custom.requirements" . }}
|
||||||
|
|
||||||
|
{{ template "custom.dependencies" . }}
|
||||||
|
|
||||||
|
{{ template "custom.install" . }}
|
||||||
|
|
||||||
|
{{ template "custom.usage" . }}
|
||||||
|
|
||||||
|
{{ template "custom.configuration.header" . }}
|
||||||
|
|
||||||
|
{{ template "custom.configuration.readValues" . }}
|
||||||
|
|
||||||
|
{{ template "custom.custom.configuration" . }}
|
||||||
|
|
||||||
|
{{ template "custom.valuesSection" . }}
|
||||||
|
|
||||||
|
{{ template "custom.changelog" . }}
|
||||||
|
|
||||||
|
{{ template "custom.support" . }}
|
||||||
|
|
||||||
|
{{ template "helm-docs.versionFooter" . }}
|
||||||
|
{{ "" }}
|
29
kubernetes/chart/README_CHANGELOG.md.gotmpl
Normal file
29
kubernetes/chart/README_CHANGELOG.md.gotmpl
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{{- define "custom.notes" -}}
|
||||||
|
Since a lot of the {{ template "custom.repository.organization" . }} charts follow a similar pattern, this library was built to reduce maintenance cost between the charts that use it and try achieve a goal of being DRY.
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "custom.custom.configuration.header" -}}
|
||||||
|
## Custom configuration
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "custom.custom.configuration" -}}
|
||||||
|
{{ template "custom.custom.configuration.header" . }}
|
||||||
|
|
||||||
|
N/A
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "custom.usage" }}
|
||||||
|
## Using this library
|
||||||
|
|
||||||
|
Include this chart as a dependency in your `Chart.yaml` e.g.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Chart.yaml
|
||||||
|
dependencies:
|
||||||
|
- name: common
|
||||||
|
version: 3.0.0
|
||||||
|
repository: {{ template "custom.helm.url" }}
|
||||||
|
```
|
||||||
|
|
||||||
|
For more information, take a look at the [Docs](http://docs.k8s-at-home.com/our-helm-charts/common-library/).
|
||||||
|
{{- end -}}
|
14
kubernetes/chart/README_CONFIG.md.gotmpl
Normal file
14
kubernetes/chart/README_CONFIG.md.gotmpl
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{{- define "custom.custom.configuration.header" -}}
|
||||||
|
## Custom configuration
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "custom.custom.configuration" -}}
|
||||||
|
{{ template "custom.custom.configuration.header" . }}
|
||||||
|
|
||||||
|
---
|
||||||
|
**NOTE**
|
||||||
|
|
||||||
|
If you get `Error: rendered manifests contain a resource that already exists. Unable to continue with install: existing resource conflict: ...` it may be because you uninstalled the chart with `skipuninstall` enabled, you need to manually delete the pvc or use `existingClaim`.
|
||||||
|
|
||||||
|
---
|
||||||
|
{{- end -}}
|
1
kubernetes/chart/templates/NOTES.txt
Normal file
1
kubernetes/chart/templates/NOTES.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{{- include "common.notes.defaultNotes" . -}}
|
17
kubernetes/chart/templates/common.yaml
Normal file
17
kubernetes/chart/templates/common.yaml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{{/* First Make sure all variables are set and merged properly */}}
|
||||||
|
{{- include "common.values.setup" . }}
|
||||||
|
|
||||||
|
{{/* Append the configMap volume to the volumes */}}
|
||||||
|
{{- define "searxng.settingsVolume" -}}
|
||||||
|
enabled: "true"
|
||||||
|
mountPath: "/etc/searxng/settings.yml"
|
||||||
|
subPath: "settings.yml"
|
||||||
|
type: "custom"
|
||||||
|
volumeSpec:
|
||||||
|
secret:
|
||||||
|
secretName: {{ include "common.names.fullname" . }}-config
|
||||||
|
{{- end -}}
|
||||||
|
{{- $_ := set .Values.persistence "searxng-config" (include "searxng.settingsVolume" . | fromYaml) -}}
|
||||||
|
|
||||||
|
{{/* Render the templates */}}
|
||||||
|
{{ include "common.all" . }}
|
11
kubernetes/chart/templates/configmap.yaml
Normal file
11
kubernetes/chart/templates/configmap.yaml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{{- include "common.values.setup" . -}}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: {{ include "common.names.fullname" . }}-config
|
||||||
|
labels:
|
||||||
|
{{- include "common.labels" . | nindent 4 }}
|
||||||
|
data:
|
||||||
|
settings.yml: |-
|
||||||
|
{{ toYaml .Values.searxng.config | b64enc | indent 4 }}
|
83
kubernetes/chart/values.yaml
Normal file
83
kubernetes/chart/values.yaml
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
#
|
||||||
|
# IMPORTANT NOTE
|
||||||
|
#
|
||||||
|
# This chart inherits from our common library chart. You can check the default values/options here:
|
||||||
|
# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml
|
||||||
|
#
|
||||||
|
|
||||||
|
image:
|
||||||
|
# -- image repository
|
||||||
|
repository: searxng/searxng
|
||||||
|
# -- image tag
|
||||||
|
tag: latest
|
||||||
|
# -- image pull policy
|
||||||
|
pullPolicy: Always
|
||||||
|
|
||||||
|
# Explanation about each environment variables here:
|
||||||
|
# https://docs.searxng.org/admin/installation-docker.html#command-line
|
||||||
|
env:
|
||||||
|
INSTANCE_NAME: "my-instance"
|
||||||
|
BASE_URL: "http://localhost:8080/"
|
||||||
|
AUTOCOMPLETE: "false"
|
||||||
|
# MORTY_URL: "http://morty:8080"
|
||||||
|
# MORTY_KEY: "mysecretkey"
|
||||||
|
# BIND_ADDRESS: "0.0.0.0:8080"
|
||||||
|
|
||||||
|
controller:
|
||||||
|
strategy: "RollingUpdate"
|
||||||
|
|
||||||
|
# -- Configures service settings for the chart.
|
||||||
|
# @default -- See values.yaml
|
||||||
|
service:
|
||||||
|
main:
|
||||||
|
ports:
|
||||||
|
http:
|
||||||
|
port: 8080
|
||||||
|
|
||||||
|
# -- Configure persistence settings for the chart under this key.
|
||||||
|
# @default -- See values.yaml
|
||||||
|
persistence:
|
||||||
|
config:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
ingress:
|
||||||
|
# -- Enable and configure ingress settings for the chart under this key.
|
||||||
|
# @default -- See values.yaml
|
||||||
|
main:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
searxng:
|
||||||
|
config:
|
||||||
|
use_default_settings: true
|
||||||
|
server:
|
||||||
|
secret_key: pleasechangeme
|
||||||
|
# Uncomment when using the builtin rate limiter
|
||||||
|
# See https://docs.searxng.org/src/searx.plugins.limiter.html#limiter-plugin
|
||||||
|
# server.limiter: true
|
||||||
|
# redis.url: redis://@searxng-redis:6379/0
|
||||||
|
|
||||||
|
probes:
|
||||||
|
readiness:
|
||||||
|
custom: true
|
||||||
|
spec:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: 8080
|
||||||
|
liveness:
|
||||||
|
custom: true
|
||||||
|
spec:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: 8080
|
||||||
|
startup:
|
||||||
|
custom: true
|
||||||
|
spec:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: 8080
|
||||||
|
|
||||||
|
# Enable when using searxng builtin rate limiter
|
||||||
|
# Values: https://github.com/pascaliske/helm-charts/tree/master/charts/redis
|
||||||
|
redis:
|
||||||
|
enabled: false
|
||||||
|
|
Loading…
Add table
Reference in a new issue