diff --git a/.github/workflows/component_molecule_packaging.yml b/.github/workflows/component_molecule_packaging.yml index bae272ecf..ac9c29c5d 100644 --- a/.github/workflows/component_molecule_packaging.yml +++ b/.github/workflows/component_molecule_packaging.yml @@ -28,7 +28,7 @@ jobs: repo_base_url: ${{ inputs.REPO_ENDPOINT }} package_name: 'newrelic-infra' package_version: ${{ inputs.TAG }} - platforms: "al2,al2023,debian-bullseye,debian-bookworm,redhat8,redhat9,suse15.3,suse15.4,suse15.5,suse15.6,ubuntu1604,ubuntu1804,ubuntu2004,ubuntu2204,ubuntu2404" + platforms: "al2,al2023,debian-bullseye,debian-bookworm,redhat8,redhat9,rocky8,rocky9,suse15.3,suse15.4,suse15.5,suse15.6,ubuntu1604,ubuntu1804,ubuntu2004,ubuntu2204,ubuntu2404" - name: Test FIPS package installation uses: newrelic/pkg-installation-testing-action@v1 with: @@ -37,4 +37,4 @@ jobs: package_name: 'newrelic-infra-fips' exec_name: 'newrelic-infra' package_version: ${{ inputs.TAG }} - platforms: "al2,al2023,debian-bullseye,debian-bookworm,redhat8,redhat9,suse15.3,suse15.4,suse15.5,suse15.6,ubuntu1604,ubuntu1804,ubuntu2004,ubuntu2204,ubuntu2404" + platforms: "al2,al2023,debian-bullseye,debian-bookworm,redhat8,redhat9,rocky8,rocky9,suse15.3,suse15.4,suse15.5,suse15.6,ubuntu1604,ubuntu1804,ubuntu2004,ubuntu2204,ubuntu2404" diff --git a/build/goreleaser/linux/rhel_8_amd64.yml b/build/goreleaser/linux/rhel_8_amd64.yml new file mode 100644 index 000000000..e31af45b3 --- /dev/null +++ b/build/goreleaser/linux/rhel_8_amd64.yml @@ -0,0 +1,95 @@ + # RHEL 8 amd64 + + - id: rhel-8-infrastructure-agent + builds: + - linux-agent-amd64 + - linux-ctl-amd64 + - linux-service-amd64 + package_name: "newrelic-infra{{ .Env.FIPS }}" + file_name_template: >- + newrelic-infra{{ .Env.FIPS }}- + {{- .Env.TAG }}-1.el8. + {{- if eq .Arch "amd64" -}}x86_64 + {{- else -}} + {{ .Arch }} + {{- end }} + vendor: 'New Relic, Inc.' + homepage: 'https://docs.newrelic.com/docs/release-notes/infrastructure-release-notes/infrastructure-agent-release-notes' + maintainer: 'caos-team@newrelic.com' + description: 'New Relic Infrastructure provides flexible, dynamic server monitoring. With real-time data collection and a UI that scales from a handful of hosts to thousands, Infrastructure is designed for modern Operations teams with fast-changing systems.' + license: 'Copyright (c) 2008-2021 New Relic, Inc. All rights reserved.' + formats: + - rpm + bindir: /usr/bin + contents: + - src: 'assets/examples/logging/linux/file.yml.example' + dst: '/etc/newrelic-infra/logging.d/file.yml.example' + - src: 'assets/examples/logging/linux/fluentbit.yml.example' + dst: '/etc/newrelic-infra/logging.d/fluentbit.yml.example' + - src: 'assets/examples/logging/linux/syslog.yml.example' + dst: '/etc/newrelic-infra/logging.d/syslog.yml.example' + - src: 'assets/examples/logging/linux/systemd.yml.example' + dst: '/etc/newrelic-infra/logging.d/systemd.yml.example' + - src: 'assets/examples/logging/linux/tcp.yml.example' + dst: '/etc/newrelic-infra/logging.d/tcp.yml.example' + + - src: 'build/package/systemd/newrelic-infra.service' + dst: '/etc/systemd/system/newrelic-infra.service' + - src: 'LICENSE' + dst: '/var/db/newrelic-infra/LICENSE.txt' + - src: 'target/nridocker/amd64/etc/newrelic-infra/integrations.d/docker-config.yml' + dst: '/etc/newrelic-infra/integrations.d/docker-config.yml' + type: config + - src: 'target/nridocker/amd64/var/db/newrelic-infra/newrelic-integrations/bin/nri-docker' + dst: '/opt/newrelic-infra/newrelic-integrations/bin/nri-docker' + - src: 'target/nriflex/amd64/nri-flex' + dst: '/opt/newrelic-infra/newrelic-integrations/bin/nri-flex' + - src: 'target/nriprometheus/amd64/var/db/newrelic-infra/newrelic-integrations/bin/nri-prometheus' + dst: '/opt/newrelic-infra/newrelic-integrations/bin/nri-prometheus' + - src: 'target/fluent-bit-plugin/amd64/out_newrelic.so' + dst: '/var/db/newrelic-infra/newrelic-integrations/logging/out_newrelic.so' + - src: 'assets/examples/logging/parsers.conf' + dst: '/var/db/newrelic-infra/newrelic-integrations/logging/parsers.conf' + + - dst: /opt/newrelic-infra/custom-integrations + type: dir + - dst: /opt/newrelic-infra/newrelic-integrations + type: dir + - dst: /var/db/newrelic-infra/custom-integrations + type: dir + - dst: /var/db/newrelic-infra/integrations.d + type: dir + - dst: /var/log/newrelic-infra + type: dir + - dst: /var/run/newrelic-infra + type: dir + epoch: 0 + release: 1.el8 + + # Scripts to execute during the installation of the package. + scripts: + preinstall: "build/package/before-install.sh" + preremove: "build/package/rpm/prerm-systemd.sh" + + # Packages to replace according to old packaging scripts. + replaces: + - opspro-agent + - opspro-agent-systemd + # Section. + section: default + # Priority. + priority: extra + rpm: + scripts: + posttrans: "build/package/rpm/postinst-systemd.sh" + + summary: "New Relic Infrastructure Agent" + group: default + # Recommended packages. If they fail to install installation of the agent will not be interrupted. + recommends: + - fluent-bit + # conflicts is not "templatable", so we add the conflicts-suffix-placeholder to be replaced later + conflicts: + - newrelic-infra#conflicts-suffix-placeholder# + + # end RHEL 8 amd64 diff --git a/build/goreleaser/linux/rhel_8_arm.yml b/build/goreleaser/linux/rhel_8_arm.yml new file mode 100644 index 000000000..d9d5e1b34 --- /dev/null +++ b/build/goreleaser/linux/rhel_8_arm.yml @@ -0,0 +1,66 @@ + # RHEL 8 arm + + - id: rhel-8-infrastructure-agent-arm + builds: + - linux-agent-arm + - linux-ctl-arm + - linux-service-arm + package_name: newrelic-infra + file_name_template: "newrelic-infra-{{ .Env.TAG }}-1.el8.{{ .Arch }}" + vendor: 'New Relic, Inc.' + homepage: 'https://docs.newrelic.com/docs/release-notes/infrastructure-release-notes/infrastructure-agent-release-notes' + maintainer: 'caos-team@newrelic.com' + description: 'New Relic Infrastructure provides flexible, dynamic server monitoring. With real-time data collection and a UI that scales from a handful of hosts to thousands, Infrastructure is designed for modern Operations teams with fast-changing systems.' + license: 'Copyright (c) 2008-2021 New Relic, Inc. All rights reserved.' + formats: + - rpm + bindir: /usr/bin + contents: + - src: 'build/package/systemd/newrelic-infra.service' + dst: '/etc/systemd/system/newrelic-infra.service' + - src: 'LICENSE' + dst: '/var/db/newrelic-infra/LICENSE.txt' + - src: 'target/nridocker/{{ .Arch }}/etc/newrelic-infra/integrations.d/docker-config.yml' + dst: '/etc/newrelic-infra/integrations.d/docker-config.yml' + type: config + - src: 'target/nridocker/{{ .Arch }}/var/db/newrelic-infra/newrelic-integrations/bin/nri-docker' + dst: '/opt/newrelic-infra/newrelic-integrations/bin/nri-docker' + - src: 'target/nriflex/{{ .Arch }}/nri-flex' + dst: '/opt/newrelic-infra/newrelic-integrations/bin/nri-flex' + - src: 'target/nriprometheus/{{ .Arch }}/var/db/newrelic-infra/newrelic-integrations/bin/nri-prometheus' + dst: '/opt/newrelic-infra/newrelic-integrations/bin/nri-prometheus' + + - dst: /opt/newrelic-infra/custom-integrations + type: dir + - dst: /opt/newrelic-infra/newrelic-integrations + type: dir + - dst: /var/db/newrelic-infra/custom-integrations + type: dir + - dst: /var/db/newrelic-infra/integrations.d + type: dir + - dst: /var/log/newrelic-infra + type: dir + - dst: /var/run/newrelic-infra + type: dir + epoch: 0 + release: 1.el8 + + # Scripts to execute during the installation of the package. + scripts: + preinstall: "build/package/before-install.sh" + preremove: "build/package/rpm/prerm-systemd.sh" + # Packages to replace according to old packaging scripts. + replaces: + - opspro-agent + - opspro-agent-systemd + # Section. + section: default + # Priority. + priority: extra + rpm: + scripts: + posttrans: "build/package/rpm/postinst-systemd.sh" + + summary: "New Relic Infrastructure Agent" + group: default + # end RHEL 8 arm diff --git a/build/goreleaser/linux/rhel_8_arm64.yml b/build/goreleaser/linux/rhel_8_arm64.yml new file mode 100644 index 000000000..d057abf22 --- /dev/null +++ b/build/goreleaser/linux/rhel_8_arm64.yml @@ -0,0 +1,88 @@ + # RHEL 8 arm64 + + - id: rhel-8-infrastructure-agent-arm64 + builds: + - linux-agent-arm64 + - linux-ctl-arm64 + - linux-service-arm64 + package_name: "newrelic-infra{{ .Env.FIPS }}" + file_name_template: "newrelic-infra{{ .Env.FIPS }}-{{ .Env.TAG }}-1.el8.{{ .Arch }}" + vendor: 'New Relic, Inc.' + homepage: 'https://docs.newrelic.com/docs/release-notes/infrastructure-release-notes/infrastructure-agent-release-notes' + maintainer: 'caos-team@newrelic.com' + description: 'New Relic Infrastructure provides flexible, dynamic server monitoring. With real-time data collection and a UI that scales from a handful of hosts to thousands, Infrastructure is designed for modern Operations teams with fast-changing systems.' + license: 'Copyright (c) 2008-2021 New Relic, Inc. All rights reserved.' + formats: + - rpm + bindir: /usr/bin + contents: + - src: 'assets/examples/logging/linux/file.yml.example' + dst: '/etc/newrelic-infra/logging.d/file.yml.example' + - src: 'assets/examples/logging/linux/fluentbit.yml.example' + dst: '/etc/newrelic-infra/logging.d/fluentbit.yml.example' + - src: 'assets/examples/logging/linux/syslog.yml.example' + dst: '/etc/newrelic-infra/logging.d/syslog.yml.example' + - src: 'assets/examples/logging/linux/systemd.yml.example' + dst: '/etc/newrelic-infra/logging.d/systemd.yml.example' + - src: 'assets/examples/logging/linux/tcp.yml.example' + dst: '/etc/newrelic-infra/logging.d/tcp.yml.example' + + - src: 'build/package/systemd/newrelic-infra.service' + dst: '/etc/systemd/system/newrelic-infra.service' + - src: 'LICENSE' + dst: '/var/db/newrelic-infra/LICENSE.txt' + - src: 'target/nridocker/{{ .Arch }}/etc/newrelic-infra/integrations.d/docker-config.yml' + dst: '/etc/newrelic-infra/integrations.d/docker-config.yml' + type: config + - src: 'target/nridocker/{{ .Arch }}/var/db/newrelic-infra/newrelic-integrations/bin/nri-docker' + dst: '/opt/newrelic-infra/newrelic-integrations/bin/nri-docker' + - src: 'target/nriflex/{{ .Arch }}/nri-flex' + dst: '/opt/newrelic-infra/newrelic-integrations/bin/nri-flex' + - src: 'target/nriprometheus/{{ .Arch }}/var/db/newrelic-infra/newrelic-integrations/bin/nri-prometheus' + dst: '/opt/newrelic-infra/newrelic-integrations/bin/nri-prometheus' + - src: 'target/fluent-bit-plugin/{{ .Arch }}/out_newrelic.so' + dst: '/var/db/newrelic-infra/newrelic-integrations/logging/out_newrelic.so' + - src: 'assets/examples/logging/parsers.conf' + dst: '/var/db/newrelic-infra/newrelic-integrations/logging/parsers.conf' + + - dst: /opt/newrelic-infra/custom-integrations + type: dir + - dst: /opt/newrelic-infra/newrelic-integrations + type: dir + - dst: /var/db/newrelic-infra/custom-integrations + type: dir + - dst: /var/db/newrelic-infra/integrations.d + type: dir + - dst: /var/log/newrelic-infra + type: dir + - dst: /var/run/newrelic-infra + type: dir + epoch: 0 + release: 1.el8 + + # Scripts to execute during the installation of the package. + scripts: + preinstall: "build/package/before-install.sh" + preremove: "build/package/rpm/prerm-systemd.sh" + # Packages to replace according to old packaging scripts. + replaces: + - opspro-agent + - opspro-agent-systemd + # Section. + section: default + # Priority. + priority: extra + rpm: + scripts: + posttrans: "build/package/rpm/postinst-systemd.sh" + + summary: "New Relic Infrastructure Agent" + group: default + # Recommended packages. If they fail to install installation of the agent will not be interrupted. + recommends: + - fluent-bit + # conflicts is not "templatable", so we add the conflicts-suffix-placeholder to be replaced later + conflicts: + - newrelic-infra#conflicts-suffix-placeholder# + + # end RHEL 8 arm64 diff --git a/build/release.mk b/build/release.mk index d853e116d..667e04bb7 100644 --- a/build/release.mk +++ b/build/release.mk @@ -194,6 +194,9 @@ generate-goreleaser-amd64: $(CURDIR)/build/goreleaser/linux/centos_6_amd64.yml\ $(CURDIR)/build/goreleaser/linux/centos_7_amd64.yml\ $(CURDIR)/build/goreleaser/linux/centos_8_amd64.yml\ + $(CURDIR)/build/goreleaser/linux/rhel_8_amd64.yml\ + $(CURDIR)/build/goreleaser/linux/rhel_8_arm.yml\ + $(CURDIR)/build/goreleaser/linux/rhel_8_arm64.yml\ $(CURDIR)/build/goreleaser/linux/rhel_9_amd64.yml\ $(CURDIR)/build/goreleaser/linux/debian_systemd_amd64.yml\ $(CURDIR)/build/goreleaser/linux/debian_upstart_amd64.yml\ @@ -297,6 +300,9 @@ generate-goreleaser-multiarch: $(CURDIR)/build/goreleaser/linux/centos_8_amd64.yml\ $(CURDIR)/build/goreleaser/linux/centos_8_arm.yml\ $(CURDIR)/build/goreleaser/linux/centos_8_arm64.yml\ + $(CURDIR)/build/goreleaser/linux/rhel_8_amd64.yml\ + $(CURDIR)/build/goreleaser/linux/rhel_8_arm.yml\ + $(CURDIR)/build/goreleaser/linux/rhel_8_arm64.yml\ $(CURDIR)/build/goreleaser/linux/rhel_9_amd64.yml\ $(CURDIR)/build/goreleaser/linux/rhel_9_arm.yml\ $(CURDIR)/build/goreleaser/linux/rhel_9_arm64.yml\ @@ -356,6 +362,9 @@ generate-goreleaser-multiarch-fips: $(CURDIR)/build/goreleaser/linux/centos_7_arm64.yml\ $(CURDIR)/build/goreleaser/linux/centos_8_amd64.yml\ $(CURDIR)/build/goreleaser/linux/centos_8_arm64.yml\ + $(CURDIR)/build/goreleaser/linux/rhel_8_amd64.yml\ + $(CURDIR)/build/goreleaser/linux/rhel_8_arm.yml\ + $(CURDIR)/build/goreleaser/linux/rhel_8_arm64.yml\ $(CURDIR)/build/goreleaser/linux/rhel_9_amd64.yml\ $(CURDIR)/build/goreleaser/linux/rhel_9_arm64.yml\ $(CURDIR)/build/goreleaser/linux/debian_systemd_amd64.yml\ diff --git a/test/automated/ansible/group_vars/localhost/main.yml b/test/automated/ansible/group_vars/localhost/main.yml index dfe997c82..14d2a5cf3 100644 --- a/test/automated/ansible/group_vars/localhost/main.yml +++ b/test/automated/ansible/group_vars/localhost/main.yml @@ -201,6 +201,46 @@ instances: python_interpreter: "/usr/bin/python" launch_template: "LaunchTemplateId=lt-0b00afb3f5110a0e6,Version=3" ############################ + # rocky linux amd64 + ############################ + - ami: "ami-02391db2758465a87" # Replace with the correct Rocky Linux 8 AMI ID + type: "t3a.medium" + name: "amd64:rocky-8" + username: "rocky" + platform: "linux" + python_interpreter: "/usr/bin/python3" + launch_template: "LaunchTemplateId=lt-0b00afb3f5110a0e6,Version=3" + ############################ + # rocky linux arm64 + ############################ + - ami: "ami-0aa5b64f9b561d20f" # Replace with the correct Rocky Linux 8 ARM64 AMI ID + type: "t4g.medium" + name: "arm64:rocky-8" + username: "rocky" + platform: "linux" + python_interpreter: "/usr/bin/python3" + launch_template: "LaunchTemplateId=lt-0b00afb3f5110a0e6,Version=3" + ############################ + # rocky linux amd64 + ############################ + - ami: "ami-05150ea4d8a533099" # Replace with the correct Rocky Linux 9 AMI ID + type: "t3a.small" + name: "amd64:rocky-9" + username: "rocky" + platform: "linux" + python_interpreter: "/usr/bin/python3" + launch_template: "LaunchTemplateId=lt-0b00afb3f5110a0e6,Version=3" + ############################ + # rocky linux arm64 + ############################ + - ami: "ami-0cc73a60867904383" # Replace with the correct Rocky Linux 9 ARM64 AMI ID + type: "t4g.small" + name: "arm64:rocky-9" + username: "rocky" + platform: "linux" + python_interpreter: "/usr/bin/python3" + launch_template: "LaunchTemplateId=lt-0b00afb3f5110a0e6,Version=3" + ############################ # debian amd64 ############################ - ami: "ami-08a0dab67e025361b" diff --git a/test/automated/ansible/roles/install-crowdstrike-falcon/vars/main.yaml b/test/automated/ansible/roles/install-crowdstrike-falcon/vars/main.yaml index 8bbb6b113..fa76c219a 100644 --- a/test/automated/ansible/roles/install-crowdstrike-falcon/vars/main.yaml +++ b/test/automated/ansible/roles/install-crowdstrike-falcon/vars/main.yaml @@ -39,6 +39,14 @@ dnf: hash: "{{ redhat9_amd64_hash }}" - hostname: "arm64:redhat-9.0" hash: "{{ redhat9_arm64_hash }}" + - hostname: "amd64:rocky-8" + hash: "{{ redhat8_amd64_hash }}" + - hostname: "arm64:rocky-8" + hash: "{{ redhat8_arm64_hash }}" + - hostname: "amd64:rocky-9" + hash: "{{ redhat9_amd64_hash }}" + - hostname: "arm64:rocky-9" + hash: "{{ redhat9_arm64_hash }}" - hostname: "amd64:al-2023" hash: "{{ al2023_amd64_hash }}" - hostname: "arm64:al-2023" diff --git a/test/provision/terraform/caos.auto.tfvars.dist b/test/provision/terraform/caos.auto.tfvars.dist index e1569a397..8132f08e5 100644 --- a/test/provision/terraform/caos.auto.tfvars.dist +++ b/test/provision/terraform/caos.auto.tfvars.dist @@ -2,9 +2,9 @@ ec2_prefix = "PREFIX:TAG_OR_UNIQUE_NAME" windows_ec2 = ["windows_2016", "windows_2019", "windows_2022", "windows_2025"] -linux_ec2_amd = ["amd64:ubuntu24.04", "amd64:ubuntu22.04", "amd64:ubuntu20.04", "amd64:ubuntu18.04", "amd64:ubuntu16.04", "amd64:centos-stream", "amd64:sles-12.5", "amd64:sles-15.3", "amd64:sles-15.4", "amd64:sles-15.5", "amd64:sles-15.6", "amd64:redhat-8.4", "amd64:redhat-9.0", "amd64:debian-bookworm", "amd64:al-2", "amd64:al-2023", "amd64:al-2023-fips"] +linux_ec2_amd = ["amd64:ubuntu24.04", "amd64:ubuntu22.04", "amd64:ubuntu20.04", "amd64:ubuntu18.04", "amd64:ubuntu16.04", "amd64:centos-stream", "amd64:sles-12.5", "amd64:sles-15.3", "amd64:sles-15.4", "amd64:sles-15.5", "amd64:sles-15.6", "amd64:redhat-8.4", "amd64:redhat-9.0", "amd64:debian-bookworm", "amd64:al-2", "amd64:al-2023", "amd64:al-2023-fips", "amd64:rocky-8", "amd64:rocky-9"] -linux_ec2_arm = ["arm64:ubuntu24.04", "arm64:ubuntu22.04", "arm64:ubuntu20.04", "arm64:ubuntu18.04", "arm64:ubuntu16.04", "arm64:centos-stream", "arm64:sles-15.4", "arm64:sles-15.5", "arm64:sles-15.6", "arm64:redhat-9.0", "arm64:debian-bookworm", "arm64:al-2", "arm64:al-2023", "arm64:al-2023-fips"] +linux_ec2_arm = ["arm64:ubuntu24.04", "arm64:ubuntu22.04", "arm64:ubuntu20.04", "arm64:ubuntu18.04", "arm64:ubuntu16.04", "arm64:centos-stream", "arm64:sles-15.4", "arm64:sles-15.5", "arm64:sles-15.6", "arm64:redhat-9.0", "arm64:debian-bookworm", "arm64:al-2", "arm64:al-2023", "arm64:al-2023-fips", "arm64:rocky-8", "arm64:rocky-9"] ssh_pub_key = "AAAAB3NzaC1yc2EAAAADAQABAAABAQDH9C7BS2XrtXGXFFyL0pNku/Hfy84RliqvYKpuslJFeUivf5QY6Ipi8yXfXn6TsRDbdxfGPi6oOR60Fa+4cJmCo6N5g57hBS6f2IdzQBNrZr7i1I/a3cFeK6XOc1G1tQaurx7Pu+qvACfJjLXKG66tHlaVhAHd/1l2FocgFNUDFFuKS3mnzt9hKys7sB4aO3O0OdohN/0NJC4ldV8/OmeXqqfkiPWcgPx3C8bYyXCX7QJNBHKrzbX1jW51Px7SIDWFDV6kxGwpQGGBMJg/k79gjjM+jhn4fg1/VP/Fx37mAnfLqpcTfiOkzSE80ORGefQ1XfGK/Dpa3ITrzRYW8xlR caos-dev-arm" pvt_key = "~/.ssh/caos-dev-arm.cer"