Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
433 commits
Select commit Hold shift + click to select a range
da8f439
feat: add secret deletion to upgrade script (-n airm)
Q-Dub Mar 17, 2026
c1b0847
feat: add --no-clean option so pgdump doesn't want to wipe existing db
Q-Dub Mar 17, 2026
d0cb84c
ci: update sbom/components.yaml
Q-Dub Mar 17, 2026
51ea694
docs: add cpu minimum requirement for medium and large clusters (20)
Q-Dub Mar 17, 2026
5fa5577
ci: update helm version paths for airm and aiwb
Q-Dub Mar 17, 2026
81ff03e
fix: rm db dump .sql
Q-Dub Mar 17, 2026
f487db6
Merge pull request #635 from silogen/EAI_1997_airm_helm_chart_separation
Q-Dub Mar 17, 2026
8e77ba2
fix(bootstrap.sh): argocd - cleanup /tmp files via mktemp -d
Q-Dub Mar 17, 2026
2e166f5
fix: add a cleanup trap for tmp folders
Q-Dub Mar 17, 2026
d8fb971
Merge pull request #636 from silogen/EAI-2048_tmp_file_cleanup
Q-Dub Mar 18, 2026
7776a80
fix: delete tls secret first, since rmq secret not there if airm-conf…
Q-Dub Mar 18, 2026
a450e74
feat: delete aim resources
Q-Dub Mar 18, 2026
3d15bdb
feat: ignore not found for secret deletion
Q-Dub Mar 18, 2026
8636dd3
feat: revise upgrade script to include cleanup of aim sources
Q-Dub Mar 18, 2026
644c3e2
docs: add description of upgrade script
Q-Dub Mar 18, 2026
ab367ee
Merge pull request #637 from silogen/fix_migration_script
Q-Dub Mar 18, 2026
8aba5c4
Merge pull request #638 from silogen/remove-aiwb-cnpg-username-secret…
Q-Dub Mar 18, 2026
00c9c8c
feat: make import_databases.sh compatible with post helm infra split
Q-Dub Mar 18, 2026
49fb901
Merge pull request #639 from silogen/feat_import_db_script
Q-Dub Mar 18, 2026
89d4229
fix: user fix and upgrade
Q-Dub Mar 18, 2026
977093d
feat(export_databases.sh): add machine-readable output so it can be p…
Q-Dub Mar 18, 2026
ed0a249
chore(bootstrap.sh): update LATEST_RELEASE
Q-Dub Mar 18, 2026
9810148
feat(export_rabbitmq.sh): add output of file name for programmatic use
Q-Dub Mar 18, 2026
118b5e3
feat(upgrade script): printed continuation instructions; error handli…
Q-Dub Mar 18, 2026
2358ad8
Merge branch 'main' into EAI-1069_v2_upgrade_path
Q-Dub Mar 19, 2026
0fb49f4
Merge pull request #642 from silogen/EAI-1069_v2_upgrade_path
Q-Dub Mar 19, 2026
b8f1970
fix: add missing kserve values for limits and requests
oskarasbrink Mar 19, 2026
4e8da01
fix: move airm and aiwb ignoredifferences for externalsecrets to new …
oskarasbrink Mar 19, 2026
fdc20bd
Merge pull request #644 from silogen/es-ignore-differences-argocd
Q-Dub Mar 19, 2026
4693d8a
Merge pull request #643 from silogen/kserve-app-values
Q-Dub Mar 19, 2026
ae8d68a
fix: move floating kind es for infra apps
oskarasbrink Mar 19, 2026
e29bcb9
Merge pull request #645 from silogen/es-floating-kind-ignorediff
Q-Dub Mar 19, 2026
cfbad20
Update README.md
haakanpersson Mar 19, 2026
03b2a88
feat: add AIMClusterModelSource for v0.10
Q-Dub Mar 19, 2026
29c7033
Merge pull request #647 from silogen/EAI-2099_aims_models_0_10
Q-Dub Mar 19, 2026
ace8521
docs: add upgrade guide; add disclaimer and polish util scripts
Q-Dub Mar 19, 2026
3bd2085
docs: have shell script print .md in docs to keep DRY
Q-Dub Mar 19, 2026
09c7c72
Merge pull request #648 from silogen/EAI-1069_v2_upgrade_path
Q-Dub Mar 20, 2026
d43ee35
ci(v2.0.0): add sources for aim-engine, aim-engine-crds, kaiwo, kaiwo…
Q-Dub Mar 20, 2026
6f69ac3
Merge pull request #649 from silogen/EAI-1463_add_sources_for_v2_release
Q-Dub Mar 20, 2026
1647b91
Merge pull request #646 from silogen/fix-README-markdown
Q-Dub Mar 20, 2026
066edfc
ci: bump checkout version to v6
Q-Dub Mar 20, 2026
234155c
fix: target pod with primary label as opposed to hard-coding
Q-Dub Mar 23, 2026
887e44b
Merge pull request #651 from silogen/fix_db_migration
Q-Dub Mar 23, 2026
f4fa6f8
fix: wire up to base on app part-of=rabbitmq (as opposed to hard-code…
Q-Dub Mar 23, 2026
5842e75
Merge pull request #652 from silogen/fix_db_migration
Q-Dub Mar 23, 2026
363e064
fix: import_rabbitmq to be snippet over full previous script
Q-Dub Mar 23, 2026
7624b35
Merge pull request #653 from silogen/fix_rmq_import
Q-Dub Mar 23, 2026
c29eb76
fix: rm rabbitmq from all sizes
Q-Dub Mar 23, 2026
d3e3465
Merge pull request #655 from silogen/fix_rmq_app_removed
Q-Dub Mar 23, 2026
26c13d6
EAI-2177 disable apps in both templating and cluster values
brownzebra Mar 24, 2026
1285af4
EAI-2177 remove superfluous check for size values files
brownzebra Mar 24, 2026
c314c81
Merge pull request #656 from silogen/EAI-2177_disabled_apps_simplified
Q-Dub Mar 24, 2026
94bd1f9
fix: delete airmcluster* before rm argo app
Q-Dub Mar 24, 2026
df04afe
fix: add rbac-sources and scheduler resources. Files copied from oper…
oskarasbrink Mar 24, 2026
1253a3f
fix: update kaiwo-crds
oskarasbrink Mar 24, 2026
fb9d8c6
Revert "Merge pull request #656 from silogen/EAI-2177_disabled_apps_s…
Q-Dub Mar 24, 2026
068b10c
Merge pull request #659 from silogen/revert_disabled_apps
Q-Dub Mar 24, 2026
a4301a8
Merge pull request #658 from silogen/kaiwo-rc12
Q-Dub Mar 24, 2026
2c72337
Merge branch 'main' into EAI-2183_upgrade_script
brownzebra Mar 24, 2026
15bac94
Merge pull request #657 from silogen/EAI-2183_upgrade_script
Q-Dub Mar 24, 2026
7840b24
Merge branch 'main' into ci_update_checkout
brownzebra Mar 24, 2026
2f9e468
Merge pull request #650 from silogen/ci_update_checkout
brownzebra Mar 24, 2026
b127e6a
feat: add --disabled-apps flag
Q-Dub Mar 23, 2026
ce99127
docs: update to detail the --disabled-apps
Q-Dub Mar 23, 2026
e8dc5aa
add supporting disabled-apps for CF
Mar 24, 2026
1152a65
quick fix
Mar 24, 2026
8eb6742
quick fix_2
Mar 24, 2026
104ede7
quick fix_3
Mar 24, 2026
c7e9c1d
quick fix_4
Mar 24, 2026
3102427
quick fix_5
Mar 24, 2026
d07c1b7
quick fix_6
Mar 24, 2026
bd4fe2b
quick fix_7
Mar 24, 2026
4942da5
quick fix_8
Mar 24, 2026
c09bc88
quick fix_9
Mar 24, 2026
15c3a67
quick fix_10
Mar 24, 2026
7d7e4b8
quick fix_11
Mar 24, 2026
3060e8f
quick fix_12
Mar 24, 2026
c4e18dc
quick fix_13
Mar 24, 2026
0b906c9
quick fix_14
Mar 24, 2026
d792f41
Merge pull request #660 from silogen/EAI-2177_disabled_apps_again
Q-Dub Mar 24, 2026
0e8fb29
fix: add devuser secret into aiwb, not only in airm
oskarasbrink Mar 24, 2026
04a63fe
Merge pull request #661 from silogen/aiwb-patch-devuser-secret
Q-Dub Mar 24, 2026
42ee373
fix: 0.1.1 of aiwb-externalsecrets
oskarasbrink Mar 24, 2026
9e2823c
fix: update root/values.yaml to have 0.1.1 of aiwb-externalsecrets
oskarasbrink Mar 24, 2026
e4bdd40
Revert "fix: add devuser secret into aiwb, not only in airm"
oskarasbrink Mar 24, 2026
97fdd1b
Merge pull request #663 from silogen/revert-661-aiwb-patch-devuser-se…
Q-Dub Mar 24, 2026
e17a235
fix: update sbom to have aiwb externalsecrets 0.1.1
oskarasbrink Mar 24, 2026
d2c2f96
fix: rm rabbitmq from sbom
Q-Dub Mar 24, 2026
c66f086
Merge pull request #662 from silogen/aiwb-es-0_1_1
Q-Dub Mar 24, 2026
65c3211
quick_fix_1
woojae-siloai Mar 24, 2026
f80561f
quick_fix_2
woojae-siloai Mar 24, 2026
ebfdb31
fix: revert kaiwo to v0.2.0-rc11
oskarasbrink Mar 24, 2026
4ffb713
quick_fix_3
woojae-siloai Mar 24, 2026
de4337b
fix: add aiwb-minio-credentials
Q-Dub Mar 24, 2026
f6ade6a
Merge pull request #664 from silogen/revert-kaiwo-to-rc11
Q-Dub Mar 24, 2026
6d1cde8
Merge pull request #666 from silogen/fix_add_minio_secret_to_aiwb
Q-Dub Mar 24, 2026
b1c30e8
Revert "fix: add aiwb-minio-credentials"
oskarasbrink Mar 24, 2026
0973e9c
Merge pull request #667 from silogen/revert-666-fix_add_minio_secret_…
Q-Dub Mar 24, 2026
67d2ae2
fix: workbench minio credentials name
oskarasbrink Mar 24, 2026
89fb997
Merge branch 'main' into workbench-minio-credentials-naming
oskarasbrink Mar 24, 2026
3096ab2
Merge pull request #668 from silogen/workbench-minio-credentials-naming
oskarasbrink Mar 24, 2026
3922e09
Merge branch 'main' into v2_0_0-rc5_disabled-apps
woojae-siloai Mar 25, 2026
fe15945
Merge pull request #669 from silogen/v2_0_0-rc5_disabled-apps
Q-Dub Mar 25, 2026
1def687
feat: aiwbOnly value for gitea-cm and bootstrap --aiwb-only
Q-Dub Mar 25, 2026
d763df0
fix: apps echoing in init-gitea-job
Q-Dub Mar 25, 2026
e0cbd5a
fix: rm extra spaces or apps: key
Q-Dub Mar 25, 2026
5defd9c
fix: yaml indentation
Q-Dub Mar 25, 2026
7be2a96
feature: add 0.84, 0.85, 0.9 aimsclustermodelsources
oskarasbrink Mar 25, 2026
425d2c7
Merge pull request #670 from silogen/0_8_5-0_10_0-modelsources
brownzebra Mar 25, 2026
16e64ac
fix: change apiversion to aim.eai.amd.com/v1alpha1
oskarasbrink Mar 25, 2026
6c22ae2
Merge pull request #671 from silogen/0_8_5-0_10_0-modelsources
brownzebra Mar 25, 2026
d363c0c
fix: rabbitmq added to all sizes
mramdgh Mar 25, 2026
2612236
Merge pull request #672 from silogen/add-rabbit
mramdgh Mar 25, 2026
ceb9548
feat: airm and aiwb 1.0.2 + remove aimclustermodelsource 0.8.4
oskarasbrink Mar 26, 2026
dc61146
feat: update root/values and sbom for 1.0.2 airm and aiwb
oskarasbrink Mar 26, 2026
212cec7
fix: re-add rabbitmq into sbom components
oskarasbrink Mar 26, 2026
f82d2f5
fix: remove aim-base from aimclustermodelsources
oskarasbrink Mar 26, 2026
1fcddfd
Merge pull request #674 from silogen/aiwb-airm-1_0_2
oskarasbrink Mar 26, 2026
a64746c
Merge branch 'main' into feat_aiwb_only
woojae-siloai Mar 26, 2026
b8fdada
Merge pull request #675 from silogen/feat_aiwb_only
Q-Dub Mar 26, 2026
66e1119
fix: add rmq to --aiwb-only and minimal cluster-values
Q-Dub Mar 26, 2026
3a3d57a
Merge pull request #676 from silogen/fix_standalone
Q-Dub Mar 26, 2026
f4214cb
fix: add skipBackgroundRequests to rm argo sync noise
Q-Dub Mar 27, 2026
5d8b9ba
Merge pull request #677 from silogen/fix_aiwb_policy_bgrequest_argo_sync
Q-Dub Mar 27, 2026
b322584
feat: add aiwb 1.0.3 and update values.yaml + sbom components
oskarasbrink Mar 30, 2026
65c1f5d
feat: add aims 0.11
oskarasbrink Mar 30, 2026
fe5fad3
Merge pull request #678 from silogen/v2_0_0
oskarasbrink Mar 30, 2026
dc4bfcc
fix: update aiwb dockerhub repo link (#679)
oskarasbrink Apr 1, 2026
72889e2
fix: airm-agent to pull from dockerhub (#680)
oskarasbrink Apr 1, 2026
82272d8
docs: update refs to 2.0.x and file names to match
Q-Dub Apr 1, 2026
088332b
Merge pull request #681 from silogen/docs_v2_upgrade
Q-Dub Apr 1, 2026
34e2244
fix: Lower requests for medium (#673)
mramdgh Apr 1, 2026
864f750
Revert "fix: Lower requests for medium (#673)" (#682)
oskarasbrink Apr 1, 2026
f9c61d6
fix: update aiwb appdomain, release version in bootstrap script and r…
oskarasbrink Apr 1, 2026
54a2133
config(gitea): point to docker hub image over docker.gitea.com
Q-Dub Apr 2, 2026
2f0acf4
fix: remove -rootless to prevent duplication since image.rootless als…
Q-Dub Apr 2, 2026
9642272
Merge pull request #685 from silogen/EAI-5612_gitea_image_from_docker
brownzebra Apr 2, 2026
79a49f0
EAI-5747 Restore CPU request reduction fix to prevent failures on com…
brownzebra Apr 10, 2026
8b07909
EAI-5747 remove all limits on cpu from medium
brownzebra Apr 10, 2026
41a3346
Merge pull request #686 from silogen/EAI-5747-restore-cpu-request-red…
brownzebra Apr 13, 2026
a9c9b2a
fix(kserve/v0.16.0): include ns in templates
Q-Dub Apr 14, 2026
f5d1887
feat: batch 2 of AIMS 0.11, update aimclustermodelsource
oskarasbrink Apr 15, 2026
38c2cdb
Merge pull request #689 from silogen/0_11_aims-batch_2
oskarasbrink Apr 15, 2026
6394712
fix: update tag in bootstrap script to v2.0.4
oskarasbrink Apr 15, 2026
0046850
Merge pull request #690 from silogen/bootstrap_v2_0_4_tag
oskarasbrink Apr 15, 2026
96624da
fix(secrets): user for aiwb CNPG
Q-Dub Apr 16, 2026
9fc68f9
feat(cluster-apps.yaml): support multiple helm value files
Q-Dub Apr 16, 2026
62ff6c4
config(kaiwo): flip on gpuPreemption
Q-Dub Apr 16, 2026
c65c610
fix: syntax on plural of file(s)
Q-Dub Apr 16, 2026
876588a
fix: sbom validation
Q-Dub Apr 16, 2026
d04abb8
config(kaiwo): add gpuPreemption.metricsEndpoint
Q-Dub Apr 16, 2026
153db0a
fix: Configure coredns to keep internal traffic internal (#691)
mramdgh Apr 17, 2026
31e65f2
EAI-2243 remove hardcoded password for gitea devuser (#688)
woojae-siloai Apr 17, 2026
15c28dd
feat: update templates so storageClassName can be set via helm templa…
Q-Dub Apr 23, 2026
ac75636
docs(byok): add aiwb helm chart and pluggable component scripts and docs
Q-Dub Apr 23, 2026
4442eb0
docs(pluggable): mv entrypoint README.md up to /docs level and update…
Q-Dub Apr 24, 2026
6bd1da5
fix(byok): fix logic of waiting for Keycloack when BYO_DB=true
Q-Dub Apr 24, 2026
7a26b2a
fix(byok): update all BYO refs to pluggable
Q-Dub Apr 24, 2026
50e2864
chore(byok): cleanup remaining BYO refs
Q-Dub Apr 24, 2026
07df3ca
fix: set -euo line and remove homebrew files
Q-Dub Apr 24, 2026
da35975
fix: update poc_helm_byok ref to main
Q-Dub Apr 24, 2026
1089650
fix: remove aiwb-cnpg value overrides
Q-Dub Apr 24, 2026
f969f3b
fix(byok): use kserve-system as namespace deafult explicitly to avoid…
Q-Dub Apr 24, 2026
7f77285
fix: rm vendored changes
Q-Dub Apr 24, 2026
77fff48
Merge pull request #695 from silogen/poc_helm_byok
Q-Dub Apr 24, 2026
410a45f
feat(helm-install): add post_install.sh script
Q-Dub Apr 24, 2026
c14ec49
ux: pluggable -> manual_helm_install
Q-Dub Apr 24, 2026
b77b658
fix: redeploy kserve after webhooks are ready
Q-Dub Apr 24, 2026
7a5d823
add the gpu operator to the helm-install
brownzebra Apr 24, 2026
c64eb74
updates for gpu operator race condition
brownzebra Apr 24, 2026
11aa5d7
fix(byok): point the default object storage api url outside of cluster
pre Apr 24, 2026
6ecf992
doc(byo): Explain the need for in-cluster Minio redirect with BYO S3
pre Apr 27, 2026
759f543
feat: require DOMAIN for install_base.sh and update docs
Q-Dub Apr 27, 2026
c41db3a
setting proper domain when testing in cloud
brownzebra Apr 27, 2026
62b469d
fix: set default as default sc; feat: add keda and kedify and OTel
Q-Dub Apr 27, 2026
0ce7eb9
keda-operator typo
brownzebra Apr 27, 2026
7d65a1c
feat: add prometheus
Q-Dub Apr 27, 2026
a6d857c
feat: add modeals for AIMS 0.9 and 0.10
Q-Dub Apr 27, 2026
94e1916
getting models to load via the aim-engine
brownzebra Apr 27, 2026
c63341d
fix(byok): Pass parameters to install_base.sh
pre Apr 28, 2026
d11e310
shim cluster-auth for standalone helm-only instructions
brownzebra Apr 27, 2026
8e424aa
fork aiwb to shim the cluster-auth
brownzebra Apr 28, 2026
a8976df
chore(byo): Parametrize cluster-forge branch
pre Apr 28, 2026
29dac46
fix: Remove openbao-init from ArgoCD management to prevent rerun on t…
woojae-siloai Apr 28, 2026
76d6241
fix stale block in install_base and add cluster-auth-shim.py
brownzebra Apr 28, 2026
4f4018b
patching cpu limits away for workload startup
brownzebra Apr 28, 2026
6fe07e2
fix(byo): Set default values for PLUGGABLE_* as false
pre Apr 28, 2026
cbee48f
fix(byo): Fix conditional of PLUGGABLE_GW
pre Apr 28, 2026
03e0e42
doc(BYO): Fix links in README
pre Apr 28, 2026
ec6412a
doc(BYO): Write section for Known Workarounds
pre Apr 28, 2026
3fe0baf
Merge pull request #694 from silogen/EAI-5784_byok_documentation
pre Apr 28, 2026
fa0cc97
EAI-5784: gate ExternalSecret/SecretStore resources behind externalSe…
pre Apr 27, 2026
67f3305
EAI-5784: parametrize keycloak-old PostgreSQL connection (cnpg.enable…
pre Apr 27, 2026
339318e
EAI-5784: fix keycloak-old hardcoded values, retire install_base.sh s…
pre Apr 27, 2026
5551ab6
fix(byo): Change Minio listen port to 9999 on host
pre Apr 28, 2026
63821e1
chore(byo): Skip cnpg-operator install when PLUGGABLE_DB=true
pre Apr 28, 2026
c24e3dd
EAI-5784: implement PLUGGABLE_DB=true in install_base.sh, deprecate d…
pre Apr 28, 2026
1d45447
chore(byo): Remove deprecated db.sh
pre Apr 28, 2026
7d7bc80
chore(byo): Skip installing cnpg-operator when PLUGGABLE_DB=true
pre Apr 28, 2026
74fecb0
fix(keycloak-old): Do not hide and ignore errors
pre Apr 28, 2026
f77662c
Merge pull request #697 from silogen/EAI-6050_refactor_helm_1
pre Apr 28, 2026
cb234d0
chore(byok): Read default value for DEFAULT_STORAGE_CLASS_NAME
pre Apr 28, 2026
020f7d0
fix(byok): Use "main" branch for cluster-forge
pre Apr 28, 2026
4601747
fix(byok): Always initialize the repo from scratch with FORCE_UPDATE
pre Apr 28, 2026
3c7ec21
chore(byok): Read default value for CLUSTER_FORGE_BRANCH
pre Apr 28, 2026
722366c
Merge pull request #698 from silogen/EAI-6050_fix-default-values
pre Apr 28, 2026
fc80710
chore(byo): Split CNPG and MinIO secrets into separate files
pre Apr 29, 2026
b68a14c
chore(byo): Move S3 redirect Service and credential creation into ins…
pre Apr 29, 2026
6484952
chore(byo): Reduce s3.sh to a post-install verification script
pre Apr 29, 2026
50aa043
docs(byo): Rewrite db.md and s3.md for pluggable.sh-based install flow
pre Apr 29, 2026
4e3925a
fix(byo): pluggable.sh respects pre-set PLUGGABLE_* env vars
pre Apr 29, 2026
5fe88a6
chore(byo): Clean up pre-existing minio Service before applying redirect
pre Apr 29, 2026
cb68325
docs(byo): Update s3_minio_container.sh to point at pluggable.sh
pre Apr 29, 2026
d6179dd
fix(byo): Default MINIO_ACCESS_KEY/SECRET_KEY in install_base.sh
pre Apr 29, 2026
67a1b34
fix(byo): Make kgateway tokenreviews patch in install_base.sh idempotent
pre Apr 29, 2026
7554115
Merge branch 'main' into EAI-5893_feat_multiple_helm_value_files
Q-Dub Apr 29, 2026
35b89a8
fix(bootstrap.sh): batch fixes -
Q-Dub Apr 29, 2026
f282874
fix(sbom): Updated kaiwo version from v0.2.0-rc11 to v0.2.0-rc12
Q-Dub Apr 29, 2026
82104c8
Merge pull request #692 from silogen/EAI-5893_feat_multiple_helm_valu…
Q-Dub Apr 29, 2026
810ac7f
Merge pull request #696 from silogen/EAI_2309_openbao_init_fix
oskarasbrink Apr 29, 2026
8a271a6
Merge pull request #699 from silogen/EAI-6059_replace_byo_s3_in_sources
Q-Dub Apr 29, 2026
3061487
feat: switch to oci images (aim-engine, aiwb, kaiwo) and add multi-so…
Q-Dub Apr 29, 2026
ff5c200
fix: sbom CI
Q-Dub Apr 29, 2026
1d42907
fix: ref dockerhub oci images (by sha)
Q-Dub Apr 30, 2026
8332704
fix(sbom): regenerate
Q-Dub Apr 30, 2026
54ff300
fix: batch fixes to resolve failed linting CI
Q-Dub Apr 30, 2026
48a3eb0
fix: support for optional path when using OCI image ref and addition …
Q-Dub Apr 30, 2026
6d16f08
fix(sbom): update component list
Q-Dub Apr 30, 2026
e8b848e
config(kaiwo): no need for values.yaml overrides
Q-Dub Apr 30, 2026
089da0c
fix(sbom): support oci images
Q-Dub Apr 30, 2026
e67032c
EAI-5646: Cross-reference core INSTALL.md and add AIRM integration gu…
kevinkswSiloAI May 1, 2026
d295ff5
config(cluster-auth): point to 0.5.9 (cache invalidation)
Q-Dub May 4, 2026
a5cd885
Merge pull request #703 from silogen/EAI-5646-cross-reference-core-in…
pre May 4, 2026
1ad9a07
chore(byo): Drop redundant aiwb/keycloak entries from override secrets
pre Apr 29, 2026
efe457b
chore(byo): Drive CNPG credential secrets from env vars
pre Apr 29, 2026
7f36859
chore(byo): Drive MinIO credential secrets from env vars + parametriz…
pre Apr 29, 2026
4ea7c58
docs(byo): Rewrite db.md and s3.md as self-sufficient install guides
pre Apr 30, 2026
2eebabc
fix(cluster-auth): update openbao.cacheTTL and rc image pin
Q-Dub May 5, 2026
3baee5f
Merge pull request #700 from silogen/EAI-5957_oci_images
Q-Dub May 7, 2026
46b176a
fix: point to correct image version and align cacheTTL
Q-Dub May 7, 2026
381a5df
fix(sbom): sync after cluster-auth image bump
Q-Dub May 7, 2026
cf4be1e
Merge pull request #704 from silogen/EAI-5995_cache_invalidation
Q-Dub May 7, 2026
c922d88
Merge pull request #701 from silogen/EAI-6099-helm-set-3
pre May 7, 2026
ec16062
Partially revert EAI-5893: Remove valuesFiles from single-source apps
Q-Dub May 8, 2026
1d98ed8
fix(sbom): handle OCI apps without path in validation
Q-Dub May 8, 2026
ea9367b
fix: strip v from version
Q-Dub May 8, 2026
b69094f
fix: use path instead of chart for OCI Helm repositories
Q-Dub May 8, 2026
23868b0
fix: aim-engine-crds stip v from version
Q-Dub May 8, 2026
ec7f59c
Merge pull request #708 from silogen/revert-EAI-5893-selective
Q-Dub May 8, 2026
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
  •  
  •  
  •  
268 changes: 266 additions & 2 deletions .github/workflows/helm-chart-checks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Helm chart checks

on:
pull_request:
types: [opened, synchronize, reopened]
types: [opened, synchronize, reopened, ready_for_review, converted_to_draft]

jobs:
root-chart:
Expand All @@ -27,4 +27,268 @@ jobs:
run: helm lint ./root -f ${{ matrix.values }}

- name: Helm template
run: helm template ./root -f ${{ matrix.values }}
run: helm template ./root -f ${{ matrix.values }}

kyverno-policies:
runs-on: ubuntu-latest
strategy:
matrix:
policy-chart:
[
"./sources/kyverno-policies/base",
"./sources/kyverno-policies/storage-local-path"
]
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Helm
uses: azure/setup-helm@v4.3.0

- name: Install Kyverno CLI
# Use the official action
uses: kyverno/action-install-cli@v0.2.0
with:
release: 'v1.17.1'

- name: Check install
run: kyverno version

- name: Validate test coverage for all policies
run: |
echo "=== Validating test coverage for Kyverno policies ==="
VALIDATION_FAILED=false

# Function to check if a policy has corresponding tests
check_policy_tests() {
local policy_chart="$1"
local policy_name="$(basename "$policy_chart")"

echo "Checking test coverage for: $policy_name"

# Check if test directory exists
if [ ! -d "$policy_chart/test" ]; then
echo "❌ ERROR: No test directory found for policy chart: $policy_name"
echo " Expected: $policy_chart/test/"
VALIDATION_FAILED=true
return
fi

# Check if kyverno-test.yaml exists
if [ ! -f "$policy_chart/test/kyverno-test.yaml" ]; then
echo "❌ ERROR: No test configuration found for policy chart: $policy_name"
echo " Expected: $policy_chart/test/kyverno-test.yaml"
VALIDATION_FAILED=true
return
fi

# Extract policy names from templates and verify they have test cases
echo "Validating individual policy test coverage..."

# Generate rendered policies to extract actual policy names
helm template test-release "$policy_chart" > /tmp/rendered-policies.yaml || {
echo "❌ ERROR: Failed to render Helm template for $policy_chart"
VALIDATION_FAILED=true
return
}

# Extract ClusterPolicy names from rendered output
POLICIES=$(grep -E "^kind: ClusterPolicy" /tmp/rendered-policies.yaml -A 10 | grep -E "^\s*name:" | sed 's/.*name: *//' | sort -u)

if [ -z "$POLICIES" ]; then
echo "⚠️ WARNING: No ClusterPolicy resources found in $policy_name"
return
fi

# Check that each policy has test results defined
for policy in $POLICIES; do
if ! grep -q "policy: $policy" "$policy_chart/test/kyverno-test.yaml"; then
echo "❌ ERROR: No test results defined for policy: $policy"
echo " Policy chart: $policy_name"
echo " Missing test results in: $policy_chart/test/kyverno-test.yaml"
VALIDATION_FAILED=true
else
echo "✅ Policy '$policy' has test coverage"
fi
done

# Check for test resource files
TEST_RESOURCES=$(find "$policy_chart/test" -name "*.yaml" -not -name "kyverno-test.yaml" | wc -l)
if [ "$TEST_RESOURCES" -eq 0 ]; then
echo "❌ ERROR: No test resource files found for policy chart: $policy_name"
echo " Expected: At least one test resource YAML file in $policy_chart/test/"
VALIDATION_FAILED=true
else
echo "✅ Found $TEST_RESOURCES test resource file(s)"
fi
}

# Check each policy chart in the matrix
for policy_chart in ${{ matrix.policy-chart }}; do
check_policy_tests "$policy_chart"
echo ""
done

# Fail the job if validation failed
if [ "$VALIDATION_FAILED" = true ]; then
echo ""
echo "💥 VALIDATION FAILED: One or more policies lack proper test coverage"
echo ""
echo "To fix this issue:"
echo "1. Create a 'test' directory in your policy chart"
echo "2. Add 'kyverno-test.yaml' with test configuration"
echo "3. Add test resource YAML files"
echo "4. Ensure all policies defined in templates/ have corresponding test results"
echo ""
echo "See existing policy charts for examples:"
echo "- sources/kyverno-policies/base/test/"
echo "- sources/kyverno-policies/storage-local-path/test/"
exit 1
fi

echo "✅ All policies have proper test coverage!"

- name: Helm lint Kyverno policies
run: helm lint ${{ matrix.policy-chart }}

- name: Helm template Kyverno policies
run: helm template test-release ${{ matrix.policy-chart }} --dry-run

- name: Run Kyverno policy tests
working-directory: ${{ matrix.policy-chart }}/test
run: |
echo "Testing policies in ${{ matrix.policy-chart }}"

# Clean any existing generated files
rm -f policy.yaml

# Generate policies from Helm templates for testing
echo "Generating policies from Helm templates..."
helm template test-release .. > all-resources.yaml

# Extract only Kyverno policies (filter out RBAC and other resources)
echo "Extracting Kyverno policies..."
yq eval 'select(.apiVersion == "kyverno.io/v1")' all-resources.yaml > policy.yaml || {
echo "yq not available, using grep fallback..."
awk '/^---$/ { if (kyverno) print "---"; kyverno=0 } /apiVersion: kyverno\.io/ { kyverno=1 } kyverno' all-resources.yaml > policy.yaml
}

# Validate that policy.yaml was generated correctly
if [ ! -f policy.yaml ]; then
echo "❌ ERROR: Failed to generate policy.yaml"
exit 1
fi

# Check that policy.yaml contains valid Kyverno policies
if ! grep -q "apiVersion: kyverno.io/v1" policy.yaml; then
echo "❌ ERROR: Generated policy.yaml does not contain Kyverno policies"
cat policy.yaml
exit 1
fi

echo "=== Generated policy file ==="
cat policy.yaml
echo ""
echo "=== Test configuration ==="
cat kyverno-test.yaml
echo ""
echo "=== Available test resources ==="
ls -la *.yaml | grep -v policy.yaml | grep -v kyverno-test.yaml || echo "No test resource files found"
echo ""
echo "=== Running Kyverno tests ==="

# Run the tests - Kyverno CLI will find policy.yaml and test resources in current directory
kyverno test . --detailed-results

kyverno-coverage-check:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Helm
uses: azure/setup-helm@v4.3.0

- name: Validate all Kyverno policies have tests
run: |
echo "=== Comprehensive Kyverno Policy Test Coverage Validation ==="
VALIDATION_FAILED=false

# Find all Kyverno policy charts
POLICY_CHARTS=$(find sources/kyverno-policies -name "Chart.yaml" -exec dirname {} \; | sort)

if [ -z "$POLICY_CHARTS" ]; then
echo "⚠️ No Kyverno policy charts found in sources/kyverno-policies/"
exit 0
fi

echo "Found Kyverno policy charts:"
for chart in $POLICY_CHARTS; do
echo " - $chart"
done
echo ""

# Matrix of expected policy charts (should match workflow matrix)
EXPECTED_CHARTS="./sources/kyverno-policies/base ./sources/kyverno-policies/storage-local-path"

# Check if all discovered charts are in the CI matrix
for chart in $POLICY_CHARTS; do
chart_path="./$chart"
if ! echo "$EXPECTED_CHARTS" | grep -q "$chart_path"; then
echo "❌ ERROR: Policy chart '$chart' is not included in CI matrix"
echo " Add '$chart_path' to the matrix in .github/workflows/helm-chart-checks.yaml"
VALIDATION_FAILED=true
fi
done

# Validate test coverage for all discovered charts
for policy_chart in $POLICY_CHARTS; do
policy_name="$(basename "$policy_chart")"
echo "Checking test coverage for: $policy_name ($policy_chart)"

# Check if test directory exists
if [ ! -d "$policy_chart/test" ]; then
echo "❌ ERROR: No test directory found for policy chart: $policy_name"
echo " Expected: $policy_chart/test/"
VALIDATION_FAILED=true
continue
fi

# Check if kyverno-test.yaml exists
if [ ! -f "$policy_chart/test/kyverno-test.yaml" ]; then
echo "❌ ERROR: No test configuration found for policy chart: $policy_name"
echo " Expected: $policy_chart/test/kyverno-test.yaml"
VALIDATION_FAILED=true
continue
fi

# Check for test resource files
TEST_RESOURCES=$(find "$policy_chart/test" -name "*.yaml" -not -name "kyverno-test.yaml" | wc -l)
if [ "$TEST_RESOURCES" -eq 0 ]; then
echo "❌ ERROR: No test resource files found for policy chart: $policy_name"
echo " Expected: At least one test resource YAML file in $policy_chart/test/"
VALIDATION_FAILED=true
continue
fi

echo "✅ Policy chart '$policy_name' has proper test structure"
done

# Fail the job if validation failed
if [ "$VALIDATION_FAILED" = true ]; then
echo ""
echo "💥 COMPREHENSIVE VALIDATION FAILED"
echo ""
echo "Policy test coverage requirements:"
echo "1. Every Kyverno policy chart must have a 'test' directory"
echo "2. Every policy chart must have 'test/kyverno-test.yaml'"
echo "3. Every policy chart must have test resource files"
echo "4. Every policy chart must be included in the CI matrix"
echo ""
echo "This ensures all policies are validated on every PR!"
exit 1
fi

echo ""
echo "✅ ALL KYVERNO POLICIES HAVE COMPREHENSIVE TEST COVERAGE!"
echo "🎯 Ready for production deployment"
38 changes: 21 additions & 17 deletions .github/workflows/release-pipeline.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,27 +42,31 @@ jobs:
fi
echo "next=$VERSION" >> $GITHUB_OUTPUT

- name: Update helm values file
uses: mikefarah/yq@master
- name: Validate LATEST_RELEASE matches release version
env:
GIT_TAG: ${{ steps.semver.outputs.next }}
with:
cmd: |
yq -i '.clusterForge.targetRevision = env(GIT_TAG)' root/values.yaml
yq -i '.targetRevision = env(GIT_TAG)' scripts/init-gitea-job/values.yaml

- name: Commit and push changes
uses: stefanzweifel/git-auto-commit-action@v4
env:
GIT_TAG: ${{ steps.semver.outputs.next }}
with:
commit_message: 'Update version to ${{ env.GIT_TAG }} [actions skip]'
VERSION: ${{ steps.semver.outputs.next }}
run: |
# Extract LATEST_RELEASE from bootstrap.sh
LATEST_RELEASE=$(grep '^LATEST_RELEASE=' scripts/bootstrap.sh | cut -d'"' -f2 | sed 's/^v//')

# Extract base version (before -rc or -alpha, etc.)
RELEASE_BASE=$(echo "$VERSION" | sed 's/^v//' | sed 's/-rc[0-9]*$//' | sed 's/-alpha[0-9]*$//' | sed 's/-beta[0-9]*$//')
LATEST_BASE=$(echo "$LATEST_RELEASE" | sed 's/-rc[0-9]*$//' | sed 's/-alpha[0-9]*$//' | sed 's/-beta[0-9]*$//')

echo "Release version: $VERSION (base: $RELEASE_BASE)"
echo "LATEST_RELEASE in bootstrap.sh: $LATEST_RELEASE (base: $LATEST_BASE)"

if [[ "$RELEASE_BASE" != "$LATEST_BASE" ]]; then
echo "::warning::LATEST_RELEASE base version ($LATEST_BASE) in scripts/bootstrap.sh does not match release version base ($RELEASE_BASE)"
echo "::warning::Consider updating LATEST_RELEASE in scripts/bootstrap.sh to match the release being created"
else
echo "✓ LATEST_RELEASE base version matches release version base"
fi

- name: Create GitHub Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERSION: ${{ steps.semver.outputs.next }}
EXTRA_ARGS: ${{ steps.version.outputs.extra_args }}
run: |
# Prepare release artifact
tar -zcvf "release-enterprise-ai-${VERSION}.tar.gz" --transform 's,^,cluster-forge/,' root/ scripts/ sources
Expand All @@ -80,7 +84,7 @@ jobs:
VERSION: ${{ needs.release.outputs.new_version }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }}

Expand Down Expand Up @@ -134,4 +138,4 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SBOM_NAME: ${{ steps.generate_sbom.outputs.sbom_name }}
run: |
gh release upload ${VERSION} ${SBOM_NAME} --clobber
gh release upload ${VERSION} ${SBOM_NAME} --clobber
Loading