Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
43befd0
feat: Data Interfaces V1
Gu1nness Sep 4, 2025
1927fac
# This is a combination of 7 commits.
Gu1nness Sep 5, 2025
ef78f52
feat: DPV1
Gu1nness Sep 17, 2025
e4abfa1
fix: more fixes
Gu1nness Sep 17, 2025
8681993
fix: typo
Gu1nness Sep 17, 2025
df3313c
fix: typo
Gu1nness Sep 17, 2025
b7e260d
fix: correct tests
Gu1nness Sep 17, 2025
8c73820
fix: final round of fixes
Gu1nness Sep 18, 2025
1e460b8
fix: linting
Gu1nness Sep 19, 2025
0eb36e8
fix: small changes
Gu1nness Sep 19, 2025
2c2417f
fix: kafka connect green
Gu1nness Sep 19, 2025
3652f55
ensure_leader_for_app
Gu1nness Sep 19, 2025
8428494
fix: default factory
Gu1nness Sep 19, 2025
e5ac835
fix: ensure delay
Gu1nness Sep 19, 2025
b8aea7e
fix: add v0 to backward compatibility charm
Gu1nness Sep 19, 2025
a876392
fix: backward compatibility test
Gu1nness Sep 19, 2025
ae759a4
fix: linting + tox config
Gu1nness Sep 19, 2025
411ce1c
fix: lower log level
Gu1nness Sep 19, 2025
76867a2
fix: reviews from Sinclert'
Gu1nness Oct 6, 2025
d0941df
fix: reviews from René
Gu1nness Oct 6, 2025
09b32d3
fix: handle secret removal events
Gu1nness Oct 8, 2025
af460e3
fix: Remove ignore group + enforce resource immutability
Gu1nness Oct 13, 2025
f92c04b
fix: Permission denied error
Gu1nness Oct 13, 2025
ddfe6fc
fix: annoying bugs
Gu1nness Oct 14, 2025
8e98c0d
fix: final changes
Gu1nness Oct 15, 2025
0406c23
fix: final changes
Gu1nness Oct 15, 2025
4d41830
fix: remove final + enforce secret id
Gu1nness Oct 16, 2025
ee24233
fix: format
Gu1nness Oct 20, 2025
4f19cfb
fix: Remove SecretStr, SecretBool and refacto
Gu1nness Oct 21, 2025
0546907
fix: linting
Gu1nness Oct 21, 2025
a09d1e9
Merge remote-tracking branch 'origin/main' into DPE-7930-data-platfor…
Gu1nness Oct 22, 2025
24042be
Update lib/charms/data_platform_libs/v1/data_interfaces.py
Gu1nness Oct 22, 2025
4d64db8
fix: helpers for etcd
Gu1nness Oct 23, 2025
9abdd8c
fix: dict-like access to the models
Gu1nness Oct 23, 2025
a6b2d25
fix: lint
Gu1nness Oct 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 72 additions & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ jobs:
juju-version:
- libjuju-version: "2.9.49.1"
- libjuju-version: "3.6.1.0"
exclude:
- libs-version: 1
juju-version: {libjuju-version: "2.9.49.1"}
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -51,7 +54,7 @@ jobs:
env:
LIBJUJU_VERSION_SPECIFIER: "==${{ matrix.juju-version.libjuju-version }}"

integration-test:
integration-test-v0:
strategy:
fail-fast: false
matrix:
Expand Down Expand Up @@ -158,3 +161,71 @@ jobs:
with:
app: data-platform-libs
model: testing

integration-test-v1:
strategy:
fail-fast: false
matrix:
ubuntu-versions:
# Update whenever charmcraft.yaml is changed
- series: jammy
bases-index: 0
tox-environments:
- integration-db-v1
- integration-opensearch-v1
- integration-kafka-v1
- integration-kafka-connect-v1
- integration-backward-compatibility-v1
juju-version:
- juju-bootstrap-option: "3.6.1"
juju-snap-channel: "3.6/stable"
libjuju-version: "3.6.1.0"
name: V1 -- ${{ matrix.tox-environments }} Juju ${{ matrix.juju-version.juju-snap-channel}} -- ${{ matrix.ubuntu-versions.series }}
needs:
- lint
- unit-test
runs-on: ubuntu-latest
timeout-minutes: 120
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup operator environment
# TODO: Replace with custom image on self-hosted runner
uses: charmed-kubernetes/actions-operator@main
with:
provider: microk8s
channel: "1.27-strict/stable"
bootstrap-options: "--agent-version ${{ matrix.juju-version.juju-bootstrap-option }}"
juju-channel: ${{ matrix.juju-version.juju-snap-channel }}
charmcraft-channel: "3.x/stable"
- name: Download packed charm(s)
uses: actions/download-artifact@v4
with:
name: ${{ needs.build.outputs.artifact-name }}
- name: Select tests
id: select-tests
run: |
if [ "${{ github.event_name }}" == "schedule" ]
then
echo Running unstable and stable tests
echo "mark_expression=" >> $GITHUB_OUTPUT
else
echo Skipping unstable tests
echo "mark_expression=not unstable" >> $GITHUB_OUTPUT
fi
- name: Run integration tests
# set a predictable model name so it can be consumed by charm-logdump-action
run: tox run -e ${{ matrix.tox-environments }} -- -m '${{ steps.select-tests.outputs.mark_expression }}' --model testing --os-series=${{ matrix.ubuntu-versions.series }} --build-bases-index=${{ matrix.ubuntu-versions.bases-index }}
env:
CI_PACKED_CHARMS: ${{ needs.build.outputs.charms }}
LIBJUJU_VERSION_SPECIFIER: "==${{ matrix.juju-version.libjuju-version }}"
WEBSOCKETS_VERSION_SPECIFIER: ${{ env.WEBSOCKETS_VERSION_SPECIFIER }}
- name: Print debug-log
if: failure()
run: juju switch testing; juju debug-log --replay --no-tail
- name: Dump logs
uses: canonical/charm-logdump-action@main
if: failure()
with:
app: data-platform-libs
model: testing
26 changes: 19 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,24 @@ build/
.coverage
__pycache__/
*.py[cod]
tests/integration/application-charm/lib/charms/data_platform_libs/v0/database_requires.py
tests/integration/database-charm/lib/charms/data_platform_libs/v0/database_provides.py
tests/integration/application-charm/lib/charms/data_platform_libs/v0/data_interfaces.py
tests/integration/application-s3-charm/lib/charms/data_platform_libs/v0/s3.py
tests/integration/database-charm/lib/charms/data_platform_libs/v0/data_interfaces.py
tests/integration/kafka-charm/lib/charms/data_platform_libs/v0/data_interfaces.py
tests/integration/s3-charm/lib/charms/data_platform_libs/v0/s3.py'
tests/v0/integration/application-charm/lib/charms/data_platform_libs/v0/database_requires.py
tests/v0/integration/database-charm/lib/charms/data_platform_libs/v0/database_provides.py
tests/v0/integration/application-charm/lib/charms/data_platform_libs/v0/data_interfaces.py
tests/v0/integration/application-s3-charm/lib/charms/data_platform_libs/v0/s3.py
tests/v0/integration/database-charm/lib/charms/data_platform_libs/v0/data_interfaces.py
tests/v0/integration/kafka-charm/lib/charms/data_platform_libs/v0/data_interfaces.py
tests/v0/integration/s3-charm/lib/charms/data_platform_libs/v0/s3.py
tests/v1/integration/application-charm/lib/charms/data_platform_libs/v1/database_requires.py
tests/v1/integration/database-charm/lib/charms/data_platform_libs/v1/database_provides.py
tests/v1/integration/application-charm/lib/charms/data_platform_libs/v1/data_interfaces.py
tests/v1/integration/application-s3-charm/lib/charms/data_platform_libs/v1/s3.py
tests/v1/integration/database-charm/lib/charms/data_platform_libs/v1/data_interfaces.py
tests/v1/integration/kafka-charm/lib/charms/data_platform_libs/v1/data_interfaces.py
tests/v1/integration/s3-charm/lib/charms/data_platform_libs/v1/s3.py'
tests/v1/integration/backward-compatibility-charm/lib/charms/data_platform_libs/v0/data_interfaces.py
tests/v1/integration/backward-compatibility-charm/lib/charms/data_platform_libs/v1/data_interfaces.py
tests/v1/integration/opensearch-charm/lib/charms/data_platform_libs/v1/data_interfaces.py
tests/v1/integration/kafka-connect-charm/lib/charms/data_platform_libs/v1/data_interfaces.py
tests/v1/integration/dummy-database-charm/lib/charms/data_platform_libs/v1/data_interfaces.py
.vscode/
.idea/
Loading