gitops 0.12.0__tar.gz → 0.13.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gitops-0.13.2/.github/workflows/publish.yml +62 -0
- gitops-0.13.2/.github/workflows/release-please.yaml +82 -0
- gitops-0.13.2/.github/workflows/test.yml +43 -0
- gitops-0.13.2/.release-please-manifest.json +5 -0
- gitops-0.13.2/CHANGELOG.md +82 -0
- {gitops-0.12.0 → gitops-0.13.2}/PKG-INFO +1 -2
- {gitops-0.12.0 → gitops-0.13.2}/charts/gitops/Chart.yaml +1 -1
- gitops-0.13.2/charts/gitops/charts/gitops/CHANGELOG.md +30 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops/__init__.py +1 -1
- {gitops-0.12.0 → gitops-0.13.2}/gitops/core.py +1 -1
- {gitops-0.12.0 → gitops-0.13.2}/gitops/utils/images.py +6 -2
- gitops-0.13.2/gitops_server/__init__.py +0 -0
- gitops-0.13.2/gitops_server/gitops_server/CHANGELOG.md +48 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops_server/workers/deployer/deploy.py +4 -2
- {gitops-0.12.0 → gitops-0.13.2}/gitops_server/workers/deployer/hooks.py +31 -14
- {gitops-0.12.0 → gitops-0.13.2}/pyproject.toml +1 -1
- gitops-0.13.2/release-please-config.json +31 -0
- {gitops-0.12.0 → gitops-0.13.2}/ruff.toml +1 -3
- gitops-0.13.2/tests/__init__.py +0 -0
- gitops-0.12.0/.github/workflows/publish.yml +0 -77
- gitops-0.12.0/.github/workflows/test.yml +0 -26
- {gitops-0.12.0 → gitops-0.13.2}/.dockerignore +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/.gitignore +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/.mise.toml +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/.pre-commit-config.yaml +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/Dockerfile +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/LICENSE +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/README.md +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/charts/gitops/.helmignore +0 -0
- /gitops-0.12.0/gitops/common/__init__.py → /gitops-0.13.2/charts/gitops/CHANGELOG.md +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/charts/gitops/README.md +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/charts/gitops/templates/_helpers.tpl +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/charts/gitops/templates/certificate.yml +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/charts/gitops/templates/deployment.yml +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/charts/gitops/templates/environment.yml +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/charts/gitops/templates/ingress.yml +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/charts/gitops/templates/issuer.yml +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/charts/gitops/templates/secrets.yml +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/charts/gitops/templates/service.yml +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/charts/gitops/templates/serviceaccount.yaml +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/charts/gitops/values.yaml +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/docker-compose.yml +0 -0
- {gitops-0.12.0/gitops_server → gitops-0.13.2/gitops/common}/__init__.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops/common/app.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops/common/utils.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops/main.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops/py.typed +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops/settings.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops/shorthands.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops/utils/__init__.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops/utils/apps.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops/utils/async_runner.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops/utils/cli.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops/utils/exceptions.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops/utils/kube.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops/utils/tags.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops/utils/yaml.py +0 -0
- /gitops-0.12.0/tests/__init__.py → /gitops-0.13.2/gitops_server/CHANGELOG.md +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops_server/README.md +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops_server/app.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops_server/main.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops_server/settings.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops_server/types.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops_server/utils/__init__.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops_server/utils/git.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops_server/utils/github.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops_server/utils/slack.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops_server/workers/__init__.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops_server/workers/deployer/__init__.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops_server/workers/deployer/worker.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops_server/workers/status_updater/__init__.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/gitops_server/workers/status_updater/worker.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/release.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/secrets.example.env +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/setup.cfg +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/tests/conftest.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/tests/sample_data.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/tests/test_app.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/tests/test_core.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/tests/test_deploy.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/tests/test_git.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/tests/test_gitops_server.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/tests/test_utils.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/tests/utils.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/tests/webhook_sample_data.py +0 -0
- {gitops-0.12.0 → gitops-0.13.2}/uv.lock +0 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
on:
|
|
3
|
+
release:
|
|
4
|
+
types: [published]
|
|
5
|
+
workflow_dispatch: {}
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
actions: read # Read the metrics
|
|
10
|
+
contents: write # to be able to publish a GitHub release
|
|
11
|
+
issues: write # to be able to comment on released issues
|
|
12
|
+
pull-requests: write # to be able to comment on released pull requests
|
|
13
|
+
id-token: write # to enable use of OIDC for npm provenance / AWS
|
|
14
|
+
|
|
15
|
+
env:
|
|
16
|
+
MISE_PYTHON_COMPILE: false
|
|
17
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
build:
|
|
21
|
+
name: Build and Push Docker Image
|
|
22
|
+
uses: uptick/actions/.github/workflows/ci.yaml@main
|
|
23
|
+
secrets:
|
|
24
|
+
SECRET_ENV: "${{ secrets.CLUSTER_KEY }}"
|
|
25
|
+
#https://github.com/uptick/actions/blob/main/.github/workflows/ci.yaml
|
|
26
|
+
with:
|
|
27
|
+
aws-iam-role-arn: "arn:aws:iam::305686791668:role/default-github-actions-ci-role"
|
|
28
|
+
docker-enabled: true
|
|
29
|
+
docker-context: "."
|
|
30
|
+
docker-tag: ${{github.event.release.tag_name}}
|
|
31
|
+
docker-tag-latest: true
|
|
32
|
+
docker-image-platforms: linux/amd64
|
|
33
|
+
docker-repository: "305686791668.dkr.ecr.ap-southeast-2.amazonaws.com/gitops"
|
|
34
|
+
command: echo $SECRET_ENV | base64 -d > cluster.key
|
|
35
|
+
|
|
36
|
+
publish_helm_chart:
|
|
37
|
+
runs-on: ubuntu-latest
|
|
38
|
+
steps:
|
|
39
|
+
- uses: actions/checkout@v3
|
|
40
|
+
- name: Publish Helm charts
|
|
41
|
+
uses: stefanprodan/helm-gh-pages@master
|
|
42
|
+
with:
|
|
43
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
44
|
+
|
|
45
|
+
publish_to_pypi:
|
|
46
|
+
name: Publishes tag to pypi
|
|
47
|
+
runs-on: ubuntu-latest
|
|
48
|
+
steps:
|
|
49
|
+
- uses: actions/checkout@v3
|
|
50
|
+
|
|
51
|
+
- uses: jdx/mise-action@v2
|
|
52
|
+
with:
|
|
53
|
+
install: true
|
|
54
|
+
cache: true
|
|
55
|
+
experimental: true
|
|
56
|
+
|
|
57
|
+
- run: |
|
|
58
|
+
mise run build
|
|
59
|
+
shell: bash
|
|
60
|
+
|
|
61
|
+
- name: Publish Pypi Package
|
|
62
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
name: Release Please
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches:
|
|
5
|
+
- develop
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
actions: read # Read the metrics
|
|
9
|
+
contents: write # to be able to publish a GitHub release
|
|
10
|
+
issues: write # to be able to comment on released issues
|
|
11
|
+
pull-requests: write # to be able to comment on released pull requests
|
|
12
|
+
id-token: write # to enable use of OIDC for npm provenance / AWS
|
|
13
|
+
|
|
14
|
+
env:
|
|
15
|
+
MISE_PYTHON_COMPILE: false
|
|
16
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
release-please:
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
outputs:
|
|
22
|
+
cli-release-created: ${{ steps.release.outputs['release_created'] }}
|
|
23
|
+
server-release-created: ${{ steps.release.outputs['gitops_server--release_created'] }}
|
|
24
|
+
helm-release-created: ${{ steps.release.outputs['charts/gitops--release_created'] }}
|
|
25
|
+
cli-version: ${{ steps.release.outputs['tag_name'] }}
|
|
26
|
+
server-version: ${{ steps.release.outputs['gitops_server--tag_name'] }}
|
|
27
|
+
helm-version: ${{ steps.release.outputs['charts/gitops--tag_name'] }}
|
|
28
|
+
sha: ${{ steps.release.outputs.sha }}
|
|
29
|
+
steps:
|
|
30
|
+
- uses: googleapis/release-please-action@v4
|
|
31
|
+
id: release
|
|
32
|
+
with: {}
|
|
33
|
+
|
|
34
|
+
publish_helm_chart:
|
|
35
|
+
runs-on: ubuntu-latest
|
|
36
|
+
needs: release-please
|
|
37
|
+
if: ${{ needs.release-please.outputs.server-version }} || ${{ needs.release-please.outputs.helm-version }}
|
|
38
|
+
steps:
|
|
39
|
+
- uses: actions/checkout@v4
|
|
40
|
+
- name: Publish Helm charts
|
|
41
|
+
uses: helm/chart-releaser-action@v1.6.0
|
|
42
|
+
with:
|
|
43
|
+
charts_dir: charts/gitops
|
|
44
|
+
env:
|
|
45
|
+
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
|
46
|
+
publish_to_pypi:
|
|
47
|
+
name: Publishes tag to pypi
|
|
48
|
+
runs-on: ubuntu-latest
|
|
49
|
+
needs: release-please
|
|
50
|
+
if: ${{ needs.release-please.outputs.cli-release-created}}
|
|
51
|
+
steps:
|
|
52
|
+
- uses: actions/checkout@v4
|
|
53
|
+
|
|
54
|
+
- uses: jdx/mise-action@v2
|
|
55
|
+
with:
|
|
56
|
+
install: true
|
|
57
|
+
cache: true
|
|
58
|
+
experimental: true
|
|
59
|
+
|
|
60
|
+
- run: |
|
|
61
|
+
mise run build
|
|
62
|
+
shell: bash
|
|
63
|
+
|
|
64
|
+
- name: Publish Pypi Package
|
|
65
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
66
|
+
publish_docker_image:
|
|
67
|
+
name: Build and Push Docker Image
|
|
68
|
+
uses: uptick/actions/.github/workflows/ci.yaml@main
|
|
69
|
+
needs: release-please
|
|
70
|
+
if: ${{ needs.release-please.outputs.server-version }}
|
|
71
|
+
secrets:
|
|
72
|
+
SECRET_ENV: "${{ secrets.CLUSTER_KEY }}"
|
|
73
|
+
#https://github.com/uptick/actions/blob/main/.github/workflows/ci.yaml
|
|
74
|
+
with:
|
|
75
|
+
aws-iam-role-arn: "arn:aws:iam::305686791668:role/default-github-actions-ci-role"
|
|
76
|
+
docker-enabled: true
|
|
77
|
+
docker-context: "."
|
|
78
|
+
docker-tag: "${{ needs.release-please.outputs.server-version }}"
|
|
79
|
+
docker-tag-latest: true
|
|
80
|
+
docker-image-platforms: linux/amd64
|
|
81
|
+
docker-repository: "305686791668.dkr.ecr.ap-southeast-2.amazonaws.com/gitops"
|
|
82
|
+
command: echo $SECRET_ENV | base64 -d > cluster.key
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
name: Test
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches:
|
|
5
|
+
- develop
|
|
6
|
+
pull_request: ~
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
actions: read # Read the metrics
|
|
10
|
+
contents: write # to be able to publish a GitHub release
|
|
11
|
+
issues: write # to be able to comment on released issues
|
|
12
|
+
pull-requests: write # to be able to comment on released pull requests
|
|
13
|
+
id-token: write # to enable use of OIDC for npm provenance / AWS
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
ci:
|
|
17
|
+
uses: uptick/actions/.github/workflows/ci.yaml@main
|
|
18
|
+
secrets: inherit
|
|
19
|
+
with:
|
|
20
|
+
praise-on-fix: false
|
|
21
|
+
python-version: 3.12
|
|
22
|
+
mise: true
|
|
23
|
+
mise-install: true
|
|
24
|
+
command: |
|
|
25
|
+
mise run install
|
|
26
|
+
mise run ci
|
|
27
|
+
build:
|
|
28
|
+
name: Build and Push Docker Image
|
|
29
|
+
uses: uptick/actions/.github/workflows/ci.yaml@main
|
|
30
|
+
secrets:
|
|
31
|
+
SECRET_ENV: "${{ secrets.CLUSTER_KEY }}"
|
|
32
|
+
#https://github.com/uptick/actions/blob/main/.github/workflows/ci.yaml
|
|
33
|
+
with:
|
|
34
|
+
aws-iam-role-arn: "arn:aws:iam::305686791668:role/default-github-actions-ci-role"
|
|
35
|
+
docker-enabled: true
|
|
36
|
+
docker-context: "."
|
|
37
|
+
docker-prefix: test
|
|
38
|
+
docker-tag-latest: false
|
|
39
|
+
docker-image-platforms: linux/amd64
|
|
40
|
+
docker-push: false
|
|
41
|
+
docker-repository: "305686791668.dkr.ecr.ap-southeast-2.amazonaws.com/gitops"
|
|
42
|
+
command: echo $SECRET_ENV | base64 -d > cluster.key
|
|
43
|
+
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.13.2](https://github.com/uptick/gitops/compare/cli-v0.13.1...cli-v0.13.2) (2024-12-05)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* fix release-please pipeline for cli ([823eed7](https://github.com/uptick/gitops/commit/823eed79a8654f91f0bf521f70a63ae31d09e228))
|
|
9
|
+
|
|
10
|
+
## [0.13.1](https://github.com/uptick/gitops/compare/cli-v0.13.0...cli-v0.13.1) (2024-12-05)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* fix gitops bump for cross account ([d3394e3](https://github.com/uptick/gitops/commit/d3394e3214d104c323fb397d885c118a36075b5b))
|
|
16
|
+
|
|
17
|
+
## [0.13.0](https://github.com/uptick/gitops/compare/cli-v0.12.1...cli-v0.13.0) (2024-11-15)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* **0.8.1:** ADded gitops db.wipe-db to delete a tenant db ([d585cf3](https://github.com/uptick/gitops/commit/d585cf357818007d27cd9e7284ba7677404cc200))
|
|
23
|
+
* **0.8.5:** Added a confirmation to gitops bash/sp when run against production environment ([f65057e](https://github.com/uptick/gitops/commit/f65057ef337a6fe34f3510c889c2284c1fdb7218))
|
|
24
|
+
* **0.9.7:** Bump other repos ([45bc035](https://github.com/uptick/gitops/commit/45bc0359d090897e2c99b7dbb650392d37069086))
|
|
25
|
+
* Add ability to gitops bash with a serviceAccount ([c305e03](https://github.com/uptick/gitops/commit/c305e03a253786cc9eed12b116af4f844e7161bc))
|
|
26
|
+
* Add gitops.db-pgcli as a command ([665bcae](https://github.com/uptick/gitops/commit/665bcae9a2018d2c7c108d14a9958501040d23af))
|
|
27
|
+
* Adds sentry alerting to gitops_server ([3416398](https://github.com/uptick/gitops/commit/34163988e24bc8b679f1561bbdc8a32a82624677))
|
|
28
|
+
* allow gitops db.proxy to work with RDS IAM Access ([0e91586](https://github.com/uptick/gitops/commit/0e9158690f0299bd9171648486d6ce3152c411cc))
|
|
29
|
+
* Be able to bump other repos ([3b8a79e](https://github.com/uptick/gitops/commit/3b8a79e138609361b6d1b8af6b4b1e2154ad2ca1))
|
|
30
|
+
* Bump the version to 0.9.8 in the __init__.py file ([f0a91de](https://github.com/uptick/gitops/commit/f0a91decb6776c2b64d42855ef5e9c0cf6d96633))
|
|
31
|
+
* Bump version number to 0.8.7 ([dad4a3b](https://github.com/uptick/gitops/commit/dad4a3baee106bb82801de596c4de70e5a06f3cf))
|
|
32
|
+
* **bump:** When bumping --push, pull first ([5df0ee0](https://github.com/uptick/gitops/commit/5df0ee03ecd9ba67e97d09a16fcee7d18eea4ad6))
|
|
33
|
+
* **cli:** Added --cpu and --memory to bash/command/shell_plus to specify container resources ([93ae33c](https://github.com/uptick/gitops/commit/93ae33ccb0c2b3b4a356d55efb6a01ddd081d05e))
|
|
34
|
+
* **cli:** efficiently find latest image using prefix search for latest image tag ([a6d8be1](https://github.com/uptick/gitops/commit/a6d8be1eb5db2dcae2527b8e07cc71e993d8c7ec))
|
|
35
|
+
* **cli:** Enforce namespace as a required param for App ([28ee089](https://github.com/uptick/gitops/commit/28ee0891ae864faf907038c0a8052d96f16371b3))
|
|
36
|
+
* **cli:** Update commands to use the apps namespace ([38cecf7](https://github.com/uptick/gitops/commit/38cecf7a4ff6be270a6fa37e920bcf3df73d84e8))
|
|
37
|
+
* **db:** Add gb.rds-logs to fetch rds logs ([604aa73](https://github.com/uptick/gitops/commit/604aa73a5d176badd07d4a2146aa81a261cc304c))
|
|
38
|
+
* Gitops bump works for repos without a prefix ([d417e61](https://github.com/uptick/gitops/commit/d417e61fd165276991bd8f28dd5b070f357296a2))
|
|
39
|
+
* **gitops_server:** Update github deployment status ([fbe8811](https://github.com/uptick/gitops/commit/fbe88119814ffd49b7713487dddb85b99e63f94e))
|
|
40
|
+
* **gitops-0.10.5:** add --create-namespace during install/upgrades ([c97b386](https://github.com/uptick/gitops/commit/c97b3868a67df40b2a6b312aae80d9361257ae1b))
|
|
41
|
+
* **gitops-cli:** Add a minimum gitops version check ([5cff7ae](https://github.com/uptick/gitops/commit/5cff7aeb60edcc6a2413361ac6c7b5dd46c8de79))
|
|
42
|
+
* **gitops:** expose App, get_app_details, get_apps as top level interfaces ([626466a](https://github.com/uptick/gitops/commit/626466a5034c532995e41b0cf476f182bb3679f0))
|
|
43
|
+
* **gitops:** makes gitops db.pgcli more robust ([fb4fbcb](https://github.com/uptick/gitops/commit/fb4fbcb38166bdef1d119c2ecbebf61592f4f79d))
|
|
44
|
+
* **helm:** Add service account to helm chart ([86d5361](https://github.com/uptick/gitops/commit/86d5361e5cd908be486dcfe238a2f8f8282e3a86))
|
|
45
|
+
* **helm:** Modified chart to allow specifying subdomain ([63ed12e](https://github.com/uptick/gitops/commit/63ed12eeb389be9bbdb230f0586b2f4340402c8e))
|
|
46
|
+
* release version 0.9.20 ([9793aea](https://github.com/uptick/gitops/commit/9793aea22877ecac49a9aee1815dc0b9923fad40))
|
|
47
|
+
* **slack:** use external tickforge slack api to find slack user if provided ([862de0f](https://github.com/uptick/gitops/commit/862de0fcd0ab881d5c8154c530584e2c7fc5f2aa))
|
|
48
|
+
* **status-updater:** catch the exception around self.process_work... ([726cc05](https://github.com/uptick/gitops/commit/726cc05160b6cb1eb1cb36bb5e4555ba6bb0589f))
|
|
49
|
+
* swap project to uv ([91e5530](https://github.com/uptick/gitops/commit/91e5530240a344018bfa42749fe0ac8235799609))
|
|
50
|
+
* Use helm-secrets for extra decryption ([025fcc7](https://github.com/uptick/gitops/commit/025fcc7996ac1f01aededf1a721cb6297b89872e))
|
|
51
|
+
* Use release-please ([0324a14](https://github.com/uptick/gitops/commit/0324a148d3b7c1df47cadf8345dd42dd20906914))
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
### Bug Fixes
|
|
55
|
+
|
|
56
|
+
* :art: Fix linting ([e31ae69](https://github.com/uptick/gitops/commit/e31ae693687871a00959463586ff1e6924897b77))
|
|
57
|
+
* :bug: Fix issue [#64](https://github.com/uptick/gitops/issues/64) ([e1f3b45](https://github.com/uptick/gitops/commit/e1f3b45d0b82ab71f009eea5f9da6c8ad34adbc5))
|
|
58
|
+
* **0.9.1:** Fix slack token injection ([bd1e270](https://github.com/uptick/gitops/commit/bd1e27093a2346cae648bcb1ced492ed102e9a63))
|
|
59
|
+
* async run should not default to exit code of 1 ([3495a72](https://github.com/uptick/gitops/commit/3495a7214c39f948bcef1b9577fbfb03a15ae887))
|
|
60
|
+
* **bump:** exclude only if the image tag ends with -latest ([742ccd3](https://github.com/uptick/gitops/commit/742ccd349fc8c0cb1812c41b374aa1ceda4cb8cd))
|
|
61
|
+
* **cli:** Fixed bump --push command being broken ([2d264d7](https://github.com/uptick/gitops/commit/2d264d7e082261cf3ce6a08593e53ceeb4149c65))
|
|
62
|
+
* **cli:** Fixed mcommand not working ([565ccb2](https://github.com/uptick/gitops/commit/565ccb2c7a72268a98b95594885146221a30a92b))
|
|
63
|
+
* **cli:** Rename gitops db.rds-logs to gitops db.logs ([4104059](https://github.com/uptick/gitops/commit/4104059a8b1a90a394d0a218581bd7474c91f95b))
|
|
64
|
+
* correctly inject the availability zone for db commands ([db4610d](https://github.com/uptick/gitops/commit/db4610d75df1cb6520add97d43a946957b808495))
|
|
65
|
+
* correctly use NetworkingV1Api ([fc76338](https://github.com/uptick/gitops/commit/fc76338a94d349eacecc07d2d8ca543929e6d966))
|
|
66
|
+
* **db-proxy:** Db proxy fixed for database urls without ports ([fb20f96](https://github.com/uptick/gitops/commit/fb20f9691acbfd68abff653af532d1b86fd9baf7))
|
|
67
|
+
* **deploy:** Fix httpx post request ([ba34cf4](https://github.com/uptick/gitops/commit/ba34cf4076b32f8246445cc58b4335d40a03ea60))
|
|
68
|
+
* fix unsetenv to tolerate `environment: null` ([cb21e26](https://github.com/uptick/gitops/commit/cb21e268d1a80d47bdb62c439be558c9f39fbe3d))
|
|
69
|
+
* **gitop-server:** Use json patch to update deployment status ([df69596](https://github.com/uptick/gitops/commit/df695968a1327da77e70cda0330364e08889fa25))
|
|
70
|
+
* **gitops_cli:** Removed more usages of App as a dict ([ffa6529](https://github.com/uptick/gitops/commit/ffa65293edae9d33100aceb4c6fa6b1fc011d801))
|
|
71
|
+
* **gitops-cli:** Fixed bump to select the correct image tag ([0c93664](https://github.com/uptick/gitops/commit/0c93664f8978d58f4179f770aedfeb2e3ece15c6))
|
|
72
|
+
* **gitops-cli:** make error message more useful ([41b3777](https://github.com/uptick/gitops/commit/41b37770dae923b577dc226f22e49daf97a49957))
|
|
73
|
+
* **gitops-cli:** Output warning message to stderr ([f09e588](https://github.com/uptick/gitops/commit/f09e588af2ca5f9c853ed7301b9b9ece83722ac1))
|
|
74
|
+
* **gitops-cli:** prevent bumping to non-existent image prefix ([5c27edf](https://github.com/uptick/gitops/commit/5c27edfdce86d1da61ed0a99ce6c3b5f86eab6ff))
|
|
75
|
+
* **gitops-server:** Don't raise exception if deployment doesn't exist ([91f11b8](https://github.com/uptick/gitops/commit/91f11b859e67074c8066470e3ab9b981f5816f00))
|
|
76
|
+
* **server:** fix checking out branch refs for charts ([35c0fb4](https://github.com/uptick/gitops/commit/35c0fb448480306dad153f6c7dd1c889469241b9))
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
### Dependencies
|
|
80
|
+
|
|
81
|
+
* Added black and updated lockfile ([62367fa](https://github.com/uptick/gitops/commit/62367fab35f502a3205bccf7fcc1c565d9a51613))
|
|
82
|
+
* Bumped uvicorn and mypy ([be74598](https://github.com/uptick/gitops/commit/be74598a5c34c67d006613ae033910e763522be3))
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: gitops
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.13.2
|
|
4
4
|
Summary: Manage multiple apps across one or more k8s clusters.
|
|
5
5
|
Author-email: Jarek Głowacki <jarekwg@gmail.com>
|
|
6
|
-
License-File: LICENSE
|
|
7
6
|
Requires-Python: >=3.12
|
|
8
7
|
Requires-Dist: boto3==1.35.4
|
|
9
8
|
Requires-Dist: colorama>=0.4.4
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.13.0](https://github.com/uptick/gitops/compare/helm-v0.12.1...helm-v0.13.0) (2024-11-15)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* Adds sentry alerting to gitops_server ([3416398](https://github.com/uptick/gitops/commit/34163988e24bc8b679f1561bbdc8a32a82624677))
|
|
9
|
+
* Bump version number to 0.8.7 ([dad4a3b](https://github.com/uptick/gitops/commit/dad4a3baee106bb82801de596c4de70e5a06f3cf))
|
|
10
|
+
* **cli:** Added --cpu and --memory to bash/command/shell_plus to specify container resources ([93ae33c](https://github.com/uptick/gitops/commit/93ae33ccb0c2b3b4a356d55efb6a01ddd081d05e))
|
|
11
|
+
* **gitops_server:** Update github deployment status ([fbe8811](https://github.com/uptick/gitops/commit/fbe88119814ffd49b7713487dddb85b99e63f94e))
|
|
12
|
+
* **gitops-0.10.5:** add --create-namespace during install/upgrades ([c97b386](https://github.com/uptick/gitops/commit/c97b3868a67df40b2a6b312aae80d9361257ae1b))
|
|
13
|
+
* **helm:** Add liveness probe to helm chart ([4cec510](https://github.com/uptick/gitops/commit/4cec5100a3549c5b2562ccfc5ce09decb45c95e2))
|
|
14
|
+
* **helm:** Add service account to helm chart ([86d5361](https://github.com/uptick/gitops/commit/86d5361e5cd908be486dcfe238a2f8f8282e3a86))
|
|
15
|
+
* **helm:** Added sample values to values.yaml ([ab05d17](https://github.com/uptick/gitops/commit/ab05d1720143884db11701048217a25046c41002))
|
|
16
|
+
* **helm:** Modified chart to allow specifying subdomain ([63ed12e](https://github.com/uptick/gitops/commit/63ed12eeb389be9bbdb230f0586b2f4340402c8e))
|
|
17
|
+
* release version 0.9.20 ([9793aea](https://github.com/uptick/gitops/commit/9793aea22877ecac49a9aee1815dc0b9923fad40))
|
|
18
|
+
* **slack:** use external tickforge slack api to find slack user if provided ([862de0f](https://github.com/uptick/gitops/commit/862de0fcd0ab881d5c8154c530584e2c7fc5f2aa))
|
|
19
|
+
* **status-updater:** catch the exception around self.process_work... ([726cc05](https://github.com/uptick/gitops/commit/726cc05160b6cb1eb1cb36bb5e4555ba6bb0589f))
|
|
20
|
+
* swap project to uv ([91e5530](https://github.com/uptick/gitops/commit/91e5530240a344018bfa42749fe0ac8235799609))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Bug Fixes
|
|
24
|
+
|
|
25
|
+
* :bug: Fix ingrss spec ([d585a3c](https://github.com/uptick/gitops/commit/d585a3c4783eb3a9dd4285682a2839d81f3bc531))
|
|
26
|
+
* **0.9.1:** Fix slack token injection ([bd1e270](https://github.com/uptick/gitops/commit/bd1e27093a2346cae648bcb1ced492ed102e9a63))
|
|
27
|
+
* **cli:** Fixed mcommand not working ([565ccb2](https://github.com/uptick/gitops/commit/565ccb2c7a72268a98b95594885146221a30a92b))
|
|
28
|
+
* correctly use NetworkingV1Api ([fc76338](https://github.com/uptick/gitops/commit/fc76338a94d349eacecc07d2d8ca543929e6d966))
|
|
29
|
+
* **gitops-cli:** Fixed bump to select the correct image tag ([0c93664](https://github.com/uptick/gitops/commit/0c93664f8978d58f4179f770aedfeb2e3ece15c6))
|
|
30
|
+
* **gitops-cli:** prevent bumping to non-existent image prefix ([5c27edf](https://github.com/uptick/gitops/commit/5c27edfdce86d1da61ed0a99ce6c3b5f86eab6ff))
|
|
@@ -81,7 +81,7 @@ def bump( # noqa: C901
|
|
|
81
81
|
new_image_prefix = app.image_prefix
|
|
82
82
|
else:
|
|
83
83
|
new_image_prefix = prefix
|
|
84
|
-
new_image_tag = get_latest_image(app.image_repository_name, new_image_prefix)
|
|
84
|
+
new_image_tag = get_latest_image(app.image_repository_name, new_image_prefix, app.image_repository)
|
|
85
85
|
else:
|
|
86
86
|
new_image_tag = image_tag
|
|
87
87
|
|
|
@@ -46,13 +46,17 @@ def get_latest_image(repository_name: str, prefix: str, ecr_repository: str | No
|
|
|
46
46
|
image_tag = f"{prefix}-latest" if prefix else "latest"
|
|
47
47
|
|
|
48
48
|
def add_image_to_results(image: "ImageDetailTypeDef") -> None:
|
|
49
|
+
"""This function adds the image to the results list if it matches the prefix and is not the latest image.
|
|
50
|
+
|
|
51
|
+
We want to ignore the latest image tag otherwise we will never diff anything other than `develop-latest` etc.
|
|
52
|
+
"""
|
|
49
53
|
if prefix != "":
|
|
50
54
|
if prefix_tags := [
|
|
51
|
-
tag for tag in image["imageTags"] if tag.startswith(prefix + "-") and "latest"
|
|
55
|
+
tag for tag in image["imageTags"] if tag.startswith(prefix + "-") and not tag.endswith("latest")
|
|
52
56
|
]:
|
|
53
57
|
results.append((prefix_tags[0], image["imagePushedAt"]))
|
|
54
58
|
else:
|
|
55
|
-
if prefix_tags := [tag for tag in image["imageTags"] if "-" not in tag and "latest"
|
|
59
|
+
if prefix_tags := [tag for tag in image["imageTags"] if "-" not in tag and not tag.endswith("latest")]:
|
|
56
60
|
results.append((prefix_tags[0], image["imagePushedAt"]))
|
|
57
61
|
|
|
58
62
|
try:
|
|
File without changes
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.14.0](https://github.com/uptick/gitops/compare/server-v0.13.0...server-v0.14.0) (2024-11-26)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **server:** update deploy failed messages to point to grafana ([b6a90b8](https://github.com/uptick/gitops/commit/b6a90b8e4845982a71c49b3203103f55e8332e24))
|
|
9
|
+
|
|
10
|
+
## [0.13.0](https://github.com/uptick/gitops/compare/server-v0.12.1...server-v0.13.0) (2024-11-15)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* Add slack user name shaming to slack hook ([0561e29](https://github.com/uptick/gitops/commit/0561e29addb532c32d8fc9bcc623b189542c311e))
|
|
16
|
+
* Adds sentry alerting to gitops_server ([3416398](https://github.com/uptick/gitops/commit/34163988e24bc8b679f1561bbdc8a32a82624677))
|
|
17
|
+
* Continue even if sha is not found ([c450eae](https://github.com/uptick/gitops/commit/c450eaebc438ffd7028aff6ced683060e54d19a6))
|
|
18
|
+
* Fix startup for python 3.10 ([938f8a4](https://github.com/uptick/gitops/commit/938f8a413cd350258bb893bf4356f193447bad6e))
|
|
19
|
+
* **gitops_server:** Update github deployment status ([fbe8811](https://github.com/uptick/gitops/commit/fbe88119814ffd49b7713487dddb85b99e63f94e))
|
|
20
|
+
* **gitops-0.10.5:** add --create-namespace during install/upgrades ([c97b386](https://github.com/uptick/gitops/commit/c97b3868a67df40b2a6b312aae80d9361257ae1b))
|
|
21
|
+
* **healthcheck:** Add health check endpoint which doesn't show up in logs ([07335f0](https://github.com/uptick/gitops/commit/07335f01ac9b2d3df75ebf5f4ff7dbc5ce39cb40))
|
|
22
|
+
* Limit helm history to 3 ([5d2856c](https://github.com/uptick/gitops/commit/5d2856c7af35b0ce5a66f26a5ad44e5b0b2d3a95))
|
|
23
|
+
* **logs:** Add timestamps to logs ([0f3f09d](https://github.com/uptick/gitops/commit/0f3f09dddd4d6287d2ed8ddcbea316c0cbe92bc7))
|
|
24
|
+
* **server:** Deploy servers into specific namespaces ([1fed618](https://github.com/uptick/gitops/commit/1fed6186a1d47a19faf93ba8848a52a000c7e1a6))
|
|
25
|
+
* **slack:** use external tickforge slack api to find slack user if provided ([862de0f](https://github.com/uptick/gitops/commit/862de0fcd0ab881d5c8154c530584e2c7fc5f2aa))
|
|
26
|
+
* **status-updater:** catch the exception around self.process_work... ([726cc05](https://github.com/uptick/gitops/commit/726cc05160b6cb1eb1cb36bb5e4555ba6bb0589f))
|
|
27
|
+
* Use helm-secrets for extra decryption ([025fcc7](https://github.com/uptick/gitops/commit/025fcc7996ac1f01aededf1a721cb6297b89872e))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Bug Fixes
|
|
31
|
+
|
|
32
|
+
* **0.9.1:** Fix slack token injection ([bd1e270](https://github.com/uptick/gitops/commit/bd1e27093a2346cae648bcb1ced492ed102e9a63))
|
|
33
|
+
* async run should not default to exit code of 1 ([3495a72](https://github.com/uptick/gitops/commit/3495a7214c39f948bcef1b9577fbfb03a15ae887))
|
|
34
|
+
* correctly use NetworkingV1Api ([fc76338](https://github.com/uptick/gitops/commit/fc76338a94d349eacecc07d2d8ca543929e6d966))
|
|
35
|
+
* **deploy:** Fix httpx post request ([ba34cf4](https://github.com/uptick/gitops/commit/ba34cf4076b32f8246445cc58b4335d40a03ea60))
|
|
36
|
+
* fix broken semaphore env parsing ([cad0239](https://github.com/uptick/gitops/commit/cad0239128fb4867e0567783df868ad0bf86e091))
|
|
37
|
+
* **gitop-server:** Use json patch to update deployment status ([df69596](https://github.com/uptick/gitops/commit/df695968a1327da77e70cda0330364e08889fa25))
|
|
38
|
+
* gitops ingress update for eks 1.22+ ([d23dc35](https://github.com/uptick/gitops/commit/d23dc35bad0ab6b1d6faa93f97e3a18f1c2db973))
|
|
39
|
+
* **gitops_server:** Fix uninstall not removing apps ([f30e90e](https://github.com/uptick/gitops/commit/f30e90e961386d4f46257ac572ced6eacae5883c))
|
|
40
|
+
* **gitops_server:** treat suspended servers as removed ([743abaa](https://github.com/uptick/gitops/commit/743abaa231817de2903ec7a6e7c03be68a0ddfea))
|
|
41
|
+
* **gitops-server:** Don't raise exception if deployment doesn't exist ([91f11b8](https://github.com/uptick/gitops/commit/91f11b859e67074c8066470e3ab9b981f5816f00))
|
|
42
|
+
* **server:** fix checking out branch refs for charts ([35c0fb4](https://github.com/uptick/gitops/commit/35c0fb448480306dad153f6c7dd1c889469241b9))
|
|
43
|
+
* **slack:** forgot to await slack user ([f9b923f](https://github.com/uptick/gitops/commit/f9b923f3a8716e5523d8fb3654bcee8e1b21d515))
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
### Dependencies
|
|
47
|
+
|
|
48
|
+
* Bumped uvicorn and mypy ([be74598](https://github.com/uptick/gitops/commit/be74598a5c34c67d006613ae033910e763522be3))
|
|
@@ -3,6 +3,7 @@ import json
|
|
|
3
3
|
import logging
|
|
4
4
|
import os
|
|
5
5
|
import tempfile
|
|
6
|
+
import time
|
|
6
7
|
import uuid
|
|
7
8
|
|
|
8
9
|
from opentelemetry import trace
|
|
@@ -40,7 +41,7 @@ async def post_init_summary(source, username, added_apps, updated_apps, removed_
|
|
|
40
41
|
@tracer.start_as_current_span("post_result")
|
|
41
42
|
async def post_result(app: App, result: UpdateAppResult, deployer: "Deployer", **kwargs):
|
|
42
43
|
if result["exit_code"] != 0:
|
|
43
|
-
deploy_result = await handle_failed_deploy(app, result, deployer)
|
|
44
|
+
deploy_result = await handle_failed_deploy(app, result, deployer, **kwargs)
|
|
44
45
|
message = (
|
|
45
46
|
deploy_result["slack_message"]
|
|
46
47
|
or f"Failed to deploy app `{result['app_name']}` for cluster `{settings.CLUSTER_NAME}`:\n>>>{result['output']}"
|
|
@@ -170,6 +171,7 @@ class Deployer:
|
|
|
170
171
|
|
|
171
172
|
async with self.semaphore:
|
|
172
173
|
logger.info(f"Deploying app {app.name!r}.")
|
|
174
|
+
from_timestamp = time.time()
|
|
173
175
|
if app.chart.type == "git":
|
|
174
176
|
span.set_attribute("gitops.chart.type", "git")
|
|
175
177
|
assert app.chart.git_repo_url
|
|
@@ -224,7 +226,7 @@ class Deployer:
|
|
|
224
226
|
|
|
225
227
|
update_result = UpdateAppResult(app_name=app.name, slack_message="", **result)
|
|
226
228
|
|
|
227
|
-
await post_result(app=app, result=update_result, deployer=self)
|
|
229
|
+
await post_result(app=app, result=update_result, deployer=self, from_timestamp=from_timestamp)
|
|
228
230
|
return update_result
|
|
229
231
|
|
|
230
232
|
def calculate_app_deltas(self):
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
4
|
import os
|
|
5
|
+
import time
|
|
6
|
+
from typing import Any
|
|
5
7
|
|
|
6
8
|
import httpx
|
|
7
9
|
from opentelemetry import trace
|
|
@@ -17,10 +19,7 @@ tracer = trace.get_tracer(__name__)
|
|
|
17
19
|
logger = logging.getLogger(__name__)
|
|
18
20
|
|
|
19
21
|
|
|
20
|
-
async def update_issue_from_deployment_url(
|
|
21
|
-
app: App,
|
|
22
|
-
deployment_url: str,
|
|
23
|
-
) -> None:
|
|
22
|
+
async def update_issue_from_deployment_url(app: App, deployment_url: str, **kwargs: Any) -> None:
|
|
24
23
|
async with httpx.AsyncClient() as client:
|
|
25
24
|
headers = github.get_headers()
|
|
26
25
|
deployment_response = await client.get(deployment_url, headers=headers)
|
|
@@ -35,10 +34,12 @@ async def update_issue_from_deployment_url(
|
|
|
35
34
|
try:
|
|
36
35
|
response = await client.post(issue_url + "/labels", json={"labels": ["NODEPLOY"]}, headers=headers)
|
|
37
36
|
response.raise_for_status()
|
|
37
|
+
dashboard_url = get_dashboard_url(
|
|
38
|
+
workspace_name=app.name, from_timestamp=kwargs.get("from_timestamp"), to_timestamp=time.time()
|
|
39
|
+
)
|
|
38
40
|
comment = (
|
|
39
41
|
":poop: Failed to deploy :poop:\n Applying `NODEPLOY` label to shutdown the server"
|
|
40
|
-
" and prevent deploys until it has been fixed.\nCheck migration logs at"
|
|
41
|
-
f" https://my.papertrailapp.com/systems/{app.name}-migration/events"
|
|
42
|
+
f" and prevent deploys until it has been fixed.\nCheck migration logs at {dashboard_url}"
|
|
42
43
|
)
|
|
43
44
|
response = await client.post(issue_url + "/comments", json={"body": comment}, headers=headers)
|
|
44
45
|
response.raise_for_status()
|
|
@@ -47,11 +48,7 @@ async def update_issue_from_deployment_url(
|
|
|
47
48
|
return
|
|
48
49
|
|
|
49
50
|
|
|
50
|
-
async def handle_successful_deploy(
|
|
51
|
-
app: App,
|
|
52
|
-
result,
|
|
53
|
-
deployer,
|
|
54
|
-
) -> UpdateAppResult:
|
|
51
|
+
async def handle_successful_deploy(app: App, result, deployer, **kwargs) -> UpdateAppResult:
|
|
55
52
|
github_deployment_url = str(app.values.get("github/deployment_url", ""))
|
|
56
53
|
await github.update_deployment(
|
|
57
54
|
github_deployment_url,
|
|
@@ -64,7 +61,27 @@ async def handle_successful_deploy(
|
|
|
64
61
|
DEFAULT_USER_GROUP = SlackGroup("devops", "", "devops", os.environ.get("DEFAULT_SLACK_USER_GROUP_ID", "S5KVCGSGP"))
|
|
65
62
|
|
|
66
63
|
|
|
67
|
-
|
|
64
|
+
def get_dashboard_url(
|
|
65
|
+
workspace_name: str, from_timestamp: float | None = None, to_timestamp: float | None = None
|
|
66
|
+
) -> str:
|
|
67
|
+
DASHBOARD_URL = "https://grafana.onuptick.com/d/workforce-failed-deploys/workforce-failed-deploys?from={from_timestamp}&to={to_timestamp}&var-workspace={workspace_name}"
|
|
68
|
+
|
|
69
|
+
if from_timestamp:
|
|
70
|
+
from_timestamp_grafana = str(int(from_timestamp * 1000))
|
|
71
|
+
else:
|
|
72
|
+
from_timestamp_grafana = "now-6h"
|
|
73
|
+
|
|
74
|
+
if to_timestamp:
|
|
75
|
+
to_timestamp_grafana = str(int(to_timestamp * 1000))
|
|
76
|
+
else:
|
|
77
|
+
to_timestamp_grafana = "now"
|
|
78
|
+
|
|
79
|
+
return DASHBOARD_URL.format(
|
|
80
|
+
workspace_name=workspace_name, from_timestamp=from_timestamp_grafana, to_timestamp=to_timestamp_grafana
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
async def handle_failed_deploy(app: App, result: UpdateAppResult, deployer, **kwargs) -> UpdateAppResult:
|
|
68
85
|
github_deployment_url = str(app.values.get("github/deployment_url", ""))
|
|
69
86
|
if github_deployment_url:
|
|
70
87
|
await github.update_deployment(
|
|
@@ -72,7 +89,7 @@ async def handle_failed_deploy(app: App, result: UpdateAppResult, deployer) -> U
|
|
|
72
89
|
status=github.STATUSES.failure,
|
|
73
90
|
description=f"Failed to deploy app. {result['output']}",
|
|
74
91
|
)
|
|
75
|
-
await update_issue_from_deployment_url(app, github_deployment_url)
|
|
92
|
+
await update_issue_from_deployment_url(app, github_deployment_url, **kwargs)
|
|
76
93
|
|
|
77
94
|
email = deployer.author_email
|
|
78
95
|
|
|
@@ -83,7 +100,7 @@ async def handle_failed_deploy(app: App, result: UpdateAppResult, deployer) -> U
|
|
|
83
100
|
await find_commiter_slack_user(name=deployer.author_name, email=deployer.author_email) or DEFAULT_USER_GROUP
|
|
84
101
|
)
|
|
85
102
|
slack_user_msg = f" {slack_user} " if slack_user else ""
|
|
86
|
-
log_msg = f"<
|
|
103
|
+
log_msg = f"<{get_dashboard_url(workspace_name=app.name, from_timestamp=kwargs.get("from_timestamp"), to_timestamp=time.time())}|(Deployment Logs)>"
|
|
87
104
|
result["slack_message"] = (
|
|
88
105
|
f"Failed to deploy app `{result['app_name']}` for cluster"
|
|
89
106
|
f" `{settings.CLUSTER_NAME}` :rotating_light:"
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"packages": {
|
|
3
|
+
".": {
|
|
4
|
+
"package-name": "cli",
|
|
5
|
+
"release-type": "python",
|
|
6
|
+
"changelog-path": "CHANGELOG.md",
|
|
7
|
+
"exclude-paths": [
|
|
8
|
+
"tests/",
|
|
9
|
+
"charts/gitops",
|
|
10
|
+
"gitops_server/"
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
"gitops_server": {
|
|
14
|
+
"package-name": "server",
|
|
15
|
+
"release-type": "python",
|
|
16
|
+
"changelog-path": "gitops_server/CHANGELOG.md",
|
|
17
|
+
"extra-files": [
|
|
18
|
+
{
|
|
19
|
+
"type": "yaml",
|
|
20
|
+
"path": "charts/gitops/Chart.yaml",
|
|
21
|
+
"jsonpath": "$.appVersion"
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"charts/gitops": {
|
|
26
|
+
"package-name": "helm",
|
|
27
|
+
"release-type": "helm",
|
|
28
|
+
"changelog-path": "charts/gitops/CHANGELOG.md"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -35,6 +35,4 @@ dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
|
|
35
35
|
quote-style = "double"
|
|
36
36
|
indent-style = "space"
|
|
37
37
|
skip-magic-trailing-comma = false
|
|
38
|
-
line-ending = "auto"
|
|
39
|
-
docstring-code-format = false
|
|
40
|
-
docstring-code-line-length = "dynamic"
|
|
38
|
+
line-ending = "auto"
|
|
File without changes
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
name: Release
|
|
2
|
-
on:
|
|
3
|
-
release:
|
|
4
|
-
types: [published]
|
|
5
|
-
workflow_dispatch: {}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
permissions:
|
|
9
|
-
actions: read # Read the metrics
|
|
10
|
-
contents: write # to be able to publish a GitHub release
|
|
11
|
-
issues: write # to be able to comment on released issues
|
|
12
|
-
pull-requests: write # to be able to comment on released pull requests
|
|
13
|
-
id-token: write # to enable use of OIDC for npm provenance / AWS
|
|
14
|
-
|
|
15
|
-
env:
|
|
16
|
-
MISE_PYTHON_COMPILE: false
|
|
17
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
18
|
-
|
|
19
|
-
jobs:
|
|
20
|
-
push_to_registry:
|
|
21
|
-
name: Push Docker image to Docker Hub
|
|
22
|
-
runs-on: ubuntu-latest
|
|
23
|
-
steps:
|
|
24
|
-
- name: Configure AWS credentials
|
|
25
|
-
uses: aws-actions/configure-aws-credentials@v2
|
|
26
|
-
with:
|
|
27
|
-
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
28
|
-
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
29
|
-
aws-region: ap-southeast-2
|
|
30
|
-
|
|
31
|
-
- name: Docker Login to Amazon ECR
|
|
32
|
-
id: login-ecr
|
|
33
|
-
uses: aws-actions/amazon-ecr-login@v1
|
|
34
|
-
|
|
35
|
-
- name: Check out the repo
|
|
36
|
-
uses: actions/checkout@v3
|
|
37
|
-
|
|
38
|
-
- name: Pull latest image. Build docker image and publish it.
|
|
39
|
-
env:
|
|
40
|
-
latest_image: 305686791668.dkr.ecr.ap-southeast-2.amazonaws.com/gitops:latest
|
|
41
|
-
current_image: 305686791668.dkr.ecr.ap-southeast-2.amazonaws.com/gitops:${{github.event.release.tag_name}}
|
|
42
|
-
run: |
|
|
43
|
-
echo ${{secrets.CLUSTER_KEY}} | base64 -d > cluster.key
|
|
44
|
-
docker pull $latest_image
|
|
45
|
-
docker build -t $latest_image --cache-from $latest_image .
|
|
46
|
-
docker push $latest_image
|
|
47
|
-
docker tag $latest_image $current_image
|
|
48
|
-
docker push $current_image
|
|
49
|
-
echo "Published image at: $current_image"
|
|
50
|
-
|
|
51
|
-
publish_helm_chart:
|
|
52
|
-
runs-on: ubuntu-latest
|
|
53
|
-
steps:
|
|
54
|
-
- uses: actions/checkout@v3
|
|
55
|
-
- name: Publish Helm charts
|
|
56
|
-
uses: stefanprodan/helm-gh-pages@master
|
|
57
|
-
with:
|
|
58
|
-
token: ${{ secrets.GITHUB_TOKEN }}
|
|
59
|
-
|
|
60
|
-
publish_to_pypi:
|
|
61
|
-
name: Publishes tag to pypi
|
|
62
|
-
runs-on: ubuntu-latest
|
|
63
|
-
steps:
|
|
64
|
-
- uses: actions/checkout@v3
|
|
65
|
-
|
|
66
|
-
- uses: jdx/mise-action@v2
|
|
67
|
-
with:
|
|
68
|
-
install: true
|
|
69
|
-
cache: true
|
|
70
|
-
experimental: true
|
|
71
|
-
|
|
72
|
-
- run: |
|
|
73
|
-
mise run build
|
|
74
|
-
shell: bash
|
|
75
|
-
|
|
76
|
-
- name: Publish Pypi Package
|
|
77
|
-
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
name: Test
|
|
2
|
-
on:
|
|
3
|
-
push:
|
|
4
|
-
branches:
|
|
5
|
-
- develop
|
|
6
|
-
pull_request: ~
|
|
7
|
-
|
|
8
|
-
permissions:
|
|
9
|
-
actions: read # Read the metrics
|
|
10
|
-
contents: write # to be able to publish a GitHub release
|
|
11
|
-
issues: write # to be able to comment on released issues
|
|
12
|
-
pull-requests: write # to be able to comment on released pull requests
|
|
13
|
-
id-token: write # to enable use of OIDC for npm provenance / AWS
|
|
14
|
-
|
|
15
|
-
jobs:
|
|
16
|
-
ci:
|
|
17
|
-
uses: uptick/actions/.github/workflows/ci.yaml@main
|
|
18
|
-
secrets: inherit
|
|
19
|
-
with:
|
|
20
|
-
praise-on-fix: false
|
|
21
|
-
python-version: 3.12
|
|
22
|
-
mise: true
|
|
23
|
-
mise-install: true
|
|
24
|
-
command: |
|
|
25
|
-
mise run install
|
|
26
|
-
mise run ci
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|