mirror of
https://github.com/cloudnative-pg/plugin-barman-cloud.git
synced 2026-03-09 12:12:21 +01:00
The barman-cloud plugin experienced significant performance degradation and memory growth compared to the embedded solution. WAL archiving was noticeably slower and memory consumption grew over time. Root cause: The sidecar uses a read-only filesystem which prevents Python from creating bytecode at runtime. When Python finds missing or stale bytecode (.pyc files), it attempts to recompile on every invocation, causing high CPU usage and memory consumption. The previous approach pre-compiled bytecode in a separate base image, but the bytecode was marked as stale when copied between Docker stages, triggering runtime recompilation attempts. This change eliminates bytecode staleness by ensuring all Python bytecode is properly compiled in the final image before the sidecar starts. The image is now fully distroless and based on trixie (previously it was distroless-based but copied unnecessary files from the build stage), reducing size from 463MB to 270MB and package count from 188 to 35, while maintaining zero HIGH/CRITICAL vulnerabilities. Closes #656 Closes #711 Closes #735 Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
136 lines
3.8 KiB
Plaintext
136 lines
3.8 KiB
Plaintext
{
|
|
$schema: 'https://docs.renovatebot.com/renovate-schema.json',
|
|
extends: [
|
|
'config:recommended',
|
|
':gitSignOff',
|
|
':semanticCommitType(chore)',
|
|
':labels(automated,no-issue)',
|
|
'customManagers:githubActionsVersions',
|
|
':automergeMinor',
|
|
':automergeDigest',
|
|
],
|
|
rebaseWhen: 'never',
|
|
prConcurrentLimit: 5,
|
|
// Override default ignorePaths to scan test/e2e for emulator image dependencies
|
|
// Removed: '**/test/**'
|
|
ignorePaths: [
|
|
'**/node_modules/**',
|
|
'**/bower_components/**',
|
|
'**/vendor/**',
|
|
'**/examples/**',
|
|
'**/__tests__/**',
|
|
'**/tests/**',
|
|
'**/__fixtures__/**',
|
|
],
|
|
lockFileMaintenance: {
|
|
enabled: true,
|
|
},
|
|
gomod: {
|
|
ignorePaths: [
|
|
'dagger/**/go.mod',
|
|
],
|
|
},
|
|
postUpdateOptions: [
|
|
'gomodTidy',
|
|
],
|
|
semanticCommits: 'enabled',
|
|
commitBodyTable: true,
|
|
customManagers: [
|
|
{
|
|
customType: 'regex',
|
|
managerFilePatterns: [
|
|
'/(^|/)Taskfile\\.yml$/',
|
|
],
|
|
matchStrings: [
|
|
'# renovate: datasource=(?<datasource>[a-z-.]+?) depName=(?<depName>[^\\s]+?)(?: (?:lookupName|packageName)=(?<packageName>[^\\s]+?))?(?: versioning=(?<versioning>[^\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\s]+?))?(?: currentValue=(?<currentValue>[^\\s]+?))?\\s+[A-Za-z0-9_]+?_SHA\\s*:\\s*["\']?(?<currentDigest>[a-f0-9]+?)["\']?\\s',
|
|
'# renovate: datasource=(?<datasource>[a-z-.]+?) depName=(?<depName>[^\\s]+?)(?: (?:lookupName|packageName)=(?<packageName>[^\\s]+?))?(?: versioning=(?<versioning>[^\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\s]+?))?\\s+[A-Za-z0-9_]+?_VERSION\\s*:\\s*["\']?(?<currentValue>.+?)["\']?\\s',
|
|
],
|
|
},
|
|
{
|
|
customType: 'regex',
|
|
managerFilePatterns: [
|
|
'/\\.go$/',
|
|
],
|
|
matchStrings: [
|
|
'//\\s*renovate:\\s*datasource=(?<datasource>[a-z-.]+?)\\s+depName=(?<depName>[^\\s]+?)(?:\\s+versioning=(?<versioning>[^\\s]+?))?\\s*\\n\\s*//\\s*Version:\\s*(?<currentValue>[^\\s]+?)\\s*\\n\\s*Image:\\s*"[^@]+@(?<currentDigest>sha256:[a-f0-9]+)"',
|
|
],
|
|
},
|
|
{
|
|
customType: 'regex',
|
|
managerFilePatterns: [
|
|
'/(^|/)docs/config\\.yaml$/',
|
|
],
|
|
matchStrings: [
|
|
'# renovate: datasource=(?<datasource>[a-z-.]+?) depName=(?<depName>[^\\s]+?)(?: (?:lookupName|packageName)=(?<packageName>[^\\s]+?))?(?: versioning=(?<versioning>[^\\s]+?))?(?: extractVersion=(?<extractVersion>[^\\s]+?))?\\s+kubernetesVersion:\\s*["\']?(?<currentValue>.+?)["\']?\\s',
|
|
],
|
|
versioningTemplate: 'regex:(?<major>\\d+)\\.(?<minor>\\d+)',
|
|
extractVersionTemplate: '^(?<version>v\\d+\\.\\d+)\\.\\d+$',
|
|
},
|
|
],
|
|
'pip-compile': {
|
|
managerFilePatterns: [
|
|
'/(^|/)sidecar-requirements\\.txt$/',
|
|
],
|
|
},
|
|
pip_requirements: {
|
|
enabled: false,
|
|
},
|
|
pip_setup: {
|
|
enabled: false,
|
|
},
|
|
packageRules: [
|
|
{
|
|
matchDatasources: [
|
|
'go',
|
|
],
|
|
matchPackageNames: [
|
|
'!/k8s.io/',
|
|
],
|
|
matchUpdateTypes: [
|
|
'minor',
|
|
'patch',
|
|
'digest',
|
|
],
|
|
groupName: 'all non-major go dependencies',
|
|
},
|
|
{
|
|
matchDatasources: [
|
|
'git-refs',
|
|
],
|
|
matchPackageNames: [
|
|
'https://github.com/cloudnative-pg/daggerverse',
|
|
],
|
|
matchUpdateTypes: [
|
|
'digest',
|
|
],
|
|
groupName: 'all cloudnative-pg daggerverse dependencies',
|
|
},
|
|
{
|
|
matchDatasources: [
|
|
'git-refs',
|
|
],
|
|
matchPackageNames: [
|
|
'https://github.com/sagikazarmark/daggerverse',
|
|
],
|
|
matchUpdateTypes: [
|
|
'digest',
|
|
],
|
|
groupName: 'all sagikazarmark daggerverse dependencies',
|
|
},
|
|
{
|
|
matchFileNames: [
|
|
'web/package.json',
|
|
'web/yarn.lock',
|
|
],
|
|
groupName: 'documentation dependencies',
|
|
},
|
|
{
|
|
matchUpdateTypes: [
|
|
'minor',
|
|
'patch',
|
|
],
|
|
matchCurrentVersion: '!/^0/',
|
|
},
|
|
],
|
|
}
|