mirror of
https://github.com/cloudnative-pg/plugin-barman-cloud.git
synced 2026-03-09 20:22:20 +01:00
The sidecar uses a read-only filesystem which prevents Python from creating bytecode at runtime. The previous approach pre-compiled bytecode in a separate base image, but timestamps were corrupted when files were copied between Docker stages, causing Python to mark the bytecode as stale and recompile on every invocation. This change builds Python dependencies as wheels in a pythonbuilder stage using BuildKit cache mounts, then installs them in the final python:3.13-slim-trixie stage using a bind mount. Wheels include pre-compiled bytecode with correct timestamps. The bind mount keeps wheels out of final layers, and the distroless complexity is eliminated. After wheel installation, we run compileall to ensure all Python bytecode is freshly compiled with correct timestamps, preventing any stale bytecode from remaining in the final image. The separate barmanbase image, its workflow, and related Renovate configuration are no longer needed and have been removed. 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/',
|
|
},
|
|
],
|
|
}
|