## 1.  Caution
If you use Serverless for production purposes, it is recommended that you use an external registry, such as Docker Hub, Artifact Registry, or Azure Container Registry (ACR).
Create a Secret in the kyma-system namespace with the required data ( username , password , serverAddress , and registryAddress ):
```
kubectl create secret generic my-registry-config \ --namespace kyma-system \ --from-literal=username={USERNAME} \ --from-literal=password={PASSWORD} \ --from-literal=serverAddress={SERVER_URL} \ --from-literal=registryAddress={REGISTRY_URL}
```
##  Tip
In the case of Docker Hub, usually the Docker registryAddress is the same as the account name.
## Examples:
- Docker Hub
- Artifact Registry
```
kubectl create secret generic my-registry-config \ --namespace kyma-system \ --from-literal=username={USERNAME} \ --from-literal=password={PASSWORD} \ --from-literal=serverAddress=https://index.docker.io/v1/ \ --from-literal=registryAddress={USERNAME}
```
```
kubectl create secret generic my-registry-config \ --namespace kyma-system \ --from-literal=username=_json_key \ --from-literal=password={GCR_KEY_JSON} \ --from-literal=serverAddress=gcr.io \ --from-literal=registryAddress=gcr.io/{YOUR_GCR_PROJECT}
```
For more information on how to set up authentication for Docker with Artifact Registry, see the Artifact Registry documentation .
- ACR
```
kubectl create secret generic my-registry-config \ --namespace kyma-system \ --from-literal=username=00000000-0000-0000-0000-000000000000 \ --from-literal=password={ACR_TOKEN} \
```
```
--from-literal=serverAddress={AZ_REGISTRY_NAME}.azurecr.io \ --from-literal=registryAddress={AZ_REGISTRY_NAME}.azurecr.io
```
For more information on how to authenticate with ACR, see the ACR documentation .
2. Reference the Secret in the Serverless CR:
```
spec: dockerRegistry: secretName: my-registry-config
```
The URL of the currently used Docker registry is visible in the Serverless CR status.
## Configuring Trace Endpoint
By default, the Serverless operator checks if there is a trace endpoint available. If available, the detected trace endpoint is used as the trace collector URL in Functions. If no trace endpoint is detected, Functions are configured with no trace collector endpoint. You can configure a custom trace endpoint so that Function traces are sent to any tracing backend you choose. The currently used trace endpoint is visible in the Serverless CR status.
```
spec: tracing: endpoint: http://jaeger-collector.observability.svc.cluster.local:4318/v1/ traces
```
## Configuring Eventing Endpoint
You can configure a custom Eventing endpoint to publish events sent from your Functions. The currently used trace endpoint is visible in the Serverless CR status. By default http://eventing-publisherproxy.kyma-system.svc.cluster.local/publish is used.
```
spec: eventing: endpoint: http://eventing-publisher-proxy.kyma-system.svc.cluster.local/ publish
```
## Configuring Target CPU Utilization Percentage
You can set a custom target threshold for CPU utilization. The default value is set to 50% .
```
spec: targetCPUUtilizationPercentage: 50
```
##  Caution
The spec.targetCPUUtilizationPercentage field is deprecated and will be removed in a future version of Serverless, where automatic HPA creation will be disabled.
## Configuring the Function Requeue Duration
By default, the Function associated with the default configuration will be requeued every 5 minutes.
```
spec: functionRequeueDuration: 5m
```
## Configuring the Function Build Executor Arguments
Use this label to choose the arguments passed to the Function build executor, for example:
- --insecure - executor operates in an insecure mode
- --skip-tls-verify - executor skips the TLS certificate verification
- --skip-unused-stages - executor skips any stages that aren't used for the current execution
- --log-format=text - executor uses logs in a given format
- --cache=true - enables caching for the executor
- --compressed-caching=false - prevents tar compression for cached layers. This increases the runtime of the build, but decreases the memory usage, especially for large builds
- --use-new-run - improves performance by avoiding the full filesystem snapshots
```
spec: functionBuildExecutorArgs: "--insecure,--skip-tls-verify,--skip-unusedstages,--log-format=text,--cache=true,--use-new-run,--compressed-caching=false"
```
##  Caution
The spec.functionBuildExecutorArgs field is deprecated and will be removed in a future version of Serverless where Functions won't require building images.
## Configuring the Function Build Max Simultaneous Jobs
You can set a custom maximum number of simultaneous jobs which can run at the same time. The default value is set to 5 .
```
spec: functionBuildMaxSimultaneousJobs: 5
```
##  Caution
The spec.functionBuildMaxSimultaneousJobs field is deprecated and will be removed in a future version of Serverless where Functions won't require building images.
## Configuring the healthz Liveness Timeout
By default, Function is considered unhealthy if the liveness health check endpoint does not respond within 10 seconds.
```
spec: healthzLivenessTimeout: "10s"
```
## Configuring the Default Build Job Preset
You can configure the default build Job preset to be used.
```
spec: defaultBuildJobPreset: "normal"
```
##  Caution
The spec.defaultBuildJobPreset field is deprecated and will be removed in a future version of Serverless where Functions won't require building images.
## Configuring the Default Runtime Pod Preset
You can configure the default runtime Pod preset to be used.
```
spec: defaultRuntimePodPreset: "M"
```
For more information on presets, see Available Presets .
## Configuring the Log Level
You can configure the desired log level to be used.
```
spec: logLevel: "debug"
```
## Configuring the Log Format
You can configure the desired log format to be used.
spec:
SAP Business Technology Platform Development
## Enabling Network Policies
You can enable built-in network policies to ensure that the necessary communication channels required by Serverless workloads remain functional, even on Kubernetes clusters where strict "deny-all" network policies are enforced. This allows Serverless components to operate correctly by permitting essential traffic while maintaining a secure cluster environment.
```
spec: enableNetworkPolicies: true
```
## Enabling Buildless Mode
You can enable buildless mode in Serverless to skip the image build step for Functions, accelerating prototype development by eliminating the need to build and push custom Function images.
##  Caution
Buildless mode is a feature flag that you can enable through an annotation. Before enabling the feature, see Serverless Buildless Mode [page 1944].
```
annotations: serverless.kyma-project.io/buildless-mode: "enabled"
```