ProxyAuthK8s Docs

Custom Resource Definitions

Last updated on

API Reference

Packages:

weebo.si.rs/v1

Resource Types:

ProxyKubeApi

↩ Parent

Auto-generated derived type for ProxyKubeApiSpec via CustomResource

NameTypeDescriptionRequired
apiVersionstringweebo.si.rs/v1true
kindstringProxyKubeApitrue
metadataobjectRefer to the Kubernetes API documentation for the fields of the metadata field.true
specobject
true
statusobject
false

ProxyKubeApi.spec

↩ Parent
NameTypeDescriptionRequired
certobject

Certificate for the Kubernetes API

true
serviceobject

Service to expose the proxy

true
auth_configobject

Main configuration for authentication

false
dashboard_groupstring

If the proxy exposition is accessible via the dashboard the oidc group that allow access to the dashboard, should be unique Default: to the resource namespace + resource name

false
enabledboolean

Enable or disable the proxy


Default: true

false
expose_via_dashboardboolean

If the proxy exposition should be accessible via the Dashboard Default: false


Default: true

false
security_configobject

Security configuration

false

ProxyKubeApi.spec.cert

↩ Parent

Certificate for the Kubernetes API

NameTypeDescriptionRequired
Certstring

Base64 encoded cert

false
ConfigMapobject

Configmap

false
Insecureboolean

Insecure, do not use TLS

false
Secretobject

Use a cert from a secret

false

ProxyKubeApi.spec.cert.ConfigMap

↩ Parent

Configmap

NameTypeDescriptionRequired
keystring
true
namestring
true
namespacestring
false

ProxyKubeApi.spec.cert.Secret

↩ Parent

Use a cert from a secret

NameTypeDescriptionRequired
keystring
true
namestring
true
namespacestring
false

ProxyKubeApi.spec.service

↩ Parent

Service to expose the proxy

NameTypeDescriptionRequired
ExternalServiceobject

External service

false
KubernetesServiceobject

Kubernetes service

false

ProxyKubeApi.spec.service.ExternalService

↩ Parent

External service

NameTypeDescriptionRequired
urlstring

URL of the external service (e.g. https://example.com)

true

ProxyKubeApi.spec.service.KubernetesService

↩ Parent

Kubernetes service

NameTypeDescriptionRequired
namestring

Name of the service

true
namespacestring

If not set, will use the resource namespace

false
portinteger

Port of the service


Format: uint16
Minimum: 0
Maximum: 65535

false
port_namestring

Port name of the service

false

ProxyKubeApi.spec.auth_config

↩ Parent

Main configuration for authentication

NameTypeDescriptionRequired
oidc_providerobject
true
disable_validationboolean

Disable validation of the token against the configured JWT authenticators, OIDC provider or Kubernetes API If the AuthenticationConfiguration is not provided, does not validate the token against any of the configured JWT authenticators, OIDC provider or Kubernetes API Default : false


Default: false

false
jwt[]object

Default: []

false
validate_againstenum

Validate against the configured JWT authenticators, OIDC provider or Kubernetes API Default : OidcProvider if enabled, otherwise JwtAuthenticators if configured, otherwise Kubernetes


Enum: OidcProvider, Kubernetes
Default: Kubernetes

false

ProxyKubeApi.spec.auth_config.oidc_provider

↩ Parent
NameTypeDescriptionRequired
client_idstring
true
issuer_urlstring
true
client_secretstring
false
enabledboolean

Default: false

false
extra_scopestring

Default:

false

ProxyKubeApi.spec.auth_config.jwt[index]

↩ Parent
NameTypeDescriptionRequired
claim_mappingsobject
true
claim_validation_rules[]object
true
issuerobject
true
user_validation_rules[]object
true

ProxyKubeApi.spec.auth_config.jwt[index].claim_mappings

↩ Parent
NameTypeDescriptionRequired
extra[]object
true
groupsobject
false
uidobject
false
usernameobject
false

ProxyKubeApi.spec.auth_config.jwt[index].claim_mappings.extra[index]

↩ Parent
NameTypeDescriptionRequired
keystring
true
value_expressionstring
true

ProxyKubeApi.spec.auth_config.jwt[index].claim_mappings.groups

↩ Parent
NameTypeDescriptionRequired
claimstring
true
expressionstring
true
prefixstring
false

ProxyKubeApi.spec.auth_config.jwt[index].claim_mappings.uid

↩ Parent
NameTypeDescriptionRequired
claimstring
false
expressionstring
false

ProxyKubeApi.spec.auth_config.jwt[index].claim_mappings.username

↩ Parent
NameTypeDescriptionRequired
claimstring
true
expressionstring
true
prefixstring
false

ProxyKubeApi.spec.auth_config.jwt[index].claim_validation_rules[index]

↩ Parent
NameTypeDescriptionRequired
claimstring
true
expressionstring
true
messagestring
true
required_valuestring
true

ProxyKubeApi.spec.auth_config.jwt[index].issuer

↩ Parent
NameTypeDescriptionRequired
audience_match_policyenum

Enum: MatchAny

true
audiences[]string
true
egress_selectorenum

Enum: controlplane, cluster

true
urlstring
true
certificate_authoritystring
false
discovery_urlstring
false

ProxyKubeApi.spec.auth_config.jwt[index].user_validation_rules[index]

↩ Parent
NameTypeDescriptionRequired
expressionstring
true
messagestring
true

ProxyKubeApi.spec.security_config

↩ Parent

Security configuration

NameTypeDescriptionRequired
allowed_ressources[]object

Allowed resources, limit the access to the proxy to only these resources, if empty all resources are allowed

true
enabledboolean

Whether the token is validated beforehand


Default: true

false

ProxyKubeApi.spec.security_config.allowed_ressources[index]

↩ Parent

Enum of the allowed paths configuration, currently only supports path and crd, but can be extended in the future

NameTypeDescriptionRequired
Pathobject

Allowed path configuration, used in conjunction with the allowed_paths configuration

false

ProxyKubeApi.spec.security_config.allowed_ressources[index].Path

↩ Parent

Allowed path configuration, used in conjunction with the allowed_paths configuration

NameTypeDescriptionRequired
pathstring

The path to allow, if the request path equals this path, it will be allowed

true
parametisedboolean

Wether or not the path is parametised if true, the path will be treated as a template, it either handle wildcard parameters, like "" or "dev-", or mustache-like parameters, like "{{username}}" or "{{group}}" for example, if the path is "/api/v1/namespaces//pods", it will allow all requests to pods in any namespace if the path is "/api/v1/namespaces/dev-/pods", it will allow all requests to pods in namespaces that start with "dev-" It will also try to detect mustache-like parameters, for example, if the path is "/api/v1/namespaces/{{username}}/pods" it will allow all requests to pods in namespaces carrying the username as a parameter if the selected field is an array, like the groups claim, it will try to match any of the values in the array for example, if the groups claim is ["dev-alice", "dev-bob"] and the path is "/api/v1/namespaces/{{group}}/pods", it will allow all requests to pods in namespaces that match either "dev-alice" or "dev-bob" Allowed parameters are : {{username}} and {{group}} default: false


Default: false

false

ProxyKubeApi.status

↩ Parent
NameTypeDescriptionRequired
exposedboolean
true
errorstring
false
pathstring
false

Have feedback?

Share on GitHub

On this page