2.5 KiB
2.5 KiB
Commands
go mod init github.com/Pingu-Studio/MaidnCLI go get -u github.com/spf13/cobra@latest go get golang.org/x/term go mod tidy go get gopkg.in/yaml.v3
in powershell run
go install github.com/go-delve/delve/cmd/dlv@latest
dlv version
Commands
cicd-tool repo init --org <org> --flux-repo <repo>creates the manifests and Flux reposcicd-tool bootstrapruns the user-facing wizard, saves a config YAML, clones the Talos IaC repo, writesterraform.tfvars, stages Talos images on Proxmox when enabled, and can execute Terraform, Talos bootstrap, and Flux bootstrapcicd-tool bootstrap --config maidn-bootstrap.yamlskips the wizard and uses the saved config
TODO
create the file: within the main flux repo dynamically changing the org and repo location based on the user's input
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: HelmRepository
metadata:
name: ghcr-charts
namespace: flux-system
spec:
interval: 5m
type: oci
url: oci://ghcr.io/pingu-studio
secretRef:
name: github-auth
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
name: cicd-deployment-manifests
namespace: flux-system
spec:
interval: 1m0s
url: https://github.com/Pingu-Studio/cicd-deployment-manifests
ref:
branch: main
secretRef:
name: github-auth
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: namespaces
namespace: flux-system
spec:
interval: 10m
path: ./namespaces
prune: true
sourceRef:
kind: GitRepository
name: cicd-deployment-manifests
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: preview-apps
namespace: flux-system
spec:
dependsOn:
- name: namespaces
interval: 2m0s
path: ./apps/previews
prune: true
sourceRef:
kind: GitRepository
name: cicd-deployment-manifests
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: staging-apps
namespace: flux-system
spec:
dependsOn:
- name: namespaces
interval: 2m0s
path: ./apps/staging
prune: true
sourceRef:
kind: GitRepository
name: cicd-deployment-manifests
and in the cicd-deployment-manifests repo create:
CICD-DEPLOYMENT-MANIFESTS ├── apps │ ├── previews │ │ └── .gitkeep │ ├── production │ │ └── .gitkeep │ └── staging │ └── .gitkeep ├── namespaces │ ├── kustomization.yaml │ ├── previews.yaml │ ├── production.yaml │ └── staging.yaml └── .gitkeep