Skip to content

Commit

Permalink
Release v0.8.15 (Support imgproxy 3.5.0)
Browse files Browse the repository at this point in the history
  • Loading branch information
nepalez committed May 11, 2022
1 parent 487820b commit 9c6ae59
Show file tree
Hide file tree
Showing 5 changed files with 118 additions and 36 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 0.8.15 (2022-05-11)

* Support imgproxy v3.5.0

## 0.8.14 (2022-05-07)

* Fix YAML syntax for common labels
Expand Down
73 changes: 41 additions & 32 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,25 +84,27 @@ The above command installs a specified version of imgproxy.

### Imgproxy Server Settings

|Value|Description|Default|
|-----|-----------|-------|
|**features.server.readTimeout**|the maximum duration (in seconds) for reading the entire image request, including the body|`10`|
|**features.server.writeTimeout**|the maximum duration (in seconds) for writing the response|`10`|
|**features.server.keepAliveTimeout**|the maximum duration (in seconds) to wait for the next request before closing the connection. When set to 0, keep-alive is disabled|`10`|
|**features.server.downloadTimeout**|the maximum duration (in seconds) for downloading the source image|`5`|
|**features.server.concurrency**|the maximum number of image requests to be processed simultaneously|`double number of CPU cores`|
|**features.server.maxClients**|the maximum number of simultaneous active connections|`concurrency * 10`|
|**features.server.ttl**|duration in seconds sent in Expires and Cache-Control: max-age headers|`3600`|
|**features.server.setCanonicalHeader**|when true and the source image has http or https scheme, set rel="canonical" HTTP header to the value of the source image URL.|`false`|
|**features.server.cacheControlPassthrough**|when true and source image response contains Expires or Cache-Control headers, reuse those header|`false`|
|**features.server.soReuseport**|when true, enables SO_REUSEPORT socket option (currently on linux and darwin only)|`false`|
|**features.server.pathPrefix**|URL path prefix.||
|**features.server.userAgent**|User-Agent header that will be sent with source image request|`imgproxy/%current_version`|
|**features.server.useEtag**|when true, enables using ETag header for the cache control|`false`|
|**features.server.customRequestHeaders**|`PRO:` list of custom headers that imgproxy will send while requesting the source image, divided by `\;` (can be redefined by IMGPROXY_CUSTOM_HEADERS_SEPARATOR)||
|**features.server.customResponseHeaders**|`PRO:` list of custom response headers, divided by \; (can be redefined by IMGPROXY_CUSTOM_HEADERS_SEPARATOR)||
|**features.server.customHeadersSeparator**|`PRO:` string that will be used as a custom headers separator|`\;`|
|**features.server.enableDebugHeaders**|when true, imgproxy will add X-Origin-Content-Length header with the value is size of the source image.|`false`|
| Value |Description|Default|
|---------------------------------------------|-----------|------|
| **features.server.readTimeout** |the maximum duration (in seconds) for reading the entire image request, including the body|`10`|
| **features.server.writeTimeout** |the maximum duration (in seconds) for writing the response|`10`|
| **features.server.keepAliveTimeout** |the maximum duration (in seconds) to wait for the next request before closing the connection. When set to 0, keep-alive is disabled|`10`|
| **features.server.downloadTimeout** |the maximum duration (in seconds) for downloading the source image|`5`|
| **features.server.concurrency** |the maximum number of image requests to be processed simultaneously|`double number of CPU cores`|
| **features.server.maxClients** |the maximum number of simultaneous active connections|`concurrency * 10`|
| **features.server.ttl** |duration in seconds sent in Expires and Cache-Control: max-age headers|`3600`|
| **features.server.setCanonicalHeader** |when true and the source image has http or https scheme, set rel="canonical" HTTP header to the value of the source image URL.|`false`|
| **features.server.cacheControlPassthrough** |when true and source image response contains Expires or Cache-Control headers, reuse those header|`false`|
| **features.server.soReuseport** |when true, enables SO_REUSEPORT socket option (currently on linux and darwin only)|`false`|
| **features.server.pathPrefix** |URL path prefix.||
| **features.server.userAgent** |User-Agent header that will be sent with source image request|`imgproxy/%current_version`|
| **features.server.useEtag** |when true, enables using ETag header for the cache control|`false`|
| **features.server.etagBuster** |Change this to change ETags for all the images||
| **features.server.customRequestHeaders** |`PRO:` list of custom headers that imgproxy will send while requesting the source image, divided by `\;` (can be redefined by IMGPROXY_CUSTOM_HEADERS_SEPARATOR)||
| **features.server.customResponseHeaders** |`PRO:` list of custom response headers, divided by \; (can be redefined by IMGPROXY_CUSTOM_HEADERS_SEPARATOR)||
| **features.server.customHeadersSeparator** |`PRO:` string that will be used as a custom headers separator|`\;`|
| **features.server.enableDebugHeaders** |when true, imgproxy will add X-Origin-Content-Length header with the value is size of the source image.|`false`|
| **features.server.name** |`PRO:` The Server header value.|`imgproxy`|

### Imgproxy Security Settings

Expand Down Expand Up @@ -183,9 +185,11 @@ The above command installs a specified version of imgproxy.
### Fallback Image

|Value|Description|Default|
|-----|-----------|-------|
|-----|-----------|------|
|**features.fallbackImage.data**|Base64-encoded image data. You can easily calculate it with `base64 tmp/fallback.png | tr -d '\n'`||
|**features.fallbackImage.url**|fallback image URL.||
|**features.fallbackImage.httpCode**|HTTP code for the fallback image response.|`200`|
|**features.fallbackImage.ttl**|A duration (in seconds) sent via the Expires and Cache-Control:max-age HTTP headers when a fallback image was used.When blank or 0, the value from IMGPROXY_TTL is used.||

### Skip Processing by imgproxy

Expand Down Expand Up @@ -214,10 +218,11 @@ The above command installs a specified version of imgproxy.

### Google Cloud Storage support

|Value|Description|Default|
|-----|-----------|-------|
|**features.gcs.enabled**|When true, enables image fetching from Google Cloud Storage|`false`|
|**features.gcs.jsonKey**|Google Cloud JSON key. When set, enables image fetching from Google Cloud Storage buckets||
| Value |Description|Default|
|---------------------------|-----------|-------|
| **features.gcs.enabled** |When true, enables image fetching from Google Cloud Storage|`false`|
| **features.gcs.jsonKey** |Google Cloud JSON key. When set, enables image fetching from Google Cloud Storage buckets||
| **features.gcs.endpoint** |A custom Google Cloud Storage endpoint to being used by imgproxy.||

### MS Azure Blob Storage support

Expand Down Expand Up @@ -275,14 +280,18 @@ The above command installs a specified version of imgproxy.

### Miscellaneous imgproxy Settings

|Value|Description|Default|
|-----|-----------|-------|
|**features.miscellaneous.baseUrl**|base URL part which will be added to every requestsd image URL.||
|**features.miscellaneous.useLinearColorspace**|when true, imgproxy will process images in linear colorspace. This will slow down processing. Note that images won’t be fully processed in linear colorspace while shrink-on-load is enabled (see below)|`false`|
|**features.miscellaneous.disableShrinkOnLoad**|when true, disables shrink-on-load for JPEG and WebP. Allows to process the whole image in linear colorspace but dramatically slows down resizing and increases memory usage when working with large images|`false`|
|**features.miscellaneous.stripColorProfile**|when `true`, imgproxy will transform the embedded color profile (ICC) to sRGB and remove it from the image.|`true`|
|**features.miscellaneous.autoRotate**|when `true`, imgproxy will auto rotate images based on the EXIF Orientation parameter (if available in the image meta data).|`true`|
|**features.miscellaneous.stripMetadata**|whether to strip all metadata (EXIF, IPTC, etc.) from JPEG and WebP output images|`true`|
| Value | Description | Default |
|------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|
| **features.miscellaneous.baseUrl** | base URL part which will be added to every requestsd image URL. ||
| **features.miscellaneous.useLinearColorspace** | when true, imgproxy will process images in linear colorspace. This will slow down processing. Note that images won’t be fully processed in linear colorspace while shrink-on-load is enabled (see below) | `false` |
| **features.miscellaneous.disableShrinkOnLoad** | when true, disables shrink-on-load for JPEG and WebP. Allows to process the whole image in linear colorspace but dramatically slows down resizing and increases memory usage when working with large images | `false` |
| **features.miscellaneous.stripColorProfile** | when `true`, imgproxy will transform the embedded color profile (ICC) to sRGB and remove it from the image. | `true` |
| **features.miscellaneous.autoRotate** | when `true`, imgproxy will auto rotate images based on the EXIF Orientation parameter (if available in the image meta data). | `true` |
| **features.miscellaneous.stripMetadata** | whether to strip all metadata (EXIF, IPTC, etc.) from JPEG and WebP output images | `true` |
| **features.miscellaneous.keepCopyright** | When `true`, imgproxy will not remove copyright info while stripping metadata | `true` |
| **features.miscellaneous.enforceThumbnail** | When `true` and the source image has an embedded thumbnail, imgproxy will always use the embedded thumbnail instead of the main image. Currently, only thumbnails embedded in `heic` and `avif` are supported.| `false` |
| **features.miscellaneous.healthCheck.message** |The content of the health check response||
| **features.miscellaneous.healthCheck.path** |An additional path of the health check.||

### k8s deployment

Expand Down
4 changes: 2 additions & 2 deletions imgproxy/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ apiVersion: v1
description: A fast and secure standalone server for resizing and converting remote images. The main principles of imgproxy are simplicity, speed, and security.
name: imgproxy
icon: https://cdn.rawgit.com/imgproxy/imgproxy/master/logo.svg
version: 0.8.14
appVersion: 3.0.0.beta2
version: 0.8.15
appVersion: 3.5.0
keywords:
- imgproxy
- image
Expand Down
29 changes: 28 additions & 1 deletion imgproxy/templates/env-secret.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ data: {{- /* https://docs.imgproxy.net/#/configuration?id=url-signature */}}

{{- /* https://docs.imgproxy.net/#/configuration?id=server */}}
{{- with .Values.features.server }}
{{- if .name }}
IMGPROXY_SERVER_NAME: {{ .name | toString | b64enc | quote }} # {{ .name }}
{{- end }}
{{- if .readTimeout }}
IMGPROXY_READ_TIMEOUT: {{ .readTimeout | toString | b64enc | quote }} # {{ .readTimeout }}
{{- end }}
Expand Down Expand Up @@ -56,6 +59,9 @@ data: {{- /* https://docs.imgproxy.net/#/configuration?id=url-signature */}}
IMGPROXY_USER_AGENT: {{ .userAgent | toString | b64enc | quote }} # {{ .userAgent }}
{{- end }}
IMGPROXY_USE_ETAG: {{ .useEtag | empty | not | toString | b64enc | quote }} # {{ .useEtag | empty | not }}
{{- if .etagBuster }}
IMGPROXY_ETAG_BUSTER: {{ .etagBuster | toString | b64enc | quote }} # {{ .etagBuster }}
{{- end }}
{{- if .customRequestHeaders }}
IMGPROXY_CUSTOM_REQUEST_HEADERS: {{ .customRequestHeaders | toString | b64enc | quote }} # {{ .customRequestHeaders }}
{{- end }}
Expand All @@ -82,9 +88,12 @@ data: {{- /* https://docs.imgproxy.net/#/configuration?id=url-signature */}}
{{- if .maxAnimationFrames }}
IMGPROXY_MAX_ANIMATION_FRAMES: {{ .maxAnimationFrames | toString | b64enc | quote }} # {{ .maxAnimationFrames }}
{{- end }}
{{- if .maxSvgCheckBytes }}
{{- if (.maxSvgCheckBytes | int | lt 0) }}
IMGPROXY_MAX_SVG_CHECK_BYTES: {{ .maxSvgCheckBytes | toString | b64enc | quote }} # {{ .maxSvgCheckBytes }}
{{- end }}
{{- if (.maxRedirects | int | lt 0) }}
IMGPROXY_MAX_REDIRECTS: {{ .maxRedirects | toString | b64enc | quote }} # {{ .maxRedirects }}
{{- end }}
{{- if .allowOrigin }}
IMGPROXY_ALLOW_ORIGIN: {{ .allowOrigin | toString | b64enc | quote }} # {{ .allowOrigin }}
{{- end }}
Expand Down Expand Up @@ -269,6 +278,9 @@ data: {{- /* https://docs.imgproxy.net/#/configuration?id=url-signature */}}
{{- if .url }}
IMGPROXY_FALLBACK_IMAGE_URL: {{ .url | toString | b64enc | quote }} # {{ .url }}
{{- end }}
{{- if (.ttl | int | lt 0) }}
IMGPROXY_FALLBACK_IMAGE_TTL: {{ .ttl | toString | b64enc | quote }} # {{ .ttl }} sec
{{- end }}
{{- if (ge $.Values.image.tag "v3.0.0") }}
IMGPROXY_FALLBACK_IMAGE_HTTP_CODE: {{ .httpCode | default 200 | toString | b64enc | quote }} # {{ .httpCode | default 200 }}
IMGPROXY_FALLBACK_IMAGES_CACHE_SIZE: {{ .cacheSize | default 256 | toString | b64enc | quote }} # {{ .cacheSize | default 256 }}
Expand Down Expand Up @@ -316,6 +328,9 @@ data: {{- /* https://docs.imgproxy.net/#/configuration?id=url-signature */}}
{{- if .enabled }}
IMGPROXY_USE_GCS: {{ "true" | b64enc | quote }} # {{ "true" }}
IMGPROXY_GCS_KEY: {{ .jsonKey | required "features.gcs.jsonKey" | toString | b64enc | quote }} # {{ .jsonKey }}
{{- if .endpoint }}
IMGPROXY_GCS_ENDPOINT: {{ .endpoint | toString | b64enc | quote }} # {{ .endpoint }}
{{- end }}
{{- end }}
{{- end }}

Expand Down Expand Up @@ -480,7 +495,19 @@ data: {{- /* https://docs.imgproxy.net/#/configuration?id=url-signature */}}
IMGPROXY_DISABLE_SHRINK_ON_LOAD: {{ .disableShrinkOnLoad | toString | eq "false" | not | toString | b64enc | quote }} # {{ .disableShrinkOnLoad | toString | eq "false" | not }}
IMGPROXY_STRIP_METADATA: {{ .stripMetadata | toString | eq "false" | not | toString | b64enc | quote }} # {{ .stripMetadata | toString | eq "false" | not }}
IMGPROXY_STRIP_COLOR_PROFILE: {{ .stripColorProfile | toString | eq "false" | not | toString | b64enc | quote }} # {{ .stripColorProfile | toString | eq "false" | not }}
{{- if (.keepCopyright | toString | eq "false") }}
IMGPROXY_KEEP_COPYRIGHT: {{ "false" | b64enc | quote }} # false
{{- end }}
IMGPROXY_AUTO_ROTATE: {{ .autoRotate | empty | not | toString | b64enc | quote }} # {{ .autoRotate | empty | not }}
IMGPROXY_ENFORCE_THUMBNAIL: {{ .enforceThumbnail | toString | b64enc | quote }} # {{ .enforceThumbnail }}
{{- with (.healthCheck | default dict) }}
{{- if .message }}
IMGPROXY_HEALTH_CHECK_MESSAGE: {{ .message | toString | b64enc | quote }} # {{ .message }}
{{- end }}
{{- if .path }}
IMGPROXY_HEALTH_CHECK_PATH: {{ .path | toString | b64enc | quote }} # {{ .path }}
{{- end }}
{{- end }}
{{- end }}
{{- if .Values.features.custom }}
{{- range $key, $val := .Values.features.custom }}
Expand Down
44 changes: 43 additions & 1 deletion imgproxy/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Docker image repository, tag, policy and secrets for Kubernetes to pull it.
image:
repo: darthsim/imgproxy
tag: v3.0.0.beta2
tag: v3.5.0
pullPolicy: IfNotPresent
# create new image-pull-secret if enabled: true
pullSecrets:
Expand Down Expand Up @@ -314,6 +314,10 @@ features:
# When true, enables using ETag header for the cache control
useEtag: false

# ENV['IMGPROXY_ETAG_BUSTER']
# (v3.1+) Change this to change ETags for all the images.
etagBuster: ""

# ENV['IMGPROXY_CUSTOM_REQUEST_HEADERS']
# PRO: list of custom headers that imgproxy will send while requesting the source image, divided by \;
# (can be redefined by IMGPROXY_CUSTOM_HEADERS_SEPARATOR)
Expand All @@ -331,6 +335,10 @@ features:
# when true, imgproxy will add X-Origin-Content-Length header with the value is size of the source image.
enableDebugHeaders: false

# ENV['IMGPROXY_SERVER_NAME']
# (v3.3+, Pro) The Server header value. Default: `imgproxy`
name: ""

# https://docs.imgproxy.net/#/configuration?id=security
security:

Expand All @@ -356,6 +364,11 @@ features:
# If imgproxy can't recognize your SVG, try to increase this number.
maxSvgCheckBytes: "32768" # 32KB

# ENV['IMGPROXY_MAX_REDIRECTS']
# (v3.3+) Requests to some image sources may go through too many redirects or enter an infinite loop.
# The max number of redirects imgproxy can follow while requesting the source image.
maxRedirects: ""

# ENV['IMGPROXY_ALLOW_ORIGIN']
# when set, enables CORS headers with provided origin. CORS headers are disabled by default.
allowOrigin: false
Expand Down Expand Up @@ -676,6 +689,12 @@ features:
# (v3+) HTTP code for the fallback image response. Default: 200
httpCode: "200"

# ENV['IMGPROXY_FALLBACK_IMAGE_TTL']
# (v3.4+) A duration (in seconds) sent via the Expires and Cache-Control:
# max-age HTTP headers when a fallback image was used.
# When blank or 0, the value from IMGPROXY_TTL is used.
ttl: ""

# ENV['IMGPROXY_FALLBACK_IMAGES_CACHE_SIZE']
# PRO v3+: size of custom fallback images cache.
# When set to 0, fallback images cache is disabled.
Expand Down Expand Up @@ -740,6 +759,10 @@ features:
# Google Cloud JSON key.
jsonKey: ""

# ENV['IMGPROXY_GCS_ENDPOINT']
# (v3.4+) A custom Google Cloud Storage endpoint to being used by imgproxy.
endpoint: ""

# https://docs.imgproxy.net/#/configuration?id=serving-files-from-azure-blob-storage
abs:

Expand Down Expand Up @@ -976,6 +999,10 @@ features:
# when `true`, imgproxy will strip all metadata (EXIF, IPTC, etc.) from JPEG and WebP output images.
stripMetadata: true

# ENV['IMGPROXY_KEEP_COPYRIGHT']
# (v3.5+) When `true`, imgproxy will not remove copyright info while stripping metadata. Default: `true`
keepCopyright: true

# ENV['IMGPROXY_STRIP_COLOR_PROFILE']
# when `true`, imgproxy will transform the embedded color profile (ICC) to sRGB and remove it from the image. Otherwise, imgproxy will try to keep it as is.
stripColorProfile: true
Expand All @@ -984,6 +1011,21 @@ features:
# when `true`, imgproxy will auto rotate images based on the EXIF Orientation parameter (if available in the image meta data). The orientation tag will be removed from the image anyway.
autoRotate: true

# ENV['IMGPROXY_ENFORCE_THUMBNAIL']
# (v3.5+) When `true` and the source image has an embedded thumbnail, imgproxy will always use the embedded thumbnail instead of the main image.
# Currently, only thumbnails embedded in `heic` and `avif` are supported. Default: `false`
enforceThumbnail: false

healthCheck:

# ENV['IMGPROXY_HEALTH_CHECK_MESSAGE']
# (v3.3+, Pro) The content of the health check response
message: ""

# ENV['IMGPROXY_HEALTH_CHECK_PATH']
# (v3.3+) An additional path of the health check.
path: ""

# In this section you can add custom env variables
# to support newest features of imgproxy in the older versions of imgproxy-helm
#
Expand Down

0 comments on commit 9c6ae59

Please sign in to comment.