Skip to content

Commit

Permalink
Add proxy-related attributes to APIcast Staging and Production
Browse files Browse the repository at this point in the history
  • Loading branch information
miguelsorianod committed Oct 25, 2021
1 parent 963ce90 commit 6a730fa
Show file tree
Hide file tree
Showing 9 changed files with 235 additions and 0 deletions.
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

0 comments on commit 6a730fa

Please sign in to comment.