From 5e19dbd9d8cda8fb429c3f583fb8991f47b75ea7 Mon Sep 17 00:00:00 2001 From: Nikolai Rodionov Date: Mon, 6 Mar 2023 21:42:35 +0100 Subject: [PATCH] build: Refactor the Minio sync logic and separate the helm chart release --- .dockerignore | 13 + .drone.yml | 290 +++++++++++------- .gitattributes | 1 + .gitignore | 2 +- Dockerfile | 1 + Makefile | 8 +- chart/Chart.yaml | 2 +- chart/templates/deployment.yaml | 2 +- chart/values.yaml | 9 +- .../posts/design-a-scalable-system/index.md | 26 ++ kube/template.yaml | 2 + scripts/cleanup.pl | 34 +- scripts/upload-media.sh | 10 + static/Finish.png | 3 + static/Logo.jpg | 3 + static/Type.png | 3 + static/android-chrome-192x192.png | 3 + static/android-chrome-512x512.png | 3 + static/apple-touch-icon.png | 3 + .../argocd-vs-helmfile/app-of-apps-main.png | 3 + .../applicationset-test.png | 3 + static/argocd-vs-helmfile/diff-in-ui.png | 3 + static/argocd-vs-helmfile/goldilocks-ui.png | 3 + static/argocd-vs-helmfile/update-in-ui.png | 3 + static/assets/favicon.ico | 3 + .../3-clusters-and-gitea.png | 3 + .../3-clusters.png | 3 + static/dyn-envs/drone-pipeline.png | 3 + static/favicon-16x16.png | 3 + static/favicon-32x32.png | 3 + static/favicon.ico | 3 + static/music/Oveleane - Four Steps Behind.jpg | 3 + static/music/allanger-Anymore.jpg | 3 + static/music/allanger-Let_Me_Kill.png | 3 + static/music/allanger-Out_of_Law.png | 3 + static/music/allanger-Waster_Time.png | 3 + static/vst-on-linux-1/camel-crush.png | 3 + static/vst-on-linux-1/glitchmachines.png | 3 + static/vst-on-linux-1/glitchmaker-carla.gif | 3 + .../vst-on-linux-1/glitchmakesrs-glitch.gif | 3 + static/vst-on-linux-1/ott-xfer.png | 3 + static/vst-on-linux-1/snap-heap.png | 3 + static/vst-on-linux-1/tal-chorus.png | 3 + static/vst-on-linux-1/valhalla.png | 3 + static/vst-on-linux-1/wider.png | 3 + static/vst-on-linux-2/cardinal.png | 3 + static/vst-on-linux-2/deelay-glitch.gif | 3 + static/vst-on-linux-2/deelay.png | 3 + static/vst-on-linux-2/fire.png | 3 + static/vst-on-linux-2/gatelab.png | 3 + static/vst-on-linux-2/noise-engineering.png | 3 + static/vst-on-linux-2/panflow.png | 3 + static/vst-on-linux-2/paulxstretch.png | 3 + static/vst-on-linux-2/runia-plugin.png | 3 + static/vst-on-linux-2/sirt-plugin.png | 3 + static/vst-on-linux-2/surge.png | 3 + static/vst-on-linux-2/virt-vereor.png | 3 + static/vst-on-linux-3/eventide-pendulate.mp4 | 3 + static/vst-on-linux-3/labs-example.mp4 | 3 + .../vst-on-linux-3/mdrummer-example-lfo.mp4 | 3 + static/vst-on-linux-3/mdrummer-example.mp4 | 3 + static/vst-on-linux-3/mdrummer-lfo-carla.png | 3 + static/vst-on-linux-3/mdrummer.png | 3 + static/vst-on-linux-3/mguitar-architect.mp4 | 3 + static/vst-on-linux-3/mpower-synth.mp4 | 3 + static/vst-on-linux-3/native-access.png | 3 + static/vst-on-linux-3/protoverb.mp4 | 3 + static/vst-on-linux-3/space-piano.mp4 | 3 + static/vst-on-linux-3/spitfire-labs-app.png | 3 + static/vst-on-linux-3/tyrell.mp4 | 3 + static/vst-on-linux-3/vallhalla.mp4 | 3 + static/vst-on-linux-3/vcv-rack.mp4 | 3 + static/vst-on-linux-3/vital.mp4 | 3 + .../vst-on-linux-3/vst-on-linix-3-cover.png | 3 + 74 files changed, 450 insertions(+), 133 deletions(-) create mode 100644 .gitattributes create mode 100644 content/posts/design-a-scalable-system/index.md create mode 100755 scripts/upload-media.sh create mode 100644 static/Finish.png create mode 100644 static/Logo.jpg create mode 100644 static/Type.png create mode 100644 static/android-chrome-192x192.png create mode 100644 static/android-chrome-512x512.png create mode 100644 static/apple-touch-icon.png create mode 100644 static/argocd-vs-helmfile/app-of-apps-main.png create mode 100644 static/argocd-vs-helmfile/applicationset-test.png create mode 100644 static/argocd-vs-helmfile/diff-in-ui.png create mode 100644 static/argocd-vs-helmfile/goldilocks-ui.png create mode 100644 static/argocd-vs-helmfile/update-in-ui.png create mode 100644 static/assets/favicon.ico create mode 100644 static/dont-use-argocd-for-infrastructure/3-clusters-and-gitea.png create mode 100644 static/dont-use-argocd-for-infrastructure/3-clusters.png create mode 100644 static/dyn-envs/drone-pipeline.png create mode 100644 static/favicon-16x16.png create mode 100644 static/favicon-32x32.png create mode 100644 static/favicon.ico create mode 100644 static/music/Oveleane - Four Steps Behind.jpg create mode 100644 static/music/allanger-Anymore.jpg create mode 100644 static/music/allanger-Let_Me_Kill.png create mode 100644 static/music/allanger-Out_of_Law.png create mode 100644 static/music/allanger-Waster_Time.png create mode 100644 static/vst-on-linux-1/camel-crush.png create mode 100644 static/vst-on-linux-1/glitchmachines.png create mode 100644 static/vst-on-linux-1/glitchmaker-carla.gif create mode 100644 static/vst-on-linux-1/glitchmakesrs-glitch.gif create mode 100644 static/vst-on-linux-1/ott-xfer.png create mode 100644 static/vst-on-linux-1/snap-heap.png create mode 100644 static/vst-on-linux-1/tal-chorus.png create mode 100644 static/vst-on-linux-1/valhalla.png create mode 100644 static/vst-on-linux-1/wider.png create mode 100644 static/vst-on-linux-2/cardinal.png create mode 100644 static/vst-on-linux-2/deelay-glitch.gif create mode 100644 static/vst-on-linux-2/deelay.png create mode 100644 static/vst-on-linux-2/fire.png create mode 100644 static/vst-on-linux-2/gatelab.png create mode 100644 static/vst-on-linux-2/noise-engineering.png create mode 100644 static/vst-on-linux-2/panflow.png create mode 100644 static/vst-on-linux-2/paulxstretch.png create mode 100644 static/vst-on-linux-2/runia-plugin.png create mode 100644 static/vst-on-linux-2/sirt-plugin.png create mode 100644 static/vst-on-linux-2/surge.png create mode 100644 static/vst-on-linux-2/virt-vereor.png create mode 100644 static/vst-on-linux-3/eventide-pendulate.mp4 create mode 100644 static/vst-on-linux-3/labs-example.mp4 create mode 100644 static/vst-on-linux-3/mdrummer-example-lfo.mp4 create mode 100644 static/vst-on-linux-3/mdrummer-example.mp4 create mode 100644 static/vst-on-linux-3/mdrummer-lfo-carla.png create mode 100644 static/vst-on-linux-3/mdrummer.png create mode 100644 static/vst-on-linux-3/mguitar-architect.mp4 create mode 100644 static/vst-on-linux-3/mpower-synth.mp4 create mode 100644 static/vst-on-linux-3/native-access.png create mode 100644 static/vst-on-linux-3/protoverb.mp4 create mode 100644 static/vst-on-linux-3/space-piano.mp4 create mode 100644 static/vst-on-linux-3/spitfire-labs-app.png create mode 100644 static/vst-on-linux-3/tyrell.mp4 create mode 100644 static/vst-on-linux-3/vallhalla.mp4 create mode 100644 static/vst-on-linux-3/vcv-rack.mp4 create mode 100644 static/vst-on-linux-3/vital.mp4 create mode 100644 static/vst-on-linux-3/vst-on-linix-3-cover.png diff --git a/.dockerignore b/.dockerignore index fbc5c0c..94cecb3 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,4 +1,17 @@ +.git/**/* +.git + +node_modules/**/* node_modules + +static/**/* static + +scripts/**/* scripts +chart/**/* +chart + +kube/**/* +kube diff --git a/.drone.yml b/.drone.yml index 9353332..5b98818 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,5 +1,28 @@ --- # ---------------------------------------------- +# -- Update the helm chart +# ---------------------------------------------- +kind: pipeline +type: kubernetes +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 @@ -8,137 +31,166 @@ name: Build badhouseplants.net trigger: event: - - push + - 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 + - name: Download submodules with themes + image: alpine/git + commands: + - git submodule update --init --recursive -- 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: 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 - image: plugins/docker - when: - branch: - exclude: + - 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} + settings: + registry: git.badhouseplants.net + username: allanger + password: + from_secret: GITEA_TOKEN + repo: git.badhouseplants.net/${DRONE_REPO} + tags: + - ${DRONE_COMMIT_SHA} + - latest -- 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: Download media files + image: alpine/git + commands: + - git lfs pull -- name: Deploy a preview ApplicationSet - image: alpine/k8s:1.24.10 - when: - branch: - exclude: + - name: Sync pictures from lfs to Minio + image: rclone/rclone:latest + when: + branch: + exclude: + - main + environment: + RCLONE_CONFIG_CONTENT: + from_secret: RCLONE_CONFIG_CONTENT_PRIVATE + RCLONE_CONFIG: /tmp/rclone.conf + commands: + - echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG + - apk update + - apk add git make + - make upload_static + + - name: Sync pictures to the main Minio bucket + image: rclone/rclone:latest + when: + branch: - 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 + environment: + RCLONE_CONFIG_CONTENT: + from_secret: RCLONE_CONFIG_CONTENT_PRIVATE + RCLONE_CONFIG: /tmp/rclone.conf + commands: + - echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG + - apk update + - apk add git make + - make sync_static_with_main -- 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: 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: 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: 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: Cleanup container registry - image: alpine - environment: - GITEA_TOKEN: - from_secret: GITEA_TOKEN - commands: - - apk update - - apk add curl jq perl git - - ./scripts/cleanup.pl + - 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 everything + image: rclone/rclone:latest + environment: + RCLONE_CONFIG_CONTENT: + from_secret: RCLONE_CONFIG_CONTENT_PRIVATE + RCLONE_CONFIG: /tmp/rclone.conf + GITEA_TOKEN: + from_secret: GITEA_TOKEN + commands: + - echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG + - apk update + - apk add curl jq perl git + - ./scripts/cleanup.pl --- # ---------------------------------------------- diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..ebc81d3 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +static/* filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore index 3110b1b..436acc7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ node_modules -static +#static content/cv/index.pdf public resources diff --git a/Dockerfile b/Dockerfile index 388a6cd..5597fbc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ FROM git.badhouseplants.net/badhouseplants/hugo-builder WORKDIR /src COPY . /src +RUN ls -la /src ENTRYPOINT ["hugo"] diff --git a/Makefile b/Makefile index 6a783d5..d09c76d 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,15 @@ upload_static: - rclone copy -P static badhouseplants-minio:/badhouseplants-static + rclone copy -P static badhouseplants-minio:/badhouseplants-net/$(shell git rev-parse HEAD)/ + +sync_static_with_main: + rclone sync -P badhouseplants-minio:/badhouseplants-net/$(shell git rev-parse HEAD)/ badhouseplants-minio:/badhouseplants-net-main/ get_static: rclone copy -P badhouseplants-public:/badhouseplants-static static +init_static: + rclone copy -P badhouseplants-public:/badhouseplants-static badhouseplants-minio:/badhouseplants-net/$(shell git rev-parse HEAD)/ + submodules: git submodule update --init --recursive diff --git a/chart/Chart.yaml b/chart/Chart.yaml index ae7d462..409a1d4 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: badhouseplants-net description: A Helm chart for Kubernetes type: application -version: 0.5.8 +version: 0.6.0 appVersion: "4.20.0" dependencies: - name: remark42 diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml index b7f3906..cdafb77 100644 --- a/chart/templates/deployment.yaml +++ b/chart/templates/deployment.yaml @@ -35,7 +35,7 @@ spec: - sh args: - "-c" - - "rclone copy -P badhouseplants-public:/badhouseplants-static /static" + - {{ .Values.rclone.command }} volumeMounts: - name: rclone-config mountPath: "/tmp" diff --git a/chart/values.yaml b/chart/values.yaml index 8e9618d..dadc637 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -7,20 +7,21 @@ namespace: enabled: true name: badhouseplants-application -nginx: +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 diff --git a/content/posts/design-a-scalable-system/index.md b/content/posts/design-a-scalable-system/index.md new file mode 100644 index 0000000..6f219db --- /dev/null +++ b/content/posts/design-a-scalable-system/index.md @@ -0,0 +1,26 @@ +--- +title: "Design a Scalable System" +date: 2023-03-06T21:18:23+01:00 +draft: true +ShowToc: true +cover: + image: "cover.png" + caption: "Design a Scalable System" + relative: false + responsiveImages: false +--- + +Well, after I've posted my argo serie, I've found out that I couldn't really make myself understood. So now I want to talk more not about the way of implementation, but rather about the consequinces of different implementations. And maybe I will e able to finally make a point about why I don't like Terraform and why I think that ArgoCD is mostly mis-used by almost any SRE team I know. + +But first I'll try to describe how I see myself as a part of a team, the team as a part of a bigger team, and all the teams across different companies as links in the bigger chain. + +This is how I used to see development teams before: + +![Chain](/posts/design-a-scalable-system/chain-1.png) + +The whole team is using something as a service, for example `AWS`, the whole team is working together and producing something that is passed to a customer. But apparently this approach is only applicable to small teams, and I think it's working just fine. But there is a problem. Teams tend to grow without an understanding that they are growing, hence they keep acting like they're small but in the same time they don't change the workflow, and brick-by-brick they are building something that eventually is something unscalable at first and later unmaintanble. + +Example of an evolution like this: + +Let's take a regular Java(backend) + JS(frontend) web application + diff --git a/kube/template.yaml b/kube/template.yaml index 7aa2a6a..d07d9d0 100644 --- a/kube/template.yaml +++ b/kube/template.yaml @@ -34,3 +34,5 @@ auth: anonymous: true secretKey: $ARGO_REMARK42_SECRET + rclone: + command: "rclone copy -P badhouseplants-public:/badhouseplants-net/$ARGO_APP_IMAGE_TAG /static" diff --git a/scripts/cleanup.pl b/scripts/cleanup.pl index 76fe68b..a08ee93 100755 --- a/scripts/cleanup.pl +++ b/scripts/cleanup.pl @@ -30,18 +30,40 @@ 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) { - 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 "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' -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/upload-media.sh b/scripts/upload-media.sh new file mode 100755 index 0000000..1bdce97 --- /dev/null +++ b/scripts/upload-media.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +set -e + +#=== 'prev-commit' solution by o_O Tync +#commit_hash=$(git rev-parse --verify HEAD) +commit=$(git log -1 --pretty="%H%n%ci") # hash \n date +commit_date=$(echo "$commit" | head -2 | tail -1) # 2010-12-28 05:16:23 +0300 +commit_hash=$(echo "$commit" | head -1) +echo "$(git rev-parse HEAD)" > /tmp/test +echo "prev_commit='$commit_hash'\ndate='$commit_date'\nbranch='$branch'\n" > /tmp/test.txt diff --git a/static/Finish.png b/static/Finish.png new file mode 100644 index 0000000..54ec2f3 --- /dev/null +++ b/static/Finish.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:475223457ecd56a9b4450e39a1273727f98c4b0c78c6427992f4f77f6b90b957 +size 686006 diff --git a/static/Logo.jpg b/static/Logo.jpg new file mode 100644 index 0000000..0c27319 --- /dev/null +++ b/static/Logo.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7202b6aa5c651a18d7ec53375c509a5e06bd64f23423ef53d312c05376e1cc2c +size 398915 diff --git a/static/Type.png b/static/Type.png new file mode 100644 index 0000000..607496c --- /dev/null +++ b/static/Type.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f47009e4c2a81e75beb9dbe295be4842ed804db88cec5ac7056b16a55512637a +size 2020621 diff --git a/static/android-chrome-192x192.png b/static/android-chrome-192x192.png new file mode 100644 index 0000000..e785708 --- /dev/null +++ b/static/android-chrome-192x192.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5da923b06b69780de08c3450e99793a266c615e535a1053c718d6ae9eb8cb35 +size 20377 diff --git a/static/android-chrome-512x512.png b/static/android-chrome-512x512.png new file mode 100644 index 0000000..fb1798a --- /dev/null +++ b/static/android-chrome-512x512.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:193f9db492edcc5a1202f85998675cc23dcf82a6666fcebe8a492c8c1dbe2673 +size 44441 diff --git a/static/apple-touch-icon.png b/static/apple-touch-icon.png new file mode 100644 index 0000000..91a62b9 --- /dev/null +++ b/static/apple-touch-icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:efe8ae3cd0bc31b15c9e0d8e622a3019b969f07cf1692194dcad54c133f03925 +size 18092 diff --git a/static/argocd-vs-helmfile/app-of-apps-main.png b/static/argocd-vs-helmfile/app-of-apps-main.png new file mode 100644 index 0000000..9f08643 --- /dev/null +++ b/static/argocd-vs-helmfile/app-of-apps-main.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c329e920e735fdc52b3bee4cd60b3b8261d304a47197f44a1aaff56213b311c +size 247447 diff --git a/static/argocd-vs-helmfile/applicationset-test.png b/static/argocd-vs-helmfile/applicationset-test.png new file mode 100644 index 0000000..e4b4ef4 --- /dev/null +++ b/static/argocd-vs-helmfile/applicationset-test.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1452560f3d6d04483eeca09d100370cc5fa7120294edc9c089c758a8f4b7253f +size 332000 diff --git a/static/argocd-vs-helmfile/diff-in-ui.png b/static/argocd-vs-helmfile/diff-in-ui.png new file mode 100644 index 0000000..e5fbd15 --- /dev/null +++ b/static/argocd-vs-helmfile/diff-in-ui.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60603706ad018d3c73ed54eb475058424043ce9cf87de76f236fb9be6124d048 +size 465450 diff --git a/static/argocd-vs-helmfile/goldilocks-ui.png b/static/argocd-vs-helmfile/goldilocks-ui.png new file mode 100644 index 0000000..e60d54b --- /dev/null +++ b/static/argocd-vs-helmfile/goldilocks-ui.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e42129f54056e12affbbb81ac2597c4f07fe08c3acc9c5879c0e1b40e8b879c8 +size 385843 diff --git a/static/argocd-vs-helmfile/update-in-ui.png b/static/argocd-vs-helmfile/update-in-ui.png new file mode 100644 index 0000000..0e27218 --- /dev/null +++ b/static/argocd-vs-helmfile/update-in-ui.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:797fe98bbf2dc7dfae0a2876f22cca0b185afab3d928effc42bfee50fe6fb130 +size 299165 diff --git a/static/assets/favicon.ico b/static/assets/favicon.ico new file mode 100644 index 0000000..3221b47 --- /dev/null +++ b/static/assets/favicon.ico @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c873c215333c27d52068b7adab5a61c3744405661e577fa239cdeeb7f7b4efb1 +size 13094 diff --git a/static/dont-use-argocd-for-infrastructure/3-clusters-and-gitea.png b/static/dont-use-argocd-for-infrastructure/3-clusters-and-gitea.png new file mode 100644 index 0000000..825eaea --- /dev/null +++ b/static/dont-use-argocd-for-infrastructure/3-clusters-and-gitea.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87485f4b6c9648b35613d184e0b0df737ac779f6a005c8cd2fbab5f189a7a3ef +size 703100 diff --git a/static/dont-use-argocd-for-infrastructure/3-clusters.png b/static/dont-use-argocd-for-infrastructure/3-clusters.png new file mode 100644 index 0000000..97b2678 --- /dev/null +++ b/static/dont-use-argocd-for-infrastructure/3-clusters.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee5b58c2aedb0dba95a8d9e26292bbe6fbd696c58d0aedcc50d8c383c004c3f8 +size 245998 diff --git a/static/dyn-envs/drone-pipeline.png b/static/dyn-envs/drone-pipeline.png new file mode 100644 index 0000000..5f55e28 --- /dev/null +++ b/static/dyn-envs/drone-pipeline.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94fae326897aa04583bed82f66c348891ee0c12727cea5d834ad3b48cb4ce677 +size 305166 diff --git a/static/favicon-16x16.png b/static/favicon-16x16.png new file mode 100644 index 0000000..2c71d71 --- /dev/null +++ b/static/favicon-16x16.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44436d4ce290289438e1f06101af312b83a535142b5a7cc8faa1e597a58d4c05 +size 585 diff --git a/static/favicon-32x32.png b/static/favicon-32x32.png new file mode 100644 index 0000000..7ad9d34 --- /dev/null +++ b/static/favicon-32x32.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:168891830d9dcfb9146a4f907a50cfddfb4b06c9245cf65fa6398ff89edf127d +size 1501 diff --git a/static/favicon.ico b/static/favicon.ico new file mode 100644 index 0000000..c5d3be1 --- /dev/null +++ b/static/favicon.ico @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d872fe94954e47d14563d77ddba54f15aa62f5df0a76f3ead45764847e554154 +size 15406 diff --git a/static/music/Oveleane - Four Steps Behind.jpg b/static/music/Oveleane - Four Steps Behind.jpg new file mode 100644 index 0000000..bc4b45c --- /dev/null +++ b/static/music/Oveleane - Four Steps Behind.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fe51ea848995e26db8c88552ac057e286c66cc8e117280fac7149c4e42dd0e2 +size 2049438 diff --git a/static/music/allanger-Anymore.jpg b/static/music/allanger-Anymore.jpg new file mode 100644 index 0000000..b61b87c --- /dev/null +++ b/static/music/allanger-Anymore.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03b9da09d850d01c9cb420c6b3a128c5395872f07461e4b0488f665bddfd9835 +size 1065466 diff --git a/static/music/allanger-Let_Me_Kill.png b/static/music/allanger-Let_Me_Kill.png new file mode 100644 index 0000000..bca3626 --- /dev/null +++ b/static/music/allanger-Let_Me_Kill.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c78774248cc5bddd94a3ed7f32680411e7ee2be64c0a2b0aed0ca2b03e2cc12 +size 9096807 diff --git a/static/music/allanger-Out_of_Law.png b/static/music/allanger-Out_of_Law.png new file mode 100644 index 0000000..a212a6d --- /dev/null +++ b/static/music/allanger-Out_of_Law.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ac867a2e557c98b6fee62d405a55718a0b40401547d9a52a0c582de94ae5a0e +size 14588816 diff --git a/static/music/allanger-Waster_Time.png b/static/music/allanger-Waster_Time.png new file mode 100644 index 0000000..1e4f75e --- /dev/null +++ b/static/music/allanger-Waster_Time.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5e42ea91f87e4162b5031edc9b99f3cc0e41077c924a2c85a245cb2c81e2fb6 +size 6004369 diff --git a/static/vst-on-linux-1/camel-crush.png b/static/vst-on-linux-1/camel-crush.png new file mode 100644 index 0000000..a28a527 --- /dev/null +++ b/static/vst-on-linux-1/camel-crush.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57c298cbc2c38423baadaeab60b48064ecc04a96486765c41e90c9d8dd937816 +size 842713 diff --git a/static/vst-on-linux-1/glitchmachines.png b/static/vst-on-linux-1/glitchmachines.png new file mode 100644 index 0000000..ecf53bb --- /dev/null +++ b/static/vst-on-linux-1/glitchmachines.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d23698e02dd5412beeba2edbae158464cf723a65f82849b5ba5e79b034197f40 +size 263703 diff --git a/static/vst-on-linux-1/glitchmaker-carla.gif b/static/vst-on-linux-1/glitchmaker-carla.gif new file mode 100644 index 0000000..ab1fa0f --- /dev/null +++ b/static/vst-on-linux-1/glitchmaker-carla.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d980570ae12bfb7564b87efbf1efad9040d1659325c888372bce32de3ebc91d +size 26935564 diff --git a/static/vst-on-linux-1/glitchmakesrs-glitch.gif b/static/vst-on-linux-1/glitchmakesrs-glitch.gif new file mode 100644 index 0000000..98e3395 --- /dev/null +++ b/static/vst-on-linux-1/glitchmakesrs-glitch.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f47cf8172c4ed6f91f53dd6dd6c3c46be7f8153e2a3d5de25c5d455dec14fb46 +size 17660362 diff --git a/static/vst-on-linux-1/ott-xfer.png b/static/vst-on-linux-1/ott-xfer.png new file mode 100644 index 0000000..0cea332 --- /dev/null +++ b/static/vst-on-linux-1/ott-xfer.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f9725d7977d3c36f1655ddfbaf6e57e53854e41d44ed67da36ae021eb18371f +size 279992 diff --git a/static/vst-on-linux-1/snap-heap.png b/static/vst-on-linux-1/snap-heap.png new file mode 100644 index 0000000..e094d5d --- /dev/null +++ b/static/vst-on-linux-1/snap-heap.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44e7397856bceac94354abcf0e9df23c820f9bc743da800b6e020a2a9c78c082 +size 601331 diff --git a/static/vst-on-linux-1/tal-chorus.png b/static/vst-on-linux-1/tal-chorus.png new file mode 100644 index 0000000..752d3e2 --- /dev/null +++ b/static/vst-on-linux-1/tal-chorus.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d15294da4f84b2f11627ee69be01cdaf3298e18e62e142d4e668e50cc4aee050 +size 214950 diff --git a/static/vst-on-linux-1/valhalla.png b/static/vst-on-linux-1/valhalla.png new file mode 100644 index 0000000..69286ed --- /dev/null +++ b/static/vst-on-linux-1/valhalla.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69e748529ae61f471a5b88858b2f2edfed84f79db03f2ddfc32ed0071496b3a6 +size 326068 diff --git a/static/vst-on-linux-1/wider.png b/static/vst-on-linux-1/wider.png new file mode 100644 index 0000000..735e803 --- /dev/null +++ b/static/vst-on-linux-1/wider.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8bbcad8a7c2e1a5d1c49022c4b7d30eb515b85cb9f37bbc0092204f64bbb898 +size 518231 diff --git a/static/vst-on-linux-2/cardinal.png b/static/vst-on-linux-2/cardinal.png new file mode 100644 index 0000000..d552ca8 --- /dev/null +++ b/static/vst-on-linux-2/cardinal.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8e2bdb61aaa10a0e15a550aca00a55d2f0a197c684d1a845b1c8a6c874ffb99 +size 424994 diff --git a/static/vst-on-linux-2/deelay-glitch.gif b/static/vst-on-linux-2/deelay-glitch.gif new file mode 100644 index 0000000..79b0fd4 --- /dev/null +++ b/static/vst-on-linux-2/deelay-glitch.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ab3679098e5c7c19b6cabcd9b274a4ff5be9bd3880bfea24dc69c14a28291d4 +size 166217444 diff --git a/static/vst-on-linux-2/deelay.png b/static/vst-on-linux-2/deelay.png new file mode 100644 index 0000000..c582999 --- /dev/null +++ b/static/vst-on-linux-2/deelay.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d84b4accbdb7be7156730e024367cc57ee3c7b3c55b628ebe8b866baf9b0cf6d +size 437298 diff --git a/static/vst-on-linux-2/fire.png b/static/vst-on-linux-2/fire.png new file mode 100644 index 0000000..feccbfa --- /dev/null +++ b/static/vst-on-linux-2/fire.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d7cc2ea5c4515e101f09ee82b3294af580b95ac6d7a30c4f80ed7746c897179 +size 382513 diff --git a/static/vst-on-linux-2/gatelab.png b/static/vst-on-linux-2/gatelab.png new file mode 100644 index 0000000..711a6f6 --- /dev/null +++ b/static/vst-on-linux-2/gatelab.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:162138d7c368b852bece411dd039482a15c596a2c33bfcf056afd7fdd847ffcf +size 320536 diff --git a/static/vst-on-linux-2/noise-engineering.png b/static/vst-on-linux-2/noise-engineering.png new file mode 100644 index 0000000..60cafae --- /dev/null +++ b/static/vst-on-linux-2/noise-engineering.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9a3b2ea6b4396a918f6e1c25b51ed28b33093ac3c00d430cecf778551332631 +size 440546 diff --git a/static/vst-on-linux-2/panflow.png b/static/vst-on-linux-2/panflow.png new file mode 100644 index 0000000..d95efd3 --- /dev/null +++ b/static/vst-on-linux-2/panflow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5bec35f61c11bfe87de3107baeb56e7a31a49328d397cbc00a1ec2b50ab9f6c4 +size 270835 diff --git a/static/vst-on-linux-2/paulxstretch.png b/static/vst-on-linux-2/paulxstretch.png new file mode 100644 index 0000000..e053415 --- /dev/null +++ b/static/vst-on-linux-2/paulxstretch.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1818e1a95a280f004c7311a18812edab1e9436847e06ef5dd8402e5f09c645c +size 185558 diff --git a/static/vst-on-linux-2/runia-plugin.png b/static/vst-on-linux-2/runia-plugin.png new file mode 100644 index 0000000..51c9f99 --- /dev/null +++ b/static/vst-on-linux-2/runia-plugin.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4fd23c468cade663d64694633d8486c49a590bc92b89169e4524bdcf0b9315ff +size 320187 diff --git a/static/vst-on-linux-2/sirt-plugin.png b/static/vst-on-linux-2/sirt-plugin.png new file mode 100644 index 0000000..b704162 --- /dev/null +++ b/static/vst-on-linux-2/sirt-plugin.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:162a4c1349fc74fd607932a2d084c6d1ae7702ad2d101d7eb52c9765d010a41b +size 396243 diff --git a/static/vst-on-linux-2/surge.png b/static/vst-on-linux-2/surge.png new file mode 100644 index 0000000..7bb4a75 --- /dev/null +++ b/static/vst-on-linux-2/surge.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a18fbe266596c92803737fbf96d1aaeb6a5aff6cc30052ddedfdd988bfd4f2dd +size 532448 diff --git a/static/vst-on-linux-2/virt-vereor.png b/static/vst-on-linux-2/virt-vereor.png new file mode 100644 index 0000000..b7c8e23 --- /dev/null +++ b/static/vst-on-linux-2/virt-vereor.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dce9d0528a0807b19e6a65e198f2efabb1433e6d462f600419e08ef79011bd56 +size 424311 diff --git a/static/vst-on-linux-3/eventide-pendulate.mp4 b/static/vst-on-linux-3/eventide-pendulate.mp4 new file mode 100644 index 0000000..ed3234a --- /dev/null +++ b/static/vst-on-linux-3/eventide-pendulate.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aef76ca940fb050a6d26e75f27b9ec5effb87af8c10b5d8ba30152f1f42151a2 +size 6126500 diff --git a/static/vst-on-linux-3/labs-example.mp4 b/static/vst-on-linux-3/labs-example.mp4 new file mode 100644 index 0000000..f732108 --- /dev/null +++ b/static/vst-on-linux-3/labs-example.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:566decff07913546a463f35bb9c0e47945b0366c9294b1afbc4bf89c04bd5eea +size 6973433 diff --git a/static/vst-on-linux-3/mdrummer-example-lfo.mp4 b/static/vst-on-linux-3/mdrummer-example-lfo.mp4 new file mode 100644 index 0000000..c0e74d2 --- /dev/null +++ b/static/vst-on-linux-3/mdrummer-example-lfo.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0313445baf62290fa6a8fa55b9d36554e3de7195ae3b898612bae23c1df557a5 +size 7651823 diff --git a/static/vst-on-linux-3/mdrummer-example.mp4 b/static/vst-on-linux-3/mdrummer-example.mp4 new file mode 100644 index 0000000..f297abe --- /dev/null +++ b/static/vst-on-linux-3/mdrummer-example.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73b29483feaf48cb9baf01946f9da926ac25d8367110958de00a5a8fce1bc996 +size 7935948 diff --git a/static/vst-on-linux-3/mdrummer-lfo-carla.png b/static/vst-on-linux-3/mdrummer-lfo-carla.png new file mode 100644 index 0000000..ee89edd --- /dev/null +++ b/static/vst-on-linux-3/mdrummer-lfo-carla.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af8e673858ef7bb279a89cf574ef29d56484f4258891e10716078072d001485b +size 321828 diff --git a/static/vst-on-linux-3/mdrummer.png b/static/vst-on-linux-3/mdrummer.png new file mode 100644 index 0000000..2c7e53d --- /dev/null +++ b/static/vst-on-linux-3/mdrummer.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0874adf6e5bc5d15c5601f8a5dbdd710fd4e82d30e6e8e998cc5a7b3b989dcf +size 330065 diff --git a/static/vst-on-linux-3/mguitar-architect.mp4 b/static/vst-on-linux-3/mguitar-architect.mp4 new file mode 100644 index 0000000..56e7df6 --- /dev/null +++ b/static/vst-on-linux-3/mguitar-architect.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcaa8b6a4e3e5b7f97d870dcba891eb486e89f8c13c879332bf3cb0d9734419e +size 5060479 diff --git a/static/vst-on-linux-3/mpower-synth.mp4 b/static/vst-on-linux-3/mpower-synth.mp4 new file mode 100644 index 0000000..e33bbdf --- /dev/null +++ b/static/vst-on-linux-3/mpower-synth.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b8701ec9c674680f6ac84bd857aba76d11b22df6621cd1189efb28c326970e7 +size 3493304 diff --git a/static/vst-on-linux-3/native-access.png b/static/vst-on-linux-3/native-access.png new file mode 100644 index 0000000..f202ba5 --- /dev/null +++ b/static/vst-on-linux-3/native-access.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9247d5488be4c562b51b51db9eceb26afbfefd0c79d6802eaeeb39f5885bd4a7 +size 49413 diff --git a/static/vst-on-linux-3/protoverb.mp4 b/static/vst-on-linux-3/protoverb.mp4 new file mode 100644 index 0000000..45b0e55 --- /dev/null +++ b/static/vst-on-linux-3/protoverb.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a63d449ec1896ee8856326c8b5c82372fd6e90e534320f1e1d00a97aa4033381 +size 7597907 diff --git a/static/vst-on-linux-3/space-piano.mp4 b/static/vst-on-linux-3/space-piano.mp4 new file mode 100644 index 0000000..52296f3 --- /dev/null +++ b/static/vst-on-linux-3/space-piano.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce96dcd3663dea25dafe601e006fdd6484ea1fd0fd575f0c705a8f67618b1d54 +size 11211344 diff --git a/static/vst-on-linux-3/spitfire-labs-app.png b/static/vst-on-linux-3/spitfire-labs-app.png new file mode 100644 index 0000000..8c20b06 --- /dev/null +++ b/static/vst-on-linux-3/spitfire-labs-app.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b180ddc8e021a57e3a5e9b5f8d6edbf951e34cfa73ca4d758262e8d9bbee36c4 +size 1309436 diff --git a/static/vst-on-linux-3/tyrell.mp4 b/static/vst-on-linux-3/tyrell.mp4 new file mode 100644 index 0000000..ada8551 --- /dev/null +++ b/static/vst-on-linux-3/tyrell.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c36ee6105ac53f6f08dbff13fe4fe66258ac9d0dc2522c155be9793e5288155 +size 4176960 diff --git a/static/vst-on-linux-3/vallhalla.mp4 b/static/vst-on-linux-3/vallhalla.mp4 new file mode 100644 index 0000000..0988550 --- /dev/null +++ b/static/vst-on-linux-3/vallhalla.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:140102721033c63e0bbe47526e371fbefd7c3b204aa0c525a03574bac7ccc3bd +size 15858934 diff --git a/static/vst-on-linux-3/vcv-rack.mp4 b/static/vst-on-linux-3/vcv-rack.mp4 new file mode 100644 index 0000000..77e3667 --- /dev/null +++ b/static/vst-on-linux-3/vcv-rack.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44da75a3ba194cc1f4dc808e047acc20abfc4103c61e6199bcf093891ff453de +size 6165846 diff --git a/static/vst-on-linux-3/vital.mp4 b/static/vst-on-linux-3/vital.mp4 new file mode 100644 index 0000000..5ff3a94 --- /dev/null +++ b/static/vst-on-linux-3/vital.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06d8edc10a5a0fd93b4eebd467bd5be640e8ffbf87bc8e9b3f8528e762812beb +size 6298246 diff --git a/static/vst-on-linux-3/vst-on-linix-3-cover.png b/static/vst-on-linux-3/vst-on-linix-3-cover.png new file mode 100644 index 0000000..d9c9685 --- /dev/null +++ b/static/vst-on-linux-3/vst-on-linix-3-cover.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72dd103d0002b201fc869b7f029d996093c1192d051bdd10475b7abda5e4994d +size 1106123