Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add proxy-related attributes to APIcast Staging and Production #668

Merged
merged 1 commit into from
Oct 25, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions apis/apps/v1alpha1/apimanager_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,24 @@ type ApicastProductionSpec struct {
// Enable TLS at APIcast pod level setting either `httpsPort` or `httpsCertificateSecretRef` fields or both.
// +optional
HTTPSCertificateSecretRef *v1.LocalObjectReference `json:"httpsCertificateSecretRef,omitempty"`
// AllProxy specifies a HTTP(S) proxy to be used for connecting to services if
// a protocol-specific proxy is not specified. Authentication is not supported.
// Format is <scheme>://<host>:<port>
// +optional
AllProxy *string `json:"allProxy,omitempty"` // ALL_PROXY
// HTTPProxy specifies a HTTP(S) Proxy to be used for connecting to HTTP services.
// Authentication is not supported. Format is <scheme>://<host>:<port>
// +optional
HTTPProxy *string `json:"httpProxy,omitempty"` // HTTP_PROXY
// HTTPSProxy specifies a HTTP(S) Proxy to be used for connecting to HTTPS services.
// Authentication is not supported. Format is <scheme>://<host>:<port>
// +optional
HTTPSProxy *string `json:"httpsProxy,omitempty"` // HTTPS_PROXY
// NoProxy specifies a comma-separated list of hostnames and domain
// names for which the requests should not be proxied. Setting to a single
// * character, which matches all hosts, effectively disables the proxy.
// +optional
NoProxy *string `json:"noProxy,omitempty"` // NO_PROXY
}

type ApicastStagingSpec struct {
Expand Down Expand Up @@ -271,6 +289,24 @@ type ApicastStagingSpec struct {
// Enable TLS at APIcast pod level setting either `httpsPort` or `httpsCertificateSecretRef` fields or both.
// +optional
HTTPSCertificateSecretRef *v1.LocalObjectReference `json:"httpsCertificateSecretRef,omitempty"`
// AllProxy specifies a HTTP(S) proxy to be used for connecting to services if
// a protocol-specific proxy is not specified. Authentication is not supported.
// Format is <scheme>://<host>:<port>
// +optional
AllProxy *string `json:"allProxy,omitempty"` // ALL_PROXY
// HTTPProxy specifies a HTTP(S) Proxy to be used for connecting to HTTP services.
// Authentication is not supported. Format is <scheme>://<host>:<port>
// +optional
HTTPProxy *string `json:"httpProxy,omitempty"` // HTTP_PROXY
// HTTPSProxy specifies a HTTP(S) Proxy to be used for connecting to HTTPS services.
// Authentication is not supported. Format is <scheme>://<host>:<port>
// +optional
HTTPSProxy *string `json:"httpsProxy,omitempty"` // HTTPS_PROXY
// NoProxy specifies a comma-separated list of hostnames and domain
// names for which the requests should not be proxied. Setting to a single
// * character, which matches all hosts, effectively disables the proxy.
// +optional
NoProxy *string `json:"noProxy,omitempty"` // NO_PROXY
}

type BackendSpec struct {
Expand Down
40 changes: 40 additions & 0 deletions apis/apps/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions bundle/manifests/apps.3scale.net_apimanagers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,9 @@ spec:
type: array
type: object
type: object
allProxy:
description: AllProxy specifies a HTTP(S) proxy to be used for connecting to services if a protocol-specific proxy is not specified. Authentication is not supported. Format is <scheme>://<host>:<port>
type: string
customEnvironments:
description: CustomEnvironments specifies an array of defined custom environments to be loaded
items:
Expand Down Expand Up @@ -423,6 +426,9 @@ spec:
- version
type: object
type: array
httpProxy:
description: HTTPProxy specifies a HTTP(S) Proxy to be used for connecting to HTTP services. Authentication is not supported. Format is <scheme>://<host>:<port>
type: string
httpsCertificateSecretRef:
description: HTTPSCertificateSecretRef references secret containing the X.509 certificate in the PEM format and the X.509 certificate secret key. Enable TLS at APIcast pod level setting either `httpsPort` or `httpsCertificateSecretRef` fields or both.
properties:
Expand All @@ -434,6 +440,9 @@ spec:
description: HttpsPort controls on which port APIcast should start listening for HTTPS connections. If this clashes with HTTP port it will be used only for HTTPS. Enable TLS at APIcast pod level setting either `httpsPort` or `httpsCertificateSecretRef` fields or both.
format: int32
type: integer
httpsProxy:
description: HTTPSProxy specifies a HTTP(S) Proxy to be used for connecting to HTTPS services. Authentication is not supported. Format is <scheme>://<host>:<port>
type: string
httpsVerifyDepth:
description: HTTPSVerifyDepth defines the maximum length of the client certificate chain.
format: int64
Expand All @@ -450,6 +459,9 @@ spec:
- alert
- emerg
type: string
noProxy:
description: NoProxy specifies a comma-separated list of hostnames and domain names for which the requests should not be proxied. Setting to a single * character, which matches all hosts, effectively disables the proxy.
type: string
openTracing:
description: OpenTracing contains the OpenTracing integration configuration with APIcast in the production environment.
properties:
Expand Down Expand Up @@ -866,6 +878,9 @@ spec:
type: array
type: object
type: object
allProxy:
description: AllProxy specifies a HTTP(S) proxy to be used for connecting to services if a protocol-specific proxy is not specified. Authentication is not supported. Format is <scheme>://<host>:<port>
type: string
customEnvironments:
description: CustomEnvironments specifies an array of defined custom environments to be loaded
items:
Expand Down Expand Up @@ -906,6 +921,9 @@ spec:
- version
type: object
type: array
httpProxy:
description: HTTPProxy specifies a HTTP(S) Proxy to be used for connecting to HTTP services. Authentication is not supported. Format is <scheme>://<host>:<port>
type: string
httpsCertificateSecretRef:
description: HTTPSCertificateSecretRef references secret containing the X.509 certificate in the PEM format and the X.509 certificate secret key. Enable TLS at APIcast pod level setting either `httpsPort` or `httpsCertificateSecretRef` fields or both.
properties:
Expand All @@ -917,6 +935,9 @@ spec:
description: HttpsPort controls on which port APIcast should start listening for HTTPS connections. If this clashes with HTTP port it will be used only for HTTPS. Enable TLS at APIcast pod level setting either `httpsPort` or `httpsCertificateSecretRef` fields or both.
format: int32
type: integer
httpsProxy:
description: HTTPSProxy specifies a HTTP(S) Proxy to be used for connecting to HTTPS services. Authentication is not supported. Format is <scheme>://<host>:<port>
type: string
httpsVerifyDepth:
description: HTTPSVerifyDepth defines the maximum length of the client certificate chain.
format: int64
Expand All @@ -933,6 +954,9 @@ spec:
- alert
- emerg
type: string
noProxy:
description: NoProxy specifies a comma-separated list of hostnames and domain names for which the requests should not be proxied. Setting to a single * character, which matches all hosts, effectively disables the proxy.
type: string
openTracing:
description: OpenTracing contains the OpenTracing integration configuration with APIcast in the staging environment.
properties:
Expand Down
44 changes: 44 additions & 0 deletions config/crd/bases/apps.3scale.net_apimanagers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -687,6 +687,12 @@ spec:
type: array
type: object
type: object
allProxy:
description: AllProxy specifies a HTTP(S) proxy to be used
for connecting to services if a protocol-specific proxy
is not specified. Authentication is not supported. Format
is <scheme>://<host>:<port>
type: string
customEnvironments:
description: CustomEnvironments specifies an array of defined
custom environments to be loaded
Expand Down Expand Up @@ -739,6 +745,11 @@ spec:
- version
type: object
type: array
httpProxy:
description: HTTPProxy specifies a HTTP(S) Proxy to be used
for connecting to HTTP services. Authentication is not supported.
Format is <scheme>://<host>:<port>
type: string
httpsCertificateSecretRef:
description: HTTPSCertificateSecretRef references secret containing
the X.509 certificate in the PEM format and the X.509 certificate
Expand All @@ -758,6 +769,11 @@ spec:
fields or both.
format: int32
type: integer
httpsProxy:
description: HTTPSProxy specifies a HTTP(S) Proxy to be used
for connecting to HTTPS services. Authentication is not
supported. Format is <scheme>://<host>:<port>
type: string
httpsVerifyDepth:
description: HTTPSVerifyDepth defines the maximum length of
the client certificate chain.
Expand All @@ -775,6 +791,12 @@ spec:
- alert
- emerg
type: string
noProxy:
description: NoProxy specifies a comma-separated list of hostnames
and domain names for which the requests should not be proxied.
Setting to a single * character, which matches all hosts,
effectively disables the proxy.
type: string
openTracing:
description: OpenTracing contains the OpenTracing integration
configuration with APIcast in the production environment.
Expand Down Expand Up @@ -1525,6 +1547,12 @@ spec:
type: array
type: object
type: object
allProxy:
description: AllProxy specifies a HTTP(S) proxy to be used
for connecting to services if a protocol-specific proxy
is not specified. Authentication is not supported. Format
is <scheme>://<host>:<port>
type: string
customEnvironments:
description: CustomEnvironments specifies an array of defined
custom environments to be loaded
Expand Down Expand Up @@ -1577,6 +1605,11 @@ spec:
- version
type: object
type: array
httpProxy:
description: HTTPProxy specifies a HTTP(S) Proxy to be used
for connecting to HTTP services. Authentication is not supported.
Format is <scheme>://<host>:<port>
type: string
httpsCertificateSecretRef:
description: HTTPSCertificateSecretRef references secret containing
the X.509 certificate in the PEM format and the X.509 certificate
Expand All @@ -1596,6 +1629,11 @@ spec:
fields or both.
format: int32
type: integer
httpsProxy:
description: HTTPSProxy specifies a HTTP(S) Proxy to be used
for connecting to HTTPS services. Authentication is not
supported. Format is <scheme>://<host>:<port>
type: string
httpsVerifyDepth:
description: HTTPSVerifyDepth defines the maximum length of
the client certificate chain.
Expand All @@ -1613,6 +1651,12 @@ spec:
- alert
- emerg
type: string
noProxy:
description: NoProxy specifies a comma-separated list of hostnames
and domain names for which the requests should not be proxied.
Setting to a single * character, which matches all hosts,
effectively disables the proxy.
type: string
openTracing:
description: OpenTracing contains the OpenTracing integration
configuration with APIcast in the staging environment.
Expand Down
9 changes: 9 additions & 0 deletions doc/apimanager-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,11 @@ Generated using [github-markdown-toc](https://github.com/ekalinin/github-markdow
| HTTPSPort | `httpsPort` | int | No | **8443** only when `httpsCertificateSecretRef` is provided | Controls on which port APIcast should start listening for HTTPS connections. Do not use `8080` as HTTPS port (see [docs](https://github.com/3scale/APIcast/blob/master/doc/parameters.md#apicast_https_port)) |
| HTTPSVerifyDepth | `httpsVerifyDepth` | int | No | N/A | Defines the maximum length of the client certificate chain. (see [docs](https://github.com/3scale/APIcast/blob/master/doc/parameters.md#apicast_https_verify_depth)) |
| HTTPSCertificateSecretRef | `httpsCertificateSecretRef` | LocalObjectReference | No | APIcast has a default certificate used when `httpsPort` is provided | References secret containing the X.509 certificate in the PEM format and the X.509 certificate secret key |
| AllProxy | `allProxy` | string | No | N/A | Specifies a HTTP(S) proxy to be used for connecting to services if a protocol-specific proxy is not specified. Authentication is not supported. Format is: `<scheme>://<host>:<port>` (see [docs](https://github.com/3scale/APIcast/blob/master/doc/parameters.md#all_proxy-all_proxy)) |
| HTTPProxy | `httpProxy` | string | No | N/A | Specifies a HTTP(S) Proxy to be used for connecting to HTTP services. Authentication is not supported. Format is: `<scheme>://<host>:<port>` (see [docs](https://github.com/3scale/APIcast/blob/master/doc/parameters.md#http_proxy-http_proxy)) |
| HTTPSProxy | `httpsProxy` | string | No | N/A | Specifies a HTTP(S) Proxy to be used for connecting to HTTPS services. Authentication is not supported. Format is: `<scheme>://<host>:<port>` (see [docs](https://github.com/3scale/APIcast/blob/master/doc/parameters.md#https_proxy-https_proxy)) |
| NoProxy | `noProxy` | string | No | N/A | Specifies a comma-separated list of hostnames and domain names for which the requests should not be proxied. Setting to a single `*` character, which matches all hosts, effectively disables the proxy (see [docs](https://github.com/3scale/APIcast/blob/master/doc/parameters.md#no_proxy-no_proxy)) |


### ApicastStagingSpec

Expand All @@ -129,6 +134,10 @@ Generated using [github-markdown-toc](https://github.com/ekalinin/github-markdow
| HTTPSPort | `httpsPort` | int | No | **8443** only when `httpsCertificateSecretRef` is provided | Controls on which port APIcast should start listening for HTTPS connections. Do not use `8080` as HTTPS port (see [docs](https://github.com/3scale/APIcast/blob/master/doc/parameters.md#apicast_https_port)) |
| HTTPSVerifyDepth | `httpsVerifyDepth` | int | No | N/A | Defines the maximum length of the client certificate chain. (see [docs](https://github.com/3scale/APIcast/blob/master/doc/parameters.md#apicast_https_verify_depth)) |
| HTTPSCertificateSecretRef | `httpsCertificateSecretRef` | LocalObjectReference | No | APIcast has a default certificate used when `httpsPort` is provided | References secret containing the X.509 certificate in the PEM format and the X.509 certificate secret key |
| AllProxy | `allProxy` | string | No | N/A | Specifies a HTTP(S) proxy to be used for connecting to services if a protocol-specific proxy is not specified. Authentication is not supported. Format is: `<scheme>://<host>:<port>` (see [docs](https://github.com/3scale/APIcast/blob/master/doc/parameters.md#all_proxy-all_proxy)) |
| HTTPProxy | `httpProxy` | string | No | N/A | Specifies a HTTP(S) Proxy to be used for connecting to HTTP services. Authentication is not supported. Format is: `<scheme>://<host>:<port>` (see [docs](https://github.com/3scale/APIcast/blob/master/doc/parameters.md#http_proxy-http_proxy)) |
| HTTPSProxy | `httpsProxy` | string | No | N/A | Specifies a HTTP(S) Proxy to be used for connecting to HTTPS services. Authentication is not supported. Format is: `<scheme>://<host>:<port>` (see [docs](https://github.com/3scale/APIcast/blob/master/doc/parameters.md#https_proxy-https_proxy)) |
| NoProxy | `noProxy` | string | No | N/A | Specifies a comma-separated list of hostnames and domain names for which the requests should not be proxied. Setting to a single `*` character, which matches all hosts, effectively disables the proxy (see [docs](https://github.com/3scale/APIcast/blob/master/doc/parameters.md#no_proxy-no_proxy)) |

### CustomPolicySpec

Expand Down
Loading