Skip to content

Commit

Permalink
Merge pull request #219 from D10S0VSkY-OSS/refactor/github_actions
Browse files Browse the repository at this point in the history
🐛fix: terragrunt download tf if no exist
  • Loading branch information
D10S0VSkY-OSS authored Dec 11, 2023
2 parents d08a124 + b2fb260 commit cb404be
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 27 deletions.
40 changes: 20 additions & 20 deletions .github/workflows/sld-remote-state-docker-image.yml
Original file line number Diff line number Diff line change
@@ -1,40 +1,40 @@
name: SLD Remote State Docker Image CI

on:
# Triggers the workflow on push events but only for the main branch
push:
branches: [ master ]
# Allows you to run this workflow manually from the Actions tab
release:
types: [created]
workflow_dispatch:

jobs:

build:

build-and-push:
runs-on: ubuntu-22.04

steps:
- uses: actions/checkout@v2
- name: docker login

# Login to Docker Hub
- name: Docker login
env:
DOCKER_USER: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
run: |
docker login -u $DOCKER_USER -p $DOCKER_PASSWORD
run: docker login -u $DOCKER_USER -p $DOCKER_PASSWORD

- name: Build the Docker image with tags
# Build and push the Docker image with new tag for releases
- name: Build and push Docker image with new tag
if: github.event_name == 'release'
working-directory: ./sld-remote-state
run: docker build . --file Dockerfile --tag ${{ secrets.DOCKER_USERNAME }}/sld-remote-state:2.11.0

- name: Docker Push with tags
#if: github.event.pull_request.merged == true
run: docker push ${{ secrets.DOCKER_USERNAME }}/sld-remote-state:2.11.0
run: |
TAG=$(echo $GITHUB_REF | sed 's/refs\/tags\///')
docker build . --file Dockerfile --tag ${{ secrets.DOCKER_USERNAME }}/sld-remote-state:$TAG
docker push ${{ secrets.DOCKER_USERNAME }}/sld-remote-state:$TAG
- name: Build the Docker image
# Build and push the Docker image with 'latest' tag for master branch
- name: Build and push Docker image with latest tag
if: github.ref == 'refs/heads/master'
working-directory: ./sld-remote-state
run: docker build . --file Dockerfile --tag ${{ secrets.DOCKER_USERNAME }}/sld-remote-state:latest

- name: Docker Push
#if: github.event.pull_request.merged == true
run: docker push ${{ secrets.DOCKER_USERNAME }}/sld-remote-state:latest

run: |
docker build . --file Dockerfile --tag ${{ secrets.DOCKER_USERNAME }}/sld-remote-state:latest
docker push ${{ secrets.DOCKER_USERNAME }}/sld-remote-state:latest
2 changes: 1 addition & 1 deletion play-with-sld/kubernetes/k8s/sld-api-backend.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ spec:
subdomain: primary
containers:
- name: api-backend
image: d10s0vsky/sld-api:3.2.0
image: d10s0vsky/sld-api:v3.3.0
imagePullPolicy: Always
command: ["python", "-m", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "1"]
ports:
Expand Down
2 changes: 1 addition & 1 deletion play-with-sld/kubernetes/k8s/sld-dashboard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ spec:
subdomain: primary
containers:
- name: sld-dashboard
image: d10s0vsky/sld-dashboard:3.2.0
image: d10s0vsky/sld-dashboard:v3.3.0
env:
- name: PATH
value: "/home/sld/.asdf/shims:/home/sld/.asdf/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Expand Down
2 changes: 1 addition & 1 deletion play-with-sld/kubernetes/k8s/sld-worker-default.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ spec:
subdomain: primary
containers:
- name: stack-deploy-worker-default
image: d10s0vsky/sld-api:3.2.0
image: d10s0vsky/sld-api:v3.3.0
imagePullPolicy: Always
env:
- name: TF_WARN_OUTPUT_ERRORS
Expand Down
4 changes: 2 additions & 2 deletions play-with-sld/kubernetes/k8s/sld-worker-squad1.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ spec:
subdomain: primary
containers:
- name: stack-deploy-worker-squad1
image: d10s0vsky/sld-api:3.2.0
image: d10s0vsky/sld-api:v3.3.0
imagePullPolicy: Always
env:
- name: TF_WARN_OUTPUT_ERRORS
value: "1"
- name: PATH
value: "/home/sld/.asdf/shims:/home/sld/.asdf/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
command: ["python", "-m", "celery", "--app", "src.worker.tasks.terraform_worker", "worker", "--loglevel=info", "-c", "8", "-E", "-Q", "any,squad1"]
command: ["python", "-m", "celery", "--app", "src.worker.tasks.terraform_worker", "worker", "--loglevel=info", "--pool=solo", "-E", "-Q", "any,squad1"]
4 changes: 2 additions & 2 deletions play-with-sld/kubernetes/k8s/sld-worker-squad2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ spec:
subdomain: primary
containers:
- name: stack-deploy-worker-squad2
image: d10s0vsky/sld-api:3.2.0
image: d10s0vsky/sld-api:v3.3.0
imagePullPolicy: Always
env:
- name: TF_WARN_OUTPUT_ERRORS
value: "1"
- name: PATH
value: "/home/sld/.asdf/shims:/home/sld/.asdf/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
command: ["python", "-m", "celery", "--app", "src.worker.tasks.terraform_worker", "worker", "--loglevel=info", "-c", "8", "-E", "-Q", "any,squad2"]
command: ["python", "-m", "celery", "--app", "src.worker.tasks.terraform_worker", "worker", "--loglevel=info", "--pool=solo", "-E", "-Q", "any,squad2"]
14 changes: 14 additions & 0 deletions sld-api-backend/src/worker/providers/hashicorp/download.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,20 @@ def get(self) -> dict:
file.write(chunk)
os.chmod(downloaded_binary_path, os.stat(downloaded_binary_path).st_mode | stat.S_IEXEC)
os.rename(downloaded_binary_path, renamed_binary_path)

#terrform
if not os.path.isfile(f"/tmp/{self.version}/terraform"):
binary_terraform = f"{settings.TERRAFORM_BIN_REPO}/{self.version}/terraform_1.6.5_linux_amd64.zip"
req = requests.get(binary_terraform, verify=False)
_zipfile = zipfile.ZipFile(BytesIO(req.content))
_zipfile.extractall(f"/tmp/{self.version}")
st = os.stat(f"/tmp/{self.version}/terraform")
os.chmod(f"/tmp/{self.version}/terraform", st.st_mode | stat.S_IEXEC)
current_path = os.environ.get('PATH', '')
if binary_directory not in current_path.split(os.pathsep):
updated_path = current_path + os.pathsep + binary_directory
os.environ['PATH'] = updated_path

else:
logging.error(f"Failed to download Terragrunt binary from {binary_url}")
return {"command": "binaryDownload", "rc": 1, "stdout": "Failed to download binary file"}
Expand Down

0 comments on commit cb404be

Please sign in to comment.