9 Commits

Author SHA1 Message Date
87d7a126c3 WIP 2024-02-06 19:03:55 +01:00
5880c8b179 Move spell checker to woodpecker 2024-02-06 18:09:34 +01:00
69454d8fd1 Update paper theme 2024-02-06 16:58:00 +01:00
b23b1fe81e Update hugo and builder 2024-02-04 09:11:47 +01:00
bc97979a4b Update paper theme 2024-01-31 19:49:00 +01:00
a0a415cd21 Trigger Drone 2024-01-26 17:20:11 +01:00
1537e51426 Update the builder version 2024-01-26 17:10:33 +01:00
fef3008333 Update the builder version 2024-01-26 17:08:31 +01:00
d831774f5d Trigger Drone 2024-01-26 17:05:35 +01:00
10 changed files with 70 additions and 78 deletions

View File

@ -28,9 +28,6 @@ name: Build badhouseplants.net
trigger: trigger:
event: event:
- push - push
builder: &builder
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:555262114ea81f6f286010474527f419b56d33a3
clone: clone:
disable: true disable: true
steps: steps:
@ -48,8 +45,8 @@ steps:
- clone - clone
commands: commands:
- hugo -s ./src - hugo -s ./src
- <<: *builder - name: Build and push the docker image
name: Build and push the docker image image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:9fabf0ce6eab3a9a9da15b2791e8282afc05ee0b
privileged: true privileged: true
depends_on: depends_on:
- Test a build - Test a build
@ -59,8 +56,8 @@ steps:
from_secret: GITEA_TOKEN from_secret: GITEA_TOKEN
commands: commands:
- ./scripts/build-container.pl - ./scripts/build-container.pl
- <<: *builder - name: Sync pictures from lfs to Minio
name: Sync pictures from lfs to Minio image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:9fabf0ce6eab3a9a9da15b2791e8282afc05ee0b
depends_on: depends_on:
- Test a build - Test a build
environment: environment:
@ -70,8 +67,8 @@ steps:
commands: commands:
- echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG - echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG
- ./scripts/upload-media.pl - ./scripts/upload-media.pl
- <<: *builder - name: Deploy the application
name: Deploy the application image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:9fabf0ce6eab3a9a9da15b2791e8282afc05ee0b
depends_on: depends_on:
- Build and push the docker image - Build and push the docker image
- Sync pictures from lfs to Minio - Sync pictures from lfs to Minio
@ -84,11 +81,10 @@ steps:
from_secret: GITHUB_OAUTH_KEY from_secret: GITHUB_OAUTH_KEY
ARGO_GOOGLE_OAUTH_KEY: ARGO_GOOGLE_OAUTH_KEY:
from_secret: GOOGLE_OAUTH_KEY from_secret: GOOGLE_OAUTH_KEY
DEPLOY_SCRIPT_DEBUG: true
commands: commands:
- ./scripts/deploy-app.pl - ./scripts/deploy-app.pl
- <<: *builder - name: Cleanup everything
name: Cleanup everything image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:9fabf0ce6eab3a9a9da15b2791e8282afc05ee0b
depends_on: depends_on:
- Deploy the application - Deploy the application
environment: environment:

View File

@ -1,5 +0,0 @@
creation_rules:
- path_regex: .*secrets\.values.*
key_groups:
- age:
- age155dykdtnkw9fke45pxkygyyx2eal0hwpdm0zz8qa92z5ludjqe5sfakqgs

10
.woodpecker.yaml Normal file
View File

@ -0,0 +1,10 @@
---
when:
event: push
steps:
spell-check:
name: Spell-Checker
image: node
commands:
- npm i markdown-spellcheck -g
- mdspell "src/content/**/*.md" -n -r

View File

@ -1,4 +1,4 @@
FROM git.badhouseplants.net/badhouseplants/hugo-container:3daaf01c9811501f2b4c691f6910e3df285c2007 FROM git.badhouseplants.net/badhouseplants/hugo-container:dd6475f3c99b450d334d3377f3c1a1474a341ba7
WORKDIR /src WORKDIR /src
COPY ./src /src COPY ./src /src
ENTRYPOINT ["hugo"] ENTRYPOINT ["hugo"]

View File

@ -1,21 +0,0 @@
values: ENC[AES256_GCM,data:qQTaz7Ab1+2udnxTNRfRKALV93SNBX1l+po11ZPV/RRstwuaBqkrp/zRMllPj6O6p62Y9N9BknSJsuavH62wqAOmN0qVP1XQtzHMLMKMIOe4ut29NtcR7XM54Cq1glqTk2LRfCaCdYSzOsXFscGI/x2bx7G8LjKXWEPtHGXVU+lU3OZFWZ7Ioz02lPl3FnidXBQrCQnY1Wc4qS0T/haCq0cXYk+SA4jMY5vxn3+WwaCfq//50EZOebNFCPnGHR5kRmMmG32u918lt/jv2GEu066Vjd0J67S8HGiykFi6RHZwIry0V65YH7X/L4LtEqKok+WAu3ssNRsgXaEhvWclpn0Jq30Z2qsaSFVItbSC7oiUEixlRc1oxOm0ytWZmlFJbzfpA9JdHw1Dpw0q8kIY2eqmAM/W3omZy+4tmPttHbnWyoKSPJi4CflDMToMkkujGqfnOx0OVQ85fXpr0cKkYJuyLz7YQtAyIGGqGyHtqqicWCqt9B25If1Cv+91gu1If0fpEb77ITIjRHaeEcLkBqb9cCGJnV+a6bdVTtDvH2sS9kBS+oWK+cgsAWD3BVDIpOlV0jwJyAB+++PwmsZuFc9MEkE8DSMK2P64J4ceyV6M4Eb8YNGljdxTRZAl9m6SaKLMC8KiggiHs3JPg69n1OsFWN7EcCKtErTq0+XbiHidkYbg+xnxnez3cCbMvTeNZvbKU2bVllqie4ZMe4q0TzQEnTlMeuqeGtVIgPn9an2N2foTHZUboAysM2MKKeWB2isABtv59SXyzhfQmvC08Cgf9Jj3cJpqWm2/Am3RIYcsXW8NwkxM+lPQ6+IYx87Wd3FvPDTTS+wSO700uzFWXfwsaE7AY1uQBXK7bL61jPQ3HpQYWDS11+1zX30iUaDm3m3u6t6gVlGeICAvxqoBxOiruX/jcAOzU/dSeSTjjPmvDO829kB6rFugAvRDYXetoI09EugdnPHTaC/xFejV,iv:/7k4rjpiuCJev6B/GJu9eyb/RMWJfyfjrRuVRTdybDM=,tag:G1eRy4i6+59wZuGqx9bDPQ==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age155dykdtnkw9fke45pxkygyyx2eal0hwpdm0zz8qa92z5ludjqe5sfakqgs
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEMWthSXdncUI0U0tSdkk4
d1lyQWJ2M0NQSjRQRWViQ0RLVWlSK3FsczB3Cks1V1BaZmFlUVRCdUpBS2kzekxK
RlRlQ1daTGdMODlEenVUOVNDOVhNUWsKLS0tIERxeG1BRlh0T0hKSlNXeHI0eUVO
V1N2YWIvWXpDckhzampIVUx4YU50Q2cKRyx2G5ki4yhhzpTVjjCBPKvI1C208HJb
Qb9Kpd2HkJaVllL5mUsXOAWtugceaSvidK1t3Hz0NXrVvFVUxDh8Rg==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2023-12-07T09:10:13Z"
mac: ENC[AES256_GCM,data:gsbIyJU7T6wRj5CFbG2nyeawvCzp/BtOSOIsapC0AF6a2IIqau1IaH+vd2O7mbT5ClurC0zfR5k5g/pRE8AWc85kbdBhzLBe4Kkx5DXy9N/JQaNh8RlJ1HKzvipVK46zF+6PZYjsrb1S+9WL9p/aV226XkhdcHWcMWrKUaAWVOg=,iv:H5YcSg5gVHNEt7gFLuF8OQtTMq88HdZwlMfMTxxL7iQ=,tag:66qP18m69BBEIuHKJMa1Cw==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.8.1

View File

@ -1,32 +1,33 @@
--- ---
namespace: values: |
name: badhouseplants-$BH_APP_BRANCH namespace:
name: badhouseplants-$ARGO_APP_BRANCH
labels: labels:
istio-injection: disabled istio-injection: disabled
istio:
hosts:
- $BH_APP_HOSTNAME
annotations:
link.argocd.argoproj.io/env: https://$BH_APP_HOSTNAME/
link.argocd.argoproj.io/remark42: https://remark42-$BH_APP_HOSTNAME/web
link.argocd.argoproj.io/build: $DRONE_BUILD_LINK
hugo:
image:
tag: $BH_APP_IMAGE_TAG
baseURL: https://$BH_APP_HOSTNAME/
buildDrafts: true
env:
HUGO_PARAMS_GITBRANCH: $BH_APP_BRANCH
HUGO_PARAMS_REMARK42URL: https://remark42-$BH_APP_HOSTNAME
HUGO_PARAMS_GITCOMMIT: $BH_APP_IMAGE_TAG
remark42:
istio: istio:
hosts: hosts:
- remark42-$BH_APP_HOSTNAME - $ARGO_APP_HOSTNAME
annotations:
link.argocd.argoproj.io/env: https://$ARGO_APP_HOSTNAME/
link.argocd.argoproj.io/remark42: https://remark42-$ARGO_APP_HOSTNAME/web
link.argocd.argoproj.io/build: $DRONE_BUILD_LINK
hugo:
image:
tag: $ARGO_APP_IMAGE_TAG
baseURL: https://$ARGO_APP_HOSTNAME/
buildDrafts: true
env:
HUGO_PARAMS_GITBRANCH: $ARGO_APP_BRANCH
HUGO_PARAMS_REMARK42URL: https://remark42-$ARGO_APP_HOSTNAME
HUGO_PARAMS_GITCOMMIT: $ARGO_APP_IMAGE_TAG
remark42:
istio:
hosts:
- remark42-$ARGO_APP_HOSTNAME
settings: settings:
url: https://remark42-$BH_APP_HOSTNAME/ url: https://remark42-$ARGO_APP_HOSTNAME/
auth: auth:
anonymous: true anonymous: true
secretKey: $BH_REMARK_SECRET secretKey: $ARGO_REMARK_SECRET
rclone: rclone:
command: 'rclone copy -P badhouseplants-public:/badhouseplants-net/$BH_APP_IMAGE_TAG /static' command: 'rclone copy -P badhouseplants-public:/badhouseplants-net/$ARGO_APP_IMAGE_TAG /static'

View File

@ -15,11 +15,11 @@ my $values = "";
my $remark_secret = `openssl rand -hex 12`; my $remark_secret = `openssl rand -hex 12`;
chomp($remark_secret); chomp($remark_secret);
$ENV{'BH_APP_CHART_VERSION'} = $chart_version; $ENV{'ARGO_APP_CHART_VERSION'} = $chart_version;
$ENV{'BH_APP_BRANCH'} = $git_branch; $ENV{'ARGO_APP_BRANCH'} = $git_branch;
$ENV{'BH_APP_HOSTNAME'} = "$git_branch-dev.badhouseplants.net"; $ENV{'ARGO_APP_HOSTNAME'} = "$git_branch-dev.badhouseplants.net";
$ENV{'BH_APP_IMAGE_TAG'} = $git_commit_sha; $ENV{'ARGO_APP_IMAGE_TAG'} = $git_commit_sha;
$ENV{'BH_REMARK_SECRET'} = $remark_secret; $ENV{'ARGO_REMARK_SECRET'} = $remark_secret;
# ---------------------------------- # ----------------------------------
# -- Fill the Application manifest # -- Fill the Application manifest
@ -37,7 +37,6 @@ 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 $!; print `yq -i '.spec.source.helm.values = load_str("/tmp/values.yaml")' /tmp/application.yaml` or die $!;
if(!defined $ENV{DEPLOY_SCRIPT_DEBUG}){ if(!defined $ENV{DEPLOY_SCRIPT_DEBUG}){
print `helm upgrade --install `
print `argocd app create -f /tmp/application.yaml --upsert` or die $!; 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 sync --prune -l application=badhouseplants -l branch=$git_branch` or die $!;
print `argocd app wait -l application=badhouseplants -l branch=$git_branch` or die $!; print `argocd app wait -l application=badhouseplants -l branch=$git_branch` or die $!;

View File

@ -34,7 +34,7 @@ params:
profileMode: profileMode:
enabled: true enabled: true
title: "Bad Houseplants" title: "Bad Houseplants"
subtitle: ... by allanger. subtitle: Easy DevOps by allanger
imageUrl: "main-logo.png" imageUrl: "main-logo.png"
imageWidth: 150 imageWidth: 150
imageHeight: 150 imageHeight: 150

View File

@ -4,7 +4,19 @@ date: 2023-01-24T09:26:52+01:00
draft: false draft: false
--- ---
Oi! ## Welcome
Oi! Welcome to Bad Houseplants.
This is a blog about DevOps, self-hosting, Kubernetes, and stuff like that.
I'm allanger and I believe that DevOps should be easy to understand, and when saying DevOps, I also mean SRE and Ops in general. I see/hear it very often that teams working with GitOps and Kubernetes are making it increadbly hard, and I don't know the reasons for sure.
Here, I'll try do describe how things can be deployed to K8s, what one could do with that, and how to keep it maintainable. My main focus is self-hosted k8s, because it's the one I'm using on my own, but it doesn't mean that what you'll read here can't be applied to cloud providers and different k8s-as-a-service solutions.
I'm allanger and currently I'm working as full time SRE, but recently I've found out that I'd like to spend more time doing things related to music and sound. So I'm currently looking for project to add to my portfolio. So if you want somebody do a decent (I hope) mix for you without asking for any money, just let shoot me a message. I'm allanger and currently I'm working as full time SRE, but recently I've found out that I'd like to spend more time doing things related to music and sound. So I'm currently looking for project to add to my portfolio. So if you want somebody do a decent (I hope) mix for you without asking for any money, just let shoot me a message.
I'm not a pro mixing engineer of course, but it's what I'm aiming for. I'm not a pro mixing engineer of course, but it's what I'm aiming for.