Skip to content

Commit 9b62c04

Browse files
committed
enh(sudo/nmap): move centreon-plugins-sudoers from centreon repo to avoid cyclic dependancy
Add sudo as dependancy to always have /etc/sudoers.d folder when installing. Refs:CTOR-1656
1 parent 046c65c commit 9b62c04

File tree

3 files changed

+180
-0
lines changed

3 files changed

+180
-0
lines changed
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
name: centreon-plugins-sudoers.yml
2+
3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
5+
cancel-in-progress: true
6+
7+
on:
8+
workflow_dispatch:
9+
pull_request:
10+
paths:
11+
- "dependencies/centreon-plugins-sudoers/**"
12+
push:
13+
branches:
14+
- develop
15+
- dev-[2-9][0-9].[0-9][0-9].x
16+
- master
17+
- "[2-9][0-9].[0-9][0-9].x"
18+
paths:
19+
- "dependencies/centreon-plugins-sudoers/**"
20+
21+
env:
22+
module_name: centreon-plugins-sudoers
23+
24+
jobs:
25+
get-environment:
26+
uses: ./.github/workflows/get-environment.yml
27+
28+
package:
29+
needs: [get-environment]
30+
if: |
31+
needs.get-environment.outputs.skip_workflow == 'false' &&
32+
needs.get-environment.outputs.stability != 'stable'
33+
34+
strategy:
35+
fail-fast: false
36+
matrix:
37+
include:
38+
- image: packaging-plugins-alma8
39+
distrib: el8
40+
package_extension: rpm
41+
- image: packaging-plugins-alma9
42+
distrib: el9
43+
package_extension: rpm
44+
- image: packaging-plugins-bullseye
45+
distrib: bullseye
46+
package_extension: deb
47+
- image: packaging-plugins-bookworm
48+
distrib: bookworm
49+
package_extension: deb
50+
- image: packaging-plugins-jammy
51+
distrib: jammy
52+
package_extension: deb
53+
- image: packaging-plugins-noble
54+
distrib: noble
55+
package_extension: deb
56+
57+
runs-on: ubuntu-22.04
58+
59+
container:
60+
image: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }}/${{ matrix.image }}:latest
61+
credentials:
62+
username: ${{ secrets.HARBOR_CENTREON_PULL_USERNAME }}
63+
password: ${{ secrets.HARBOR_CENTREON_PULL_TOKEN }}
64+
65+
name: package ${{ matrix.distrib }}
66+
67+
steps:
68+
- name: Checkout sources
69+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
70+
71+
- name: Package
72+
uses: ./.github/actions/package-nfpm
73+
with:
74+
nfpm_file_pattern: "dependencies/centreon-plugins-sudoers/centreon-plugins-sudoers.yaml"
75+
distrib: ${{ matrix.distrib }}
76+
package_extension: ${{ matrix.package_extension }}
77+
version: "24.10.0"
78+
release: "1"
79+
arch: all
80+
commit_hash: ${{ github.sha }}
81+
cache_key: cache-${{ github.run_id }}-${{ matrix.package_extension }}-${{ env.module_name }}-${{ matrix.distrib }}
82+
rpm_gpg_key: ${{ secrets.RPM_GPG_SIGNING_KEY }}
83+
rpm_gpg_signing_key_id: ${{ secrets.RPM_GPG_SIGNING_KEY_ID }}
84+
rpm_gpg_signing_passphrase: ${{ secrets.RPM_GPG_SIGNING_PASSPHRASE }}
85+
stability: ${{ needs.get-environment.outputs.stability }}
86+
87+
deliver-packages:
88+
needs: [get-environment, package]
89+
if: |
90+
(contains(fromJson('["testing", "unstable"]'), needs.get-environment.outputs.stability) || ( needs.get-environment.outputs.stability == 'stable' && github.event_name != 'workflow_dispatch')) &&
91+
! cancelled() &&
92+
! contains(needs.*.result, 'failure') &&
93+
! contains(needs.*.result, 'cancelled')
94+
runs-on: ubuntu-24.04
95+
strategy:
96+
fail-fast: false
97+
matrix:
98+
include:
99+
- distrib: el8
100+
package_extension: rpm
101+
- distrib: el9
102+
package_extension: rpm
103+
- distrib: bullseye
104+
package_extension: deb
105+
- distrib: bookworm
106+
package_extension: deb
107+
- distrib: jammy
108+
package_extension: deb
109+
- distrib: noble
110+
package_extension: deb
111+
112+
name: deliver ${{ matrix.distrib }}
113+
steps:
114+
- name: Checkout sources
115+
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
116+
117+
- name: Delivery
118+
uses: ./.github/actions/package-delivery
119+
with:
120+
module_name: ${{ env.module_name }}
121+
distrib: ${{ matrix.distrib }}
122+
cache_key: cache-${{ github.run_id }}-${{ matrix.package_extension }}-${{ env.module_name }}-${{ matrix.distrib }}
123+
stability: ${{ needs.get-environment.outputs.stability }}
124+
release_type: ${{ needs.get-environment.outputs.release_type }}
125+
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
126+
127+
set-skip-label:
128+
needs: [get-environment, deliver-packages]
129+
if: |
130+
needs.get-environment.outputs.skip_workflow == 'false' &&
131+
! cancelled() &&
132+
! contains(needs.*.result, 'failure') &&
133+
! contains(needs.*.result, 'cancelled')
134+
uses: ./.github/workflows/set-pull-request-skip-label.yml
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: "centreon-plugins-sudoers"
2+
arch: "all"
3+
platform: "linux"
4+
version_schema: "none"
5+
version: "${VERSION}"
6+
release: "${RELEASE}${DIST}"
7+
section: "default"
8+
priority: "optional"
9+
maintainer: "Centreon <contact@centreon.com>"
10+
description: |
11+
Sudoers configuration for centreon plugins
12+
Commit: @COMMIT_HASH@
13+
vendor: "Centreon"
14+
homepage: "https://www.centreon.com"
15+
license: "Apache-2.0"
16+
17+
contents:
18+
- src: ./sudoersCentreonPlugins
19+
dst: /etc/sudoers.d/centreon-plugins
20+
file_info:
21+
mode: 0600
22+
23+
overrides:
24+
rpm:
25+
provides:
26+
- centreon-cwrapper-perl
27+
replaces:
28+
- centreon-cwrapper-perl
29+
depends:
30+
- sudo
31+
deb:
32+
depends:
33+
- sudo
34+
35+
rpm:
36+
summary: Sudoers configuration for centreon plugins
37+
compression: zstd
38+
signature:
39+
key_file: ${RPM_SIGNING_KEY_FILE}
40+
key_id: ${RPM_SIGNING_KEY_ID}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
User_Alias CENTREON_COLLECT_USERS=centreon-engine,centreon-gorgone
2+
Defaults:CENTREON_COLLECT_USERS !requiretty
3+
4+
CENTREON_COLLECT_USERS ALL = NOPASSWD: /usr/lib/centreon/plugins/centreon_protocol_dhcp.pl *
5+
CENTREON_COLLECT_USERS ALL = NOPASSWD: /usr/lib/centreon/plugins/centreon_protocol_udp.pl *
6+
CENTREON_COLLECT_USERS ALL = NOPASSWD: /usr/lib/centreon/plugins/centreon_nmap_cli.pl *

0 commit comments

Comments
 (0)