Continuous Delivery for PE known issues

These are the known issues for the Continuous Delivery for Puppet Enterprise (PE) 4.x release series.

Creating or editing a pipeline with deployments causes the deployments to stop running

Using the Continuous Delivery for PE 4.29.0 or 5.3.0 web UI to create or edit a pipeline that contains a deployment causes the pipeline to stop running its deployments. Jobs and Impact Analyses continue to work and pipelines continue to run, but deployments are skipped. This does not affect pipelines that do not contain deployments, pipelines managed with code, or versions of Continuous Delivery for PE prior to, or later than, 4.29.0 or 5.3.0.

Optional environment variables are not being passed to Docker containers

On the Jobs page, environment variables that are added to the Optional configuration section are unavailable in the Docker container. To work around this issue, add a secret to the job with the environment data you want to use. You can then reference the variable it creates to access your data.

A Puppet Enterprise (2023.4 or later) module is not compatible with Ruby 3.2

A module included with Puppet Enterprise 2023.4 or later is not compatible with Ruby 3.2. While this does not affect Puppet Enterprise users, it can affect users integrating Continuous Delivery for Puppet Enterprise (PE) with these versions of PE. If you are integrating Continuous Delivery for PE with Puppet Enterprise 2023.4 or later, install a version of the module compatible with newer Ruby versions using the following command:

puppet module upgrade puppetlabs-cd4pe_jobs

Continuous Delivery for Puppet Enterprise (PE) fails when used with Puppet 8 (Puppet Enterprise 2023.4 or later)

Puppet 8 (included with Puppet Enterprise 2023.4 or later) has removed legacy facts by default. Continuous Delivery for PE relies on the legacy fact operatingsystem in order to develop a list of systems that are available to be used as job hardware. If you are running Continuous Delivery for PE 5.x with Puppet Enterprise 2023.4 or later, you need to add the following to puppet.conf:

include_legacy_facts=true

Users trying to login using SAML SSO could see a 405 Method Not Allowed

The SAML redirect URL changed in version 4.22.0 to: <YOUR CD4PE WEB UI ENDPOINT>/cd4pe/saml-auth. Versions of Continuous Delivery for PE prior to 4.22.0 should continue to use: <YOUR CD4PE WEB UI ENDPOINT>/saml-auth.

When upgrading Continuous Delivery for PE and Puppet Application Manager, you lose connectivity to your cluster

The issue occurs either during or after an upgrade to Continuous Delivery for PE and Puppet Application Manager. In each scenario you eventually lose connectivity to your clusters in Puppet Application Manager and Kubernetes. You get errors that images are missing, but containerd and kubelet are running.

To address this issue, follow the instructions in this knowledge base article.

Installing on 4 CPUs can hang with the new cd4pe pod stuck in a "Pending" status

Standalone installations on systems with 4 CPUs have an issue where upgrades and configuration changes can hang with the new cd4pe pod stuck in a "Pending" status.

To work around the issue temporarily delete a non-critical pod. For example, to delete the Prometheus pod use kubectl delete pod -n monitoring -l app.kubernetes.io/instance=k8s.

Once 4.22.0 is deployed, the best long term solution is to deselect Enable Vault in the Puppet Application Manager (PAM) UI under Advanced configuration and tuning. Vault is not used in Continuous Delivery for PE 4.22.0 and freeing the resources it consumes allows 4 CPU installations to upgrade without this problem.

Upgrading to 4.12.0 can delete the cd4pe Ingress

In busier Kubernetes clusters, upgrading to Continuous Delivery for PE version 4.12.0 can delete the cd4pe Ingress. If the application is unavailable after upgrading and kubectl get ingress cd4pe returns an empty list, redeploy the deployed version to recreate the Ingress.

Impact analysis can require additional disk space

Impact analysis branches are not always pruned after impact analysis is complete. This creates orphaned environments that fill up the /etc/puppetlabs/code/environments directory on the PE primary server. If you are experiencing storage capacity issues with impact analysis, increase the storage capacity on the /etc/puppetlabs/code/environments mount.

Impact analysis tasks fail when using the satellite_pe_tools module

When using the satellite_pe_tools module with Continuous Delivery for PE, impact analysis tasks fail with a "Internal Server Error: org.jruby.exceptions.RuntimeError: (Error) PuppetDB not configured, please provide facts with your catalog request" error. This issue occurs because the API endpoint used to collect facts during impact analysis tasks errors if the fact_terminus parameter is set to satellite or any value other than puppetdb. This issue is resolved in the versions of Puppet Server included in PE versions 2021.4 and 2019.8.9.

Impact analysis tasks fail when using Puppet Enterprise versions 2021.2 or 2019.8.7

Impact analysis fails with a R10K::Module::Forge cannot handle option ‘default_branch_override’ error. If you're using PE version 2021.2 or 2019.8.7, you must update the pe-r10k package by following the instructions in this Puppet Support article to continue to use impact analysis. After you update the package, you can update to future versions of PE using the installer as normal.

Preflight check failure when using Puppet Application Manager versions 1.19 or 1.20

Puppet Application Manager versions 1.19 and 1.20 display an Analyzer Failed: invalid analyzer error during the preflight checks when deploying a new version of Continuous Delivery for PE. This error relates to analyzers supported by version 1.24 and newer versions of the Puppet Application Manager. The error can be safely ignored. To resolve the failure and take advantage of the new preflight checks, upgrade Puppet Application Manager to the latest version.

Deployments might time out on node groups with complex rules

When using a built-in deployment policy other than the eventual consistency policy to deploy changes to a node group with highly complex rules, the deployment times out in some cases.

A PE instance cannot be integrated if dns_alt_names is not set on the master certificate

If the Puppet master certificate for your PE instance does not have dns_alt_names configured, attempting to integrate the instance with Continuous Delivery for PE fails with a We could not successfully validate the provided credentials against the Code Manager Service error. The master certificate must be regenerated before PE is integrated with Continuous Delivery for PE. For instructions, see Regenerate master certificates in the PE documentation.

Jobs fail when using chained SSL certificates on Windows

If you are using Continuous Delivery for PE with SSL configured to use chained certificates, attempts to run jobs on Windows job hardware fail.

Custom deployment policies aren't initially shown for new control repos

When your first action in a newly created control repo is to add a deployment to a pipeline, any custom deployment policies stored in the control repo aren't shown as deployment policy options. To work around this issue, click Built-in deployment policies and then click Custom deployment policies to refresh the list of available policies.