From 84111b37ce1e84da211ccf29be1c8018a391cd6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Wed, 31 Dec 2025 20:27:59 +0000 Subject: [PATCH] using kustomization for deploy --- .devcontainer/.zshrc | 111 ------------------ .devcontainer/devcontainer.json | 1 - .devcontainer/scripts/postCreate.sh | 11 -- README.md | 35 +----- .../app/cronjobs}/backup-cronjob.yaml | 0 .../cronjobs/persistance-volumes-claims.yaml | 0 .../app/cronjobs}/secret.yaml | 0 deploy/app/kustomization.yaml | 17 +++ {nextcloud => deploy/helm}/.gitignore | 0 {nextcloud => deploy/helm}/values.yaml | 3 - deploy/infra/kustomization.yaml | 7 ++ deploy/infra/namespace.yaml | 6 + ops-scripts/apply-app.sh | 13 ++ ops-scripts/apply-infra.sh | 7 ++ 14 files changed, 55 insertions(+), 156 deletions(-) delete mode 100644 .devcontainer/.zshrc delete mode 100644 .devcontainer/scripts/postCreate.sh rename {jobs/backup => deploy/app/cronjobs}/backup-cronjob.yaml (100%) rename persistance-volumes-claims.yaml => deploy/app/cronjobs/persistance-volumes-claims.yaml (100%) rename {jobs/backup => deploy/app/cronjobs}/secret.yaml (100%) create mode 100644 deploy/app/kustomization.yaml rename {nextcloud => deploy/helm}/.gitignore (100%) rename {nextcloud => deploy/helm}/values.yaml (99%) create mode 100644 deploy/infra/kustomization.yaml create mode 100644 deploy/infra/namespace.yaml create mode 100755 ops-scripts/apply-app.sh create mode 100755 ops-scripts/apply-infra.sh diff --git a/.devcontainer/.zshrc b/.devcontainer/.zshrc deleted file mode 100644 index 415d1b8..0000000 --- a/.devcontainer/.zshrc +++ /dev/null @@ -1,111 +0,0 @@ -# If you come from bash you might have to change your $PATH. -# export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH - -# Path to your Oh My Zsh installation. -export ZSH="$HOME/.oh-my-zsh" - -# Set name of the theme to load --- if set to "random", it will -# load a random theme each time Oh My Zsh is loaded, in which case, -# to know which specific one was loaded, run: echo $RANDOM_THEME -# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes -ZSH_THEME="gnzh" - -# Set list of themes to pick from when loading at random -# Setting this variable when ZSH_THEME="devcontainers" -# a theme from this variable instead of looking in $ZSH/themes/ -# If set to an empty array, this variable will have no effect. -# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) - -# Uncomment the following line to use case-sensitive completion. -# CASE_SENSITIVE="true" - -# Uncomment the following line to use hyphen-insensitive completion. -# Case-sensitive completion must be off. _ and - will be interchangeable. -# HYPHEN_INSENSITIVE="true" - -# Uncomment one of the following lines to change the auto-update behavior -# zstyle ':omz:update' mode disabled # disable automatic updates -# zstyle ':omz:update' mode auto # update automatically without asking -# zstyle ':omz:update' mode reminder # just remind me to update when it's time - -# Uncomment the following line to change how often to auto-update (in days). -# zstyle ':omz:update' frequency 13 - -# Uncomment the following line if pasting URLs and other text is messed up. -# DISABLE_MAGIC_FUNCTIONS="true" - -# Uncomment the following line to disable colors in ls. -# DISABLE_LS_COLORS="true" - -# Uncomment the following line to disable auto-setting terminal title. -# DISABLE_AUTO_TITLE="true" - -# Uncomment the following line to enable command auto-correction. -# ENABLE_CORRECTION="true" - -# Uncomment the following line to display red dots whilst waiting for completion. -# You can also set it to another string to have that shown instead of the default red dots. -# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" -# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) -# COMPLETION_WAITING_DOTS="true" - -# Uncomment the following line if you want to disable marking untracked files -# under VCS as dirty. This makes repository status check for large repositories -# much, much faster. -# DISABLE_UNTRACKED_FILES_DIRTY="true" - -# Uncomment the following line if you want to change the command execution time -# stamp shown in the history command output. -# You can set one of the optional three formats: -# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" -# or set a custom format using the strftime function format specifications, -# see 'man strftime' for details. -# HIST_STAMPS="mm/dd/yyyy" - -# Would you like to use another custom folder than $ZSH/custom? -# ZSH_CUSTOM=/path/to/new-custom-folder - -# Which plugins would you like to load? -# Standard plugins can be found in $ZSH/plugins/ -# Custom plugins may be added to $ZSH_CUSTOM/plugins/ -# Example format: plugins=(rails git textmate ruby lighthouse) -# Add wisely, as too many plugins slow down shell startup. -plugins=(git timer web-search ssh kubectl helm colorize zsh-autosuggestions fast-syntax-highlighting) -ZSH_COLORIZE_TOOL=chroma - -source $ZSH/oh-my-zsh.sh - -# User configuration - -# export MANPATH="/usr/local/man:$MANPATH" - -# You may need to manually set your language environment -# export LANG=en_US.UTF-8 - -# Preferred editor for local and remote sessions -# if [[ -n $SSH_CONNECTION ]]; then -# export EDITOR='vim' -# else -# export EDITOR='nvim' -# fi - -# Compilation flags -# export ARCHFLAGS="-arch $(uname -m)" - -# Set personal aliases, overriding those provided by Oh My Zsh libs, -# plugins, and themes. Aliases can be placed here, though Oh My Zsh -# users are encouraged to define aliases within a top-level file in -# the $ZSH_CUSTOM folder, with .zsh extension. Examples: -# - $ZSH_CUSTOM/aliases.zsh -# - $ZSH_CUSTOM/macos.zsh -# For a full list of active aliases, run `alias`. -# -# Example aliases -# alias zshconfig="mate ~/.zshrc" -# alias ohmyzsh="mate ~/.oh-my-zsh" -DISABLE_AUTO_UPDATE=true -DISABLE_UPDATE_PROMPT=true -export FAST_HIGHLIGHT_CHROMA_PATH="/home/vscode/lib/chroma" -export FAST_HIGHLIGHT_CHROMA=1 -export PATH=$PATH:/home/vscode/lib - diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 45490b0..665e7f0 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -4,7 +4,6 @@ "remoteUser": "vscode", "runArgs": ["--hostname=cloud-limbosolutions-com-dev-container"], "mounts": [ - "source=${localWorkspaceFolder}/.devcontainer/.zshrc,target=/home/vscode/.zshrc,type=bind", "source=${localWorkspaceFolder}/.devcontainer/.kube,target=/home/vscode/.kube,type=bind", "source=${localEnv:HOME}/.gitconfig,target=/home/vscode/.gitconfig,type=bind,consistency=cached", "source=${localEnv:HOME}/.ssh,target=/home/vscode/.ssh,type=bind,consistency=cached" diff --git a/.devcontainer/scripts/postCreate.sh b/.devcontainer/scripts/postCreate.sh deleted file mode 100644 index 098f105..0000000 --- a/.devcontainer/scripts/postCreate.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/zsh - -#setup chroma for zsh colorize -mkdir -p ~/lib -curl -Lo ~/lib/chroma https://github.com/alecthomas/chroma/releases/latest/download/chroma-linux-amd64 -chmod +x ~/lib/chroma - -git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/fast-syntax-highlighting -git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions - - diff --git a/README.md b/README.md index 287a8fd..be7b780 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,7 @@ Using [NextCloud](https://nextcloud.com/) - [repair tree](#repair-tree) - [delete file locks](#delete-file-locks) - [Setup](#setup) - - [kubernetes Namespace](#kubernetes-namespace) - - [Add helm chart](#add-helm-chart) - - [Update Helm chart](#update-helm-chart) - - [Install / Update](#install--update) +- [Requirements - infra](#requirements---infra) ## command @@ -65,34 +62,12 @@ su -s /bin/bash www-data -c "php occ files:repair-tree" ## Setup -### kubernetes Namespace - -``` yaml -apiVersion: v1 -kind: Namespace -metadata: - name: cloud-limbosolutions-com - labels: - name: cloud-limbosolutions-com +```bash +./ops-scripts/apply-app.sh ``` -### Add helm chart - -``` bash -helm repo add nextcloud https://nextcloud.github.io/helm/ -``` - -### Update Helm chart +## Requirements - infra ```bash -helm repo update nextcloud -``` - -### Install / Update - -``` bash -helm upgrade --install nextcloud nextcloud/nextcloud \ ---values ./nextcloud/values.yaml \ ---values ./nextcloud/values.local.yaml \ ---namespace=cloud-limbosolutions-com +./ops-scripts/apply-infra.sh ``` diff --git a/jobs/backup/backup-cronjob.yaml b/deploy/app/cronjobs/backup-cronjob.yaml similarity index 100% rename from jobs/backup/backup-cronjob.yaml rename to deploy/app/cronjobs/backup-cronjob.yaml diff --git a/persistance-volumes-claims.yaml b/deploy/app/cronjobs/persistance-volumes-claims.yaml similarity index 100% rename from persistance-volumes-claims.yaml rename to deploy/app/cronjobs/persistance-volumes-claims.yaml diff --git a/jobs/backup/secret.yaml b/deploy/app/cronjobs/secret.yaml similarity index 100% rename from jobs/backup/secret.yaml rename to deploy/app/cronjobs/secret.yaml diff --git a/deploy/app/kustomization.yaml b/deploy/app/kustomization.yaml new file mode 100644 index 0000000..b35a41f --- /dev/null +++ b/deploy/app/kustomization.yaml @@ -0,0 +1,17 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - cronjobs/backups/backup-borg-offsite-cronjob.yaml + - cronjobs/backups/backup-pbs-cronjob.yaml + +secretGenerator: +- name: gitea-backup + namespace: git-limbosolutions-com + envs: + - cronjobs/backups/.env.d/secrets + files: + - BORG_KEY=cronjobs/backups/.env.d/borg_key + - SSH_ID_RSA=cronjobs/backups/.env.d/id_rsa + +generatorOptions: + disableNameSuffixHash: true \ No newline at end of file diff --git a/nextcloud/.gitignore b/deploy/helm/.gitignore similarity index 100% rename from nextcloud/.gitignore rename to deploy/helm/.gitignore diff --git a/nextcloud/values.yaml b/deploy/helm/values.yaml similarity index 99% rename from nextcloud/values.yaml rename to deploy/helm/values.yaml index 34f9129..a81f063 100644 --- a/nextcloud/values.yaml +++ b/deploy/helm/values.yaml @@ -86,11 +86,9 @@ nextcloud: - name: mf-documents persistentVolumeClaim: claimName: mf-documents-storage-limbosolutions-com - - name: mf-photos persistentVolumeClaim: claimName: mf-photos-storage-limbosolutions-com - - name: media-gaming persistentVolumeClaim: claimName: media-gaming-storage-limbosolutions-com @@ -103,7 +101,6 @@ nextcloud: - name: it-storage persistentVolumeClaim: claimName: itstorage-storage-limbosolutions-com - - name: mf-nexcloud persistentVolumeClaim: claimName: mf-nexcloud-storage-limbosolutions-com diff --git a/deploy/infra/kustomization.yaml b/deploy/infra/kustomization.yaml new file mode 100644 index 0000000..8ccaf3c --- /dev/null +++ b/deploy/infra/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - namespace.yaml + +generatorOptions: + disableNameSuffixHash: true \ No newline at end of file diff --git a/deploy/infra/namespace.yaml b/deploy/infra/namespace.yaml new file mode 100644 index 0000000..a451744 --- /dev/null +++ b/deploy/infra/namespace.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: cloud-limbosolutions-com + labels: + name: cloud-limbosolutions-com \ No newline at end of file diff --git a/ops-scripts/apply-app.sh b/ops-scripts/apply-app.sh new file mode 100755 index 0000000..61328c5 --- /dev/null +++ b/ops-scripts/apply-app.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -e +echo "Executing app deploy." + +#kubectl kustomize deploy/app | kubectl apply -f - + +helm repo add nextcloud https://nextcloud.github.io/helm/ 2>/dev/null || true +helm repo update nextcloud + +helm upgrade --install nextcloud nextcloud/nextcloud \ +--values ./deploy/helm/values.yaml \ +--values ./deploy/helm/values.local.yaml \ +--namespace=cloud-limbosolutions-com \ No newline at end of file diff --git a/ops-scripts/apply-infra.sh b/ops-scripts/apply-infra.sh new file mode 100755 index 0000000..e74bf60 --- /dev/null +++ b/ops-scripts/apply-infra.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -e +echo "Executing infra deploy." + +kubectl kustomize deploy/infra | kubectl apply -f - + +