@@ -4,6 +4,12 @@ This guide explains how to build Postgres extensions container images for
44[ CloudNativePG] ( https://cloudnative-pg.io ) locally, using
55[ Docker Bake] ( https://docs.docker.com/build/bake/ ) .
66
7+ > [ !IMPORTANT]
8+ > If you are looking to contribute a new PostgreSQL extension to this
9+ > repository, please refer to the [ ` CONTRIBUTING_NEW_EXTENSION.md ` file] ( CONTRIBUTING_NEW_EXTENSION.md ) .
10+ > This guide covers the entire lifecycle, from proposing the extension and
11+ > scaffolding the project to local validation and submitting a Pull Request.
12+
713## Prerequisites
814
915Before you begin, ensure that you have met the following
@@ -45,6 +51,8 @@ following scaffolded files:
4551> [ !NOTE]
4652> These files are generated from generic templates and should be customized to
4753> meet your extension's specific requirements.
54+ > For a complete walkthrough of the requirements and package discovery phase,
55+ > see [ ` CONTRIBUTING_NEW_EXTENSION.md ` ] ( ./CONTRIBUTING_NEW_EXTENSION.md ) .
4856
4957### Advanced Scaffolding
5058
@@ -172,6 +180,20 @@ task e2e:setup-env
172180> If changed, you must pass this variable to all subsequent tasks that interact
173181> with the registry to ensure connectivity.
174182
183+ #### Configuring credentials for private registries
184+
185+ If you need to pull images from a private registry during testing, you can
186+ configure authentication credentials when setting up the environment:
187+
188+ ``` bash
189+ REGISTRY_PASSWORD=" your-password" task e2e:setup-env \
190+ REGISTRY_HOST=" registry.example.com" \
191+ REGISTRY_USERNAME=" your-username"
192+ ```
193+
194+ These credentials are configured at the kubelet level, allowing pods to pull
195+ images from the private registry without requiring ImagePullSecrets.
196+
175197### Get access to the cluster
176198
177199To interact with the cluster via ` kubectl ` from your local terminal:
@@ -218,6 +240,18 @@ the E2E tests:
218240task e2e:generate-values TARGET=" <extension>" EXTENSION_IMAGE=" <my-local-image>"
219241```
220242
243+ #### Using private registries
244+
245+ If your extension image is hosted in a private registry, you can provide authentication
246+ credentials when generating test values:
247+
248+ ``` bash
249+ REGISTRY_PASSWORD=" your-password" task generate-values \
250+ TARGET=" <extension>" \
251+ EXTENSION_IMAGE=" <my-private-registry>/image:tag" \
252+ REGISTRY_USERNAME=" your-username"
253+ ```
254+
221255### Execute End-to-End tests
222256
223257Run the test suite using the internal Kubeconfig. This executes both the
@@ -228,6 +262,15 @@ generic tests (global `/test` folder) and extension-specific tests (target
228262task e2e:test TARGET=" <extension>" KUBECONFIG_PATH=" ./kubeconfig"
229263```
230264
265+ #### Pass arguments to chainsaw test
266+
267+ It is possible to pass arguments to the [ Chainsaw test command] ( https://kyverno.github.io/chainsaw/latest/reference/commands/chainsaw_test/ ) by using the ` EXTRA_ARGS `
268+ argument, like:
269+
270+ ``` bash
271+ task e2e:test TARGET=" pgvector" KUBECONFIG_PATH=" ./kubeconfig" EXTRA_ARGS=" --skip-delete,--fail-fast"
272+ ```
273+
231274---
232275
233276### Tear down the local test environment
0 commit comments