Initial Phoenix Sankofa Cloud setup
- Complete project structure with Next.js frontend - GraphQL API backend with Apollo Server - Portal application with NextAuth - Crossplane Proxmox provider - GitOps configurations - CI/CD pipelines - Testing infrastructure (Vitest, Jest, Go tests) - Error handling and monitoring - Security hardening - UI component library - Documentation
This commit is contained in:
40
gitops/templates/cluster/k3s-cluster.yaml
Normal file
40
gitops/templates/cluster/k3s-cluster.yaml
Normal file
@@ -0,0 +1,40 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: "{{ .namespace }}"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: k3s-cluster-sa
|
||||
namespace: "{{ .namespace }}"
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: k3s-cluster-admin
|
||||
rules:
|
||||
- apiGroups: [""]
|
||||
resources: ["*"]
|
||||
verbs: ["*"]
|
||||
- apiGroups: ["apps"]
|
||||
resources: ["*"]
|
||||
verbs: ["*"]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: k3s-cluster-admin-binding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: k3s-cluster-admin
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: k3s-cluster-sa
|
||||
namespace: "{{ .namespace }}"
|
||||
---
|
||||
# This is a template for creating a k3s cluster via Crossplane
|
||||
# The actual implementation would use a Crossplane provider
|
||||
# to provision VMs and install k3s on them
|
||||
|
||||
19
gitops/templates/vm/debian-12.yaml
Normal file
19
gitops/templates/vm/debian-12.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
apiVersion: proxmox.yourorg.io/v1alpha1
|
||||
kind: VirtualMachineClaim
|
||||
metadata:
|
||||
name: "{{ .name }}"
|
||||
namespace: "{{ .namespace | default "default" }}"
|
||||
spec:
|
||||
compositionRef:
|
||||
name: virtualmachine.ubuntu.proxmox.yourorg.io
|
||||
parameters:
|
||||
name: "{{ .name }}"
|
||||
node: "{{ .node }}"
|
||||
cpu: {{ .cpu | default 2 }}
|
||||
memory: "{{ .memory | default "4Gi" }}"
|
||||
disk: "{{ .disk | default "50Gi" }}"
|
||||
storage: "{{ .storage | default "local-lvm" }}"
|
||||
network: "{{ .network | default "vmbr0" }}"
|
||||
image: "debian-12-cloud"
|
||||
site: "{{ .site }}"
|
||||
|
||||
19
gitops/templates/vm/ubuntu-20.04.yaml
Normal file
19
gitops/templates/vm/ubuntu-20.04.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
apiVersion: proxmox.yourorg.io/v1alpha1
|
||||
kind: VirtualMachineClaim
|
||||
metadata:
|
||||
name: "{{ .name }}"
|
||||
namespace: "{{ .namespace | default "default" }}"
|
||||
spec:
|
||||
compositionRef:
|
||||
name: virtualmachine.ubuntu.proxmox.yourorg.io
|
||||
parameters:
|
||||
name: "{{ .name }}"
|
||||
node: "{{ .node }}"
|
||||
cpu: {{ .cpu | default 2 }}
|
||||
memory: "{{ .memory | default "4Gi" }}"
|
||||
disk: "{{ .disk | default "50Gi" }}"
|
||||
storage: "{{ .storage | default "local-lvm" }}"
|
||||
network: "{{ .network | default "vmbr0" }}"
|
||||
image: "ubuntu-20.04-cloud"
|
||||
site: "{{ .site }}"
|
||||
|
||||
19
gitops/templates/vm/ubuntu-22.04.yaml
Normal file
19
gitops/templates/vm/ubuntu-22.04.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
apiVersion: proxmox.yourorg.io/v1alpha1
|
||||
kind: VirtualMachineClaim
|
||||
metadata:
|
||||
name: "{{ .name }}"
|
||||
namespace: "{{ .namespace | default "default" }}"
|
||||
spec:
|
||||
compositionRef:
|
||||
name: virtualmachine.ubuntu.proxmox.yourorg.io
|
||||
parameters:
|
||||
name: "{{ .name }}"
|
||||
node: "{{ .node }}"
|
||||
cpu: {{ .cpu | default 2 }}
|
||||
memory: "{{ .memory | default "4Gi" }}"
|
||||
disk: "{{ .disk | default "50Gi" }}"
|
||||
storage: "{{ .storage | default "local-lvm" }}"
|
||||
network: "{{ .network | default "vmbr0" }}"
|
||||
image: "ubuntu-22.04-cloud"
|
||||
site: "{{ .site }}"
|
||||
|
||||
Reference in New Issue
Block a user