change the default name of a deploy, try to setup a job for stash but realised we don't have job yet on terraform and try to setup tika and gotenberg for paperless
This commit is contained in:
@@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
POSTGRES_DB: cGFwZXJsZXNz
|
||||||
|
POSTGRES_USER: cGFwZXJsZXNz
|
||||||
|
POSTGRES_PASSWORD: cGFwZXJsZXNz
|
||||||
|
PAPERLESS_ADMIN_USER: YWRtaW4=
|
||||||
|
PAPERLESS_ADMIN_PASSWORD: YWRtaW4=
|
||||||
|
POSTGRES_HOST: cGFwZXItZGItc3Zj
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: paperless-credentials
|
||||||
|
namespace: paper
|
||||||
|
type: Opaque
|
||||||
+65
@@ -0,0 +1,65 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Check if username is provided
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "Usage: $0 <reddit_username> <destination_folder>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
USER="$1"
|
||||||
|
DEST_FOLDER="${2:-./${USER}_images}"
|
||||||
|
USER_AGENT="Mozilla/5.0 (compatible; RedditImageDownloader/1.0)"
|
||||||
|
|
||||||
|
mkdir -p "$DEST_FOLDER"
|
||||||
|
|
||||||
|
AFTER=""
|
||||||
|
BASE_URL="https://www.reddit.com/user/$USER/submitted/.json"
|
||||||
|
|
||||||
|
echo "Fetching all image posts from user $USER..."
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
# Build URL with pagination
|
||||||
|
if [ -z "$AFTER" ]; then
|
||||||
|
URL="${BASE_URL}?limit=100"
|
||||||
|
else
|
||||||
|
URL="${BASE_URL}?limit=100&after=${AFTER}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fetch posts
|
||||||
|
RESPONSE=$(curl -s -A "$USER_AGENT" "$URL")
|
||||||
|
|
||||||
|
# Validate JSON
|
||||||
|
if ! echo "$RESPONSE" | jq empty 2>/dev/null; then
|
||||||
|
echo "Error: Failed to fetch or parse JSON. Exiting."
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Extract image URLs
|
||||||
|
IMAGE_URLS=$(echo "$RESPONSE" | jq -r '.data.children[] | select(.data.url | test("\\.(jpg|jpeg|png|gif)$")) | .data.url')
|
||||||
|
|
||||||
|
# Exit if no more images found
|
||||||
|
if [ -z "$IMAGE_URLS" ]; then
|
||||||
|
echo "No more images found on this page."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Download images
|
||||||
|
echo "$IMAGE_URLS" | while read -r image_url; do
|
||||||
|
[ -z "$image_url" ] && continue
|
||||||
|
FILENAME=$(basename "$image_url")
|
||||||
|
if [ ! -f "$DEST_FOLDER/$FILENAME" ]; then
|
||||||
|
echo "Downloading $FILENAME..."
|
||||||
|
curl -s -A "$USER_AGENT" -o "$DEST_FOLDER/$FILENAME" "$image_url"
|
||||||
|
else
|
||||||
|
echo "Skipping existing file $FILENAME"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Get 'after' token for pagination
|
||||||
|
AFTER=$(echo "$RESPONSE" | jq -r '.data.after')
|
||||||
|
if [ "$AFTER" == "null" ] || [ -z "$AFTER" ]; then
|
||||||
|
echo "Reached end of posts."
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Download complete. Images saved to $DEST_FOLDER"
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
reddit_downloader.sh: |
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Check if username is provided
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "Usage: $0 <reddit_username> <destination_folder>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
USER="$1"
|
||||||
|
DEST_FOLDER="${2:-./${USER}_images}"
|
||||||
|
USER_AGENT="Mozilla/5.0 (compatible; RedditImageDownloader/1.0)"
|
||||||
|
|
||||||
|
mkdir -p "$DEST_FOLDER"
|
||||||
|
|
||||||
|
AFTER=""
|
||||||
|
BASE_URL="https://www.reddit.com/user/$USER/submitted/.json"
|
||||||
|
|
||||||
|
echo "Fetching all image posts from user $USER..."
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
# Build URL with pagination
|
||||||
|
if [ -z "$AFTER" ]; then
|
||||||
|
URL="${BASE_URL}?limit=100"
|
||||||
|
else
|
||||||
|
URL="${BASE_URL}?limit=100&after=${AFTER}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fetch posts
|
||||||
|
RESPONSE=$(curl -s -A "$USER_AGENT" "$URL")
|
||||||
|
|
||||||
|
# Validate JSON
|
||||||
|
if ! echo "$RESPONSE" | jq empty 2>/dev/null; then
|
||||||
|
echo "Error: Failed to fetch or parse JSON. Exiting."
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Extract image URLs
|
||||||
|
IMAGE_URLS=$(echo "$RESPONSE" | jq -r '.data.children[] | select(.data.url | test("\\.(jpg|jpeg|png|gif)$")) | .data.url')
|
||||||
|
|
||||||
|
# Exit if no more images found
|
||||||
|
if [ -z "$IMAGE_URLS" ]; then
|
||||||
|
echo "No more images found on this page."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Download images
|
||||||
|
echo "$IMAGE_URLS" | while read -r image_url; do
|
||||||
|
[ -z "$image_url" ] && continue
|
||||||
|
FILENAME=$(basename "$image_url")
|
||||||
|
if [ ! -f "$DEST_FOLDER/$FILENAME" ]; then
|
||||||
|
echo "Downloading $FILENAME..."
|
||||||
|
curl -s -A "$USER_AGENT" -o "$DEST_FOLDER/$FILENAME" "$image_url"
|
||||||
|
else
|
||||||
|
echo "Skipping existing file $FILENAME"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Get 'after' token for pagination
|
||||||
|
AFTER=$(echo "$RESPONSE" | jq -r '.data.after')
|
||||||
|
if [ "$AFTER" == "null" ] || [ -z "$AFTER" ]; then
|
||||||
|
echo "Reached end of posts."
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Download complete. Images saved to $DEST_FOLDER"
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
creationTimestamp: null
|
||||||
|
name: stash-reddit-dowloader
|
||||||
|
namespace: stash
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
apiVersion: batch/v1
|
||||||
|
kind: Job
|
||||||
|
metadata:
|
||||||
|
name: stash-reddit-dowloader
|
||||||
|
namespace: stash
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: stash-reddit-dowloader
|
||||||
|
image: alpine
|
||||||
|
imagePullPolicy: Always
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /config
|
||||||
|
name: scripts
|
||||||
|
- mountPath: /data
|
||||||
|
mountPropagation: None
|
||||||
|
name: data-pvc
|
||||||
|
command:
|
||||||
|
- /bin/sh
|
||||||
|
- -c
|
||||||
|
- sleep 3600
|
||||||
|
# - /config/reddit_downloader.sh Countem1a /data
|
||||||
|
restartPolicy: Never
|
||||||
|
volumes:
|
||||||
|
- configMap:
|
||||||
|
defaultMode: 365
|
||||||
|
name: stash-reddit-dowloader
|
||||||
|
name: scripts
|
||||||
|
- name: data-pvc
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: data-pvc
|
||||||
|
backoffLimit: 4
|
||||||
|
|
||||||
@@ -257,7 +257,8 @@ resource "kubernetes_deployment_v1" "automatic" {
|
|||||||
for_each = { for key, value in var.kubernetes : key => value if value.enabled == true }
|
for_each = { for key, value in var.kubernetes : key => value if value.enabled == true }
|
||||||
metadata {
|
metadata {
|
||||||
namespace = coalesce(each.value.namespace, each.key)
|
namespace = coalesce(each.value.namespace, each.key)
|
||||||
name = coalesce(each.value.namespace, each.key)
|
name = coalesce(each.value.name, each.key)
|
||||||
|
|
||||||
labels = {
|
labels = {
|
||||||
app = each.key
|
app = each.key
|
||||||
deployment_method = "Terraform"
|
deployment_method = "Terraform"
|
||||||
|
|||||||
+51
-18
@@ -134,10 +134,11 @@ kubernetes = {
|
|||||||
|
|
||||||
stash = {
|
stash = {
|
||||||
enabled = false
|
enabled = false
|
||||||
|
replicas = 01
|
||||||
name = "stash"
|
name = "stash"
|
||||||
image = "stashapp/stash:latest"
|
image = "stashapp/stash:latest"
|
||||||
service_port = 9999
|
service_port = 9999
|
||||||
|
#extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/stash/stash-reddit-dowloader.configmap.yml"]
|
||||||
environment = {
|
environment = {
|
||||||
STASH_STASH = {
|
STASH_STASH = {
|
||||||
value = "/data/"
|
value = "/data/"
|
||||||
@@ -361,14 +362,14 @@ kubernetes = {
|
|||||||
requests-cpu = "800Mi"
|
requests-cpu = "800Mi"
|
||||||
requests-memory = "800Mi"
|
requests-memory = "800Mi"
|
||||||
}
|
}
|
||||||
secret_ref = ["secret1", "secret2"]
|
extra_manifest = ["/opt/kubernetes/Terraform_kube/external_manifests/paperless/Paperless.secret.yaml"]
|
||||||
config_map_ref = ["config"]
|
#config_map_ref = ["config"]
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
POSTGRES_DB = {
|
POSTGRES_DB = {
|
||||||
value_from = {
|
value_from = {
|
||||||
secret_key_ref = {
|
secret_key_ref = {
|
||||||
name = "mysecret"
|
name = "paperless-credentials"
|
||||||
key = "POSTGRES_DB"
|
key = "POSTGRES_DB"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -376,7 +377,7 @@ kubernetes = {
|
|||||||
POSTGRES_USER = {
|
POSTGRES_USER = {
|
||||||
value_from = {
|
value_from = {
|
||||||
secret_key_ref = {
|
secret_key_ref = {
|
||||||
name = "mysecret"
|
name = "paperless-credentials"
|
||||||
key = "POSTGRES_USER"
|
key = "POSTGRES_USER"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -384,7 +385,7 @@ kubernetes = {
|
|||||||
POSTGRES_PASSWORD = {
|
POSTGRES_PASSWORD = {
|
||||||
value_from = {
|
value_from = {
|
||||||
secret_key_ref = {
|
secret_key_ref = {
|
||||||
name = "mysecret"
|
name = "paperless-credentials"
|
||||||
key = "POSTGRES_PASSWORD"
|
key = "POSTGRES_PASSWORD"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -392,10 +393,21 @@ kubernetes = {
|
|||||||
PAPERLESS_URL = {
|
PAPERLESS_URL = {
|
||||||
value = "https://paper.tryton.geeraert.eu"
|
value = "https://paper.tryton.geeraert.eu"
|
||||||
}
|
}
|
||||||
|
PAPERLESS_TIKA_ENABLED = {
|
||||||
|
value = "1"
|
||||||
|
}
|
||||||
|
PAPERLESS_TIKA_GOTENBERG_ENDPOINT = {
|
||||||
|
value = "http://gotenberg-svc.gotenberg.svc:3000"
|
||||||
|
}
|
||||||
|
PAPERLESS_TIKA_ENDPOINT = {
|
||||||
|
value = "http://tika-svc.tika.svc:9998"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
PAPERLESS_DBHOST = {
|
PAPERLESS_DBHOST = {
|
||||||
value_from = {
|
value_from = {
|
||||||
secret_key_ref = {
|
secret_key_ref = {
|
||||||
name = "mysecret"
|
name = "paperless-credentials"
|
||||||
key = "POSTGRES_HOST"
|
key = "POSTGRES_HOST"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -408,7 +420,7 @@ kubernetes = {
|
|||||||
PAPERLESS_ADMIN_USER = {
|
PAPERLESS_ADMIN_USER = {
|
||||||
value_from = {
|
value_from = {
|
||||||
secret_key_ref = {
|
secret_key_ref = {
|
||||||
name = "mysecret"
|
name = "paperless-credentials"
|
||||||
key = "POSTGRES_USER"
|
key = "POSTGRES_USER"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -416,7 +428,7 @@ kubernetes = {
|
|||||||
PAPERLESS_ADMIN_PASSWORD = {
|
PAPERLESS_ADMIN_PASSWORD = {
|
||||||
value_from = {
|
value_from = {
|
||||||
secret_key_ref = {
|
secret_key_ref = {
|
||||||
name = "mysecret"
|
name = "paperless-credentials"
|
||||||
key = "POSTGRES_PASSWORD"
|
key = "POSTGRES_PASSWORD"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -440,15 +452,7 @@ kubernetes = {
|
|||||||
pvc_size = "2Mi"
|
pvc_size = "2Mi"
|
||||||
mount_path = "/usr/src/paperless/data"
|
mount_path = "/usr/src/paperless/data"
|
||||||
}
|
}
|
||||||
media = {
|
|
||||||
pvc = false
|
|
||||||
config_map = true
|
|
||||||
name = "gitea-runner-configfile"
|
|
||||||
pvc_size = "2Mi"
|
|
||||||
mount_path = "/tmp/usr/src/paperless/media"
|
|
||||||
}
|
|
||||||
export = {
|
export = {
|
||||||
# pvc = true
|
|
||||||
host_path = "/tmp"
|
host_path = "/tmp"
|
||||||
name = "export"
|
name = "export"
|
||||||
pvc_size = "2Mi"
|
pvc_size = "2Mi"
|
||||||
@@ -462,10 +466,39 @@ kubernetes = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
gotenberg = {
|
||||||
|
enabled = false
|
||||||
|
name = "gotenberg"
|
||||||
|
image = "gotenberg/gotenberg:7.9.2"
|
||||||
|
service_port = 3000
|
||||||
|
|
||||||
|
requirements = {
|
||||||
|
limits-cpu = "100m"
|
||||||
|
limits-memory = "300Mi"
|
||||||
|
requests-cpu = "50m"
|
||||||
|
requests-memory = "150Mi"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
tika = {
|
||||||
|
enabled = false
|
||||||
|
name = "tika"
|
||||||
|
image = "ghcr.io/paperless-ngx/tika"
|
||||||
|
service_port = 9998
|
||||||
|
|
||||||
|
requirements = {
|
||||||
|
limits-cpu = "100m"
|
||||||
|
limits-memory = "300Mi"
|
||||||
|
requests-cpu = "50m"
|
||||||
|
requests-memory = "150Mi"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#}
|
|
||||||
|
|
||||||
|
|
||||||
next = {
|
next = {
|
||||||
|
|||||||
Reference in New Issue
Block a user