Added YaCy chart
This commit is contained in:
30
yacy/.helmignore
Normal file
30
yacy/.helmignore
Normal file
@@ -0,0 +1,30 @@
|
||||
# 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
|
||||
*.orig
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
# Development/testing files
|
||||
*.tgz
|
||||
*.lock
|
||||
# CI/CD files
|
||||
.circleci/
|
||||
.github/
|
||||
.travis.yml
|
||||
24
yacy/Chart.yaml
Normal file
24
yacy/Chart.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
apiVersion: v2
|
||||
name: yacy
|
||||
description: A Helm chart for YaCy - a distributed peer-to-peer search engine
|
||||
type: application
|
||||
version: 0.1.0
|
||||
appVersion: "1.930"
|
||||
icon: https://yacy.net/images/yacy-logo.png
|
||||
home: https://yacy.net/
|
||||
sources:
|
||||
- https://github.com/yacy/yacy_search_server
|
||||
- https://hub.docker.com/r/yacy/yacy_search_server
|
||||
keywords:
|
||||
- search
|
||||
- search-engine
|
||||
- distributed
|
||||
- p2p
|
||||
- web-crawler
|
||||
- intranet-search
|
||||
- indexing
|
||||
maintainers:
|
||||
- name: YaCy Community
|
||||
url: https://community.searchlab.eu
|
||||
annotations:
|
||||
artifacthub.io/license: GPL-2.0-or-later
|
||||
466
yacy/README.md
Normal file
466
yacy/README.md
Normal file
@@ -0,0 +1,466 @@
|
||||
# YaCy Helm Chart
|
||||
|
||||
<p align="center">
|
||||
<img src="https://yacy.net/images/yacy-logo.png" width="100" alt="YaCy Logo"/>
|
||||
</p>
|
||||
|
||||
This Helm chart deploys [YaCy](https://yacy.net/) - a distributed peer-to-peer search engine - on Kubernetes.
|
||||
|
||||
## Introduction
|
||||
|
||||
YaCy is a free, distributed search engine that can operate in two primary modes:
|
||||
- **P2P Network Mode**: Connect to the global YaCy network to share search results
|
||||
- **Standalone/Intranet Mode**: Run as an independent instance for private document indexing
|
||||
|
||||
This Helm chart simplifies deployment and management of YaCy in a Kubernetes environment, with support for various configurations and deployment scenarios.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Kubernetes 1.12+
|
||||
- Helm 3.0+
|
||||
- PV provisioner support in the underlying infrastructure (for persistence)
|
||||
|
||||
## Installation
|
||||
|
||||
### Prerequisites Check
|
||||
|
||||
Before installing, ensure your Kubernetes cluster meets the requirements:
|
||||
|
||||
```bash
|
||||
# Check Kubernetes version (requires 1.12+)
|
||||
kubectl version --short
|
||||
|
||||
# Verify Helm is installed (requires 3.0+)
|
||||
helm version
|
||||
|
||||
# Check for default StorageClass (for persistence)
|
||||
kubectl get storageclass
|
||||
```
|
||||
|
||||
### Install from Local Chart
|
||||
|
||||
```bash
|
||||
# Navigate to the Helm chart directory
|
||||
cd charts/yacy
|
||||
|
||||
# Install with default values
|
||||
helm install my-yacy .
|
||||
|
||||
# OR install with custom values file
|
||||
helm install my-yacy . -f my-values.yaml
|
||||
|
||||
# OR override specific values
|
||||
helm install my-yacy . \
|
||||
--set service.type=NodePort \
|
||||
--set yacy.adminPassword=mysecurepassword \
|
||||
--set persistence.size=20Gi
|
||||
```
|
||||
|
||||
### Install from Repository (Future)
|
||||
|
||||
Once this chart is published to a Helm repository, you'll be able to install it with:
|
||||
|
||||
```bash
|
||||
# Add the repository
|
||||
helm repo add yacy https://yacy.github.io/helm-charts/
|
||||
helm repo update
|
||||
|
||||
# Install the chart
|
||||
helm install my-yacy yacy/yacy
|
||||
```
|
||||
|
||||
### Verifying Installation
|
||||
|
||||
```bash
|
||||
# Check if the pod is running
|
||||
kubectl get pods -l "app.kubernetes.io/instance=my-yacy"
|
||||
|
||||
# See the deployed service
|
||||
kubectl get svc -l "app.kubernetes.io/instance=my-yacy"
|
||||
|
||||
# Read installation notes
|
||||
helm status my-yacy
|
||||
```
|
||||
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall/delete the `my-yacy` deployment:
|
||||
|
||||
```bash
|
||||
helm uninstall my-yacy
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
### Common parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
|---------------------|----------------------------------------------------|--------|
|
||||
| `replicaCount` | Number of YaCy replicas | `1` |
|
||||
| `nameOverride` | String to partially override yacy.fullname template | `""` |
|
||||
| `fullnameOverride` | String to fully override yacy.fullname template | `""` |
|
||||
|
||||
### YaCy Image parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
|-------------------------|------------------------------------------------|------------------------|
|
||||
| `image.useLocal` | Use locally built image instead of repository | `true` |
|
||||
| `image.localRepository` | Local image name when useLocal is true | `yacy_search_server` |
|
||||
| `image.localTag` | Local image tag when useLocal is true | `local` |
|
||||
| `image.repository` | YaCy image repository when useLocal is false | `yacy/yacy_search_server` |
|
||||
| `image.tag` | YaCy image tag when useLocal is false | `1.930` |
|
||||
| `image.pullPolicy` | YaCy image pull policy when useLocal is false | `IfNotPresent` |
|
||||
| `imagePullSecrets` | Specify docker-registry secret names | `[]` |
|
||||
|
||||
### Architecture-specific images
|
||||
|
||||
| Name | Description | Value |
|
||||
|---------------------|----------------------------------------------------|------------------------|
|
||||
| `arch.amd64` | Tag for AMD64 architecture | `latest` |
|
||||
| `arch.arm64` | Tag for ARM64 architecture | `aarch64-latest` |
|
||||
| `arch.arm` | Tag for ARM architecture | `armv7-latest` |
|
||||
|
||||
### YaCy configuration parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
|---------------------------|----------------------------------------------|-----------|
|
||||
| `env` | YaCy environment variables | `{}` |
|
||||
| `yacy.adminPassword` | YaCy admin password | `"yacy"` |
|
||||
| `yacy.settings.maxMemory` | Maximum memory allocation for YaCy | `"600m"` |
|
||||
| `yacy.settings.joinP2PNetwork` | Whether to join the YaCy P2P network | `true` |
|
||||
|
||||
### Persistence Parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
|----------------------------|-------------------------------------------------|---------------|
|
||||
| `persistence.enabled` | Enable persistence using PVC | `true` |
|
||||
| `persistence.existingClaim`| Use an existing PVC to persist data | `""` |
|
||||
| `persistence.storageClass` | Storage class of backing PVC | `""` |
|
||||
| `persistence.accessMode` | PVC Access Mode | `ReadWriteOnce` |
|
||||
| `persistence.size` | Size of data volume | `10Gi` |
|
||||
| `persistence.annotations` | Additional annotations for the PVC | `{}` |
|
||||
|
||||
### Exposure Parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
|----------------------------|-------------------------------------------------|---------------|
|
||||
| `service.type` | Kubernetes Service type | `ClusterIP` |
|
||||
| `service.httpPort` | HTTP Service port | `8090` |
|
||||
| `service.httpsPort` | HTTPS Service port | `8443` |
|
||||
| `ingress.enabled` | Enable ingress controller resource | `false` |
|
||||
| `ingress.className` | IngressClass that will be used | `""` |
|
||||
| `ingress.hosts[0].host` | Default host for the ingress resource | `yacy.local` |
|
||||
| `ingress.hosts[0].paths` | Paths for the default host | `[{"path":"/","pathType":"Prefix"}]` |
|
||||
| `ingress.tls` | TLS configuration | `[]` |
|
||||
|
||||
### Other Parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
|----------------------------|-------------------------------------------------|---------------|
|
||||
| `resources` | CPU/Memory resource requests/limits | `{}` |
|
||||
| `nodeSelector` | Node labels for pod assignment | `{}` |
|
||||
| `tolerations` | Tolerations for pod assignment | `[]` |
|
||||
| `affinity` | Affinity for pod assignment | `{}` |
|
||||
|
||||
## Building and Publishing Images
|
||||
|
||||
YaCy can be deployed using either a locally built Docker image or an official image from Docker Hub.
|
||||
|
||||
### Option 1: Using Official Images from Docker Hub
|
||||
|
||||
The simplest approach is to use the official YaCy images:
|
||||
|
||||
```yaml
|
||||
# values.yaml
|
||||
image:
|
||||
useLocal: false
|
||||
repository: yacy/yacy_search_server
|
||||
tag: latest # or specific version like "1.930"
|
||||
pullPolicy: IfNotPresent
|
||||
```
|
||||
|
||||
### Option 2: Building Custom Images
|
||||
|
||||
For custom builds or development, you can build your own images:
|
||||
|
||||
#### Setting up a Local Docker Registry
|
||||
|
||||
1. **Start a local Docker registry**:
|
||||
|
||||
```bash
|
||||
docker run -d -p 5000:5000 --restart=always --name registry registry:2
|
||||
```
|
||||
|
||||
2. **Build the YaCy Docker image**:
|
||||
|
||||
```bash
|
||||
# The Dockerfiles are in the ./docker/ directory of the YaCy project
|
||||
cd docker
|
||||
|
||||
# Build for your platform (x86_64/amd64)
|
||||
docker build -t localhost:5000/yacy/yacy_search_server:latest -f Dockerfile ../
|
||||
|
||||
# Push to local registry
|
||||
docker push localhost:5000/yacy/yacy_search_server:latest
|
||||
```
|
||||
|
||||
3. **For multi-architecture support** (optional):
|
||||
|
||||
```bash
|
||||
# ARM64 architecture
|
||||
docker build -t localhost:5000/yacy/yacy_search_server:aarch64-latest -f Dockerfile.aarch64 ../
|
||||
docker push localhost:5000/yacy/yacy_search_server:aarch64-latest
|
||||
|
||||
# ARMv7 architecture
|
||||
docker build -t localhost:5000/yacy/yacy_search_server:armv7-latest -f Dockerfile.armv7 ../
|
||||
docker push localhost:5000/yacy/yacy_search_server:armv7-latest
|
||||
```
|
||||
|
||||
4. **Create a custom values file** (e.g., `local-registry-values.yaml`):
|
||||
|
||||
```yaml
|
||||
image:
|
||||
useLocal: false
|
||||
repository: localhost:5000/yacy/yacy_search_server
|
||||
tag: latest
|
||||
pullPolicy: Always
|
||||
```
|
||||
|
||||
5. **Install with your custom values**:
|
||||
|
||||
```bash
|
||||
helm install my-yacy ./charts/yacy -f local-registry-values.yaml
|
||||
```
|
||||
|
||||
6. **For external Kubernetes clusters**, add registry credentials:
|
||||
|
||||
```bash
|
||||
# Create a Docker registry secret
|
||||
kubectl create secret docker-registry regcred \
|
||||
--docker-server=localhost:5000 \
|
||||
--docker-username=<your-username> \
|
||||
--docker-password=<your-password>
|
||||
|
||||
# Add to your values file
|
||||
imagePullSecrets:
|
||||
- name: regcred
|
||||
```
|
||||
|
||||
## Deployment Examples
|
||||
|
||||
### Quick Start: Using a locally built image
|
||||
|
||||
```bash
|
||||
# 1. Build the local image (from YaCy source directory)
|
||||
cd docker
|
||||
docker build -t yacy_search_server:local -f Dockerfile ../
|
||||
|
||||
# 2. Install the chart
|
||||
helm install my-yacy ./charts/yacy
|
||||
```
|
||||
|
||||
### Common Configuration Examples
|
||||
|
||||
#### Deployment Scenarios
|
||||
|
||||
##### 1. Public YaCy Node (P2P Network)
|
||||
|
||||
```yaml
|
||||
# values.yaml
|
||||
yacy:
|
||||
settings:
|
||||
joinP2PNetwork: true
|
||||
maxMemory: "1500m"
|
||||
adminPassword: "secure-password-here"
|
||||
|
||||
persistence:
|
||||
enabled: true
|
||||
size: 20Gi
|
||||
```
|
||||
|
||||
##### 2. Private Intranet Search Engine
|
||||
|
||||
```yaml
|
||||
# values.yaml
|
||||
yacy:
|
||||
settings:
|
||||
joinP2PNetwork: false # Standalone mode
|
||||
maxMemory: "2000m"
|
||||
adminPassword: "secure-password-here"
|
||||
|
||||
# Optional: Add intranet crawler configuration
|
||||
configFile: |
|
||||
network.unit.agent=CompanySearchEngine
|
||||
network.unit.description=Internal Document Search
|
||||
crawler.http.maxDepth=5
|
||||
|
||||
persistence:
|
||||
enabled: true
|
||||
size: 50Gi
|
||||
```
|
||||
|
||||
#### Exposure Options
|
||||
|
||||
##### 1. Basic ClusterIP (default)
|
||||
|
||||
```yaml
|
||||
service:
|
||||
type: ClusterIP
|
||||
```
|
||||
|
||||
##### 2. NodePort for simple external access
|
||||
|
||||
```yaml
|
||||
service:
|
||||
type: NodePort
|
||||
```
|
||||
|
||||
##### 3. Ingress with TLS
|
||||
|
||||
```yaml
|
||||
ingress:
|
||||
enabled: true
|
||||
className: nginx
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||
hosts:
|
||||
- host: search.example.com
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
tls:
|
||||
- secretName: yacy-tls
|
||||
hosts:
|
||||
- search.example.com
|
||||
```
|
||||
|
||||
#### Resource Allocation
|
||||
|
||||
```yaml
|
||||
# Recommended for production use
|
||||
resources:
|
||||
limits:
|
||||
cpu: 2000m
|
||||
memory: 2Gi
|
||||
requests:
|
||||
cpu: 1000m
|
||||
memory: 1Gi
|
||||
|
||||
# Set YaCy memory to ~75% of container limit
|
||||
yacy:
|
||||
settings:
|
||||
maxMemory: "1500m"
|
||||
```
|
||||
|
||||
#### Architecture-Specific Deployments
|
||||
|
||||
##### ARM64/aarch64 Deployment
|
||||
|
||||
```yaml
|
||||
image:
|
||||
useLocal: false
|
||||
repository: yacy/yacy_search_server
|
||||
tag: aarch64-latest
|
||||
```
|
||||
|
||||
##### ARMv7 Deployment
|
||||
|
||||
```yaml
|
||||
image:
|
||||
useLocal: false
|
||||
repository: yacy/yacy_search_server
|
||||
tag: armv7-latest
|
||||
```
|
||||
|
||||
## Management
|
||||
|
||||
### Backup and Restore
|
||||
|
||||
YaCy's data is stored in `/opt/yacy_search_server/DATA` and persisted to a PVC when `persistence.enabled=true`.
|
||||
|
||||
#### Backup YaCy Data
|
||||
|
||||
```bash
|
||||
# 1. Find the pod name
|
||||
POD_NAME=$(kubectl get pods -l "app.kubernetes.io/instance=my-yacy" -o jsonpath="{.items[0].metadata.name}")
|
||||
|
||||
# 2. Create a backup (two methods)
|
||||
# Option A: Direct backup to local machine
|
||||
kubectl exec $POD_NAME -- tar -cf - /opt/yacy_search_server/DATA | gzip > yacy-backup-$(date +%Y%m%d).tar.gz
|
||||
|
||||
# Option B: Backup within pod first (if pod has sufficient storage)
|
||||
kubectl exec $POD_NAME -- bash -c "cd /opt && tar -czf /tmp/yacy-backup.tar.gz yacy_search_server/DATA"
|
||||
kubectl cp $POD_NAME:/tmp/yacy-backup.tar.gz ./yacy-backup-$(date +%Y%m%d).tar.gz
|
||||
```
|
||||
|
||||
#### Restore YaCy Data
|
||||
|
||||
```bash
|
||||
# First, stop YaCy gracefully (important for index integrity)
|
||||
POD_NAME=$(kubectl get pods -l "app.kubernetes.io/instance=my-yacy" -o jsonpath="{.items[0].metadata.name}")
|
||||
kubectl exec $POD_NAME -- /opt/yacy_search_server/stopYACY.sh
|
||||
|
||||
# Wait for YaCy to fully shut down
|
||||
sleep 15
|
||||
|
||||
# Restore from backup
|
||||
cat yacy-backup.tar.gz | kubectl exec -i $POD_NAME -- bash -c "cd /opt && rm -rf yacy_search_server/DATA/* && tar -xzf -"
|
||||
|
||||
# Restart the pod
|
||||
kubectl delete pod $POD_NAME
|
||||
```
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
#### Verify Deployment Status
|
||||
|
||||
```bash
|
||||
# Check if pods are running
|
||||
kubectl get pods -l "app.kubernetes.io/instance=my-yacy"
|
||||
|
||||
# Verify services
|
||||
kubectl get svc -l "app.kubernetes.io/instance=my-yacy"
|
||||
|
||||
# Check persistent volume claims
|
||||
kubectl get pvc -l "app.kubernetes.io/instance=my-yacy"
|
||||
```
|
||||
|
||||
#### Check Logs
|
||||
|
||||
```bash
|
||||
# Follow logs from the YaCy pod
|
||||
POD_NAME=$(kubectl get pods -l "app.kubernetes.io/instance=my-yacy" -o jsonpath="{.items[0].metadata.name}")
|
||||
kubectl logs -f $POD_NAME
|
||||
|
||||
# View YaCy application logs directly
|
||||
kubectl exec $POD_NAME -- cat /opt/yacy_search_server/DATA/LOG/yacy00.log
|
||||
```
|
||||
|
||||
#### Common Issues
|
||||
|
||||
1. **YaCy pod crashes immediately**: Check memory settings - container's memory limit should be higher than `yacy.settings.maxMemory`
|
||||
|
||||
2. **Can't access YaCy UI**: Verify the service is correctly exposed; try port-forwarding for quick access:
|
||||
```bash
|
||||
kubectl port-forward svc/my-yacy 8090:8090
|
||||
```
|
||||
|
||||
3. **Slow crawling/indexing**: Increase resource limits and YaCy's memory allocation
|
||||
|
||||
4. **Persistence issues**: Check that the PVC is correctly bound and has sufficient space:
|
||||
```bash
|
||||
kubectl get pvc
|
||||
kubectl describe pvc my-yacy-data
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions to improve this chart are welcome! To contribute:
|
||||
|
||||
1. Fork the repository
|
||||
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
||||
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
|
||||
4. Push to the branch (`git push origin feature/amazing-feature`)
|
||||
5. Open a Pull Request
|
||||
|
||||
Please refer to the YaCy project's [contribution guidelines](https://github.com/yacy/yacy_search_server/blob/master/CONTRIBUTING.md) for more information.
|
||||
76
yacy/templates/NOTES.txt
Normal file
76
yacy/templates/NOTES.txt
Normal file
@@ -0,0 +1,76 @@
|
||||
╔════════════════════════════════════════════════════════════════╗
|
||||
║ YaCy Search Server Deployed! ║
|
||||
╚════════════════════════════════════════════════════════════════╝
|
||||
|
||||
Thank you for installing {{ .Chart.Name }} v{{ .Chart.Version }}.
|
||||
|
||||
YaCy is a decentralized search engine that can be used for both public P2P search
|
||||
and private intranet search scenarios.
|
||||
|
||||
GETTING STARTED
|
||||
==============================================================================
|
||||
|
||||
1. Access YaCy Interface:
|
||||
{{- if .Values.ingress.enabled }}
|
||||
{{- range $host := .Values.ingress.hosts }}
|
||||
{{- range .paths }}
|
||||
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- else if contains "NodePort" .Values.service.type }}
|
||||
kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "yacy.fullname" . }}
|
||||
|
||||
# Then access:
|
||||
http://<any-node-ip>:$NODE_PORT
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
# It may take a few minutes for the LoadBalancer IP to be available
|
||||
kubectl get --namespace {{ .Release.Namespace }} svc {{ include "yacy.fullname" . }}
|
||||
|
||||
# Then access:
|
||||
http://<EXTERNAL-IP>:{{ .Values.service.httpPort }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
# Port forward to access YaCy (for development/testing):
|
||||
kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ include "yacy.fullname" . }} 8090:{{ .Values.service.httpPort }}
|
||||
|
||||
# Then access:
|
||||
http://127.0.0.1:8090
|
||||
{{- end }}
|
||||
|
||||
2. Login using these credentials:
|
||||
• Username: admin
|
||||
• Password: {{ .Values.yacy.adminPassword | default "yacy" }}
|
||||
IMPORTANT: Change the default password via ConfigAccounts_p.html
|
||||
|
||||
3. Check deployment status:
|
||||
kubectl get pods -n {{ .Release.Namespace }} -l "app.kubernetes.io/instance={{ .Release.Name }}"
|
||||
|
||||
DATA PERSISTENCE
|
||||
==============================================================================
|
||||
{{- if .Values.persistence.enabled }}
|
||||
• YaCy data is stored in a persistent volume:
|
||||
- PVC: {{ if .Values.persistence.existingClaim }}{{ .Values.persistence.existingClaim }}{{- else }}{{ include "yacy.fullname" . }}-data{{- end }}
|
||||
- Size: {{ .Values.persistence.size }}
|
||||
- Mode: {{ .Values.persistence.accessMode }}
|
||||
{{- else }}
|
||||
• WARNING: Persistence is disabled! Data will be lost when pods are terminated.
|
||||
To enable persistence, set persistence.enabled=true
|
||||
{{- end }}
|
||||
|
||||
IMPORTANT NOTES
|
||||
==============================================================================
|
||||
{{- if eq (.Values.replicaCount | int) 1 }}
|
||||
• YaCy is running with a single replica.
|
||||
For production environments, consider enabling:
|
||||
- Multiple replicas with proper shared storage
|
||||
- Ingress with TLS
|
||||
- Resource limits appropriate for your workload
|
||||
{{- else }}
|
||||
• YaCy is running with {{ .Values.replicaCount }} replicas.
|
||||
{{- end }}
|
||||
|
||||
RESOURCES
|
||||
==============================================================================
|
||||
• Documentation: https://yacy.net/
|
||||
• Community: https://community.searchlab.eu/
|
||||
• Support: https://github.com/yacy/yacy_search_server/issues
|
||||
• Helm Chart README: See charts/README.md
|
||||
62
yacy/templates/_helpers.tpl
Normal file
62
yacy/templates/_helpers.tpl
Normal file
@@ -0,0 +1,62 @@
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "yacy.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "yacy.fullname" -}}
|
||||
{{- if .Values.fullnameOverride }}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride }}
|
||||
{{- if contains $name .Release.Name }}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "yacy.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Common labels
|
||||
*/}}
|
||||
{{- define "yacy.labels" -}}
|
||||
helm.sh/chart: {{ include "yacy.chart" . }}
|
||||
{{ include "yacy.selectorLabels" . }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Selector labels
|
||||
*/}}
|
||||
{{- define "yacy.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "yacy.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create the name of the service account to use
|
||||
*/}}
|
||||
{{- define "yacy.serviceAccountName" -}}
|
||||
{{- if .Values.serviceAccount.create }}
|
||||
{{- default (include "yacy.fullname" .) .Values.serviceAccount.name }}
|
||||
{{- else }}
|
||||
{{- default "default" .Values.serviceAccount.name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
11
yacy/templates/configmap.yaml
Normal file
11
yacy/templates/configmap.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
{{- if .Values.yacy.configFile }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ include "yacy.fullname" . }}-config
|
||||
labels:
|
||||
{{- include "yacy.labels" . | nindent 4 }}
|
||||
data:
|
||||
yacy.conf: |-
|
||||
{{- .Values.yacy.configFile | nindent 4 }}
|
||||
{{- end }}
|
||||
122
yacy/templates/deployment.yaml
Normal file
122
yacy/templates/deployment.yaml
Normal file
@@ -0,0 +1,122 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "yacy.fullname" . }}
|
||||
labels:
|
||||
{{- include "yacy.labels" . | nindent 4 }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "yacy.selectorLabels" . | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
{{- with .Values.podAnnotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "yacy.selectorLabels" . | nindent 8 }}
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
serviceAccountName: {{ include "yacy.serviceAccountName" . }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.securityContext | nindent 12 }}
|
||||
{{- if .Values.image.useLocal }}
|
||||
image: "{{ .Values.image.localRepository }}:{{ .Values.image.localTag }}"
|
||||
imagePullPolicy: Never
|
||||
{{- else }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
{{- end }}
|
||||
env:
|
||||
- name: YACY_ADMINACCOUNT_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "yacy.fullname" . }}
|
||||
key: admin-password
|
||||
{{- range $key, $value := .Values.env }}
|
||||
- name: {{ $key }}
|
||||
value: {{ $value | quote }}
|
||||
{{- end }}
|
||||
{{- if .Values.yacy.settings.maxMemory }}
|
||||
- name: YACY_JAVASTART_XMXMINIT
|
||||
value: {{ .Values.yacy.settings.maxMemory | quote }}
|
||||
{{- end }}
|
||||
{{- if (not .Values.yacy.settings.joinP2PNetwork) }}
|
||||
- name: YACY_NETWORK_UNIT_INTRANET
|
||||
value: "true"
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8090
|
||||
protocol: TCP
|
||||
- name: https
|
||||
containerPort: 8443
|
||||
protocol: TCP
|
||||
startupProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: http
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
failureThreshold: 12
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /api/status_p.xml
|
||||
port: http
|
||||
initialDelaySeconds: 90
|
||||
periodSeconds: 20
|
||||
timeoutSeconds: 10
|
||||
failureThreshold: 6
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: http
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
timeoutSeconds: 5
|
||||
failureThreshold: 6
|
||||
resources:
|
||||
{{- toYaml .Values.resources | nindent 12 }}
|
||||
volumeMounts:
|
||||
- name: data
|
||||
mountPath: /opt/yacy_search_server/DATA
|
||||
{{- if .Values.yacy.configFile }}
|
||||
- name: config
|
||||
mountPath: /opt/yacy_search_server/defaults/yacy.conf
|
||||
subPath: yacy.conf
|
||||
{{- end }}
|
||||
volumes:
|
||||
- name: data
|
||||
{{- if .Values.persistence.enabled }}
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ if .Values.persistence.existingClaim }}{{ .Values.persistence.existingClaim }}{{- else }}{{ include "yacy.fullname" . }}-data{{- end }}
|
||||
{{- else }}
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
{{- if .Values.yacy.configFile }}
|
||||
- name: config
|
||||
configMap:
|
||||
name: {{ include "yacy.fullname" . }}-config
|
||||
{{- end }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
32
yacy/templates/hpa.yaml
Normal file
32
yacy/templates/hpa.yaml
Normal file
@@ -0,0 +1,32 @@
|
||||
{{- if .Values.autoscaling.enabled }}
|
||||
apiVersion: autoscaling/v2
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: {{ include "yacy.fullname" . }}
|
||||
labels:
|
||||
{{- include "yacy.labels" . | nindent 4 }}
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
name: {{ include "yacy.fullname" . }}
|
||||
minReplicas: {{ .Values.autoscaling.minReplicas }}
|
||||
maxReplicas: {{ .Values.autoscaling.maxReplicas }}
|
||||
metrics:
|
||||
{{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
|
||||
{{- end }}
|
||||
{{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: memory
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
61
yacy/templates/ingress.yaml
Normal file
61
yacy/templates/ingress.yaml
Normal file
@@ -0,0 +1,61 @@
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $fullName := include "yacy.fullname" . -}}
|
||||
{{- $svcPort := .Values.service.httpPort -}}
|
||||
{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
|
||||
{{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
|
||||
{{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{- else -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
{{- end }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $fullName }}
|
||||
labels:
|
||||
{{- include "yacy.labels" . | nindent 4 }}
|
||||
{{- with .Values.ingress.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
|
||||
ingressClassName: {{ .Values.ingress.className }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingress.tls }}
|
||||
tls:
|
||||
{{- range .Values.ingress.tls }}
|
||||
- hosts:
|
||||
{{- range .hosts }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
secretName: {{ .secretName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.ingress.hosts }}
|
||||
- host: {{ .host | quote }}
|
||||
http:
|
||||
paths:
|
||||
{{- range .paths }}
|
||||
- path: {{ .path }}
|
||||
{{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
|
||||
pathType: {{ .pathType }}
|
||||
{{- end }}
|
||||
backend:
|
||||
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
|
||||
service:
|
||||
name: {{ $fullName }}
|
||||
port:
|
||||
number: {{ $svcPort }}
|
||||
{{- else }}
|
||||
serviceName: {{ $fullName }}
|
||||
servicePort: {{ $svcPort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
26
yacy/templates/networkpolicy.yaml
Normal file
26
yacy/templates/networkpolicy.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
{{- if .Values.networkPolicy.enabled }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: {{ include "yacy.fullname" . }}
|
||||
labels:
|
||||
{{- include "yacy.labels" . | nindent 4 }}
|
||||
spec:
|
||||
podSelector:
|
||||
matchLabels:
|
||||
{{- include "yacy.selectorLabels" . | nindent 6 }}
|
||||
policyTypes:
|
||||
- Ingress
|
||||
ingress:
|
||||
- from:
|
||||
{{- if .Values.networkPolicy.ingressFrom }}
|
||||
{{- toYaml .Values.networkPolicy.ingressFrom | nindent 8 }}
|
||||
{{- else }}
|
||||
- podSelector: {} # Allow from all pods in the same namespace
|
||||
{{- end }}
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 8090
|
||||
- protocol: TCP
|
||||
port: 8443
|
||||
{{- end }}
|
||||
13
yacy/templates/pdb.yaml
Normal file
13
yacy/templates/pdb.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
{{- if gt .Values.replicaCount 1.0 }}
|
||||
apiVersion: policy/v1
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: {{ include "yacy.fullname" . }}
|
||||
labels:
|
||||
{{- include "yacy.labels" . | nindent 4 }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "yacy.selectorLabels" . | nindent 6 }}
|
||||
minAvailable: 1
|
||||
{{- end }}
|
||||
25
yacy/templates/pvc.yaml
Normal file
25
yacy/templates/pvc.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ include "yacy.fullname" . }}-data
|
||||
labels:
|
||||
{{- include "yacy.labels" . | nindent 4 }}
|
||||
{{- with .Values.persistence.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ .Values.persistence.accessMode | quote }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.persistence.size | quote }}
|
||||
{{- if .Values.persistence.storageClass }}
|
||||
{{- if (eq "-" .Values.persistence.storageClass) }}
|
||||
storageClassName: ""
|
||||
{{- else }}
|
||||
storageClassName: "{{ .Values.persistence.storageClass }}"
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
13
yacy/templates/secret.yaml
Normal file
13
yacy/templates/secret.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ include "yacy.fullname" . }}
|
||||
labels:
|
||||
{{- include "yacy.labels" . | nindent 4 }}
|
||||
type: Opaque
|
||||
data:
|
||||
{{- if .Values.yacy.adminPassword }}
|
||||
admin-password: {{ .Values.yacy.adminPassword | b64enc | quote }}
|
||||
{{- else }}
|
||||
admin-password: {{ "yacy" | b64enc | quote }}
|
||||
{{- end }}
|
||||
19
yacy/templates/service.yaml
Normal file
19
yacy/templates/service.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "yacy.fullname" . }}
|
||||
labels:
|
||||
{{- include "yacy.labels" . | nindent 4 }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.httpPort }}
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
- port: {{ .Values.service.httpsPort }}
|
||||
targetPort: https
|
||||
protocol: TCP
|
||||
name: https
|
||||
selector:
|
||||
{{- include "yacy.selectorLabels" . | nindent 4 }}
|
||||
12
yacy/templates/serviceaccount.yaml
Normal file
12
yacy/templates/serviceaccount.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ include "yacy.serviceAccountName" . }}
|
||||
labels:
|
||||
{{- include "yacy.labels" . | nindent 4 }}
|
||||
{{- with .Values.serviceAccount.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
26
yacy/templates/servicemonitor.yaml
Normal file
26
yacy/templates/servicemonitor.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
{{- if .Values.metrics.serviceMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ include "yacy.fullname" . }}
|
||||
{{- if .Values.metrics.serviceMonitor.namespace }}
|
||||
namespace: {{ .Values.metrics.serviceMonitor.namespace }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "yacy.labels" . | nindent 4 }}
|
||||
{{- with .Values.metrics.serviceMonitor.additionalLabels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
endpoints:
|
||||
- port: http
|
||||
path: {{ .Values.metrics.path }}
|
||||
interval: {{ .Values.metrics.serviceMonitor.interval }}
|
||||
scrapeTimeout: {{ .Values.metrics.serviceMonitor.scrapeTimeout }}
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- {{ .Release.Namespace }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "yacy.selectorLabels" . | nindent 6 }}
|
||||
{{- end }}
|
||||
176
yacy/values.yaml
Normal file
176
yacy/values.yaml
Normal file
@@ -0,0 +1,176 @@
|
||||
# Default values for YaCy Helm chart
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
# -- Number of YaCy pods to run
|
||||
# Note: For production use, consider setting up shared storage
|
||||
# if running multiple replicas
|
||||
replicaCount: 1
|
||||
|
||||
# Image configuration
|
||||
image:
|
||||
# -- Set to true to use a locally built image
|
||||
# Set to false to pull from a registry
|
||||
useLocal: false
|
||||
|
||||
# -- Local image settings (when useLocal: true)
|
||||
# Build with: docker build -t yacy_search_server:local -f docker/Dockerfile .
|
||||
localRepository: "yacy/yacy_search_server"
|
||||
localTag: "latest"
|
||||
|
||||
# -- Official repository settings (when useLocal: false)
|
||||
repository: yacy/yacy_search_server
|
||||
pullPolicy: Always
|
||||
# -- Overrides the image tag whose default is the chart appVersion
|
||||
tag: "latest"
|
||||
|
||||
# -- Architecture-specific image tags
|
||||
# Used for multi-architecture deployments with the official repository
|
||||
arch:
|
||||
amd64: latest
|
||||
arm64: aarch64-latest
|
||||
arm: armv7-latest
|
||||
|
||||
# Optional: Configure image pull secrets if you have authentication for private registries
|
||||
# For Docker Hub, create a secret with: kubectl create secret docker-registry regcred --docker-username=<username> --docker-password=<password>
|
||||
imagePullSecrets: []
|
||||
# - name: regcred
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
|
||||
# YaCy environment variables
|
||||
# All settings from yacy.init can be set as environment variables
|
||||
# Replace dots with underscores, make uppercase, and prefix with YACY_
|
||||
env: {}
|
||||
# YACY_NETWORK_UNIT_AGENT: "MyYaCyPeer"
|
||||
# YACY_ADMINACCOUNT_USER: "admin"
|
||||
# YACY_ADMINACCOUNT_PASSWORD: "yacy" # Default password, change this!
|
||||
|
||||
serviceAccount:
|
||||
# Specifies whether a service account should be created
|
||||
create: true
|
||||
# Annotations to add to the service account
|
||||
annotations: {}
|
||||
# The name of the service account to use.
|
||||
# If not set and create is true, a name is generated using the fullname template
|
||||
name: ""
|
||||
|
||||
podAnnotations: {}
|
||||
|
||||
podSecurityContext:
|
||||
fsGroup: 1000
|
||||
|
||||
securityContext:
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: false
|
||||
runAsNonRoot: true
|
||||
runAsUser: 1000
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
httpPort: 8090
|
||||
httpsPort: 8443
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
className: ""
|
||||
annotations: {}
|
||||
# kubernetes.io/ingress.class: nginx
|
||||
# kubernetes.io/tls-acme: "true"
|
||||
hosts:
|
||||
- host: yacy.local
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
tls: []
|
||||
# - secretName: yacy-tls
|
||||
# hosts:
|
||||
# - yacy.local
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu: 1000m
|
||||
memory: 1Gi
|
||||
requests:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
|
||||
# Persistence for YaCy DATA directory
|
||||
persistence:
|
||||
enabled: true
|
||||
# If defined, use an existing PVC
|
||||
existingClaim: ""
|
||||
# storageClass: ""
|
||||
accessMode: ReadWriteOnce
|
||||
size: 10Gi
|
||||
annotations: {}
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
|
||||
# Autoscaling configuration
|
||||
autoscaling:
|
||||
enabled: false
|
||||
minReplicas: 1
|
||||
maxReplicas: 5
|
||||
targetCPUUtilizationPercentage: 80
|
||||
targetMemoryUtilizationPercentage: 80
|
||||
|
||||
# Network Policy
|
||||
networkPolicy:
|
||||
# Enable network policy
|
||||
enabled: false
|
||||
# Custom ingress selectors
|
||||
# ingressFrom: []
|
||||
|
||||
# Prometheus metrics configuration
|
||||
metrics:
|
||||
# Path for metrics endpoint
|
||||
path: /metrics
|
||||
serviceMonitor:
|
||||
# If true, a ServiceMonitor CRD will be created for a prometheus operator
|
||||
enabled: false
|
||||
# Optional namespace for ServiceMonitor
|
||||
namespace: ""
|
||||
# Default scrape interval
|
||||
interval: 1m
|
||||
# Default scrape timeout
|
||||
scrapeTimeout: 30s
|
||||
# Additional labels for ServiceMonitor
|
||||
additionalLabels: {}
|
||||
|
||||
# -- YaCy specific configuration
|
||||
yacy:
|
||||
# -- Admin password for the YaCy web interface
|
||||
# IMPORTANT: Change this from the default for security!
|
||||
adminPassword: "yacy"
|
||||
|
||||
# -- Optional: Custom YaCy configuration file content
|
||||
# This will be mounted as a ConfigMap and override default settings
|
||||
configFile: |
|
||||
# YaCy configuration in key=value format
|
||||
# Disable browser auto-opening (avoids xdg-open errors in container environment)
|
||||
browserPopUpPage=
|
||||
browserPopUpWarning=false
|
||||
|
||||
# -- YaCy runtime settings
|
||||
settings:
|
||||
# -- URLs to crawl automatically on startup
|
||||
# Example: ["https://example.com/", "https://yacy.net/"]
|
||||
crawlURLs: []
|
||||
|
||||
# -- Maximum memory allocation for YaCy
|
||||
# Recommendation: Use 60-80% of container memory limit
|
||||
maxMemory: "600m"
|
||||
|
||||
# -- Whether to join the YaCy P2P network
|
||||
# Set to false for private/intranet installations
|
||||
joinP2PNetwork: true
|
||||
|
||||
# -- Additional YaCy settings can be added as environment
|
||||
# variables using the 'env' section
|
||||
Reference in New Issue
Block a user