Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
70f78ef
feat(roles/grafana): Add JWT support
danyalberchtoldlf Mar 23, 2026
ff382f1
fix(roles/mariadb-server): parameter handling
jihan-lf Feb 27, 2026
666e07a
fix(roles/influxdb): update gpg key
jihan-lf Mar 26, 2026
cd384ff
docs: update CONTRIBUTING
NavidSassan Mar 26, 2026
b868d8b
feat(roles/freeipa_server): add --diff support and freeipa_server:con…
NavidSassan Mar 17, 2026
ab2f370
Merge branch 'wip/freeipa_server_modules'
NavidSassan Mar 26, 2026
92dad08
refactor(roles/icingaweb2_module_grafana): clean up and delegate to g…
danyalberchtoldlf Mar 27, 2026
dd3f4ee
feat(roles/grafana): add variable for JWT TLS key and issue cert via …
danyalberchtoldlf Mar 27, 2026
453c127
refactor(roles/icingaweb2_module_grafana): fix sort order
danyalberchtoldlf Mar 27, 2026
b1f63f1
fix(roles/icingaweb2_module_grafana): fix private key file ownership
danyalberchtoldlf Mar 27, 2026
a5891d7
fix(roles/login): rename sudoers file from `lfops_login` to `linuxfab…
markuslf Mar 29, 2026
616b7d3
style(roles): add `backup: true` to all template tasks
markuslf Mar 29, 2026
590ae05
docs: unify CONTRIBUTING and convert from RST to Markdown
markuslf Mar 29, 2026
126bb48
chore: update pre-commit hooks, add autoupdate workflow
markuslf Mar 29, 2026
f578fe7
chore: add SECURITY.md, FUNDING.yml, issue templates, dependabot, cod…
markuslf Mar 29, 2026
41ef301
chore(deps): bump peter-evans/create-pull-request from 7 to 8
dependabot[bot] Mar 29, 2026
799094d
chore(deps): bump github/codeql-action from 3 to 4
dependabot[bot] Mar 29, 2026
bb59ea4
chore(deps): bump actions/setup-python from 5 to 6
dependabot[bot] Mar 29, 2026
40215dd
chore(deps): bump actions/upload-artifact from 4 to 7
dependabot[bot] Mar 29, 2026
ca5ea2b
Merge pull request #210 from Linuxfabrik/dependabot/github_actions/pe…
markuslf Mar 29, 2026
4f88631
Merge pull request #211 from Linuxfabrik/dependabot/github_actions/gi…
markuslf Mar 29, 2026
3b1c6cd
chore(deps): bump actions/checkout from 4 to 6
dependabot[bot] Mar 29, 2026
89dccbb
Merge pull request #212 from Linuxfabrik/dependabot/github_actions/ac…
markuslf Mar 29, 2026
e66e9d7
Merge pull request #213 from Linuxfabrik/dependabot/github_actions/ac…
markuslf Mar 29, 2026
b51b967
Merge pull request #214 from Linuxfabrik/dependabot/github_actions/ac…
markuslf Mar 29, 2026
f707977
fix: remove push trigger from scorecard workflow to reduce noise
markuslf Mar 29, 2026
c7ba56d
fix: pin ossf/scorecard-action to v2.4.3 (no v2 major tag exists)
markuslf Mar 29, 2026
07aec69
chore: add actions language to CodeQL scanning
markuslf Mar 30, 2026
4497b32
fix(roles/mirror): set mode 0440 on sudoers file
markuslf Mar 30, 2026
5e71979
fix(plugins/bitwarden): fix multiple bugs in bitwarden plugins
NavidSassan Mar 27, 2026
679b529
refactor(plugins/bitwarden): remove dead Python 2 compatibility code
NavidSassan Mar 27, 2026
8909b92
feat(plugins/bitwarden): add file-based item cache to reduce bw serve…
NavidSassan Mar 27, 2026
0ebb566
fix(plugins/modules/ipa*): adjust according to upstream ci/cd errors
NavidSassan Mar 31, 2026
874a013
docs(roles/apache_httpd): rewrite README from tables to structured bu…
markuslf Apr 2, 2026
86d1645
docs: add playbooks README and skip variables documentation
markuslf Apr 2, 2026
820a640
fix(roles/mailx,policycoreutils,yum_utils): fix grammar, sort params,…
markuslf Apr 2, 2026
c67b6f3
fix(roles/grafana): correct jwt key file permissions and task conditions
danyalberchtoldlf Apr 2, 2026
5179dac
docs(roles/icingaweb2_module_grafana): update default value for auth_jwt
danyalberchtoldlf Apr 2, 2026
80107bd
fix(plugins/bitwarden): make Display import optional for AnsiballZ co…
NavidSassan Apr 2, 2026
802d1bb
Merge branch 'main' into feat/grafana-jwt
NavidSassan Apr 2, 2026
6a2a767
Merge pull request #207 from Linuxfabrik/feat/grafana-jwt
NavidSassan Apr 2, 2026
df517a5
docs(CHANGELOG): fix headings
NavidSassan Apr 2, 2026
476dab2
feat(roles/example): add complete example role as a development refer…
markuslf Apr 7, 2026
8bf306f
feat(playbooks): add example and setup_example playbooks as developme…
markuslf Apr 7, 2026
ac21338
chore(ci): do not use galaxy dev since it is unreliable
NavidSassan Apr 7, 2026
baf36be
docs: fix CHANGELOG headings
NavidSassan Apr 7, 2026
b328326
chore: bump version number
NavidSassan Apr 7, 2026
9ee0ef3
fix(ci): strip badges from README.md before publishing to Galaxy
NavidSassan Apr 7, 2026
9c4d246
chore: bump version number
NavidSassan Apr 7, 2026
07dfb30
fix(roles/elasticsearch): update assert statement for cluster routing…
ebuerki-lf Apr 7, 2026
7dbe40f
feat: add MkDocs documentation site with GitHub Pages deployment
markuslf Apr 7, 2026
409ac7b
docs: simplify README documentation section
markuslf Apr 7, 2026
ba20996
docs: update COMPATIBILITY matrix
markuslf Apr 7, 2026
f9108cd
docs: update COMPATIBILITY
markuslf Apr 7, 2026
7af59b4
docs(roles/elasticsearch,roles/opensearch): rewrite README documentation
markuslf Apr 8, 2026
635dcbe
style: add missing blank lines before bulleted lists in READMEs
markuslf Apr 8, 2026
6d47633
fix(roles/mount): fix when condition for nfs/cifs client package install
NavidSassan Apr 8, 2026
c8a88a9
chore(ci): Harden GitHub Actions
step-security-bot Apr 8, 2026
43d8045
Merge pull request #216 from step-security-bot/chore/GHA-080852-steps…
NavidSassan Apr 8, 2026
b87a4e4
fix(ci): pin GitHub Actions to commit SHAs and restrict GITHUB_TOKEN …
markuslf Apr 8, 2026
6152f8f
ci(scorecard): add workflow_dispatch trigger
markuslf Apr 8, 2026
60d02bd
refactor(roles/graylog_server): remove unused/old variable
NavidSassan Apr 8, 2026
f86d09e
style: improve various READMEs
NavidSassan Apr 8, 2026
b96cb54
fix(ci): use complete requirements files for --require-hashes pip ins…
markuslf Apr 8, 2026
b8a3068
fix(ci): replace --require-hashes with pinned versions for pip installs
markuslf Apr 8, 2026
19433a1
style(ci): prefix custom workflow names with 'Linuxfabrik: '
markuslf Apr 8, 2026
3aa104e
fix(roles/keycloak): MariaDB database encoding causing warnings in Ke…
bhatti-lf Apr 8, 2026
ebecdee
fix(roles/keycloak): Quarkus timeout property getting overridden by n…
bhatti-lf Apr 8, 2026
f447782
style(roles/keycloak): use fqcn
bhatti-lf Apr 8, 2026
a8c22f7
chore(deps): bump step-security/harden-runner from 2.16.0 to 2.16.1
dependabot[bot] Apr 8, 2026
560eb7b
Merge pull request #217 from Linuxfabrik/dependabot/github_actions/st…
markuslf Apr 8, 2026
ddbfa4f
docs(roles): rewrite all role READMEs to new standard format
NavidSassan Apr 8, 2026
1ddb812
fix(execution-environment): add missing sshpass system package
NavidSassan Apr 9, 2026
fc263b2
feat(ci): add dependabot auto-merge for patch and minor updates
markuslf Apr 10, 2026
750d9f7
chore(deps): bump dependabot/fetch-metadata from 2 to 3
dependabot[bot] Apr 10, 2026
8b9b842
chore(deps): bump step-security/harden-runner from 2.16.1 to 2.17.0 (…
dependabot[bot] Apr 10, 2026
3228831
Merge pull request #220 from Linuxfabrik/dependabot/github_actions/de…
markuslf Apr 10, 2026
8114449
chore(ci): add bandit and vulture to pre-commit hooks
markuslf Apr 12, 2026
e368647
style(roles/*): improve consistency across roles
NavidSassan Apr 12, 2026
28788ff
refactor(roles/example): greatly improve the example role
NavidSassan Apr 12, 2026
a8fbfc0
style(roles/monitoring_plugins): be consistent with other roles
NavidSassan Apr 12, 2026
fb39063
docs: improve CONTRIBUTING
NavidSassan Apr 12, 2026
817ba38
ci: align Dependabot daily checks to 11:11 Europe/Zurich
markuslf Apr 13, 2026
ffcace5
chore(deps): bump actions/upload-pages-artifact from 4.0.0 to 5.0.0
dependabot[bot] Apr 13, 2026
be438f2
chore(deps): bump softprops/action-gh-release from 2.6.1 to 3.0.0
dependabot[bot] Apr 13, 2026
6924a1c
chore(deps): bump peter-evans/create-pull-request from 8.1.0 to 8.1.1…
dependabot[bot] Apr 13, 2026
accfa31
chore(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (#225)
dependabot[bot] Apr 13, 2026
0204bb9
ci: align scheduled workflows to Friday 05:00 UTC
markuslf Apr 13, 2026
5e583fe
ci: align Dependabot to weekly Friday 05:00 UTC
markuslf Apr 13, 2026
e4d235e
Merge pull request #223 from Linuxfabrik/dependabot/github_actions/ac…
markuslf Apr 13, 2026
b5b82f7
Merge pull request #224 from Linuxfabrik/dependabot/github_actions/so…
markuslf Apr 13, 2026
8da9b53
feat: implement Rocky Linux 9 CIS
jihan-lf Mar 26, 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
  •  
  •  
  •  
2 changes: 0 additions & 2 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
# These are supported funding model platforms

github: 'linuxfabrik'
52 changes: 52 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: 'Bug report'
description: 'Submit a bug report for LFOps'
labels:
- 'bug'
body:
- type: 'checkboxes'
id: 'before-posting'
attributes:
label: 'Before submitting:'
options:
- label: 'I have searched existing issues to make sure this is not a duplicate.'
required: true
- label: 'I am using the latest release.'
required: true
- label: 'I agree to follow the [Code of Conduct](https://github.com/Linuxfabrik/lfops/blob/main/CODE_OF_CONDUCT.md).'
required: true

- type: 'textarea'
id: 'bug-description'
attributes:
label: 'Bug description'
description: 'Provide a clear and concise description of the bug.'
validations:
required: true

- type: 'textarea'
id: 'steps'
attributes:
label: 'Steps to reproduce'
description: 'List the steps needed to reproduce the issue.'
validations:
required: true

- type: 'textarea'
id: 'expected'
attributes:
label: 'Expected behavior'
description: 'What did you expect to happen?'

- type: 'textarea'
id: 'environment'
attributes:
label: 'Environment'
description: 'Operating system, software version, and any other relevant details.'
validations:
required: true

- type: 'textarea'
id: 'additional'
attributes:
label: 'Additional context'
description: 'Any other information, logs, or screenshots.'
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: 'Feature request'
description: 'Suggest a new feature or improvement for LFOps'
labels:
- 'enhancement'
body:
- type: 'textarea'
id: 'solution'
attributes:
label: 'Describe the solution you would like'
description: 'A clear and concise description of what you want to happen.'
validations:
required: true

- type: 'textarea'
id: 'alternatives'
attributes:
label: 'Alternatives considered'
description: 'Have you considered any alternative solutions or workarounds?'

- type: 'textarea'
id: 'context'
attributes:
label: 'Additional context'
description: 'Any other context or screenshots about the feature request.'
9 changes: 9 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
version: 2
updates:
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'weekly'
day: 'friday'
time: '05:00'
timezone: 'Etc/UTC'
52 changes: 52 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: 'CodeQL'

on:
push:
branches:
- 'main'
pull_request:
branches:
- 'main'
schedule:
- cron: '0 5 * * 5'

permissions:
contents: 'read'

jobs:
analyze:
name: 'Analyze'
runs-on: 'ubuntu-latest'
permissions:
actions: 'read'
contents: 'read'
security-events: 'write'

strategy:
fail-fast: false
matrix:
language:
- 'actions'
- 'python'

steps:
- name: 'Harden Runner'
uses: 'step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176' # v2.17.0
with:
egress-policy: 'audit'

- name: 'Checkout repository'
uses: 'actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd' # v6.0.2

- name: 'Initialize CodeQL'
uses: 'github/codeql-action/init@c10b8064de6f491fea524254123dbe5e09572f13' # v4.35.1
with:
languages: '${{ matrix.language }}'

- name: 'Autobuild'
uses: 'github/codeql-action/autobuild@c10b8064de6f491fea524254123dbe5e09572f13' # v4.35.1

- name: 'Perform CodeQL Analysis'
uses: 'github/codeql-action/analyze@c10b8064de6f491fea524254123dbe5e09572f13' # v4.35.1
with:
category: '/language:${{ matrix.language }}'
25 changes: 25 additions & 0 deletions .github/workflows/dependabot-auto-merge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: 'Linuxfabrik: Dependabot auto-merge'

on:
pull_request: {}

permissions:
contents: 'write'
pull-requests: 'write'

jobs:
auto-merge:
runs-on: 'ubuntu-latest'
if: 'github.actor == ''dependabot[bot]'''
steps:

- uses: 'dependabot/fetch-metadata@v3'
id: 'meta'

- if: >-
steps.meta.outputs.update-type == 'version-update:semver-patch'
|| steps.meta.outputs.update-type == 'version-update:semver-minor'
run: 'gh pr merge --auto --squash "$PR_URL"'
env:
PR_URL: '${{ github.event.pull_request.html_url }}'
GH_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
22 changes: 22 additions & 0 deletions .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: 'Dependency Review'

on:
pull_request: {}

permissions:
contents: 'read'

jobs:
dependency-review:
runs-on: 'ubuntu-latest'
steps:
- name: 'Harden Runner'
uses: 'step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176' # v2.17.0
with:
egress-policy: 'audit'

- name: 'Checkout repository'
uses: 'actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd' # v6.0.2

- name: 'Dependency Review'
uses: 'actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48' # v4.9.0
62 changes: 62 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: 'Linuxfabrik: Deploy Documentation'

on:
push:
branches:
- 'main'

permissions:
contents: 'read'
pages: 'write'
id-token: 'write'

concurrency:
group: 'pages'
cancel-in-progress: true

jobs:
build:
runs-on: 'ubuntu-latest'
steps:
- name: 'Harden the runner (Audit all outbound calls)'
uses: 'step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176' # v2.17.0
with:
egress-policy: 'audit'

- name: 'Checkout repository'
uses: 'actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd' # v6.0.2

- name: 'Set up Python'
uses: 'actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405' # v6.2.0
with:
python-version: '3.12'

- name: 'Install dependencies'
run: 'pip install mkdocs==1.6.1 mkdocs-material==9.7.6'

- name: 'Generate docs structure'
run: 'python3 tools/build-docs'

- name: 'Build documentation'
run: 'mkdocs build --strict'

- name: 'Upload Pages artifact'
uses: 'actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9' # v5.0.0
with:
path: 'site'

deploy:
needs: 'build'
runs-on: 'ubuntu-latest'
environment:
name: 'github-pages'
url: '${{ steps.deployment.outputs.page_url }}'
steps:
- name: 'Harden the runner (Audit all outbound calls)'
uses: 'step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176' # v2.17.0
with:
egress-policy: 'audit'

- name: 'Deploy to GitHub Pages'
id: 'deployment'
uses: 'actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128' # v5.0.0
37 changes: 18 additions & 19 deletions .github/workflows/lf-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,28 @@ on:
- 'v*'

# modify the default permissions granted to the GITHUB_TOKEN
permissions:
contents: 'read' # to checkout the code
packages: 'write' # to push to GitHub Container Registry
permissions: 'read-all'

jobs:

build:
runs-on: 'ubuntu-latest'
permissions:
contents: 'read' # to checkout the code
packages: 'write' # to push to GitHub Container Registry

steps:

- name: 'Harden the runner (Audit all outbound calls)'
uses: 'step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176' # v2.17.0
with:
egress-policy: 'audit'

- name: 'git clone https://github.com/Linuxfabrik/lfops'
uses: 'actions/checkout@v4'
uses: 'actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd' # v6.0.2

- name: 'Log in to GitHub Container Registry'
uses: 'redhat-actions/podman-login@v1'
uses: 'redhat-actions/podman-login@4934294ad0449894bcd1e9f191899d7292469603' # v1.7
with:
registry: 'ghcr.io'
username: '${{ github.actor }}'
Expand Down Expand Up @@ -65,15 +71,18 @@ jobs:
- name: 'Install Ansible Builder'
run: |
python3 -m pip install --upgrade pip
pip install ansible-builder
pip install ansible-builder==3.1.1

- name: 'Strip badges from README.md (not rendered correctly on Galaxy)'
run: |
sed --in-place '/<div align="center" id="badges">/,/<\/div>/d' README.md

- name: 'Build Collection'
run: |
ansible-galaxy collection build
cp --verbose linuxfabrik-lfops-${{ env.TAG1 }}.tar.gz linuxfabrik-lfops.tar.gz

- name: 'Publish to Galaxy (Prod)'
if: "${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}"
- name: 'Publish to Galaxy'
env:
ANSIBLE_GALAXY_TOKEN: '${{ secrets.GALAXY_API_KEY_PROD }}'
run: |
Expand All @@ -82,16 +91,6 @@ jobs:
--server https://galaxy.ansible.com \
--api-key "$ANSIBLE_GALAXY_TOKEN"

- name: 'Publish to Galaxy (Dev)'
if: "${{ github.event_name == 'workflow_dispatch' }}"
env:
ANSIBLE_GALAXY_TOKEN: '${{ secrets.GALAXY_API_KEY_DEV }}'
run: |
ansible-galaxy collection publish \
linuxfabrik-lfops-${{ env.TAG1 }}.tar.gz \
--server https://galaxy-dev.ansible.com \
--api-key "$ANSIBLE_GALAXY_TOKEN"

- name: 'Build Execution Environment'
run: |
ansible-builder build \
Expand All @@ -106,7 +105,7 @@ jobs:

- name: 'Push to GitHub Container Registry'
id: 'push-to-ghcr'
uses: 'redhat-actions/push-to-registry@v2'
uses: 'redhat-actions/push-to-registry@5ed88d269cf581ea9ef6dd6806d01562096bee9c' # v2.8
with:
registry: 'ghcr.io'
image: '${{ env.GITHUB_REPOSITORY_OWNER_LOWERCASE }}/lfops_ee'
Expand Down
12 changes: 9 additions & 3 deletions .github/workflows/lf-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,23 @@ on:
- 'v*'

# modify the default permissions granted to the GITHUB_TOKEN
permissions:
contents: 'write' # to push to the repo and create the release
permissions: 'read-all'

jobs:
release:
runs-on: 'ubuntu-latest'
permissions:
contents: 'write' # to push to the repo and create the release

steps:

- name: 'Harden the runner (Audit all outbound calls)'
uses: 'step-security/harden-runner@f808768d1510423e83855289c910610ca9b43176' # v2.17.0
with:
egress-policy: 'audit'

- name: 'Create GitHub Release for ${{ github.ref_name }}'
uses: 'softprops/action-gh-release@v2'
uses: 'softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda' # v3.0.0
with:
tag_name: '${{ github.ref_name }}'
body: |
Expand Down
Loading