Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add the stable/squid-jammy branch #32

Open
wants to merge 3,359 commits into
base: stable/squid-jammy
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3359 commits
Select commit Hold shift + click to select a range
4cb17e3
Fix: testing bundles for jammy and lunar were off
sabaini May 8, 2023
70cb655
Testing: use mysql and rabbitmq from LTS
sabaini May 11, 2023
c05f78b
Fix persistent config file not update bug
jneo8 Apr 27, 2023
29ad43e
Testing: remove unused grafana plugin
sabaini May 24, 2023
2f8623c
Merge "Removes stderr pipe from _check_output"
May 26, 2023
e4e7803
Enable rgw trust forwarded https when https proxy
May 31, 2023
7359be9
Add support for interim Ubuntu releases
ChrisMacNaughton Mar 16, 2023
72b9eb1
rbd mirror relation: be persistent in getting pool info
sabaini May 31, 2023
51113d2
Bypass charm going into blocked due to a bug
ChrisMacNaughton Apr 14, 2022
3e4fb47
Add Kinetic and Zed support
lmlg Jun 2, 2023
7fd6025
Configure ceph with osd-memory-target from ceph-osd charm
Jan 12, 2023
411453d
Add support for interim Ubuntu releases
ChrisMacNaughton Mar 20, 2023
a97f7cb
Merge "Configure ceph with osd-memory-target from ceph-osd charm"
Jun 16, 2023
90044e7
Don't clear osd_memory_target unconditionally
nobuto-m Jun 16, 2023
b6de88b
Unpin tox version
lmlg Dec 13, 2022
054ca88
Charm-helpers sync
freyes Jun 16, 2023
523ce32
Normalize testing bundles
freyes Jun 16, 2023
98b1fc9
Add support for CephFS.
Apr 1, 2021
5bb9296
Adds focal to charmcraft
UtkarshBhatthere Jun 27, 2023
67ffcba
Adds source for application in test bundles
UtkarshBhatthere Jun 22, 2023
fd054bf
Adds skip logic to non-leader units
UtkarshBhatthere Jun 1, 2023
8b0d7ed
Ensure broker requests are re-processed on upgrade-charm
ChrisMacNaughton Jun 29, 2022
5bc76a4
Fix ceph-mon upgrade path
lmlg Jul 5, 2023
5196b62
Set consistent source
sabaini Jul 10, 2023
da0d3c9
Add docs key and point at Discourse
jadonn Jul 18, 2023
0c3227b
Add docs key and point at Discourse
jadonn Jul 18, 2023
8fa6995
Add docs key and point at Discourse
jadonn Jul 18, 2023
49ec714
Add docs key and point at Discourse
jadonn Jul 18, 2023
d5e5e27
Add docs key and point at Discourse
jadonn Jul 18, 2023
a830a18
Fix: test bundles for jammy and lunar
sabaini Jul 24, 2023
fd1d066
Add 2023.2 Bobcat support
Jul 18, 2023
5dbc93c
Add docs key and point at Discourse
Jul 25, 2023
adcf333
Add docs key and point at Discourse
Jul 25, 2023
723eacd
Add 2023.2 Bobcat support
Jul 18, 2023
dfb37df
Merge "Add docs key and point at Discourse"
Jul 25, 2023
ac70df5
Clarify that osd-devices not present are ignored
Jul 31, 2023
53dd066
Add 2023.2 Bobcat support
Jul 18, 2023
2ac2283
Merge "Add 2023.2 Bobcat support"
Aug 2, 2023
628913b
Add 2023.2 Bobcat support
Jul 18, 2023
051c4af
Add 2023.2 Bobcat support
Jul 18, 2023
0d36846
Add 2023.2 Bobcat support
Jul 18, 2023
81712e2
Merge "Add 2023.2 Bobcat support"
Aug 4, 2023
8dc5250
Merge "Add 2023.2 Bobcat support"
Aug 7, 2023
60c4052
Add 2023.2 Bobcat support
Jul 18, 2023
f417e36
Fix typo in actions.yaml
jadonn Aug 8, 2023
da6f655
Add docs key and point at Discourse
Jul 25, 2023
287a75a
Fix pool names in RadosGW charm
lmlg Aug 7, 2023
228de39
Merge "Add docs key and point at Discourse"
Aug 10, 2023
9be6a2c
Use charmcraft 2.x to build
freyes Aug 10, 2023
8640ff4
Use charmcraft 2.x to build
freyes Aug 10, 2023
69f213e
Merge "Fix pool names in RadosGW charm"
Aug 14, 2023
b5422ef
Add config option for tuning osd memory target
Jan 10, 2023
55456ab
Add 2023.2 Bobcat support
Jul 18, 2023
b9ac2d7
Fixes SSL conflicts between relation and config data.
UtkarshBhatthere May 26, 2023
8486876
Ensure get_requests_for_local_unit doesn't fail on incomplete relation
ajkavanagh Aug 4, 2023
537468c
Return previous result of processed broker requests
lmlg Aug 16, 2023
013ac67
Merge "Fixes SSL conflicts between relation and config data."
Aug 25, 2023
7c6553d
Merge "Add docs key and point at Discourse"
Aug 30, 2023
6ad1781
Fixes testcase coverage for charm
UtkarshBhatthere Dec 9, 2022
ad8b4f9
Add docs key and point at Discourse
Jul 25, 2023
3dee737
Merge "Add docs key and point at Discourse"
Sep 4, 2023
98f3533
Prune CI test jobs and test bundles
sabaini Sep 4, 2023
f084ea3
Partially revert previous change to re-enable Focal as a gating target
ChrisMacNaughton Aug 30, 2022
d48e584
Merge "Partially revert previous change to re-enable Focal as a gatin…
Sep 5, 2023
15b0eed
Remove some CI jobs and test bundles
lmlg Sep 7, 2023
08e0116
Merge "Remove some CI jobs and test bundles"
Sep 8, 2023
f0dd2b2
Prune CI jobs
sabaini Sep 11, 2023
7912d45
Merge "Ensure get_requests_for_local_unit doesn't fail on incomplete …
Sep 12, 2023
ce4ad96
Merge "Fixes testcase coverage for charm"
Sep 12, 2023
679153d
Adds dashboard enablement/deferral logic improvements
UtkarshBhatthere Sep 1, 2023
562d4bb
Sync charm libraries
lmlg Sep 12, 2023
88e46d3
Sync charm libraries
lmlg Sep 12, 2023
cccd279
Sync charm libraries
lmlg Sep 12, 2023
19c06c9
Sync libraries again (Reef mapping was missing)
lmlg Sep 13, 2023
68e691d
Merge "Add 2023.2 Bobcat support"
Sep 14, 2023
00f5a18
Doc: fix functest link
sabaini Sep 19, 2023
9c9a6f2
Update command references to juju 3.x syntax
slapcat Aug 5, 2023
7ef6a04
Remove unused tox target
sabaini Sep 21, 2023
d226916
Add upgrade func testing
sabaini Sep 27, 2023
60a1fe1
Add upgrade func testing
sabaini Sep 28, 2023
788b7a5
Warn in status if tune-osd-memory-target invalid
Sep 29, 2023
6894669
Merge "Add upgrade func testing"
Sep 29, 2023
bc26ab5
Fix version retrieval
sabaini Sep 29, 2023
abf2647
Fix: increase timeout for get versions
sabaini Oct 2, 2023
c84624f
Remove kinetic support
sabaini Oct 3, 2023
7a44f37
Add reef functests
sabaini Oct 3, 2023
d2993eb
Remove FileStore support
sabaini Oct 5, 2023
92e791f
Add reef functests to CI
sabaini Oct 3, 2023
49eec58
Document how multiple devices must be provided
Oct 9, 2023
4ef0fe1
Document rationale for erasure coded pools
Oct 16, 2023
778a8bd
Fix status handling for non-leaders
sabaini Oct 19, 2023
7843e36
Fix charm for tox4 compatibility
Oct 25, 2023
8fa2e8f
Reject invalid username and password
lmlg Oct 25, 2023
5e4ded2
Set iscsi pools' application
lmlg Oct 24, 2023
557ad26
Merge "Reject invalid username and password"
Oct 30, 2023
41cfd94
Improve platform mocking
Oct 30, 2023
68ef72f
Don't set the default pool as "iscsi"
nobuto-m Nov 1, 2023
0e88e3a
Merge "Add reef functests"
Nov 6, 2023
eece895
Fix key errors for rbd-pool-name and ec-rbd-metadata-pool
nobuto-m Nov 6, 2023
a16c28e
Allow ceph device scrape-health-metrics
nobuto-m Oct 20, 2023
2efc9d6
Merge "Fix key errors for rbd-pool-name and ec-rbd-metadata-pool"
Nov 7, 2023
8539db3
Doc: add contribution links
sabaini Nov 10, 2023
fae5077
Tox: add Python 3.11 section to tox.ini
sabaini Nov 10, 2023
1f4dc7b
Add config option for rbd_stats_pools
Nov 6, 2023
3bfe28d
Refactor cache validation for the ceph-osd NRPE check
peterctl Nov 9, 2023
2797931
Functest: don't use LTS image
sabaini Nov 14, 2023
fb7eceb
Functests: pin support channels, cleanup
sabaini Oct 3, 2023
0241232
Revert default source to 'yoga'
lmlg Nov 25, 2023
e5c3301
Merge "Update command references to juju 3.x syntax"
Dec 7, 2023
739c458
Merge "Document how multiple devices must be provided"
Dec 7, 2023
2f93f92
Fix: enable GW services once we have config
sabaini Dec 7, 2023
115ff11
Reef default source bobcat
sabaini Dec 15, 2023
bcfbbbb
Revert default source to 'bobcat'
lmlg Dec 15, 2023
45cbdb9
Use single credential for configuring object storage gw in dashboard.
UtkarshBhatthere Dec 14, 2023
fc87410
Retry setting rbd_stats_pools prometheus config
lmlg Jan 3, 2024
68c139c
Allow URLs which contain encoded path separators
peppepetra May 19, 2022
a71e340
Add nagios check for radosgw-admin sync status
pengwyn Oct 25, 2023
7357210
Merge "Add nagios check for radosgw-admin sync status"
Jan 10, 2024
5044ca3
Merge "Retry setting rbd_stats_pools prometheus config"
Jan 10, 2024
8db290a
Revert default source to 'bobcat'
lmlg Dec 15, 2023
a62a3bb
Don't error out on missing OSDs
sabaini Jan 16, 2024
1405c67
Add alerting rules for RGW multisite deployments
sabaini Jan 17, 2024
4751ceb
Merge "Add alerting rules for RGW multisite deployments"
Jan 18, 2024
a2d136f
Fixup: multisite alert rule help texts
sabaini Jan 19, 2024
110c919
Merge "Allow URLs which contain encoded path separators"
Jan 24, 2024
4ff52f7
Initial support for the s3 interface
sabaini Mar 13, 2023
28df66f
Doc: describe the s3 interface
sabaini Feb 6, 2024
f1c195d
Update bundles to specify source config option
wolsen Feb 8, 2024
cd0784a
Fix failing functional tests
lathiat Feb 29, 2024
669c905
Fix: defer cos-prometheus for bootstrap
sabaini Mar 1, 2024
1ad57f6
Don't expect a static job name
nobuto-m Mar 17, 2024
0689749
Merge "Don't expect a static job name"
Mar 21, 2024
a66994b
Implement the 'list-entities' action
lmlg Mar 26, 2024
aef9cd2
Add a config option for virtual hosted bucket
shundezhang Jan 3, 2024
86a9211
Implement the 'rotate-key' action for managers
lmlg Apr 4, 2024
f7674c9
Sync charmhelpers
sabaini Apr 9, 2024
23af03a
Don't bind to ipv4 if prefer-ipv6 is true
rhxto Mar 6, 2024
fd07bb3
Implement key rotation for RadosGW daemons
lmlg Apr 9, 2024
a4a84b7
Implement key rotation on the ceph-radosgw charm
lmlg Apr 9, 2024
3510058
Add ipv6 bind flags
rhxto Apr 17, 2024
6e7caaa
Fix scale-out in the multi-site replication scenario
Oct 19, 2023
277244f
Implement key rotation for MDS daemons
lmlg Apr 22, 2024
35eebb3
Improve MDS key rotation
lmlg Apr 23, 2024
fd31c2f
Implement key rotation for ceph-fs
lmlg Apr 23, 2024
f8a9cc4
Merge "Fix scale-out in the multi-site replication scenario"
Apr 29, 2024
cad3174
Merge "Add ipv6 bind flags"
Apr 29, 2024
0dddd11
Add group policy configuration
Oct 19, 2023
27bb09d
Caracal-Squid Enablement
UtkarshBhatthere May 2, 2024
7d84e73
Caracal-Squid Enablement
UtkarshBhatthere May 2, 2024
515ef67
Caracal-Squid Enablement
UtkarshBhatthere May 2, 2024
b59271e
Caracal-Squid enablement
UtkarshBhatthere May 2, 2024
5aeb28e
Implement key rotation for OSD's
lmlg Apr 12, 2024
3282bd7
Merge "Implement key rotation for OSD's"
May 3, 2024
868adde
Add support for the cos_agent relation
sabaini Nov 22, 2023
33b99d6
Allow static ipv6 addresses & binding check
rhxto Apr 30, 2024
71b1802
Merge "Add support for the cos_agent relation"
May 7, 2024
693c9f0
Implement key rotation for OSD
lmlg Apr 11, 2024
a3512b3
Update for Ceph Squid
May 9, 2024
7f750c9
Fixes for ceph squid
sabaini May 10, 2024
0f0ac8a
Merge "Implement key rotation for OSD"
May 22, 2024
c3c2f06
Caracal-Squid enablement for ceph-iscsi
lmlg May 17, 2024
81a612f
feat: implement support for the `cephfs-share` relation
jedel1043 May 4, 2024
7cc1712
Caracal-Squid enablement for ceph-dashboard
lmlg May 2, 2024
d475cc5
Merge "Add group policy configuration"
May 28, 2024
04d768d
Caracal-Squid enablement for ceph-fs
lmlg May 2, 2024
24ea686
Merge "feat: implement support for the `cephfs-share` relation"
May 30, 2024
852e362
Caracal-Squid enablement for ceph-nfs
sabaini May 29, 2024
d13cf25
Squid support: make caracal the default source
sabaini Jun 3, 2024
7e94bf6
Squid support: make caracal the default source
sabaini Jun 3, 2024
9efe794
Squid support: make caracal the default source
sabaini Jun 3, 2024
1e53208
Squid support: make caracal the default source
sabaini Jun 3, 2024
7d75a96
Caracal-Squid enablement for ceph-proxy
lmlg May 2, 2024
50390de
Squid support: make caracal the default source
sabaini Jun 3, 2024
30081e9
Add tests for jammy-caracal
lmlg Jun 5, 2024
3e5f519
Allow the user to skip Bluestore features
lmlg Jun 11, 2024
6fb833e
Merge "Allow static ipv6 addresses & binding check"
Jun 14, 2024
d218614
Create squid-jammy branch
sabaini Jun 21, 2024
b9ddebf
Create squid-jammy branch
sabaini Jun 21, 2024
6f26076
Create squid-jammy branch
sabaini Jun 21, 2024
bb6fea1
Create squid-jammy branch
sabaini Jun 21, 2024
3b045a7
Create squid-jammy branch
sabaini Jun 21, 2024
7685bec
Create squid-jammy branch
sabaini Jun 21, 2024
af85b2e
Create squid-jammy branch
sabaini Jun 21, 2024
8fad6c4
Create squid-jammy branch
sabaini Jun 21, 2024
20a9f2d
Create squid-jammy branch
sabaini Jun 21, 2024
4b7098c
Defer restart of services on AppArmor change
rodrigogansobarbieri Jun 10, 2024
8092b51
Don't make any changes during update-status hooks
nobuto-m Jul 29, 2024
d8a3751
Defer cos-prometheus for bootstrap
nobuto-m Aug 14, 2024
a780e3f
Fix: add scrape configs on non-leaders as well
sabaini Oct 16, 2024
4a3c0a3
Fix a bug cephfs subvolume size calculation
pponnuvel Aug 29, 2024
51408b8
Keystone auth: try external auth first
sabaini Nov 15, 2024
a69fd62
SSL handling: check cert/key before attempting to set
sabaini Dec 20, 2024
bcd5d61
Tests: pin boto3
sabaini Jan 23, 2025
986633a
merged charm-ceph-dashboard
sabaini Feb 17, 2025
5626c99
merged charm-ceph-fs
sabaini Feb 17, 2025
eab5bd9
merged charm-ceph-iscsi
sabaini Feb 17, 2025
29e5a70
merged charm-ceph-mon
sabaini Feb 17, 2025
081258b
merged charm-ceph-nfs
sabaini Feb 17, 2025
dd0b5b7
merged charm-ceph-osd
sabaini Feb 17, 2025
75ceac6
merged charm-ceph-proxy
sabaini Feb 17, 2025
1b87deb
merged charm-ceph-radosgw
sabaini Feb 17, 2025
8a00918
merged charm-ceph-rbd-mirror
sabaini Feb 17, 2025
f398d72
Migration: stable/squid-jammy updates
sabaini Feb 11, 2025
f4725ac
Fix lint / unit test issues
sabaini Feb 12, 2025
efb71d9
ceph-fs: fix test mount
sabaini Feb 7, 2025
0a4f34c
Add git-related files
lmlg Jan 22, 2025
d25b41b
Workflow: modernize up/download action, fix empty matrix
sabaini Feb 4, 2025
acaa300
CI: clear out docker iptables rules (#8)
sabaini Feb 4, 2025
98298c1
ceph-proxy: remove ntp
sabaini Jan 31, 2025
d02474d
Workflow: add manual trigger
sabaini Feb 5, 2025
3dceac3
ceph-nfs: remove overlay
sabaini Feb 6, 2025
4a12a25
Workflow: check deleted files as well
sabaini Feb 6, 2025
f0226c0
Misc. improvements to the github workflow
lmlg Feb 12, 2025
e0ef5e7
Update build-and-test.yml
lmlg Feb 12, 2025
0dec567
Add global test constraints
sabaini Feb 13, 2025
ef65d33
Testing: pre-heat juju machine alloc
sabaini Feb 13, 2025
b12129d
Tests: add juju model configs
sabaini Feb 13, 2025
c02a6bd
Tests: add zaza conf, normalize test bundles (#27)
sabaini Feb 14, 2025
de05519
Migration: test bundles
sabaini Feb 20, 2025
0b687d3
Testing: fix ipv6 rendering
sabaini Feb 20, 2025
9f9ab4b
ceph-fs: squid-jammy migration updates
sabaini Mar 3, 2025
76b2df6
Functest targets
sabaini Jan 31, 2025
7515c29
Tests: fix ceph-nfs
sabaini Feb 14, 2025
5349adc
Central tox.ini model config
sabaini Feb 14, 2025
f99b92c
Testing: pre-heat in dummy model
sabaini Feb 13, 2025
3ecec80
Tests: add zaza conf, normalize test bundles (#27)
sabaini Feb 14, 2025
7f874dc
Add Terraform modules for ceph-mon and ceph-osd
bschimke95 Feb 18, 2025
5d5f991
add applications module
bschimke95 Feb 18, 2025
13cf6c9
fix github ci
bschimke95 Feb 18, 2025
f75ae53
add manifest module
bschimke95 Feb 18, 2025
1fc49e1
Fix source path
bschimke95 Feb 18, 2025
339345f
Remove obsolete k8s code
bschimke95 Feb 18, 2025
8653246
Fix path
bschimke95 Feb 18, 2025
cc89c68
Add terraform apply step
bschimke95 Feb 21, 2025
c658bb1
add model
bschimke95 Feb 21, 2025
36fb751
fix example
bschimke95 Feb 21, 2025
8385e1f
debug
bschimke95 Feb 21, 2025
227be8d
debug
bschimke95 Feb 21, 2025
3248423
debug
bschimke95 Feb 21, 2025
51a77c1
fix test
bschimke95 Feb 21, 2025
cf208b8
fix test
bschimke95 Feb 21, 2025
c5ee31e
Support wider range of juju providers, fix storage issue
addyess Feb 25, 2025
e9b6a23
Add CLA and Signed-off-by checks (#40)
sabaini Mar 3, 2025
b999b43
Adjust charmcraft.yaml
sabaini Mar 4, 2025
34e4868
ceph-iscsi: migration updates
sabaini Mar 7, 2025
857cee5
Migration updates
sabaini Mar 7, 2025
e3239b7
ceph-iscsi: update bundles
sabaini Mar 10, 2025
7a0d763
ceph-nfs: bundle updates
sabaini Mar 10, 2025
7fd4539
ceph-radosgw: bundle updates
sabaini Mar 10, 2025
f33b1d8
test bundle fix
sabaini Mar 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
188 changes: 188 additions & 0 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
name: Build/Test

on:
workflow_call:
workflow_dispatch:
inputs:
part:
description: 'Name of the charm to build/test manually. Defaults to all charms'
required: false
default: ''

jobs:
modifiedparts:
runs-on: ubuntu-latest
outputs:
parts: ${{ steps.determine-parts.outputs.parts }}
steps:
- name: Checkout repository
uses: actions/checkout@v4

# For non-manual triggered runs
- name: Get modified files
id: changed-files
if: ${{ github.event_name != 'workflow_dispatch' }}
uses: tj-actions/changed-files@v35

- name: Determine charms to build/test
id: determine-parts
env:
INPUT_PART: ${{ inputs.part }}
GITHUB_EVENT_NAME: ${{ github.event_name }}
ALL_MOD_FILES: ${{ steps.changed-files.outputs.all_modified_files }}
run: |
if [ "$GITHUB_EVENT_NAME" = "workflow_dispatch" ]; then
if [ -n "$INPUT_PART" ]; then
# Manual run with a specified charm
components=($INPUT_PART)
else
# Manual run, no charm specified -> run all
components=($(find . -maxdepth 1 -type d ! -path '.' -exec bash -c '[[ -f "$0/charmcraft.yaml" ]] && basename "$0"' {} \; | sort))
fi
else
# Automatic run: use changed-files to determine modified charms
echo "Modified files to eval: ${ALL_MOD_FILES}"
components=()
# Retrieve components with a 'tox.ini' file.
for file in ${ALL_MOD_FILES} ; do
component=$(echo "$file" | cut -d "/" -f1)
if [[ -f "./$component/charmcraft.yaml" ]]; then
# This is a charm.
components+=("$component")
elif [[ -f "./$component/tox.ini" ]]; then
# Assume this is a library.
# TODO: Add dependent charms here.
:
fi
done
# Remove dups
components=($(echo "${components[@]}" | tr ' ' '\n' | sort -u))
fi
json_output=$(jq --compact-output --null-input '$ARGS.positional' --args -- "${components[@]}")
echo "Modified parts: $json_output"
echo "parts=$json_output" >> $GITHUB_OUTPUT

build:
needs: modifiedparts
name: Build the charm
runs-on: ubuntu-latest
if: ${{ needs.modifiedparts.outputs.parts != '[]' }}
strategy:
matrix:
part: ${{ fromJson(needs.modifiedparts.outputs.parts) }}
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install dependencies
run: |
sudo apt-get -qq install libxslt-dev libxml2-dev python3-lxml tox

- name: Run linters
run: tox -c ${{ matrix.part }} -e pep8

- name: Run unit tests
run: tox -c ${{ matrix.part }} -e py3

- name: Setup LXD
uses: canonical/setup-lxd@v0.1.1
with:
channel: 5.21/stable

- name: Build charm(s)
id: builder
run: |
sudo snap install charmcraft --classic
tox -c ${{ matrix.part }} -e build

- name: Upload built charm
uses: actions/upload-artifact@v4
with:
name: charm-artifact-${{ matrix.part }}
path: "./${{ matrix.part }}/*.charm"

functional-test:
needs:
- modifiedparts
- build
name: Functional tests
runs-on: [self-hosted, linux, amd64, X64, large, noble]
if: ${{ needs.modifiedparts.outputs.parts != '[]' }}
strategy:
matrix:
part: ${{ fromJson(needs.modifiedparts.outputs.parts) }}
fail-fast: false
steps:
- name: Download charm
uses: actions/download-artifact@v4
with:
name: charm-artifact-${{ matrix.part }}
pattern: charm-artifact-*
merge-multiple: true
path: ~/artifacts/

- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Copy utils
run: cp tests/scripts/actionutils.sh $HOME

- name: Clear FORWARD firewall rules
run: ~/actionutils.sh cleaript

- name: Setup LXD
run: |
if [[ "$(snap list | grep -c lxd)" -eq 0 ]]; then
sudo snap install lxd --channel=5.21/stable
sudo usermod -aG lxd "$USER"
newgrp lxd
lxd init --minimal
fi

- name: Install and configure tests
run: |
date
~/actionutils.sh setup_functest
~/actionutils.sh cacheimgs "ubuntu@22.04"

- name: Run the tests
run: |
date
mv ~/artifacts/*.charm ./
if [[ -f "./${{ matrix.part }}/src/tox.ini" ]]; then
tox -c ${{ matrix.part }}/src -e func-dev
else
tox -c ${{ matrix.part }} -e func-dev
fi

- name: Generate crash dumps
if: failure()
run: |
models=$(juju models | grep zaza | awk '{print $1}' | tr -d '*')
rm -rf ./crashdumps
mkdir ./crashdumps
for model in $models; do
juju-crashdump -m $model -o ./crashdumps
done

- name: Upload artifacts on failure
uses: actions/upload-artifact@v4
with:
name: crashdumps-${{ matrix.part }}
path: "./crashdumps/*"
if: failure()

- name: Setup tmate session
if: ${{ failure() && runner.debug }}
uses: canonical/action-tmate@main

- name: Tear down models
if: always()
run: |
models=$(juju models | grep zaza | awk '{print $1}' | tr -d '*')
for model in $models; do
juju destroy-model --no-prompt --force --destroy-storage $model
done
33 changes: 33 additions & 0 deletions .github/workflows/commits.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Commits
on:
- pull_request

permissions:
contents: read

jobs:
cla-check:
permissions:
pull-requests: read
name: Canonical CLA signed
runs-on: ubuntu-20.04
steps:
- name: Check if CLA signed
uses: canonical/has-signed-canonical-cla@v2

dco-check:
permissions:
pull-requests: read # for tim-actions/get-pr-commits to get list of commits from the PR
name: Signed-off-by (DCO)
runs-on: ubuntu-20.04
steps:
- name: Get PR Commits
id: 'get-pr-commits'
uses: tim-actions/get-pr-commits@master
with:
token: ${{ secrets.GITHUB_TOKEN }}

- name: Check that all commits are signed-off
uses: tim-actions/dco@master
with:
commits: ${{ steps.get-pr-commits.outputs.commits }}
88 changes: 88 additions & 0 deletions .github/workflows/plan-terraform.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Copyright 2025 Canonical Ltd.
# See LICENSE file for licensing details.

name: Plan Terraform tests

on:
push:
branches:
- main
pull_request:

jobs:
plan-terraform:
name: Plan Terraform with Juju
runs-on: ubuntu-latest
strategy:
matrix:
test:
- name: default
yaml: ../tests/terraform/default.yaml
env:
TF_VAR_model: test
TF_VAR_manifest_yaml: ${{ matrix.test.yaml }}
WORKING_DIR: 'terraform'
steps:
- uses: actions/checkout@v4
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- uses: charmed-kubernetes/actions-operator@main
with:
provider: lxd
channel: latest/stable
- name: Prepare juju tf provider environment
run: |
CONTROLLER=$(juju whoami | yq .Controller)
JUJU_CONTROLLER_ADDRESSES="$(juju show-controller | yq '.[$CONTROLLER]'.details.\"api-endpoints\" | tr -d "[]' "|tr -d '"'|tr -d '\n')"
JUJU_USERNAME="$(cat ~/.local/share/juju/accounts.yaml | yq .controllers.$CONTROLLER.user|tr -d '"')"
JUJU_PASSWORD="$(cat ~/.local/share/juju/accounts.yaml | yq .controllers.$CONTROLLER.password|tr -d '"')"

echo "JUJU_CONTROLLER_ADDRESSES=$JUJU_CONTROLLER_ADDRESSES" >> "$GITHUB_ENV"
echo "JUJU_USERNAME=$JUJU_USERNAME" >> "$GITHUB_ENV"
echo "JUJU_PASSWORD=$JUJU_PASSWORD" >> "$GITHUB_ENV"
{
echo 'JUJU_CA_CERT<<EOF'
juju show-controller $(echo $CONTROLLER|tr -d '"') | yq '.[$CONTROLLER]'.details.\"ca-cert\"|tr -d '"'
echo EOF
} >> "$GITHUB_ENV"
- uses: hashicorp/setup-terraform@v3
- run: terraform init
working-directory: ${{env.WORKING_DIR}}
- run: terraform plan -out=tfplan
working-directory: ${{env.WORKING_DIR}}
- run: terraform show tfplan
working-directory: ${{env.WORKING_DIR}}
- run: |
juju add-model test
set -e # Exit on error

# Apply Terraform changes
terraform apply -auto-approve || { echo "Terraform apply failed"; exit 1; }

# Wait for Juju applications to become active
MAX_RETRIES=30
for i in $(seq 1 $MAX_RETRIES); do
echo "Checking Juju application statuses... Attempt $i/$MAX_RETRIES"

# Fetch status JSON once and store it
STATUS_JSON=$(juju status --format=json)

# Check if all applications are active
if echo "$STATUS_JSON" | jq -e '.applications | all(.["application-status"].current == "active")' > /dev/null; then
echo "✅ All applications are active"
exit 0
fi

echo "⏳ Waiting for applications to become active..."
sleep 10
done

echo "❌ Timeout waiting for applications to become active"
exit 1
working-directory: ${{env.WORKING_DIR}}
- uses: actions/upload-artifact@v4
with:
name: ${{matrix.test.name}}-terraform-plan
path: ${{env.WORKING_DIR}}/tfplan
8 changes: 8 additions & 0 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
name: PR

on:
pull_request:

jobs:
build:
uses: ./.github/workflows/build-and-test.yml
12 changes: 12 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
bin
.idea
.coverage
.testrepository
.tox
*.sw[nop]
*.charm
.idea
*.pyc
func-results.json
.stestr
__pycache__
9 changes: 9 additions & 0 deletions ceph-dashboard/.flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[flake8]
max-line-length = 99
select: E,W,F,C,N
exclude:
venv
.git
build
dist
*.egg_info
8 changes: 8 additions & 0 deletions ceph-dashboard/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.tox
**/*.swp
__pycache__
.stestr/
lib/*
!lib/README.txt
build
*.charm
6 changes: 6 additions & 0 deletions ceph-dashboard/.gitreview
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[gerrit]
host=review.opendev.org
port=29418
project=openstack/charm-ceph-dashboard.git

defaultbranch=stable/squid-jammy
3 changes: 3 additions & 0 deletions ceph-dashboard/.jujuignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/venv
*.py[cod]
*.charm
3 changes: 3 additions & 0 deletions ceph-dashboard/.stestr.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[DEFAULT]
test_path=./unit_tests
top_dir=./
4 changes: 4 additions & 0 deletions ceph-dashboard/.zuul.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- project:
templates:
- openstack-python3-charm-yoga-jobs
- openstack-cover-jobs
Loading
Loading