Skip to content

Commit

Permalink
Merge branch 'feature/aws-cloud-formation' into feature/aws-cdk
Browse files Browse the repository at this point in the history
  • Loading branch information
werniq authored Sep 28, 2024
2 parents 030ddcb + 8d9fb96 commit 8b6ee96
Show file tree
Hide file tree
Showing 94 changed files with 1,092 additions and 2,582 deletions.
11 changes: 10 additions & 1 deletion .github/workflows/ecr-deployment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ env:
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: us-east-2
AWS_ACCOUNT_ID: 406477933661
CHART_VERSION: 0.1.0

jobs:
aws-setup:
Expand Down Expand Up @@ -38,10 +39,18 @@ jobs:
run: |
docker push ${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com/qniw984/go-gator
- name: Update and build dependencies in chart
run: |
cd go-gator
helm repo add cert-manager https://charts.jetstack.io
helm repo add vertical-pod-autoscaler https://stevehipwell.github.io/helm-charts/
helm dependency update
helm dependency build
- name: Build Helm chart
run: |
helm package go-gator
- name: Push Helm chart to ECR
run: |
helm push go-gator-0.1.0.tgz oci://${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com/qniw984/
helm push go-gator-${{ env.CHART_VERSION }}.tgz oci://${{ env.AWS_ACCOUNT_ID }}.dkr.ecr.${{ env.AWS_REGION }}.amazonaws.com/qniw984/
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ bin/*
.idea
coverage
cover
*.tgz
12 changes: 4 additions & 8 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,10 @@ RUN go build -o go-gator .
FROM alpine:3.20

ENV PORT=443
ENV CERT_FILE=/app/cmd/server/certs/certificate.pem
ENV CERT_KEY=/app/cmd/server/certs/key.pem
ENV STORAGE_PATH=/tmp/
ENV STORAGE_PATH=./data

COPY --from=build /app/cmd/server/certs /cmd/server/certs
COPY --from=build /app/cmd/parsers/data/ $STORAGE_PATH
COPY --from=build /app/cmd/server/certs ./cmd/server/certs
COPY --from=build /app/cmd/parsers/data $STORAGE_PATH
COPY --from=build /app/go-gator .
COPY --from=build $CERT_FILE $CERT_FILE
COPY --from=build $CERT_KEY $CERT_KEY

ENTRYPOINT /go-gator -p=$PORT -c=$CERT_FILE -k=$CERT_KEY -fs=$STORAGE_PATH
ENTRYPOINT /go-gator -p=$PORT -fs=$STORAGE_PATH
90 changes: 27 additions & 63 deletions Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ env:
DOCKERHUB_USERNAME: '{{ .DOCKER_LOGIN_USERNAME }}'
DOCKERHUB_PASSWORD: '{{ .DOCKERHUB_PASSWORD }}'
TESTDIR_NAME: '{{ .TESTDIR_NAME | default "pkg_tests" }}'
GO_GATOR_CHART_VERSION: '{{ .GO_GATOR_CHART_VERSION | default "0.1.0" }}'
DAY_0_CHART_VERSION: '{{ .DAY_0_CHART_VERSION | default "0.1.0" }}'
AWS_ACCOUNT_ID: '{{ .AWS_ACCOUNT_ID | default "406477933661" }}'

tasks:
fmt:
Expand All @@ -29,7 +32,7 @@ tasks:
cmds:
- staticcheck ./...

pre-launch:
preLaunch:
label: Prepare code before launching
desc: Formats code, optimizes dependencies and runs staticcheck tool
deps:
Expand All @@ -56,7 +59,7 @@ tasks:
cmd: |
go test ./... -v
docker-build:
dockerBuild:
desc: Build the docker image using Dockerfile with go-gator as a name
cmd: docker build -t {{ .DOCKER_IMAGE_NAME }} .

Expand All @@ -83,93 +86,54 @@ tasks:
cmds:
- kubectl delete -f templates/

createChart:
desc: Created a new Helm chart with all needed resources for news aggregator
cmds:
- helm create go-gator

installChart:
desc: Install the Helm chart on the Kubernetes cluster
cmds:
- helm install go-gator go-gator
- helm install go-gator-{{ .GO_GATOR_CHART_VERSION }}.tgz go-gator

uninstallChart:
desc: Uninstall the Helm chart from the Kubernetes cluster
cmds:
- helm uninstall go-gator

installCertManager:
desc: Install cert-manager on the Kubernetes cluster using helm
cmds:
- helm repo add jetstack https://charts.jetstack.io --force-update
- helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --version v1.15.2 --set crds.enabled=true

start:
cmds:
- minikube start
- kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.15.3/cert-manager.yaml
- echo "Waiting for cert manager to working..."
- sleep 10
- cd operator
- make generate
- make manifests
- make install
- make deploy
- kubectl apply -f ../templates/

installTask:
cmds:
- go install github.com/go-task/task/v3/cmd/task@latest

installVpa:
desc: Install Vertical Pod Autoscaler
cmds:
- git clone https://github.com/kubernetes/autoscaler.git
- cd autoscaler/vertical-pod-autoscaler
- git checkout origin/vpa-release-1.0
- REGISTRY=registry.k8s.io/autoscaling TAG=1.0.0 ./hack/vpa-process-yamls.sh apply

installMetricsServerHelm:
desc: Install metrics server using helm
cmds:
- helm repo add metrics-server https://kubernetes-sigs.github.io/metrics-server/

installMetricsServer:
desc: Install metrics server
cmds:
- kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.7.1/components.yaml

enableMetricsAddon:
desc: Enable metrics addon in minikube
cmds:
- minikube addons enable metrics-server

aws-login:
awsLogin:
desc: Login to AWS CLI
cmds:
- aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin 406477933661.dkr.ecr.us-east-2.amazonaws.com
- aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin {{ .AWS_ACCOUNT_ID }}.dkr.ecr.us-east-2.amazonaws.com

img-ecr-build:
goGatorImageEcrBuild:
desc: Build image for ECR
cmds:
- docker build -t qniw984/go-gator .
- docker tag qniw984/go-gator 406477933661.dkr.ecr.us-east-2.amazonaws.com/qniw984/go-gator
- docker tag qniw984/go-gator {{ .AWS_ACCOUNT_ID }}.dkr.ecr.us-east-2.amazonaws.com/qniw984/go-gator

img-ecr-push:
goGatorImageEcrPush:
desc: Push image to ECR
deps:
- img-ecr-build
cmds:
- docker push 406477933661.dkr.ecr.us-east-2.amazonaws.com/qniw984/go-gator
- docker push {{ .AWS_ACCOUNT_ID }}.dkr.ecr.us-east-2.amazonaws.com/qniw984/go-gator

chart-ecr-build:
goGatorChartEcrBuild:
desc: Build Helm chart for ECR
cmds:
- helm package go-gator

chart-ecr-push:
goGatorChartEcrPush:
desc: Push image to ECR
deps:
- ecr-build
cmds:
- helm push go-gator-0.1.0.tgz oci://406477933661.dkr.ecr.us-east-2.amazonaws.com/qniw984/
- helm push go-gator-{{ .GO_GATOR_CHART_VERSION }}.tgz oci://{{ .AWS_ACCOUNT_ID }}.dkr.ecr.us-east-2.amazonaws.com/qniw984/

day0EcrBuild:
desc: Build Helm chart for ECR
cmds:
- helm package day-0

day0EcrPush:
desc: Push image to ECR
deps:
- day0EcrBuild
cmds:
- helm push day-0-{{ .DAY_0_VERSION }}.tgz oci://{{ .AWS_ACCOUNT_ID }}.dkr.ecr.us-east-2.amazonaws.com/qniw984/
2 changes: 1 addition & 1 deletion cmd/parsers/manage_sources.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ var (
g ParsingFactory

// StoragePath is the path to folder with all data from application
StoragePath string = "/tmp/"
StoragePath string

// sourceToEndpoint maps source names (as strings) to their corresponding filenames
sourceToEndpoint = map[string]string{
Expand Down
1 change: 1 addition & 0 deletions cmd/server/certs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.pem
21 changes: 0 additions & 21 deletions cmd/server/certs/certificate.pem

This file was deleted.

28 changes: 0 additions & 28 deletions cmd/server/certs/key.pem

This file was deleted.

10 changes: 0 additions & 10 deletions cmd/server/certs/tls.crt

This file was deleted.

5 changes: 0 additions & 5 deletions cmd/server/certs/tls.key

This file was deleted.

Loading

0 comments on commit 8b6ee96

Please sign in to comment.