diff --git a/.dockerignore b/.dockerignore index e88c8ff..fbc5c0c 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,17 +1,4 @@ -.git/**/* -.git - -node_modules/**/* node_modules - -src/static/**/* -src/static - -scripts/**/* +static scripts -chart/**/* -chart - -kube/**/* -kube diff --git a/.drone.yml b/.drone.yml index 237c634..9353332 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,125 +1,176 @@ -# ---------------------------------------------- -# -- Update the helm chart -# ---------------------------------------------- -kind: pipeline -type: docker -name: Publish the helm chart -trigger: - event: - - push -steps: - - name: Publish the Helm chart - image: alpine/helm - environment: - GITEA_TOKEN: - from_secret: GITEA_TOKEN - commands: - - helm plugin install https://github.com/chartmuseum/helm-push - - helm package chart -d chart-package - - helm repo add --username allanger --password $GITEA_TOKEN badhouseplants-net https://git.badhouseplants.net/api/packages/badhouseplants/helm - - helm cm-push "./chart-package/$(ls chart-package)" badhouseplants-net --- # ---------------------------------------------- # -- Build the site and push it to the registry # ---------------------------------------------- kind: pipeline -type: docker +type: kubernetes name: Build badhouseplants.net + trigger: event: - - push -clone: - disable: true + - push + steps: - - name: clone - image: alpine/git - environment: - GIT_LFS_SKIP_SMUDGE: 0 - commands: - - git clone $DRONE_REMOTE_URL . - - git checkout $DRONE_BRANCH - - git submodule update --init --recursive - - name: Test a build - image: git.badhouseplants.net/badhouseplants/hugo-container - depends_on: - - clone - commands: - - hugo -s ./src - - name: Build and push the docker image - image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:9665015b44590b7ce2139f7acbad23af6628fff3 - privileged: true - depends_on: - - Test a build - environment: - BUILDER_COMMIT: 2449b73b13a62ae916c6703778d096e5290157b3 - GITEA_TOKEN: - from_secret: GITEA_TOKEN - commands: - - rm -rf $DRONE_WORKSPACE/src/assets/ - - ./scripts/build-container.pl - - name: Sync pictures from lfs to Minio - image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:9665015b44590b7ce2139f7acbad23af6628fff3 - depends_on: - - Test a build - environment: - RCLONE_CONFIG_CONTENT: - from_secret: RCLONE_CONFIG_CONTENT_PRIVATE - RCLONE_CONFIG: /tmp/rclone.conf - commands: - - echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG - - ./scripts/upload-media.pl - - name: Deploy the application - image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:9665015b44590b7ce2139f7acbad23af6628fff3 - depends_on: - - Build and push the docker image - - Sync pictures from lfs to Minio - environment: - ARGOCD_SERVER: - from_secret: ARGOCD_SERVER - ARGOCD_AUTH_TOKEN: - from_secret: ARGOCD_AUTH_TOKEN - ARGO_GITHUB_OAUTH_KEY: - from_secret: GITHUB_OAUTH_KEY - ARGO_GOOGLE_OAUTH_KEY: - from_secret: GOOGLE_OAUTH_KEY - commands: - - ./scripts/deploy-app.pl - - name: Cleanup everything - image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:9665015b44590b7ce2139f7acbad23af6628fff3 - depends_on: - - Deploy the application - environment: - RCLONE_CONFIG_CONTENT: - from_secret: RCLONE_CONFIG_CONTENT_PRIVATE - RCLONE_CONFIG: /tmp/rclone.conf - GITEA_TOKEN: - from_secret: GITEA_TOKEN - ARGOCD_SERVER: - from_secret: ARGOCD_SERVER - ARGOCD_AUTH_TOKEN: - from_secret: ARGOCD_AUTH_TOKEN - commands: - - echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG - - ./scripts/cleanup.pl +- name: Publish the Helm chart + image: alpine/helm + environment: + GITEA_TOKEN: + from_secret: GITEA_TOKEN + commands: + - helm plugin install https://github.com/chartmuseum/helm-push + - helm package chart -d chart-package + - helm repo add --username allanger --password $GITEA_TOKEN badhouseplants-net https://git.badhouseplants.net/api/packages/badhouseplants/helm + - helm cm-push "./chart-package/$(ls chart-package)" badhouseplants-net + +- name: Init git submodules with themes + image: alpine/git + commands: + - git submodule update --init --recursive + +- name: Test a build + image: git.badhouseplants.net/badhouseplants/hugo-builder + commands: + - hugo + +- name: Build and push the docker image + image: plugins/docker + when: + branch: + exclude: + - main + settings: + registry: git.badhouseplants.net + username: allanger + password: + from_secret: GITEA_TOKEN + repo: git.badhouseplants.net/${DRONE_REPO} + tags: ${DRONE_COMMIT_SHA} + +- name: Build and push the docker image with latest + image: plugins/docker + when: + branch: + - main + settings: + registry: git.badhouseplants.net + username: allanger + password: + from_secret: GITEA_TOKEN + repo: git.badhouseplants.net/${DRONE_REPO} + tags: + - ${DRONE_COMMIT_SHA} + - latest + +- name: Deploy a preview ApplicationSet + image: alpine/k8s:1.24.10 + when: + branch: + exclude: + - main + environment: + KUBECONFIG_CONTENT: + from_secret: KUBECONFIG_CONTENT + commands: + - mkdir $HOME/.kube + - echo $KUBECONFIG_CONTENT | base64 -d > $HOME/.kube/config + - apk update --no-cache && apk add yq gettext openssl + - export ARGO_APP_CHART_VERSION=`cat chart/Chart.yaml | yq '.version'` + - export ARGO_APP_BRANCH=$DRONE_BRANCH + - export ARGO_APP_HOSTNAME="${DRONE_BRANCH}-dev.badhouseplants.net" + - export ARGO_APP_IMAGE_TAG=$DRONE_COMMIT_SHA + - export ARGO_REMARK42_SECRET=$(openssl rand -hex 12) + - kubectl get -f ./kube/applicationset.yaml -o yaml > /tmp/appset.yaml + - yq -i "del(.metadata.resourceVersion)" /tmp/appset.yaml + - yq -i "del(.metadata.generation)" /tmp/appset.yaml + - yq -i "del(.metadata.uid)" /tmp/appset.yaml + - yq -i "del(.status)" /tmp/appset.yaml + - yq -i "del(.spec.generators[].list.elements[] | select(.branch == \"$ARGO_APP_BRANCH\"))" /tmp/appset.yaml + - envsubst < ./kube/template.yaml > /tmp/elements.yaml + - yq -i '.spec.generators[].list.elements += load("/tmp/elements.yaml")' /tmp/appset.yaml + - kubectl apply -f /tmp/appset.yaml + +- name: Deploy a main ApplicationSet + image: alpine/k8s:1.24.10 + when: + branch: + - main + environment: + KUBECONFIG_CONTENT: + from_secret: KUBECONFIG_CONTENT + ARGO_GITHUB_OAUTH_KEY: + from_secret: GITHUB_OAUTH_KEY + ARGO_GOOGLE_OAUTH_KEY: + from_secret: GOOGLE_OAUTH_KEY + commands: + - mkdir $HOME/.kube + - echo $KUBECONFIG_CONTENT | base64 -d > $HOME/.kube/config + - apk update --no-cache && apk add yq gettext + - export ARGO_APP_CHART_VERSION=`cat chart/Chart.yaml | yq '.version'` + - export ARGO_APP_BRANCH=$DRONE_BRANCH + - export ARGO_APP_IMAGE_TAG=$DRONE_COMMIT_SHA + - kubectl get -f ./kube/applicationset.yaml -o yaml > /tmp/appset.yaml + - yq -i "del(.metadata.resourceVersion)" /tmp/appset.yaml + - yq -i "del(.metadata.generation)" /tmp/appset.yaml + - yq -i "del(.metadata.uid)" /tmp/appset.yaml + - yq -i "del(.status)" /tmp/appset.yaml + - yq -i "del(.spec.generators[].list.elements[] | select(.branch == \"$ARGO_APP_BRANCH\"))" /tmp/appset.yaml + - yq -i "del(.spec.generators[].list.elements[] | select(.commit_sha == \"$ARGO_APP_IMAGE_TAG\"))" /tmp/appset.yaml + - envsubst < ./kube/main.yaml > /tmp/elements.yaml + - yq -i '.spec.generators[].list.elements += load("/tmp/elements.yaml")' /tmp/appset.yaml + - kubectl apply -f /tmp/appset.yaml + +- name: Sync application + image: argoproj/argocd + environment: + ARGOCD_SERVER: + from_secret: ARGOCD_SERVER + ARGOCD_AUTH_TOKEN: + from_secret: ARGOCD_AUTH_TOKEN + commands: + - argocd app sync -l app=badhouseplants -l branch=$DRONE_BRANCH + - argocd app wait -l app=badhouseplants -l branch=$DRONE_BRANCH + +- name: Cleanup container registry + image: alpine + environment: + GITEA_TOKEN: + from_secret: GITEA_TOKEN + commands: + - apk update + - apk add curl jq perl git + - ./scripts/cleanup.pl + --- +# ---------------------------------------------- +# -- Upload a newer version of my CV +# ---------------------------------------------- kind: pipeline -type: docker -name: Spell-Checker +type: kubernetes +name: CV Builder + trigger: + branch: + - main event: - - push -clone: - disable: true + - push + steps: - - name: clone - image: alpine/git + - name: Build the CV + image: ghcr.io/puppeteer/puppeteer + commands: + - cp -R ./content/cv/* $HOME + - cd $HOME + - npm install md-to-pdf + - npx md-to-pdf index.md + - mkdir $DRONE_WORKSPACE/cv + - mv index.pdf $DRONE_WORKSPACE/cv/n.rodionov.pdf + + - name: Upload the CV + image: rclone/rclone:latest environment: - GIT_LFS_SKIP_SMUDGE: 1 + RCLONE_CONFIG_CONTENT: + from_secret: RCLONE_CONFIG_CONTENT_PRIVATE + RCLONE_CONFIG: /tmp/rclone.conf commands: - - git clone $DRONE_REMOTE_URL --recurse-submodules . - - git checkout $DRONE_BRANCH - - name: Spell-Checker - image: node - commands: - - npm i markdown-spellcheck -g - - mdspell "src/content/**/*.md" -n -r + - echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG + - rclone copy -P $DRONE_WORKSPACE/cv badhouseplants-minio:/public-download diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index c2b8e77..0000000 --- a/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -src/static/** filter=lfs diff=lfs merge=lfs -text -src/static/**/* filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore index de40ffb..3110b1b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ -src/node_modules -src/public -src/resources -.hugo_build.lock +node_modules +static +content/cv/index.pdf +public +resources diff --git a/.gitmodules b/.gitmodules index 6c34b41..311fa4c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "src/themes/stack"] - path = src/themes/stack - url = https://github.com/CaiJimmy/hugo-theme-stack.git +[submodule "themes/papermod"] + path = themes/papermod + url = https://github.com/adityatelange/hugo-PaperMod.git diff --git a/src/content/music/_index.md b/.hugo_build.lock similarity index 100% rename from src/content/music/_index.md rename to .hugo_build.lock diff --git a/.spelling b/.spelling deleted file mode 100644 index 6cb1d43..0000000 --- a/.spelling +++ /dev/null @@ -1,161 +0,0 @@ -# markdown-spellcheck spelling configuration file -# Format - lines beginning # are comments -# global dictionary is at the start, file overrides afterwards -# one word per line, to define a file override use ' - filename' -# where filename is relative to this configuration file -WIP -envs -anymore -hostname -hostnames -Dockerfile -helmfile -k8s -env -dir -dev'n'stages -oi -minio -ArgoCD -setups -SRE -autoscaler -gitea -vendoring -cli -vpa -ok -cmp -config -GitOps -argo -argocding -cluster-1 -cluster-2 -cluster-3 -kubernetes -argocd -helmfiles -plugin -helmfile.yaml -cleanup -serie -backend -js -frontend -ShowToc -cover.png -allanger -DIY -DevOps -funkwhale -PSY -bandcamp -soundcloud -spotify -deezer -prog-rock -oveleane -IDM -gitlab -bitwarden -elasticsearch -grafana -lifecycle -auditable -the-first-production-grafaba -grafana -applicationsets -helm-releases-v2 -yaml -CR -minecraft -github -ddosed -VST -Xfer -plugins -yabridgectl -yabridge -DAW -polyverse -camelcrusher -standalone -url -glitchmachines -MacBook -configs -behaviour -FreqEcho -DSP -Supermassive -Ableton -Softube -center -iZotope -V2 -auth -README.md -TAL-Chorus-LX -badhouseplants -Deelay -Gatelab -Filterstep -Panflow -PaulXStretch -Audiomodern -Kushview -JUCE -Melda -MDrummer -GBs -laggy -MDrumReplacer -MPowerSynth -MGuitarArchitect -u-he -TyrellN6 -Tyrell -install.sh -MGuitarArchitect -Amazona.de. -Bitwig -ProjectSAM -Pendulate -Protoverb -Eurorack -S3 -XT -Ruina -VCV -LFO -beatmaker -wavetables -OSC -YOUTUBE -Twelve50TV -Robotik -McRoy -brah -aw -shite -lowrider -mdma -nah -clubby -MGK -params - - src/themes/papermod/README.md -PaperMod -hugo-paper -og -ExampleSite -exampleSite -pipelining -Fuse.js -webpack -nodejs -Pagespeed -Highlight.js -2023-02-25T14 -argocd-dynamic-environment-per-branch-part-1 diff --git a/.woodpecker.yml b/.woodpecker.yml deleted file mode 100644 index 3189887..0000000 --- a/.woodpecker.yml +++ /dev/null @@ -1,93 +0,0 @@ ---- -when: - event: - - push - -steps: - - image: alpine/helm - name: Publish the Helm chart - commands: - - helm plugin install https://github.com/chartmuseum/helm-push - - helm package chart -d chart-package - - helm repo add --username allanger --password $GITEA_TOKEN badhouseplants-net https://git.badhouseplants.net/api/packages/badhouseplants/helm - - helm cm-push "./chart-package/$(ls chart-package)" badhouseplants-net - secrets: - - gitea_token - - - name: Test a build - image: git.badhouseplants.net/badhouseplants/hugo-container - commands: - - hugo -s ./src - - - name: Build and push the docker image - image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:latest - privileged: true - depends_on: - - Test a build - secrets: - - gitea_token - environment: - BUILDER_COMMIT: 2449b73b13a62ae916c6703778d096e5290157b3 - commands: - - rm -rf $DRONE_WORKSPACE/src/assets/ - - ./scripts/build-container.pl - backend_options: - kubernetes: - resources: - requests: - memory: 500Mi - cpu: 200m - limits: - memory: 1000Mi - cpu: 1000m - securityContext: - privileged: true - - - name: Sync pictures from lfs to Minio - image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:latest - depends_on: - - Test a build - secrets: - - rclone_config_content - environment: - RCLONE_CONFIG: /tmp/rclone.conf - commands: - - echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG - - ./scripts/upload-media.pl - - - name: Deploy the application - image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:latest - depends_on: - - Build and push the docker image - - Sync pictures from lfs to Minio - secrets: - - gitea_token - - argocd_auth_token - - argo_github_oauth_key - - argo_google_oauth_key - environment: - ARGOCD_SERVER: https://argo.badhouseplants.net:443 - commands: - - ./scripts/deploy-app.pl - - - name: Cleanup everything - image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:latest - depends_on: - - Deploy the application - secrets: - - gitea_token - - argocd_auth_token - - rclone_config_content - environment: - ARGOCD_SERVER: argo.badhouseplants.net:443 - RCLONE_CONFIG: /tmp/rclone.conf - commands: - - echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG - - ./scripts/cleanup.pl - - - name: Spell-Checker - failure: ignore - image: node - commands: - - npm i markdown-spellcheck -g - - mdspell "src/content/**/*.md" -n -r diff --git a/Containerfile b/Containerfile deleted file mode 100644 index 9979a54..0000000 --- a/Containerfile +++ /dev/null @@ -1,4 +0,0 @@ -FROM git.badhouseplants.net/badhouseplants/hugo-container:43fd807fea2238853f48f95a435081d88857bb79 -WORKDIR /src -COPY ./src /src -ENTRYPOINT ["hugo"] diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..388a6cd --- /dev/null +++ b/Dockerfile @@ -0,0 +1,4 @@ +FROM git.badhouseplants.net/badhouseplants/hugo-builder +WORKDIR /src +COPY . /src +ENTRYPOINT ["hugo"] diff --git a/Makefile b/Makefile index 943dcdb..6a783d5 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,9 @@ -init: lfs submodules -lfs: - git lfs pull +upload_static: + rclone copy -P static badhouseplants-minio:/badhouseplants-static + +get_static: + rclone copy -P badhouseplants-public:/badhouseplants-static static + submodules: git submodule update --init --recursive diff --git a/README.md b/README.md index 7ca4a73..b10608b 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,4 @@ # Badhouseplants NET -## About -- To be done ## Static content Storing static content in the repo is painful, because there are massive. That's why for storing them I'm using a S3 bucket that is publicly available for downstream operations - - diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..d669718 --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,12 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +draft: true +ShowToc: true +cover: + image: "cover.png" + caption: "{{ replace .Name "-" " " | title }}" + relative: false + responsiveImages: false +--- + diff --git a/chart/Chart.yaml b/chart/Chart.yaml index 96d4f43..ae7d462 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -2,10 +2,11 @@ apiVersion: v2 name: badhouseplants-net description: A Helm chart for Kubernetes type: application -version: 0.9.0 +version: 0.5.8 appVersion: "4.20.0" dependencies: - name: remark42 - version: 0.7.0 + version: 0.5.5 repository: https://groundhog2k.github.io/helm-charts/ condition: remark42.enabled + diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml index 7b0ee77..b7f3906 100644 --- a/chart/templates/deployment.yaml +++ b/chart/templates/deployment.yaml @@ -35,7 +35,7 @@ spec: - sh args: - "-c" - - {{ .Values.rclone.command }} + - "rclone copy -P badhouseplants-public:/badhouseplants-static /static" volumeMounts: - name: rclone-config mountPath: "/tmp" @@ -60,7 +60,7 @@ spec: volumeMounts: - name: {{ .Values.volumes.rclone.name }} mountPath: /src/static - readOnly: false + readOnly: true - name: {{ .Values.volumes.public.name }} mountPath: /src/public readOnly: false @@ -88,7 +88,7 @@ spec: volumes: - name: rclone-config secret: - secretName: rclone-config-{{ .Release.Name }} + secretName: rclone-config - name: {{ .Values.volumes.rclone.name }} emptyDir: sizeLimit: {{ .Values.volumes.rclone.sizeLimit }} @@ -97,5 +97,5 @@ spec: sizeLimit: {{ .Values.volumes.public.sizeLimit }} - name: nginx-config configMap: - name: nginx-config-{{ .Release.Name }} + name: nginx-config diff --git a/chart/templates/namespace.yaml b/chart/templates/namespace.yaml new file mode 100644 index 0000000..a16fa00 --- /dev/null +++ b/chart/templates/namespace.yaml @@ -0,0 +1,16 @@ +{{- if .Values.istio.enabled -}} +apiVersion: v1 +kind: Namespace +metadata: + name: {{ .Values.namespace.name }} + labels: + {{- include "badhouseplants-net.labels" . | nindent 4 }} + {{- range $key, $value := .Values.namespace.labels}} + {{ $key }}: {{ $value }} + {{- end }} + {{- with .Values.namespace.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} + +{{- end }} \ No newline at end of file diff --git a/chart/templates/nginx-config-cm.yaml b/chart/templates/nginx-config-cm.yaml index bcaab33..e8e1d38 100644 --- a/chart/templates/nginx-config-cm.yaml +++ b/chart/templates/nginx-config-cm.yaml @@ -1,7 +1,7 @@ apiVersion: v1 kind: ConfigMap metadata: - name: nginx-config-{{ .Release.Name }} + name: nginx-config labels: {{- include "badhouseplants-net.labels" . | nindent 4 }} data: diff --git a/chart/templates/rclone-config-sec.yaml b/chart/templates/rclone-config-sec.yaml index bd529a7..8e20719 100644 --- a/chart/templates/rclone-config-sec.yaml +++ b/chart/templates/rclone-config-sec.yaml @@ -1,7 +1,7 @@ apiVersion: v1 kind: Secret metadata: - name: rclone-config-{{ .Release.Name }} + name: rclone-config labels: {{- include "badhouseplants-net.labels" . | nindent 4 }} type: generic diff --git a/chart/templates/virtual-service.yaml b/chart/templates/virtual-service.yaml new file mode 100644 index 0000000..0db7593 --- /dev/null +++ b/chart/templates/virtual-service.yaml @@ -0,0 +1,57 @@ +{{- if .Values.istio.enabled -}} +apiVersion: networking.istio.io/v1beta1 +kind: VirtualService +metadata: + name: {{ include "badhouseplants-net.fullname" . }} + labels: + {{- include "badhouseplants-net.labels" . | nindent 4 }} + {{- with .Values.istio.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + gateways: + - istio-system/badhouseplants-net + hosts: + {{- range .Values.istio.hosts}} + - {{ . }} + {{- end }} + http: + - match: + - uri: + prefix: {{ .Values.istio.prefix }} + route: + - destination: + host: {{ include "badhouseplants-net.fullname" . }} + port: + number: {{ .Values.service.port }} +{{- end }} +--- +{{- if .Values.remark42.istio.enabled -}} +apiVersion: networking.istio.io/v1beta1 +kind: VirtualService +metadata: + name: {{ include "remark42.fullname" . }}-remark42 + labels: + {{- include "badhouseplants-net.labels" . | nindent 4 }} + {{- with .Values.remark42.istio.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + gateways: + - istio-system/badhouseplants-net + hosts: + {{- range .Values.remark42.istio.hosts}} + - {{ . }} + {{- end }} + http: + - match: + - uri: + prefix: {{ .Values.remark42.istio.prefix }} + route: + - destination: + host: {{ .Release.Name }}-remark42 + port: + number: {{ .Values.remark42.service.port }} +{{- end }} diff --git a/chart/values.yaml b/chart/values.yaml index c0463a3..8e9618d 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -1,20 +1,26 @@ replicaCount: 1 -nginx: +namespace: + annotations: {} + labels: + istio-injection: enabled + enabled: true + name: badhouseplants-application + +nginx: container: name: nginx resources: {} - image: + image: repository: nginx pullPolicy: Always tag: latest - + rclone: - command: "rclone copy -P badhouseplants-public:/badhouseplants-net-main /static" container: name: rclone resources: {} - image: + image: repository: rclone/rclone pullPolicy: Always tag: latest @@ -30,7 +36,7 @@ hugo: container: name: badhouseplants-net resources: {} - image: + image: repository: git.badhouseplants.net/badhouseplants/badhouseplants-net pullPolicy: Always tag: latest @@ -39,19 +45,27 @@ hugo: env: HUGO_PARAMS_GITBRANCH: main +istio: + annotations: {} + enabled: true + hosts: + - badhouseplants.net + - www.badhouseplants.net + prefix: / + volumes: # ---------------------------------------------- - # -- An emptydir volume where hugo should + # -- An emptydir volume where hugo should # -- put the static content # ---------------------------------------------- public: name: public-content - sizeLimit: 1Gi + sizeLimit: 1Gi # ---------------------------------------------- - # -- An emptydir volume where rclone should + # -- An emptydir volume where rclone should # -- download pictures # ---------------------------------------------- - rclone: + rclone: name: s3-data sizeLimit: 1Gi diff --git a/config.yaml b/config.yaml new file mode 100644 index 0000000..e1b92a9 --- /dev/null +++ b/config.yaml @@ -0,0 +1,70 @@ +#baseURL: 'https://badhouseplants.net/' +languageCode: 'en-us' +title: 'Bad Houseplants' +theme: 'papermod' +menu: + main: + - name: Posts + url: /posts + weight: 10 + - name: Music + url: /music + weight: 11 + - name: Beats + url: /beats + weight: 12 + - name: About + url: /about + weight: 13 + - name: Search + url: /search + weight: 14 +taxonomies: + tag: tags +params: + GitBranch: main + Remark42ID: remark + Remark42URL: https://remark42.badhouseplants.net + ShowBreadCrumbs: true + ShowReadingTime: true + ShowPostNavLinks: true + ShowCodeCopyButtons: true + comments: true + profileMode: + enabled: true + title: "Bad Houseplants" + subtitle: "... by allanger" + imageUrl: "Finish.png" + imageWidth: 150 + imageHeight: 150 + buttons: + - name: Source + url: "https://git.badhouseplants.net/badhouseplants/badhouseplants-net" + - name: My Music + url: "https://funkwhale.badhouseplants.net/library/artists" + socialIcons: + - name: "telegram" + url: "https://t.me/allanger" + - name: "twitter" + url: "https://twitter.com/_allanger" + - name: "mastodon" + url: "https://mastodon.social/@allanger" + - name: github + url: 'https://github.com/allanger' + - name: email + url: 'mailto:allanger@zohomail.com' + ShowShareButtons: true + ShareButtons: ["telegram", "twitter", "reddit", "linkedin"] + env: production + title: Bad Houseplants + description: "...by allanger" + keywords: [Blog, Portfolio] + author: allanger + DateFormat: "January 2, 2006" + defaultTheme: auto +outputs: + home: + - HTML + - RSS + - JSON + diff --git a/content/about/_index.md b/content/about/_index.md new file mode 100644 index 0000000..97c9ac6 --- /dev/null +++ b/content/about/_index.md @@ -0,0 +1,27 @@ +--- +title: About +date: 2023-01-24T09:26:52+01:00 +draft: false +--- + + +It was supposed to be just yet another web page with musical releases reviews, but after trying to write something like that, I've found out that I'm not good at it. So I've decided to start a blog where I can write anything that comes to my mind. + + + + +> The last build is [![Build Status](https://drone.badhouseplants.net/api/badges/badhouseplants/badhouseplants-net/status.svg?ref=refs/heads/{{< param GitBranch >}})](https://drone.badhouseplants.net/badhouseplants/badhouseplants-net) + +### What is Bad Houseplants? + +> **allanger** +> +> *Actually, I'm not sure yet. I wanted it to be something about music, but I found out that musical industry is not very welcoming, and I don't know what exactly I > can do there. Creating music is somehow an intimate process to me, so I can't share a lot about it. The whole distributing thing is a black-box, and I wouldn't like to be a part of it, until anything is changed. I wanted to do musical reviews, but there are tons of guys who already do it a way better than I can. So I've given up on music here. I still hope that one day I'll open a recording studio under this name, but I'm not sure when it's even going to be possible. The second thing that I can talk about is IT. I think it can be interesting, but I don't want to kind of stigmatized as an IT blogger. And then I've decided that I would like to write something about indie culture, about DIY philosophy and all this punk related stuff. So let's say that is a blog about indie* + +### Wanna join? + +If you want to publish anything here, I don't mind. But for doing that you need to have at least basic `git` knowledge because this blog is written as code. You can check the [source code](https://git.badhouseplants.net/badhouseplants/badhouseplants-net) to understand if you're ready or not. I'm hosting my own `Gitea` instance, so you will have to request an account ([just email me](mailto:allanger@zohomail.com) or find me on [telegram](https://t.me/allanger)), when you got one, you're ready to start writing. If you have any questions about how to start, I'm always open for a conversation. + +Thanks, + +Oi! diff --git a/content/authors/allanger/_index.md b/content/authors/allanger/_index.md new file mode 100644 index 0000000..33377bf --- /dev/null +++ b/content/authors/allanger/_index.md @@ -0,0 +1,34 @@ +> If you're hiring, you can find [my CV here]({{< ref "cv" >}} ) + +I'm a musician and a geek, who works full time as a DevOps engineer, whatever it means. Thanks to my job, I know how to run self-hosted services pretty well, and that's helping me achieve my goal of bringing the indie culture everywhere I can. I'm trying to separate myself from global companies as a user as much as it's possible in my daily life. + +Also, I'm a Linux lover, what doesn't really correlate with my will to make music. I hope that one day we will see that developers will see that Linux is a real OS that can be used as a daily driver. And building software for Linux is important just like building for MacOS and Windows. I hope that we will be able to use not only open source solutions working on Linux, but also closed-source proprietary ones. + +### Music, Beats and Arrangements + +## Music + +> I always thought I was a musician +[Check out what I've got](https://funkwhale.badhouseplants.net) + +You can find everything I consider ready enough to be shown on my [FunkWhale](https://funkwhale.badhouseplants.net/library) instance. Also, my music can be found on many streaming services, and yes, I know that it's not a very independent way of doing things, but it's one of many exceptions π. + +All of my beats are waiting for somebody to do something with them. I'm giving them all for donation, so if you happen to like any, just shoot me a message. I can re-arrange and remix them as much as possible. I can mix your tracks, and I really will to do that, it doesn't matter what kind of music it is, I'm ready to work with everything, if I like it *(at least a little bit)*. + +## IT + +> I'm a DevOps after all +[Visit my gitea](https://git.badhouseplants.net) +For I'm a DevOps I'm working a lot with Kubernetes, Containers, Linux, etc. And that's the root of my intention to move to Linux completely. + +I hope I will do my contribution to the world of Linux music production too. I'm hosting my own Gitea instance. There you will be able to find all my code (or almost all of my code). + +If you made it to here, you might think that it's the point of all of this existing. Self-hosted blog, a music streaming service, and git. **This guy is just a fucking geek! ** + +And yes, you're partially right. The main reason it exists is that I'm trying to follow and promote `indie/punk` culture, that is not only applies to arts. And that's going to be covered in my posts, I hope. + +--- + +### If you're still here, + +I'm looking for people with the same mindset as me, to make music or to code together, or anything. So I would be happy to get connections on [Mastodon](https://mastodon.social/@allanger) diff --git a/content/beats/_index.md b/content/beats/_index.md new file mode 100644 index 0000000..a7d50fa --- /dev/null +++ b/content/beats/_index.md @@ -0,0 +1,53 @@ +--- +title: Beats +date: 2023-01-24T09:26:52+01:00 +draft: false +--- +>I don't lease my beats. If you happen to like anything, just shout me a message and we will come to an agreement. And if you decide to use any of my beats you'll be the only one using it (legally). + +--- +### Easy Money +{{< rawhtml >}} + +{{< /rawhtml >}} + +### Phantom Limb +{{< rawhtml >}} + +{{< /rawhtml >}} + +### Ark +{{< rawhtml >}} + +{{< /rawhtml >}} + +### Tremor +{{< rawhtml >}} + +{{< /rawhtml >}} + +### Empty Cubicles +{{< rawhtml >}} + +{{< /rawhtml >}} + +### Body Drop +{{< rawhtml >}} + +{{< /rawhtml >}} + +### Broken Piano +{{< rawhtml >}} + +{{< /rawhtml >}} + +### Dead Wings +{{< rawhtml >}} + +{{< /rawhtml >}} + +### Trapped +{{< rawhtml >}} + +{{< /rawhtml >}} + diff --git a/content/cv/index.md b/content/cv/index.md new file mode 100644 index 0000000..75a230e --- /dev/null +++ b/content/cv/index.md @@ -0,0 +1,97 @@ +--- +title: "Curriculum Vitae (CV)" +date: 2023-02-11T18:29:00+01:00 +draft: false +ShowToc: true +--- +# Nikolai Rodionov + +``` +> Location: DΓΌsseldorf, Germany +> Email: allanger@zohomail.com (preffered) +> Phone: 015223284008 +> Github: https://github.com/allanger +``` + +--- + +## About me +
+ +
+ +I'm a DevOps engineer (or SRE if you wish) with 5++ years of hands-on experience with a decent amount of tools that are most probably used or going to be used in your company. One of the most important tools that I love working with and want to continue working with, is Kubernetes. At least, while I don't see any better alternative to it. I think that containers themselves are one of coolest inventions in development, and I'm trying to use them as long as it's possible. Also, I believe that every routine must be automated, because routing is a boring job that lets people lose focus and make mistakes. + +I think that there are several things that a good SRE or DevOps engineer must be able to do: +- To build reliable and stable infrastructure +- Keep this infrastructure up-to-date +- Keep all the source and instructions of this infrastructure clean and simple +- Avoid a human factor as long as possible +- And when it's not possible to avoid it, not to be afraid to take responsibility + +Also, I think it's important that before implementing anything, an engineer has understood all the requirements and checked tools that can fulfil them. I often see, how people try to use a tool for its name but not for its functionality, and hence they have to do a lot of additional work and deal with compromises. And if nothing really can fulfil those requirements, you need not be afraid of writing something new *and open-source it*. + + + +## Experience + +**KlΓΆckner-i**: DevOps Engineer +> 01.2022 - until now + +``` +| GCloud - Microsoft Azure +| Linux - Containers - Kubernetes +| Helm - Helmfile +| Percona Mysql - Postgresql +| Bash +| Prometheus - Grafana - Elasticsearch - Kibana +| ArgoCD - Gitlab CI - Github Actions +| Sops +| Ansible +``` +--- + +**Itigris**: DevOps Engineer +> 07.2019 - 12.2021 + +``` +| AWS - Yandex Cloud +| Linux - Containers - Kubernetes +| Helm - Helmfile - Kustomize +| Bash +| Gitlab CI - Drone - ArgoCD +| Postgresql - Redis +| Java - JS - Go +| Ansible - Terraform +| Prometheus - Grafana - Loki - Elasticsearch - Kibana +``` +--- + +**Etersoft**: DevOps Engineer +> 03.2017 - 06.2019 + +``` +| Bare metal - Proxmox - Virtual Box +| Linux - Containers - Networks +| Bash - Perl +| Mysql - Postgresql +| Minio - Ceph +| Gitlab CI +| Ansible +``` + + + +## A little bit more about me + +- I love to work with `Kubernetes`, but not with `yaml`. +- I'm a huge fan of [Helmfile](https://github.com/helmfile/helmfile). +- I have written several small cli tools in Rust, that you might find in my [GitHub profile pins](https://github.com/allanger) (they are not perfect, but I'm working on it). +- I'm contributing to [db-operator](https://github.com/kloeckner-i/db-operator). +- I'm trying to automate everything until I'm losing control over something that is automated. +- I love Perl, although I don't even remember how to write code with it, but I would be somehow thrilled to have any ability to work with it in production +- I also think that everything is better in Rust, or at least in Go *(if Bash is not enough)* + +I have a blog (written-as-code) that is deployed to K8s (https://badhouseplants.net/), with the source code stored in a self-hosted Gitea, that is also deployed to K8s alongside the CI/CD system where this blog is being built and published. This CV is also being built as a part of the CI process, and then uploaded to `minio` storage that is also ~~surprisingly~~ running in this cluster. So you can download the latest version of CV here:+@@ -13,7 +13,7 @@ var player = new Clappr.Player({ source: {{ .Get 0 }}, - mute: false, + mute: true, height: 360, width: 640 }); diff --git a/src/layouts/taxonomy/tag.html b/layouts/taxonomy/tag.html similarity index 100% rename from src/layouts/taxonomy/tag.html rename to layouts/taxonomy/tag.html diff --git a/scripts/build-container.pl b/scripts/build-container.pl deleted file mode 100755 index 2f39479..0000000 --- a/scripts/build-container.pl +++ /dev/null @@ -1,32 +0,0 @@ -#! /usr/bin/perl -use strict; -use warnings; -# ------------------------------------------------- -# -- Setup Git variables -# ------------------------------------------------- -my $git_branch = `git rev-parse --abbrev-ref HEAD`; -my $git_commit_sha = `git rev-parse HEAD`; -my $main_branch = "main"; -chomp($git_branch); -chomp($git_commit_sha); -# ------------------------------------------------- -# -- Build the image with SHA tag -# ------------------------------------------------- -my $container_registry = $ENV{'CONTAINER_REGISTRY'} || 'git.badhouseplants.net'; -my $image_name = $ENV{'DRONE_REPO'} || "badhouseplants/badhouseplants-net"; -my $tag = "$container_registry/$image_name:$git_commit_sha"; -my $username = $ENV{'DRONE_USERNAME'} || "allanger"; -my $password = $ENV{'GITEA_TOKEN'} || "YOU NOT AUTHORIZED, PAL"; -print `buildah login --username $username --password $password $container_registry` or die $!; -print `buildah build -t $tag .` or die $!; -print `buildah push $tag` or die $!; -# ------------------------------------------------- -# -- Push the latest if the branch is main -# ------------------------------------------------- -if ( $git_branch eq $main_branch) { - my $latest_tag = "$container_registry/$image_name:latest"; - print `buildah tag $tag $latest_tag` or die $!; - print `buildah push $latest_tag` or die $!; -} - -print "Thanks!\n"; diff --git a/scripts/cleanup.pl b/scripts/cleanup.pl index 4cb416d..76fe68b 100755 --- a/scripts/cleanup.pl +++ b/scripts/cleanup.pl @@ -3,62 +3,45 @@ use strict; use warnings; # -------------------------------------- +# -- Drone variables +# -------------------------------------- +my $drone_url="$ENV{'DRONE_SYSTEM_PROTO'}://$ENV{'DRONE_SYSTEM_HOST'}"; +my $drone_project=$ENV{'DRONE_REPO'}; +my $drone_api="$drone_url/api/repos/$drone_project/builds"; +# -------------------------------------- # -- Gitea variables # -------------------------------------- my $gitea_url=$ENV{'GITEA_URL'} || 'https://git.badhouseplants.net/api/v1'; my $gitea_org=$ENV{'GITEA_ORG'} || 'badhouseplants'; my $gitea_package=$ENV{'GITEA_PACKAGE'} || 'badhouseplants-net'; my $gitea_api="$gitea_url/packages/$gitea_org/container/$gitea_package"; -my $gitea_list_api="$gitea_url/packages/$gitea_org?page=1&type=container&q=badhouseplants-net"; my $gitea_token=$ENV{'GITEA_TOKEN'}; my $gitea_user=$ENV{'GITEA_USER'} || $ENV{'DRONE_COMMIT_AUTHOR'}; # --------------------------------------- -# -- Get tags from Gitea +# -- Get recent builds from drone-ci # --------------------------------------- -my $builds = "curl -X 'GET' \"$gitea_list_api\" -H 'accept: application/json' -H \"Authorization: token $gitea_token\" | jq -r '.[].version'"; +my $builds = "curl -X 'GET' $drone_api -H 'accept: application/json' | jq -r '.[].after'"; my @builds_out = `$builds`; chomp @builds_out; # --------------------------------------- # -- Get a list of all commits + 'latest' # --------------------------------------- -my $commits = "argocd app list -o yaml -l application=badhouseplants | yq '.[].metadata.labels.commit_sha'"; +my $commits = "git fetch && git log --format=format:%H --all"; my @commits_out = `$commits`; chomp @commits_out; push @commits_out, 'latest'; -# -------------------------------------- -# -- Rclone variables -# ------------------------------------- -my $dirs = "rclone lsf badhouseplants-minio:/badhouseplants-net"; -my @dirs_out = `$dirs`; -chomp @dirs_out; # --------------------------------------- # -- Compare builds to commits # -- And remove obsolete imgages from # -- registry # --------------------------------------- -print "Cleaning up the container registry\n"; foreach my $line (@builds_out) { - print "Checking if $line is in @commits_out\n\n"; - if ( ! grep( /^$line$/, @commits_out ) ) { - my $cmd = "curl -X 'DELETE' -s \"$gitea_api/$line\" -H 'accept: application/json' -H \"Authorization: token $gitea_token\" || true"; - print "Removing ${line}\n\n"; - my $output = `$cmd`; - print "$output \n"; - } + if ( ! grep( /^$line$/, @commits_out ) ) { + my $cmd = "curl -X 'DELETE' -s \"$gitea_api/$line\" -H 'accept: application/json' -u $gitea_user:$gitea_token || true"; + print "Removing ${line}\n\n"; + my $output = `$cmd`; + print "$output \n"; + } } -print "Cleaning up Minio\n"; -foreach my $line (@dirs_out) -{ - print "Checking if $line is in @commits_out\n\n"; - chop($line); - if ( ! grep( /^$line$/, @commits_out ) ) { - my $cmd = "rclone purge badhouseplants-minio:/badhouseplants-net/$line"; - print "Removing ${line}\n\n"; - my $output = `$cmd`; - print "$output \n"; - } -} - - diff --git a/scripts/deploy-app.pl b/scripts/deploy-app.pl deleted file mode 100755 index 7e53405..0000000 --- a/scripts/deploy-app.pl +++ /dev/null @@ -1,74 +0,0 @@ -#! /usr/bin/perl -use strict; -use warnings; - -my $chart_version = `cat chart/Chart.yaml | yq '.version'` or die $1; -chomp($chart_version); - -my $git_branch = `git rev-parse --abbrev-ref HEAD`; -chomp($git_branch); -my $git_commit_sha = `git rev-parse HEAD`; -chomp($git_commit_sha); - -my $main_branch = "main"; -my $values = ""; -my $remark_secret = `openssl rand -hex 12`; -chomp($remark_secret); - -$ENV{'ARGO_APP_CHART_VERSION'} = $chart_version; -$ENV{'ARGO_APP_BRANCH'} = $git_branch; -if ($git_branch eq $main_branch) { - $ENV{'ARGO_APP_NAMESPACE'} = "production"; -} else { - $ENV{'ARGO_APP_NAMESPACE'} = "development" -} -$ENV{'ARGO_APP_HOSTNAME'} = "$git_branch-dev.badhouseplants.net"; -$ENV{'ARGO_APP_IMAGE_TAG'} = $git_commit_sha; -$ENV{'ARGO_REMARK_SECRET'} = $remark_secret; - -# ---------------------------------- -# -- Fill the Application manifest -# -- with correct values -# ---------------------------------- -if ($git_branch eq $main_branch) { - print "Using the main values file\n"; - print `envsubst < ./kube/values-main.yaml > /tmp/values.yaml` or die $!; -} else { - print "Using the preview values file\n"; - print `envsubst < ./kube/values-preview.yaml > /tmp/values.yaml` or die $!; -} -print `yq -i '.values' /tmp/values.yaml` or die $!; -print `envsubst < ./kube/application.yaml > /tmp/application.yaml` or die $!; -print `yq -i '.spec.source.helm.values = load_str("/tmp/values.yaml")' /tmp/application.yaml` or die $!; - -if(!defined $ENV{DEPLOY_SCRIPT_DEBUG}){ - print `argocd app create -f /tmp/application.yaml --upsert` or die $!; - print `argocd app sync --prune -l application=badhouseplants -l branch=$git_branch` or die $!; - print `argocd app wait -l application=badhouseplants -l branch=$git_branch` or die $!; -} -# ---------------------------------- -# -- Remove all `Applications` for -# -- branches that do not exists -# ---------------------------------- -my @all_applications = `argocd app list -l application=badhouseplants -o yaml | yq '.[].metadata.name'` or die $!; -chomp(@all_applications); -foreach my $app (@all_applications) { - $app =~ s/badhouseplants-//; -} - -my @all_branches = `git branch --format='%(refname:short)' -r` or die $!; -chomp(@all_branches); -foreach my $branch (@all_branches) { - $branch =~ s/origin\///; -} - -foreach my $app (@all_applications) { - if ( !grep( /^$app$/, @all_branches ) ) { - if ($app ne "application") { - print "$app should be removed\n"; - if(!defined $ENV{DEPLOY_SCRIPT_DEBUG}){ - print `argocd app delete --yes badhouseplants-$app` or die $!; - } - } - } -} diff --git a/scripts/upload-media.pl b/scripts/upload-media.pl deleted file mode 100755 index 13eb20d..0000000 --- a/scripts/upload-media.pl +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/perl -my $git_branch = `git rev-parse --abbrev-ref HEAD`; -my $git_commit_sha = `git rev-parse HEAD`; -my $main_branch = "main"; -my $common_bucket = "badhouseplants-minio:/badhouseplants-net"; -my $main_bucket = "badhouseplants-minio:/badhouseplants-net-main"; - -# -------------------------------------------------- -# -- I'm doing all of it because I can't undestand -# -- how not to send 300Mb to the buildah context -# -------------------------------------------------- -chomp($git_branch); -chomp($git_commit_sha); - -print `cp -r . /tmp/$git_commit_sha` or die; - -print "Getting the lfs data\n"; -print `git -C /tmp/$git_commit_sha lfs pull` or die; - -print "Creating a new hashed dir in the common bucket\n"; - -print `rclone copy /tmp/$git_commit_sha/src/static "$common_bucket/$git_commit_sha"` or die; - -if ($git_branch eq $main_branch) { - print "Syncing to the production bucket\n"; - print `rclone sync "$common_bucket/$git_commit_sha" "$main_bucket/"` or die; -} diff --git a/src/archetypes/categories.md b/src/archetypes/categories.md deleted file mode 100644 index bde898d..0000000 --- a/src/archetypes/categories.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: "{{ replace .Name "-" " " | title }}" -image: -style: - background: "#2a9d8f" - color: "#fff" ---- diff --git a/src/archetypes/default.md b/src/archetypes/default.md deleted file mode 100644 index 0556d3a..0000000 --- a/src/archetypes/default.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: "{{ replace .Name "-" " " | title }}" -description: -date: {{ .Date }} -image: -math: -license: -hidden: false -comments: true -draft: true ---- \ No newline at end of file diff --git a/src/archetypes/tags.md b/src/archetypes/tags.md deleted file mode 100644 index bc2eb0c..0000000 --- a/src/archetypes/tags.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "{{ replace .Name "-" " " | title }}" -description: -image: ---- diff --git a/src/content/_index.md b/src/content/_index.md deleted file mode 100644 index 530dfe8..0000000 --- a/src/content/_index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -menu: - main: - name: Home - weight: -100 - params: - icon: home ---- \ No newline at end of file diff --git a/src/content/categories/Kubernetes/_index.md b/src/content/categories/Kubernetes/_index.md deleted file mode 100644 index 8ea9993..0000000 --- a/src/content/categories/Kubernetes/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "Kubernetes" -description: "Content related to Kubernetes" -slug: "k8s" -image: "kubernetes.png" -style: - background: "#2a9d8f" - color: "#fff" ---- diff --git a/src/content/categories/Kubernetes/kubernetes.png b/src/content/categories/Kubernetes/kubernetes.png deleted file mode 100644 index 6b76951..0000000 Binary files a/src/content/categories/Kubernetes/kubernetes.png and /dev/null differ diff --git a/src/content/music/allanger/_index.md b/src/content/music/allanger/_index.md deleted file mode 100644 index 232db6f..0000000 --- a/src/content/music/allanger/_index.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "allanger" -date: 2018-12-26T00:00:00+02:00 -draft: false -ShowToc: false -cover: - image: "/music/allanger.png" - caption: "allanger" - relative: false - responsiveImages: false -hideSummary: true -tags: - - music - - release - - indie - - alternative ---- - -I'm allanger, the owner of Bad Houseplants. diff --git a/src/content/music/allanger/allanger-anymore.md b/src/content/music/allanger/allanger-anymore.md deleted file mode 100644 index 6740326..0000000 --- a/src/content/music/allanger/allanger-anymore.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "allanger - Anymore" -date: 2018-12-26T00:00:00+02:00 -draft: false -ShowToc: false -cover: - image: "/music/allanger-Anymore.jpg" - caption: "Anymore" - relative: false - responsiveImages: false -hideSummary: true -tags: - - music - - release - - indie - - alternative ---- - -[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/anymore) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/20/) - ---- -{{< rawhtml >}} - -{{< /rawhtml >}} - -*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Anymore.zip)* diff --git a/src/content/music/allanger/allanger-await.md b/src/content/music/allanger/allanger-await.md deleted file mode 100644 index 11ad224..0000000 --- a/src/content/music/allanger/allanger-await.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "allanger - Await" -date: 2022-07-01T00:00:00+02:00 -draft: false -ShowToc: false -cover: - image: "/music/allanger-Await.jpg" - caption: "Await" - relative: false - responsiveImages: false -hideSummary: true -tags: - - music - - release - - indie - - alternative - - hiphop - - rap ---- - -[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/await) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/26/) - ---- -{{< rawhtml >}} - -{{< /rawhtml >}} - -*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Await.zip)* diff --git a/src/content/music/allanger/allanger-desensitized.md b/src/content/music/allanger/allanger-desensitized.md deleted file mode 100644 index e3f5abb..0000000 --- a/src/content/music/allanger/allanger-desensitized.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "allanger - Desensitized" -date: 2022-02-06T00:00:00+02:00 -draft: false -ShowToc: false -cover: - image: "music/allanger-Desensitized.png" - caption: "Desensitized" - relative: false - responsiveImages: false -hideSummary: true -tags: - - music - - release - - indie - - edm - - electronic ---- - -[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/desensitized) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/22/) - ---- -{{< rawhtml >}} - -{{< /rawhtml >}} - -*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Desensitized.zip)* diff --git a/src/content/music/allanger/allanger-four-steps-behind copy.md b/src/content/music/allanger/allanger-four-steps-behind copy.md deleted file mode 100644 index 285138b..0000000 --- a/src/content/music/allanger/allanger-four-steps-behind copy.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "allanger - Under My Pillow" -date: 2023-05-15T00:00:00+02:00 -draft: false -ShowToc: false -cover: - image: "/music/allanger-Under_My_Pillow.png" - caption: "Under My Pillow" - relative: false - responsiveImages: false -hideSummary: true -tags: - - music - - release - - indie - - rap - - hiphop ---- -[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/under-my-pillow) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/27/) - ---- -{{< rawhtml >}} -{{< /rawhtml >}} - -*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Under%20My%20Pillow.zip)* diff --git a/src/content/music/allanger/allanger-four-steps-behind.md b/src/content/music/allanger/allanger-four-steps-behind.md deleted file mode 100644 index b0ca05f..0000000 --- a/src/content/music/allanger/allanger-four-steps-behind.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "allanger - Four Steps Behind" -date: 2023-05-15T00:00:00+02:00 -draft: false -ShowToc: false -cover: - image: "/music/allanger-Four_Steps_Behind.jpg" - caption: "Four Steps Behind" - relative: false - responsiveImages: false -hideSummary: true -tags: - - music - - release - - house - - edm ---- -[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/four-steps-behind) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/16/) - ---- -{{< rawhtml >}} - -{{< /rawhtml >}} - -*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Four%20Steps%20Behind.zip)* diff --git a/src/content/music/allanger/allanger-let-me-kill.md b/src/content/music/allanger/allanger-let-me-kill.md deleted file mode 100644 index 01a21d3..0000000 --- a/src/content/music/allanger/allanger-let-me-kill.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "allanger - Let Me Kill" -date: 2021-10-15T00:00:00+02:00 -draft: false -ShowToc: false -cover: - image: "music/allanger-Let_Me_Kill.png" - caption: "Let Me Kill" - relative: false - responsiveImages: false -hideSummary: true -tags: - - music - - release - - indie - - trap - - spoken-word ---- - -[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/let-me-kill) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/21/) - ---- -{{< rawhtml >}} - -{{< /rawhtml >}} - -*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Let%20Me%20Kill.zip)* diff --git a/src/content/music/allanger/allanger-not-alone.md b/src/content/music/allanger/allanger-not-alone.md deleted file mode 100644 index 43101bf..0000000 --- a/src/content/music/allanger/allanger-not-alone.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "allanger - Not Alone" -date: 2022-02-10T00:00:00+02:00 -draft: false -ShowToc: false -cover: - image: "music/allanger-Not_Alone.png" - caption: "Not Alone" - relative: false - responsiveImages: false -hideSummary: true -tags: - - music - - release - - indie - - edm - - electronic ---- - -[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/not-alone) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/23/) - ---- -{{< rawhtml >}} - -{{< /rawhtml >}} - -*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Not%20Alone.zip)* diff --git a/src/content/music/allanger/allanger-out-of-law.md b/src/content/music/allanger/allanger-out-of-law.md deleted file mode 100644 index 9f38145..0000000 --- a/src/content/music/allanger/allanger-out-of-law.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "allanger - Out Of Law" -date: 2022-01-23T00:00:00+02:00 -draft: false -ShowToc: false -cover: - image: "music/allanger-Out_of_Law.png" - caption: "Out Of Law" - relative: false - responsiveImages: false -hideSummary: true -tags: - - music - - release - - indie - - punk ---- - -[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/out-of-law) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/18/) - ---- -{{< rawhtml >}} - -{{< /rawhtml >}} - -*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Out%20Of%20Law.zip)* diff --git a/src/content/music/allanger/allanger-trace.md b/src/content/music/allanger/allanger-trace.md deleted file mode 100644 index 157832e..0000000 --- a/src/content/music/allanger/allanger-trace.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "allanger - Trace" -date: 2023-05-30T00:00:00+02:00 -draft: false -ShowToc: false -cover: - image: "music/allanger-Trace.png" - caption: "Trace" - relative: false - responsiveImages: false -hideSummary: true -tags: - - music - - release - - indie - - edm - - electronic ---- - -[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/trace) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/17/) - ---- -{{< rawhtml >}} -{{< /rawhtml >}} - -*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Trace.zip)* diff --git a/src/content/music/allanger/allanger-wasted-time.md b/src/content/music/allanger/allanger-wasted-time.md deleted file mode 100644 index a15306c..0000000 --- a/src/content/music/allanger/allanger-wasted-time.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "allanger - Wasted Time" -date: 2021-09-23T00:00:00+02:00 -draft: false -ShowToc: false -cover: - image: "music/allanger-Waster_Time.png" - caption: "Wasted Time" - relative: false - responsiveImages: false -hideSummary: true -tags: - - music - - release - - indie - - punk ---- - -[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/wasted-time) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/19/) - ---- -{{< rawhtml >}} - -{{< /rawhtml >}} - -*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Wasted%20Time.zip)* diff --git a/src/content/page/about/index.md b/src/content/page/about/index.md deleted file mode 100644 index 77de357..0000000 --- a/src/content/page/about/index.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: About -description: What is Bad Houseplants? -date: '2019-02-28' -aliases: - - about-us - - about-hugo - - contact -license: CC BY-NC-ND -lastmod: '2020-10-09' -menu: - main: - weight: -90 - params: - icon: user ---- - -Hello there, - -I'm **allanger** and I'm a DevOps engineer. What does it mean? I prefer calling myself a modern system administrator. Here I will post about DevOps/Kubernetes/CI-CD/etc topics. - -> This page is not ready yet, I will update it one day diff --git a/src/content/page/archives/index.md b/src/content/page/archives/index.md deleted file mode 100644 index 2862deb..0000000 --- a/src/content/page/archives/index.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: "Archives" -date: 2019-05-28 -layout: "archives" -slug: "archives" -menu: - main: - weight: -70 - params: - icon: archives ---- diff --git a/src/content/page/links/drone.png b/src/content/page/links/drone.png deleted file mode 100644 index ab43a7c..0000000 Binary files a/src/content/page/links/drone.png and /dev/null differ diff --git a/src/content/page/links/gitea.png b/src/content/page/links/gitea.png deleted file mode 100644 index bff7279..0000000 Binary files a/src/content/page/links/gitea.png and /dev/null differ diff --git a/src/content/page/links/index.md b/src/content/page/links/index.md deleted file mode 100644 index 15d7a47..0000000 --- a/src/content/page/links/index.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Links -readingTime: false -links: - - title: Source Code - description: A souce code of this blog - website: https://git.badhouseplants.net/badhouseplants/badhouseplants-net - image: gitea.png - - title: Drone-CI - description: A project for building this blog in Drone-CI - website: https://drone.badhouseplants.net/badhouseplants/badhouseplants-net - image: drone.png -menu: - main: - weight: -50 - params: - icon: link - -comments: false ---- diff --git a/src/content/page/links/ts-logo-128.jpg b/src/content/page/links/ts-logo-128.jpg deleted file mode 100644 index 85e3323..0000000 Binary files a/src/content/page/links/ts-logo-128.jpg and /dev/null differ diff --git a/src/content/page/search/index.md b/src/content/page/search/index.md deleted file mode 100644 index b2a5943..0000000 --- a/src/content/page/search/index.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: "Search" -slug: "search" -layout: "search" -outputs: - - html - - json -menu: - main: - weight: -60 - params: - icon: search ---- \ No newline at end of file diff --git a/src/content/post/allanger/do-we-need-continuous-reconciliation.md b/src/content/post/allanger/do-we-need-continuous-reconciliation.md deleted file mode 100644 index ffdf03f..0000000 --- a/src/content/post/allanger/do-we-need-continuous-reconciliation.md +++ /dev/null @@ -1,56 +0,0 @@ -+++ -title = 'Do we really need Continuous Reconciliation after all?' -date = 2024-02-13T15:04:44+01:00 -draft = true -categories = [ - "Kubernetes", - "CI-CD" -] -+++ - -> Well, alright, I guess it depends - -## Intro - -First, let's figure out what **continuous reconciliation** stands for. Considering this post's categories, I guess we're talking **Kubernetes** here. And **continuous reconciliation** means that resources deployed to kubernetes are not only synced once, when you run `kubectl apply`, but all the time. Basically, every 30s (or whatever reconciliation period you got) something is running `kubectl apply`. - -The idea behind that (as I see) is that you're always aware of what's deployed to you cluster, by looking at the code. Let's say, there is a git repo `k8s-deployments`, and it has all the resources that you want to have running in your cluster. - -> It made a lot of sense to when I heard for the first time, not I'm rather sceptical about it. - -As far as I understand, having all you resource described in a git repository and continuously reconciled is **GitOps**, not only that of course, it's just a part of it. At least that's what I've been told by some engineers. - -## GitOps - -I don't think that I'm the one to be talking about **GitOps** because everytime I was trying to bring my point on that, I've been told that I don't know what **GitOps** is. - -> To be honest, after many conversations with different people, I think that GitOps is just a buzzword for selling technologies and services, correct me if I wrong. - -I can't talk about others opinion, so I'll jsut try to express mine. I think that **GitOps** is when you have a desired state of your infrastucture written in code, and a mechanism to make your real infrastucture state correspond the desired one. - -Let's not lean towards Kubernetes itself, and let's imaging that you, as a SRE team, have to manage Kubernetes clusters. In your cluster you'll have to run an application that is being developed by the company you're working for, and some dependencies, that this application needs in order to run. - -> Also, I guess it is an opinion that many of SREs won't share. I guess that the SRE team shouldn't be integrated to development teams. In my opinion, SRE teams should provide ingfa-as-a-service to developes and help them use it. - -So, after all, you cluster will contain approximately this: -- Very base layer - - CNI plugin (E.G. Cilium) - - CoreDNS -- System layer - - Cert Manager - - Traefik -- Monitoring layer - - Kube Prometheus Stack - - Loki - - Promtail -- Application specific dependencies - - Zalando Postgres Operator - - Redis Operator -- Application layer - - Your application - -And as an addition, you might have a GitOps tool, currently, the most popular ones are **Flux** and **ArgoCD**, I guess I will compare them later, in this article let's just use **Flux**. - -First question that comes to my mind is, onto which layer one should put Flux? Flux depends on `CNI` and `CoreDNS`, so it should be deployed after them. So should it be the System layer? It sounds good, I guess, but do we want Flux to manage **Cert manager** and **Traefik**. Me - not, but the answer that I get the most is yes. So let's assume, we've decided to manage them with Flux. It means that we should add another layer between "Very base" and "System" ones, a **GitOps layer**. To us it means that after we get a bare new empty cluster, we need to install CNI, CoreDNS, and Flux, and only then we should deploy anything else with the Flux help. - -What does it mean for us, we need to diff --git a/src/hugo.yaml b/src/hugo.yaml deleted file mode 100644 index 1c17075..0000000 --- a/src/hugo.yaml +++ /dev/null @@ -1,45 +0,0 @@ -languageCode: en-us -title: Bad Houseplants -theme: stack -favicon: /favicon.ico -Params: - GitBranch: main - GitCommit: unknown - mainSections: - - post - sidebar: - avatar: - enable: true - local: false - src: /avatar.png - subtitle: PunkOps by allanger - comments: - enabled: true - provider: remark42 - remark42: - host: https://remark42.badhouseplants.net - site: remark - locale: en - widgets: - homepage: - - type: search - - type: archives - params: - limit: 5 - - type: categories - params: - limit: 10 - #- type: tag-cloud - # params: - # limit: 10 - page: - - type: toc -related: - includeNewer: true - threshold: 60 - toLower: false - indices: - - name: tags - weight: 100 - - name: categories - weight: 200 diff --git a/src/layouts/shortcodes/audio.html b/src/layouts/shortcodes/audio.html deleted file mode 100644 index ccaf315..0000000 --- a/src/layouts/shortcodes/audio.html +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/src/static/avatar.png b/src/static/avatar.png deleted file mode 100644 index 54ec2f3..0000000 --- a/src/static/avatar.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:475223457ecd56a9b4450e39a1273727f98c4b0c78c6427992f4f77f6b90b957 -size 686006 diff --git a/src/static/favicon.ico b/src/static/favicon.ico deleted file mode 100644 index c5d3be1..0000000 --- a/src/static/favicon.ico +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d872fe94954e47d14563d77ddba54f15aa62f5df0a76f3ead45764847e554154 -size 15406 diff --git a/src/static/icons/beats.svg b/src/static/icons/beats.svg deleted file mode 100644 index d725db2..0000000 --- a/src/static/icons/beats.svg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:11f41a9605317d89fb8ffc5f6e29a1b7db29e954a9d12ce98280c6d561548a75 -size 1253 diff --git a/src/static/posts/argocd-dynamic-environment-per-branch-part-1/cover.png b/src/static/posts/argocd-dynamic-environment-per-branch-part-1/cover.png deleted file mode 100644 index ee18b08..0000000 --- a/src/static/posts/argocd-dynamic-environment-per-branch-part-1/cover.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b6f31eeedb306a5f06d2b7961050bdfbe78d78c7dbce8bdfa2829acee03ca4d7 -size 7963916 diff --git a/src/static/posts/argocd-dynamic-environment-per-branch-part-1/drone-pipeline.png b/src/static/posts/argocd-dynamic-environment-per-branch-part-1/drone-pipeline.png deleted file mode 100644 index 5f55e28..0000000 --- a/src/static/posts/argocd-dynamic-environment-per-branch-part-1/drone-pipeline.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:94fae326897aa04583bed82f66c348891ee0c12727cea5d834ad3b48cb4ce677 -size 305166 diff --git a/src/static/posts/argocd-vs-helmfile/app-of-apps-main.png b/src/static/posts/argocd-vs-helmfile/app-of-apps-main.png deleted file mode 100644 index 9f08643..0000000 --- a/src/static/posts/argocd-vs-helmfile/app-of-apps-main.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4c329e920e735fdc52b3bee4cd60b3b8261d304a47197f44a1aaff56213b311c -size 247447 diff --git a/src/static/posts/argocd-vs-helmfile/applicationset-test.png b/src/static/posts/argocd-vs-helmfile/applicationset-test.png deleted file mode 100644 index e4b4ef4..0000000 --- a/src/static/posts/argocd-vs-helmfile/applicationset-test.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1452560f3d6d04483eeca09d100370cc5fa7120294edc9c089c758a8f4b7253f -size 332000 diff --git a/src/static/posts/argocd-vs-helmfile/cover-applications.png b/src/static/posts/argocd-vs-helmfile/cover-applications.png deleted file mode 100644 index 0e27218..0000000 --- a/src/static/posts/argocd-vs-helmfile/cover-applications.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:797fe98bbf2dc7dfae0a2876f22cca0b185afab3d928effc42bfee50fe6fb130 -size 299165 diff --git a/src/static/posts/argocd-vs-helmfile/cover-applicationset.png b/src/static/posts/argocd-vs-helmfile/cover-applicationset.png deleted file mode 100644 index e4b4ef4..0000000 --- a/src/static/posts/argocd-vs-helmfile/cover-applicationset.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1452560f3d6d04483eeca09d100370cc5fa7120294edc9c089c758a8f4b7253f -size 332000 diff --git a/src/static/posts/argocd-vs-helmfile/diff-in-ui.png b/src/static/posts/argocd-vs-helmfile/diff-in-ui.png deleted file mode 100644 index e5fbd15..0000000 --- a/src/static/posts/argocd-vs-helmfile/diff-in-ui.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:60603706ad018d3c73ed54eb475058424043ce9cf87de76f236fb9be6124d048 -size 465450 diff --git a/src/static/posts/argocd-vs-helmfile/goldilocks-ui.png b/src/static/posts/argocd-vs-helmfile/goldilocks-ui.png deleted file mode 100644 index e60d54b..0000000 --- a/src/static/posts/argocd-vs-helmfile/goldilocks-ui.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e42129f54056e12affbbb81ac2597c4f07fe08c3acc9c5879c0e1b40e8b879c8 -size 385843 diff --git a/src/static/posts/argocd-vs-helmfile/update-in-ui.png b/src/static/posts/argocd-vs-helmfile/update-in-ui.png deleted file mode 100644 index 0e27218..0000000 --- a/src/static/posts/argocd-vs-helmfile/update-in-ui.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:797fe98bbf2dc7dfae0a2876f22cca0b185afab3d928effc42bfee50fe6fb130 -size 299165 diff --git a/src/static/posts/creating-a-sample-pack-kick/Kick_final_result.mp3 b/src/static/posts/creating-a-sample-pack-kick/Kick_final_result.mp3 deleted file mode 100644 index 76b061d..0000000 --- a/src/static/posts/creating-a-sample-pack-kick/Kick_final_result.mp3 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0e0e778f9654025adba40dffc4cf78393b688ee865e61526b9ad8d6cc5191bb0 -size 805533 diff --git a/src/static/posts/creating-a-sample-pack-kick/Kick_v1.mp3 b/src/static/posts/creating-a-sample-pack-kick/Kick_v1.mp3 deleted file mode 100644 index d476df9..0000000 --- a/src/static/posts/creating-a-sample-pack-kick/Kick_v1.mp3 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:633d66327aa655eb6c586ee83d71feae841344534029321498cefa16aef5fd84 -size 165533 diff --git a/src/static/posts/creating-a-sample-pack-kick/Kick_v2.mkv b/src/static/posts/creating-a-sample-pack-kick/Kick_v2.mkv deleted file mode 100644 index 2c84b69..0000000 --- a/src/static/posts/creating-a-sample-pack-kick/Kick_v2.mkv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:74fd914e1b849336aca27c466843cf7e9a163fe8925a8167965e6fcba3f8e14a -size 604978 diff --git a/src/static/posts/creating-a-sample-pack-kick/Kick_v2.mp4 b/src/static/posts/creating-a-sample-pack-kick/Kick_v2.mp4 deleted file mode 100644 index 7bd8601..0000000 --- a/src/static/posts/creating-a-sample-pack-kick/Kick_v2.mp4 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ee2e5c700e18277b70253df905fbaabf07bfa656d79f342bc3d0340f45d7b219 -size 311020 diff --git a/src/static/posts/creating-a-sample-pack-kick/Kick_v3.mkv b/src/static/posts/creating-a-sample-pack-kick/Kick_v3.mkv deleted file mode 100644 index 283c4fa..0000000 --- a/src/static/posts/creating-a-sample-pack-kick/Kick_v3.mkv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:13d153f7d249431b295112bd93f21b2e52035e5c349a60ffb3852bc0ea200ce1 -size 528621 diff --git a/src/static/posts/creating-a-sample-pack-kick/Kick_v3.mp4 b/src/static/posts/creating-a-sample-pack-kick/Kick_v3.mp4 deleted file mode 100644 index b74a286..0000000 --- a/src/static/posts/creating-a-sample-pack-kick/Kick_v3.mp4 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:488311a0e6ea869a20cb12ef34ac9fcae983819e0e6144442f6809d30d3bcecf -size 292423 diff --git a/src/static/posts/creating-a-sample-pack-kick/Kick_v4.mkv b/src/static/posts/creating-a-sample-pack-kick/Kick_v4.mkv deleted file mode 100644 index 296ecf9..0000000 --- a/src/static/posts/creating-a-sample-pack-kick/Kick_v4.mkv +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8fcf4d901648cef69b7106a8275d07de35fec4ac1cefdfe288ec67af7a4ecb5f -size 674171 diff --git a/src/static/posts/creating-a-sample-pack-kick/Kick_v4.mp4 b/src/static/posts/creating-a-sample-pack-kick/Kick_v4.mp4 deleted file mode 100644 index eb6947f..0000000 --- a/src/static/posts/creating-a-sample-pack-kick/Kick_v4.mp4 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7281dc2f93cfba5731b2bd0d38c6530ca84a33b05cf8a3ecacee583a073fb5be -size 376034 diff --git a/src/static/posts/creating-a-sample-pack-kick/cover.png b/src/static/posts/creating-a-sample-pack-kick/cover.png deleted file mode 100644 index 8fb0642..0000000 --- a/src/static/posts/creating-a-sample-pack-kick/cover.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d84081625a6b9cfb6a76948d076e02e00b626a1e288bca30d3f41879b09bf93d -size 1008850 diff --git a/src/static/posts/creating-a-sample-pack-kick/disable_note_track.png b/src/static/posts/creating-a-sample-pack-kick/disable_note_track.png deleted file mode 100644 index e12bb6b..0000000 --- a/src/static/posts/creating-a-sample-pack-kick/disable_note_track.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4d0f5650d0c4bc5d563bf340841d10c67631d5983d938a8e52847f5013ce7862 -size 974202 diff --git a/src/static/posts/creating-a-sample-pack-kick/init_vital.png b/src/static/posts/creating-a-sample-pack-kick/init_vital.png deleted file mode 100644 index dcb3ccc..0000000 --- a/src/static/posts/creating-a-sample-pack-kick/init_vital.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:34532e0757db49204f854208fd09620dded5810262bd909b29df8ec985ee9496 -size 1242149 diff --git a/src/static/posts/creating-a-sample-pack-kick/kick_basic_shape.png b/src/static/posts/creating-a-sample-pack-kick/kick_basic_shape.png deleted file mode 100644 index 9a7a21d..0000000 --- a/src/static/posts/creating-a-sample-pack-kick/kick_basic_shape.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eef68ec724e4467228eb20b04e9d62f89423925978e13ca2106d95ae86f0cb49 -size 94083 diff --git a/src/static/posts/creating-a-sample-pack-kick/kick_lfo_1.png b/src/static/posts/creating-a-sample-pack-kick/kick_lfo_1.png deleted file mode 100644 index 60a3704..0000000 --- a/src/static/posts/creating-a-sample-pack-kick/kick_lfo_1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a77078e09ad68001c5a5d05c0f41df49ab71958a8a1788cef84b3f0a1d943ca6 -size 133623 diff --git a/src/static/posts/creating-a-sample-pack-kick/kick_lfo_2.png b/src/static/posts/creating-a-sample-pack-kick/kick_lfo_2.png deleted file mode 100644 index 98bdae7..0000000 --- a/src/static/posts/creating-a-sample-pack-kick/kick_lfo_2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ab3b4fec7d092259b524e5b57e03d9ad35a01a87caccfe5d5a6b2dae3094bdd2 -size 133904 diff --git a/src/static/posts/creating-a-sample-pack-kick/unison_phase.png b/src/static/posts/creating-a-sample-pack-kick/unison_phase.png deleted file mode 100644 index b8e3fd1..0000000 --- a/src/static/posts/creating-a-sample-pack-kick/unison_phase.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:386fc8feea661abf218679d1d925994df5cbc7af2a3ee370a5c8eca206725812 -size 90664 diff --git a/src/static/posts/dont-use-argocd-for-infrastructure/3-clusters-and-gitea.png b/src/static/posts/dont-use-argocd-for-infrastructure/3-clusters-and-gitea.png deleted file mode 100644 index 825eaea..0000000 --- a/src/static/posts/dont-use-argocd-for-infrastructure/3-clusters-and-gitea.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:87485f4b6c9648b35613d184e0b0df737ac779f6a005c8cd2fbab5f189a7a3ef -size 703100 diff --git a/src/static/posts/dont-use-argocd-for-infrastructure/3-clusters.png b/src/static/posts/dont-use-argocd-for-infrastructure/3-clusters.png deleted file mode 100644 index 97b2678..0000000 --- a/src/static/posts/dont-use-argocd-for-infrastructure/3-clusters.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ee5b58c2aedb0dba95a8d9e26292bbe6fbd696c58d0aedcc50d8c383c004c3f8 -size 245998 diff --git a/src/static/posts/dont-use-argocd-for-infrastructure/cover.png b/src/static/posts/dont-use-argocd-for-infrastructure/cover.png deleted file mode 100644 index 7c32767..0000000 --- a/src/static/posts/dont-use-argocd-for-infrastructure/cover.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:05312a326367af2694cda92759725d74a5a3d52a67577ea784724c76ae01c1dd -size 63751 diff --git a/src/themes/stack b/src/themes/stack deleted file mode 160000 index fddab05..0000000 --- a/src/themes/stack +++ /dev/null @@ -1 +0,0 @@ -Subproject commit fddab053628070668cd9c9eb0b96d9a6246fcc71 diff --git a/themes/papermod b/themes/papermod new file mode 160000 index 0000000..d3d90be --- /dev/null +++ b/themes/papermod @@ -0,0 +1 @@ +Subproject commit d3d90be8a4ea04433d95d02a1dc07b0014c5b8b8Comments are in the beta testing stage.
+