Welcome, Wild Cloud!

This commit is contained in:
2025-05-28 14:08:10 -07:00
parent 5541b55760
commit 456e13ddfa
21 changed files with 69 additions and 65 deletions

View File

@@ -175,5 +175,5 @@
"system_prompt_path": null,
"name": "cyclo",
"emoji": "🤖",
"init_cwd": "/data/repos/sovereign-cloud"
"init_cwd": "/data/repos/wild-cloud"
}

View File

@@ -1,4 +1,4 @@
#!/bin/bash
source $SCLOUD/load-env.sh
source $WCLOUD/load-env.sh

View File

@@ -1,36 +1,36 @@
# System Prompt for Bot CLI Assistant
You are {{ bot.emoji }} {{ bot.name }}, a CLI assistant that helps Soverign Cloud operators manage and develop their sovereign clouds. Sovereign Clouds are network clusters of one or more hosts that aim to provide network operating centers and cloud applications using Open Source software to to individuals and organizations across civil society.
You are {{ bot.emoji }} {{ bot.name }}, a CLI assistant that helps Soverign Cloud operators manage and develop their wild clouds. Wild Clouds are network clusters of one or more hosts that aim to provide network operating centers and cloud applications using Open Source software to to individuals and organizations across civil society.
## Capabilities:
- You are backed by a full LLM.
- Full access to bash shell commands. You are a shell wizard and can issue commands to accomplish almost any task efficiently.
- You operate with full access to a sovereign cloud operator machine which has full access to the sovereign cloud.
- `kubectl` - A sovereign cloud is run on k3s and kubectl is available on the operator machine.
- `git` - Git is used widely in a soverign cloud as we favor descriptive over procedural. Sovereign cloud is cloned from the official repo at `https://github.com/payneio/sovereign-cloud`.
- You operate with full access to a wild cloud operator machine which has full access to the wild cloud.
- `kubectl` - A wild cloud is run on k3s and kubectl is available on the operator machine.
- `git` - Git is used widely in a soverign cloud as we favor descriptive over procedural. Wild cloud is cloned from the official repo at `https://github.com/payneio/wild-cloud`.
## Operation Guidelines:
- When users mention "the cloud" or "my cloud" or "the sovereign cloud" they are usually referring to the currently running instance which you have access to. If they ask a question about the cloud you should use local or Sovereign Cloud resources and documentation to answer the question versus general network, cloud, or kubernetes information. Respond in a personalized and sovereign-cloud contextualized manner.
- When users mention "the cloud" or "my cloud" or "the wild cloud" they are usually referring to the currently running instance which you have access to. If they ask a question about the cloud you should use local or Wild Cloud resources and documentation to answer the question versus general network, cloud, or kubernetes information. Respond in a personalized and wild-cloud contextualized manner.
- Be concise and direct in your responses
- For complex tasks, break down the steps clearly
- If you're unsure about a command's effects, err on the side of caution
- Respect the operator machine and the sovereign cloud - avoid destructive operations unless explicitly requested
- Respect the operator machine and the wild cloud - avoid destructive operations unless explicitly requested
- Your response will be printed on the command line. DO use UTF-8. Do NOT use markdown.
- When starting a new session, you should check on the current status of the cloud.
## Helpful resources
- $SCLOUD environment variable. Points to the Sovereign Cloud repository.
- $SCLOUD/README.md - Information about this sovereign cloud.
- `source $SCLOUD/load-env.sh` should be run before any other operations.
- $SCLOUD/bin - Operator scripts including:
- $WCLOUD environment variable. Points to the Wild Cloud repository.
- $WCLOUD/README.md - Information about this wild cloud.
- `source $WCLOUD/load-env.sh` should be run before any other operations.
- $WCLOUD/bin - Operator scripts including:
- `dashboard-token` to get the Kubernetes dashboard access token.
- `deploy-service` for deploying cloud services from the `$SCLOUD/services` directory.
- $SCLOUD/docs: Important information about the cloud including:
- $SCLOUD/docs/learning: Docs for operators to go deeper and learn cloud operation concepts.
- $SCLOUD/docs/troubleshooting: Docs helpful for operators in fixing common issues.
- `deploy-service` for deploying cloud services from the `$WCLOUD/services` directory.
- $WCLOUD/docs: Important information about the cloud including:
- $WCLOUD/docs/learning: Docs for operators to go deeper and learn cloud operation concepts.
- $WCLOUD/docs/troubleshooting: Docs helpful for operators in fixing common issues.
## Best Practices:

View File

@@ -2,7 +2,7 @@
"cSpell.customDictionaries": {
"custom-dictionary-workspace": {
"name": "custom-dictionary-workspace",
"path": "${workspaceFolder:sovereign-cloud}/.cspell/custom-dictionary-workspace.txt",
"path": "${workspaceFolder:wild-cloud}/.cspell/custom-dictionary-workspace.txt",
"addWords": true,
"scope": "workspace"
}

View File

@@ -1,6 +1,8 @@
# Sovereign Cloud
# Wild Cloud
> Take control of your digital life with your own personal cloud infrastructure
Welcome! So excited you're here!
When I was an 8 year old kid, I had a computer named the Commodore64. One of the coolest things about it was th
## Why Build Your Own Cloud?

View File

@@ -19,6 +19,6 @@ spec:
port:
number: 3001
tls:
- secretName: wildcard-internal-sovereign-cloud-tls
- secretName: wildcard-internal-wild-cloud-tls
hosts:
- your.immich.domain

View File

@@ -19,6 +19,6 @@ spec:
port:
number: 8096
tls:
- secretName: wildcard-internal-sovereign-cloud-tls
- secretName: wildcard-internal-wild-cloud-tls
hosts:
- your.jellyfin.domain

View File

@@ -6,7 +6,7 @@ labels:
pairs:
app: jellyfin
managedBy: kustomize
partOf: sovereign-cloud
partOf: wild-cloud
resources:
- deployment.yaml
- ingress.yaml

View File

@@ -20,6 +20,6 @@ spec:
port:
number: 80
tls:
- secretName: wildcard-internal-sovereign-cloud-tls
- secretName: wildcard-internal-wild-cloud-tls
hosts:
- your.nextcloud.domain

View File

@@ -6,7 +6,7 @@ labels:
pairs:
app: nextcloud
managedBy: kustomize
partOf: sovereign-cloud
partOf: wild-cloud
resources:
- cron.yaml
- deployment.yaml

View File

@@ -20,7 +20,10 @@ spec:
- containerPort: 6379
env:
- name: TZ
value: America/New_York
valueFrom:
configMapKeyRef:
name: config
key: TZ
envFrom:
- configMapRef:
name: config

View File

@@ -6,7 +6,7 @@ labels:
pairs:
app: redis
managedBy: kustomize
partOf: sovereign-cloud
partOf: wild-cloud
resources:
- deployment.yaml
- namespace.yaml

View File

@@ -1,3 +1,3 @@
# Sovereign Cloud Binaries
# Wild Cloud Binaries
These are the scripts that help you manage your cloud.

View File

@@ -28,14 +28,14 @@ fi
CONTAINER_NAME="$1"
VERSION="${2:-latest}"
REGISTRY=$DOCKER_REGISTRY_HOST
CONTAINER_DIR="/data/repos/sovereign-cloud/containers/${CONTAINER_NAME}"
CONTAINER_DIR="/data/repos/wild-cloud/containers/${CONTAINER_NAME}"
IMAGE_NAME="${REGISTRY}/${CONTAINER_NAME}:${VERSION}"
# Check if container directory exists
if [ ! -d "$CONTAINER_DIR" ]; then
echo "Error: Container directory not found: $CONTAINER_DIR"
echo "Available containers:"
ls -1 /data/repos/sovereign-cloud/containers/
ls -1 /data/repos/wild-cloud/containers/
exit 1
fi

View File

@@ -95,7 +95,7 @@ spec:
tls:
- hosts:
- my-app.CLOUD_DOMAIN
secretName: wildcard-sovereign-cloud-tls
secretName: wildcard-wild-cloud-tls
```
This Ingress tells the cluster to route requests for `my-app.CLOUD_DOMAIN` to your service. The annotations provide hints to other systems like ExternalDNS.
@@ -150,7 +150,7 @@ spec:
- --source=service
- --source=ingress
- --provider=cloudflare
- --txt-owner-id=sovereign-cloud
- --txt-owner-id=wild-cloud
```
ExternalDNS watches Kubernetes Services and Ingresses with appropriate annotations, then creates corresponding DNS records in CloudFlare, making your applications discoverable by domain name.
@@ -163,10 +163,10 @@ To secure connections with HTTPS, we use cert-manager to automatically obtain an
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: wildcard-sovereign-cloud-io
name: wildcard-wild-cloud-io
namespace: default
spec:
secretName: wildcard-sovereign-cloud-tls
secretName: wildcard-wild-cloud-tls
dnsNames:
- "*.CLOUD_DOMAIN"
- "CLOUD_DOMAIN"

View File

@@ -2,13 +2,13 @@
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: wildcard-internal-sovereign-cloud
name: wildcard-internal-wild-cloud
namespace: cert-manager
spec:
secretName: wildcard-internal-sovereign-cloud-tls
secretName: wildcard-internal-wild-cloud-tls
dnsNames:
- "*.internal.${DOMAIN}"
- "internal.${DOMAIN}"
- "*.internal.${DOMAIN}"
- "internal.${DOMAIN}"
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer

View File

@@ -2,13 +2,13 @@
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: wildcard-sovereign-cloud
name: wildcard-wild-cloud
namespace: cert-manager
spec:
secretName: wildcard-sovereign-cloud-tls
secretName: wildcard-wild-cloud-tls
dnsNames:
- "*.${DOMAIN}"
- "${DOMAIN}"
- "*.${DOMAIN}"
- "${DOMAIN}"
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer

View File

@@ -17,4 +17,4 @@ spec:
tls:
- hosts:
- docker-registry.internal.${DOMAIN}
secretName: wildcard-internal-sovereign-cloud-tls
secretName: wildcard-internal-wild-cloud-tls

View File

@@ -2,16 +2,16 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: docker-registry
labels:
- includeSelectors: true
pairs:
app: docker-registry
managedBy: sovereign-cloud
- includeSelectors: true
pairs:
app: docker-registry
managedBy: wild-cloud
resources:
- deployment.yaml
- ingress.yaml
- service.yaml
- namespace.yaml
- pvc.yaml
- deployment.yaml
- ingress.yaml
- service.yaml
- namespace.yaml
- pvc.yaml
configMapGenerator:
- name: docker-registry-config
envs:

View File

@@ -9,10 +9,10 @@ spec:
ipWhiteList:
# Restrict to local private network ranges
sourceRange:
- 127.0.0.1/32 # localhost
- 10.0.0.0/8 # Private network
- 172.16.0.0/12 # Private network
- 192.168.0.0/16 # Private network
- 127.0.0.1/32 # localhost
- 10.0.0.0/8 # Private network
- 172.16.0.0/12 # Private network
- 192.168.0.0/16 # Private network
---
# HTTPS redirect middleware
@@ -47,7 +47,7 @@ spec:
port: 443
serversTransport: dashboard-transport
tls:
secretName: wildcard-internal-sovereign-cloud-tls
secretName: wildcard-internal-wild-cloud-tls
---
# HTTP to HTTPS redirect.
@@ -82,4 +82,3 @@ metadata:
spec:
insecureSkipVerify: true
serverName: dashboard.internal.${DOMAIN}

View File

@@ -20,8 +20,8 @@ echo "Installing Kubernetes Dashboard core components..."
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
# Copying cert-manager secrets to the dashboard namespace
copy-secret cert-manager:wildcard-internal-sovereign-cloud-tls $NAMESPACE
copy-secret cert-manager:wildcard-sovereign-cloud-tls $NAMESPACE
copy-secret cert-manager:wildcard-internal-wild-cloud-tls $NAMESPACE
copy-secret cert-manager:wildcard-wild-cloud-tls $NAMESPACE
# Create admin service account and token
echo "Creating dashboard admin service account and token..."