diff --git a/.bots/cyclo/config.json b/.bots/cyclo/config.json index 118136d..3db4ca9 100644 --- a/.bots/cyclo/config.json +++ b/.bots/cyclo/config.json @@ -175,5 +175,5 @@ "system_prompt_path": null, "name": "cyclo", "emoji": "🤖", - "init_cwd": "/data/repos/sovereign-cloud" -} \ No newline at end of file + "init_cwd": "/data/repos/wild-cloud" +} diff --git a/.bots/cyclo/startup.sh b/.bots/cyclo/startup.sh index 56942eb..f27c0be 100644 --- a/.bots/cyclo/startup.sh +++ b/.bots/cyclo/startup.sh @@ -1,4 +1,4 @@ #!/bin/bash -source $SCLOUD/load-env.sh +source $WCLOUD/load-env.sh diff --git a/.bots/cyclo/system_prompt.md b/.bots/cyclo/system_prompt.md index 3c01b93..049df17 100644 --- a/.bots/cyclo/system_prompt.md +++ b/.bots/cyclo/system_prompt.md @@ -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: diff --git a/.vscode/settings.json b/.vscode/settings.json index 772f010..e86bae7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -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" } diff --git a/README.md b/README.md index 994031d..007e9c6 100644 --- a/README.md +++ b/README.md @@ -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? diff --git a/apps/immich/ingress.yaml b/apps/immich/ingress.yaml index c956c77..40423fc 100644 --- a/apps/immich/ingress.yaml +++ b/apps/immich/ingress.yaml @@ -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 \ No newline at end of file + - your.immich.domain diff --git a/apps/jellyfin/ingress.yaml b/apps/jellyfin/ingress.yaml index 3fd9b84..37d4a8a 100644 --- a/apps/jellyfin/ingress.yaml +++ b/apps/jellyfin/ingress.yaml @@ -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 \ No newline at end of file + - your.jellyfin.domain diff --git a/apps/jellyfin/kustomization.yaml b/apps/jellyfin/kustomization.yaml index 63d9cfb..0cb51bd 100644 --- a/apps/jellyfin/kustomization.yaml +++ b/apps/jellyfin/kustomization.yaml @@ -6,7 +6,7 @@ labels: pairs: app: jellyfin managedBy: kustomize - partOf: sovereign-cloud + partOf: wild-cloud resources: - deployment.yaml - ingress.yaml @@ -79,4 +79,4 @@ replacements: kind: Deployment name: jellyfin fieldPaths: - - spec.template.spec.containers.0.image \ No newline at end of file + - spec.template.spec.containers.0.image diff --git a/apps/nextcloud/ingress.yaml b/apps/nextcloud/ingress.yaml index 61210b4..04a37c6 100644 --- a/apps/nextcloud/ingress.yaml +++ b/apps/nextcloud/ingress.yaml @@ -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 diff --git a/apps/nextcloud/kustomization.yaml b/apps/nextcloud/kustomization.yaml index c6a066c..319ee64 100644 --- a/apps/nextcloud/kustomization.yaml +++ b/apps/nextcloud/kustomization.yaml @@ -6,7 +6,7 @@ labels: pairs: app: nextcloud managedBy: kustomize - partOf: sovereign-cloud + partOf: wild-cloud resources: - cron.yaml - deployment.yaml diff --git a/apps/redis/deployment.yaml b/apps/redis/deployment.yaml index 5630558..fc58926 100644 --- a/apps/redis/deployment.yaml +++ b/apps/redis/deployment.yaml @@ -20,7 +20,10 @@ spec: - containerPort: 6379 env: - name: TZ - value: America/New_York + valueFrom: + configMapKeyRef: + name: config + key: TZ envFrom: - configMapRef: name: config diff --git a/apps/redis/kustomization.yaml b/apps/redis/kustomization.yaml index d29eabe..e314f0c 100644 --- a/apps/redis/kustomization.yaml +++ b/apps/redis/kustomization.yaml @@ -6,7 +6,7 @@ labels: pairs: app: redis managedBy: kustomize - partOf: sovereign-cloud + partOf: wild-cloud resources: - deployment.yaml - namespace.yaml diff --git a/bin/README.md b/bin/README.md index 3534617..279e51e 100644 --- a/bin/README.md +++ b/bin/README.md @@ -1,3 +1,3 @@ -# Sovereign Cloud Binaries +# Wild Cloud Binaries These are the scripts that help you manage your cloud. diff --git a/bin/push-container b/bin/push-container index f9eb7b0..9ff7c14 100755 --- a/bin/push-container +++ b/bin/push-container @@ -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 diff --git a/docs/learning/visibility.md b/docs/learning/visibility.md index ebe205c..6598b5d 100644 --- a/docs/learning/visibility.md +++ b/docs/learning/visibility.md @@ -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" diff --git a/infrastructure_setup/cert-manager/internal-wildcard-certificate.yaml b/infrastructure_setup/cert-manager/internal-wildcard-certificate.yaml index 8e9057f..bb25c54 100644 --- a/infrastructure_setup/cert-manager/internal-wildcard-certificate.yaml +++ b/infrastructure_setup/cert-manager/internal-wildcard-certificate.yaml @@ -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 @@ -16,4 +16,4 @@ spec: renewBefore: 360h # 15 days privateKey: algorithm: RSA - size: 2048 \ No newline at end of file + size: 2048 diff --git a/infrastructure_setup/cert-manager/wildcard-certificate.yaml b/infrastructure_setup/cert-manager/wildcard-certificate.yaml index a2594c6..87d2dbf 100644 --- a/infrastructure_setup/cert-manager/wildcard-certificate.yaml +++ b/infrastructure_setup/cert-manager/wildcard-certificate.yaml @@ -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 @@ -16,4 +16,4 @@ spec: renewBefore: 360h # 15 days privateKey: algorithm: RSA - size: 2048 \ No newline at end of file + size: 2048 diff --git a/infrastructure_setup/docker-registry/ingress.yaml b/infrastructure_setup/docker-registry/ingress.yaml index 31602be..f1087fd 100644 --- a/infrastructure_setup/docker-registry/ingress.yaml +++ b/infrastructure_setup/docker-registry/ingress.yaml @@ -17,4 +17,4 @@ spec: tls: - hosts: - docker-registry.internal.${DOMAIN} - secretName: wildcard-internal-sovereign-cloud-tls + secretName: wildcard-internal-wild-cloud-tls diff --git a/infrastructure_setup/docker-registry/kustomization.yaml b/infrastructure_setup/docker-registry/kustomization.yaml index 8d21a64..457c23d 100644 --- a/infrastructure_setup/docker-registry/kustomization.yaml +++ b/infrastructure_setup/docker-registry/kustomization.yaml @@ -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: diff --git a/infrastructure_setup/kubernetes-dashboard/dashboard-kube-system.yaml b/infrastructure_setup/kubernetes-dashboard/dashboard-kube-system.yaml index f1d2362..a404e51 100644 --- a/infrastructure_setup/kubernetes-dashboard/dashboard-kube-system.yaml +++ b/infrastructure_setup/kubernetes-dashboard/dashboard-kube-system.yaml @@ -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} - diff --git a/infrastructure_setup/setup-dashboard.sh b/infrastructure_setup/setup-dashboard.sh index 581fcf0..52fa3e8 100755 --- a/infrastructure_setup/setup-dashboard.sh +++ b/infrastructure_setup/setup-dashboard.sh @@ -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..."