Skip to content

Commit 86657c4

Browse files
committed
ci: install cinc workstation in integration
Signed-off-by: Dan Webb <dan.webb@damacus.io>
1 parent 5de8501 commit 86657c4

4 files changed

Lines changed: 74 additions & 67 deletions

File tree

.github/workflows/ci.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ jobs:
4242
steps:
4343
- name: Check out code
4444
uses: actions/checkout@v6
45-
- name: Install Chef
46-
uses: actionshub/chef-install@6.0.0
45+
- name: Install Cinc Workstation
46+
uses: sous-chefs/.github/.github/actions/install-workstation@6.0.0
4747
- name: Dokken
4848
uses: actionshub/test-kitchen@3.0.0
4949
env:
@@ -57,4 +57,6 @@ jobs:
5757
run: |
5858
set -x
5959
sudo journalctl -l --since today
60-
KITCHEN_LOCAL_YAML=kitchen.dokken.yml /usr/bin/kitchen exec ${{ matrix.suite }}-${{ matrix.os }} -c "journalctl -l"
60+
if command -v kitchen >/dev/null 2>&1; then
61+
KITCHEN_LOCAL_YAML=kitchen.dokken.yml kitchen exec ${{ matrix.suite }}-${{ matrix.os }} -c "journalctl -l"
62+
fi

.markdownlint-cli2.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,8 @@ config:
33
line-length: false # MD013
44
no-duplicate-heading: false # MD024
55
reference-links-images: false # MD052
6+
no-multiple-blanks:
7+
maximum: 2
8+
ignores:
9+
- .github/copilot-instructions.md
10+
- .windsurf/**

LIMITATIONS.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,43 +4,43 @@
44

55
### Upstream / Vendor
66

7-
- Upstream publishes source tarballs and installation instructions, not an official package repository. The latest published upstream tarball is `djbdns-1.05.tar.gz`.
8-
- Upstream installation guidance requires a UNIX-like system plus `daemontools` 0.70 or later and `ucspi-tcp`, then a local compile and `make setup check`.
7+
* Upstream publishes source tarballs and installation instructions, not an official package repository. The latest published upstream tarball is `djbdns-1.05.tar.gz`.
8+
* Upstream installation guidance requires a UNIX-like system plus `daemontools` 0.70 or later and `ucspi-tcp`, then a local compile and `make setup check`.
99

1010
### APT (Debian / Ubuntu)
1111

12-
- Debian still ships `djbdns` as a maintained source package and builds split binaries including `axfrdns`, `djbdns-conf`, `djbdns-utils`, `dnscache`, `rbldns`, `tinydns`, and `walldns`.
13-
- Debian package pages for current and recent releases show distro-managed package availability for supported Debian architectures.
14-
- Ubuntu still carries `djbdns` in the `universe` source package set. The cookbook's current package-install path is therefore most defensible on Debian-family platforms.
12+
* Debian still ships `djbdns` as a maintained source package and builds split binaries including `axfrdns`, `djbdns-conf`, `djbdns-utils`, `dnscache`, `rbldns`, `tinydns`, and `walldns`.
13+
* Debian package pages for current and recent releases show distro-managed package availability for supported Debian architectures.
14+
* Ubuntu still carries `djbdns` in the `universe` source package set. The cookbook's current package-install path is therefore most defensible on Debian-family platforms.
1515

1616
### DNF / YUM (RHEL family)
1717

18-
- I did not find a primary-source upstream package repository for RHEL-family systems.
19-
- Inference: the cookbook's source-install path remains the only installation path directly backed by upstream documentation for RHEL-family platforms.
18+
* I did not find a primary-source upstream package repository for RHEL-family systems.
19+
* Inference: the cookbook's source-install path remains the only installation path directly backed by upstream documentation for RHEL-family platforms.
2020

2121
### Zypper (SUSE)
2222

23-
- I did not find a primary-source upstream package repository for SUSE/openSUSE.
24-
- Inference: source installation is also the only path clearly supported by upstream guidance on SUSE-family platforms.
23+
* I did not find a primary-source upstream package repository for SUSE/openSUSE.
24+
* Inference: source installation is also the only path clearly supported by upstream guidance on SUSE-family platforms.
2525

2626
## Architecture Limitations
2727

28-
- Upstream does not publish a tested architecture matrix; its guidance is source-build oriented rather than architecture-specific.
29-
- Debian and Ubuntu package availability is distribution-managed and architecture-dependent. The cookbook should treat package installs as Debian-family specific, not universally portable.
28+
* Upstream does not publish a tested architecture matrix; its guidance is source-build oriented rather than architecture-specific.
29+
* Debian and Ubuntu package availability is distribution-managed and architecture-dependent. The cookbook should treat package installs as Debian-family specific, not universally portable.
3030

3131
## Source / Compiled Installation
3232

3333
### Build Dependencies
3434

35-
- Debian: compiler and build tools; upstream also requires `daemontools` and `ucspi-tcp`
36-
- RHEL: compiler and build tools; upstream also requires `daemontools` and `ucspi-tcp`
37-
- SUSE: compiler and build tools; upstream also requires `daemontools` and `ucspi-tcp`
35+
* Debian: compiler and build tools; upstream also requires `daemontools` and `ucspi-tcp`
36+
* RHEL: compiler and build tools; upstream also requires `daemontools` and `ucspi-tcp`
37+
* SUSE: compiler and build tools; upstream also requires `daemontools` and `ucspi-tcp`
3838

3939
## Known Issues
4040

41-
- The cookbook's `install_method` heuristic is cookbook-local logic, not upstream vendor guidance.
42-
- The cookbook metadata currently advertises platforms that are broader and older than the upstream/package evidence gathered here. Platform modernization should be handled explicitly and separately from this resource migration.
43-
- `axfrdns` depends on `tcpserver` from `ucspi-tcp`, but the cookbook does not yet model that dependency as a first-class resource concern.
44-
- Current Dokken integration coverage is still gated by the shared `runit` dependency rather than djbdns resource convergence. In this session:
41+
* The cookbook's `install_method` heuristic is cookbook-local logic, not upstream vendor guidance.
42+
* The cookbook metadata currently advertises platforms that are broader and older than the upstream/package evidence gathered here. Platform modernization should be handled explicitly and separately from this resource migration.
43+
* `axfrdns` depends on `tcpserver` from `ucspi-tcp`, but the cookbook does not yet model that dependency as a first-class resource concern.
44+
* Current Dokken integration coverage is still gated by the shared `runit` dependency rather than djbdns resource convergence. In this session:
4545
Debian 12 failed because `runit::default` installs `runit-systemd` but then cannot start `runit.service`.
4646
Ubuntu 24.04 failed earlier in convergence because `runit-systemd` had no install candidate.

README.md

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -18,78 +18,78 @@ This cookbook is maintained by the Sous Chefs. The Sous Chefs are a community of
1818

1919
The following platforms are supported via test kitchen.
2020

21-
- Ubuntu
22-
- Debian
23-
- RHEL
21+
* Ubuntu
22+
* Debian
23+
* RHEL
2424

2525
It may work with or without modification on other platforms, particularly using the `source` install method.
2626

2727
## Chef
2828

29-
- Chef 15.3+
29+
* Chef 15.3+
3030

3131
## Cookbooks
3232

33-
- build-essential - for compiling the source.
34-
- ucspi-tcp - `tcpserver` is used by the axfr recipe.
35-
- runit - for setting up the services.
33+
* build-essential - for compiling the source.
34+
* ucspi-tcp - `tcpserver` is used by the axfr recipe.
35+
* runit - for setting up the services.
3636

3737
## Attributes
3838

39-
- `node['djbdns']['tinydns_ipaddress']` - listen address for public facing tinydns server
40-
- `node['djbdns']['tinydns_internal_ipaddress']` - listen address for internal tinydns server
41-
- `node['djbdns']['public_dnscache_ipaddress']` - listen address for public DNS cache
42-
- `node['djbdns']['axfrdns_ipaddress']` - listen address for axfrdns
43-
- `node['djbdns']['public_dnscache_allowed_networks']` - subnets that are allowed to talk to the dnscache.
44-
- `node['djbdns']['tinydns_internal_resolved_domain']` - default domain this tinydns serves
45-
- `node['djbdns']['tinydns_internal_resolved_reverse_domains']` - default in-addr.arpa domains this tinydns serves
46-
- `node['djbdns']['axfrdns_dir']` - default location of the axfrdns service and configuration, default `/etc/djbdns/axfrdns`
47-
- `node['djbdns']['tinydns_dir']` - default location of the tinydns service and configuration, default `/etc/djbdns/tinydns`
48-
- `node['djbdns']['tinydns_internal_dir']` - default location of the tinydns internal service and configuration, default `/etc/djbdns/tinydns_internal`
49-
- `node['djbdns']['public_dnscache_dir']` - default location of the public dnscache service and configuration, default `/etc/djbdns/public-dnscache`
50-
- `node['djbdns']['bin_dir']` - default location where binaries will be stored.
51-
- `node['djbdns']['axfrdns_uid']` - default uid for the axfrdns user
52-
- `node['djbdns']['dnscache_uid']` - default uid for the dnscache user
53-
- `node['djbdns']['dnslog_uid']` - default uid for the dnslog user
54-
- `node['djbdns']['tinydns_uid']` - default uid for the tinydns user
55-
- `node['djbdns']['package_name']` - name of the djbdns package. this shouldn't be changed most of the time, but may be necessary to use the [Debian fork](http://en.wikipedia.org/wiki/Dbndns), `dbndns`.
56-
- `node['djbdns']['install_method']` - method used to install djbdns, can be `package`, or `source`.
39+
* `node['djbdns']['tinydns_ipaddress']` - listen address for public facing tinydns server
40+
* `node['djbdns']['tinydns_internal_ipaddress']` - listen address for internal tinydns server
41+
* `node['djbdns']['public_dnscache_ipaddress']` - listen address for public DNS cache
42+
* `node['djbdns']['axfrdns_ipaddress']` - listen address for axfrdns
43+
* `node['djbdns']['public_dnscache_allowed_networks']` - subnets that are allowed to talk to the dnscache.
44+
* `node['djbdns']['tinydns_internal_resolved_domain']` - default domain this tinydns serves
45+
* `node['djbdns']['tinydns_internal_resolved_reverse_domains']` - default in-addr.arpa domains this tinydns serves
46+
* `node['djbdns']['axfrdns_dir']` - default location of the axfrdns service and configuration, default `/etc/djbdns/axfrdns`
47+
* `node['djbdns']['tinydns_dir']` - default location of the tinydns service and configuration, default `/etc/djbdns/tinydns`
48+
* `node['djbdns']['tinydns_internal_dir']` - default location of the tinydns internal service and configuration, default `/etc/djbdns/tinydns_internal`
49+
* `node['djbdns']['public_dnscache_dir']` - default location of the public dnscache service and configuration, default `/etc/djbdns/public-dnscache`
50+
* `node['djbdns']['bin_dir']` - default location where binaries will be stored.
51+
* `node['djbdns']['axfrdns_uid']` - default uid for the axfrdns user
52+
* `node['djbdns']['dnscache_uid']` - default uid for the dnscache user
53+
* `node['djbdns']['dnslog_uid']` - default uid for the dnslog user
54+
* `node['djbdns']['tinydns_uid']` - default uid for the tinydns user
55+
* `node['djbdns']['package_name']` - name of the djbdns package. this shouldn't be changed most of the time, but may be necessary to use the [Debian fork](http://en.wikipedia.org/wiki/Dbndns), `dbndns`.
56+
* `node['djbdns']['install_method']` - method used to install djbdns, can be `package`, or `source`.
5757

5858
## Resources
5959

6060
This cookbook is mid-migration from recipe/attribute-driven behavior toward higher-level resources. The current resource-first surface is:
6161

62-
- `djbdns_install` - installs djbdns and bootstraps shared users/directories.
63-
- `djbdns_server` - configures the public tinydns service.
64-
- `djbdns_internal_server` - configures the internal tinydns service with explicit records or legacy data-bag/template inputs.
65-
- `djbdns_cache` - configures the public dnscache service.
66-
- `djbdns_axfr` - configures the axfrdns service that fronts an existing public tinydns directory.
67-
- `djbdns_rr` - appends tinydns records inside an existing tinydns root.
62+
* `djbdns_install` - installs djbdns and bootstraps shared users/directories.
63+
* `djbdns_server` - configures the public tinydns service.
64+
* `djbdns_internal_server` - configures the internal tinydns service with explicit records or legacy data-bag/template inputs.
65+
* `djbdns_cache` - configures the public dnscache service.
66+
* `djbdns_axfr` - configures the axfrdns service that fronts an existing public tinydns directory.
67+
* `djbdns_rr` - appends tinydns records inside an existing tinydns root.
6868

6969
The legacy recipes `default`, `server`, `cache`, `internal_server`, and `axfr` are now compatibility wrappers around those resources.
7070

7171
### Resource Model Roadmap
7272

73-
- `djbdns_install`: shared install/bootstrap layer
74-
- `djbdns_server`: public tinydns service
75-
- `djbdns_internal_server`: internal tinydns service with explicit data-bag/template inputs
76-
- `djbdns_cache`: public dnscache service
77-
- `djbdns_axfr`: axfr service bound to an existing public tinydns instance
73+
* `djbdns_install`: shared install/bootstrap layer
74+
* `djbdns_server`: public tinydns service
75+
* `djbdns_internal_server`: internal tinydns service with explicit data-bag/template inputs
76+
* `djbdns_cache`: public dnscache service
77+
* `djbdns_axfr`: axfr service bound to an existing public tinydns instance
7878

7979
## djbdns_rr
8080

8181
Adds a resource record for the specified FQDN.
8282

8383
### Actions
8484

85-
- `:add`: Creates a new entry in the tinydns data file with the `add-X` scripts in the tinydns root directory.
85+
* `:add`: Creates a new entry in the tinydns data file with the `add-X` scripts in the tinydns root directory.
8686

8787
### Attribute Parameters
8888

89-
- `fqdn`: name attribute. specifies the fully qualified domain name of the record.
90-
- `ip`: ip address for the record.
91-
- `type`: specifies the type of entry. valid types are: alias, alias6, childns, host, host6, mx, and ns. default is `host`.
92-
- `cwd`: current working directory where the add scripts and data files must be located. default is the node attribute `djbdns[:tinydns_internal_dir]`, usually `/etc/djbdns/tinydns-internal`.
89+
* `fqdn`: name attribute. specifies the fully qualified domain name of the record.
90+
* `ip`: ip address for the record.
91+
* `type`: specifies the type of entry. valid types are: alias, alias6, childns, host, host6, mx, and ns. default is `host`.
92+
* `cwd`: current working directory where the add scripts and data files must be located. default is the node attribute `djbdns[:tinydns_internal_dir]`, usually `/etc/djbdns/tinydns-internal`.
9393

9494
### Example
9595

@@ -112,14 +112,14 @@ Compatibility wrapper for `djbdns_install`.
112112

113113
The default recipe attempts to install djbdns on as many platforms as possible. It tries to determine the platform's installation method:
114114

115-
- Debian will install from packages
116-
- All other distributions will install from source.
115+
* Debian will install from packages
116+
* All other distributions will install from source.
117117

118118
Service specific users will be created as system users:
119119

120-
- dnscache
121-
- dnslog
122-
- tinydns
120+
* dnscache
121+
* dnslog
122+
* tinydns
123123

124124
## axfr
125125

0 commit comments

Comments
 (0)