Marivanna
Описание
Marivanna - это сервис для анализа Android-приложений методом байт-код анализа.
Функциональные возможности
Проведение статического анализа приложения.
Используемые топики
Переменная marivanna.1.0.taskEvents
, используется для уведомления о состоянии сканирования.
БД
Redis.
Переменные сервиса
REST API container
С таблицами переменных доступа и настроек логирования можно ознакомиться в разделах «Доступ к S3», «Доступ к Redis», «Доступ к Kafka», «Настройки логирования».
Worker container
С таблицами переменных доступа и настроек логирования можно ознакомиться в разделах «Доступ к S3», «Доступ к Redis», «Доступ к Kafka», «Настройки логирования».
Настройки сервиса:
Имя переменной | Описание | Примечание | Варианты значений | Обязательно | Пример значения | Значение в values |
---|---|---|---|---|---|---|
STG_MARIANA_CONF_DIR |
Директория с конфигами mariana | Если не указывать, будет применяться дефолтный путь - /app/mariana-trench |
- | Нет | /app/mariana-trench |
- |
Схема интеграции сервиса Marivanna
Шаг 1. Получение авторизационного токена. Бэкенд монолита, используя переданные ему client_id
и client_secret
, авторизуется в Keycloak и получает access_token
.
Шаг 2. Отправка запроса в сервис Marivanna. Запрос снабжается Authorization-заголовком, содержащим полученный access_token
.
Шаг 3. Проверка входящего запроса на наличие валидного Authorization-заголовка.
Шаг 4.1. Запрос далее перенаправляется в целевой сервис (Marivanna).
Шаг 4.2. В случае невалидного Authorization-заголовка (или его отсутствия), монолиту возвращается HTTP 401
.
Организация сетевого доступа
Необходимо настроить сетевую инфраструктуру таким образом, чтобы монолиту были доступны следующие ресурсы:
- Keycloak/Platform V IAM.
- Ingress (MinIO-api, OAuth2, Keycloak, а также микросервис, который закрыт backend-auth аннотацией).
Эти ресурсы должны быть доступны по протоколам и портам, соответствующим тем URL, которые были переданы в переменные окружения MARIVANNA_BASE_URL
и STINGRAY_SERVICES_AUTH_URL
, см. раздел «Stingray (действующий монолит)».
Первичная настройка
Дефолтные значения представлены в документации с чартом README.md.
Настройка Redis
Для настройки Redis необходимо предоставить доступ к Redis, развёрнутому в инфраструктуре и включающему следующие параметры:
- FQDN сервера.
- TCP порт для подключения.
- Redis namespace.
- Имя пользователя.
- Пароль.
Значения параметров 1, 2, 3 и 4 необходимо включить в файл values.yaml нашего Helm chart, параметры:
marivanna.redis.stgRedisHost
.marivanna.redis.stgRedisPort
.marivanna.redis.stgRedisNamespace
.marivanna.redis.stgRedisUser
.
Примечание
Значение параметра 5 необходимо включить в состав секретов.
У пользователя должны быть включены следующие права доступа: GET, SET, DELETE, RPOP, BRPOP, LPUSH.
Настройка Kafka
Для настройки Kafka необходимо предоставить доступ к Kafka, развёрнутому в инфраструктуре и включающему следующие параметры:
-
Если Kafka использует анонимный доступ, то:
- адреса брокеров Kafka;
- топик для нотификаций S3.
-
Если Kafka использует авторизацию, то:
- адреса брокеров Kafka;
- топик для нотификаций S3;
- имя пользователя Kafka;
- пароль пользователя Kafka;
- SASL mechanism.
Настройка S3
Для настройки S3 необходимо развернуть S3-хранилище.
Примечание
В данной документации предполагается использование MinIO.
При установке MinIO необходимо задать параметры нотификаций о событиях в Kafka, а именно переменные окружения:
-
Если Kafka использует анонимный доступ, то:
MINIO_NOTIFY_KAFKA_ENABLE_NO_AUTH=on
.MINIO_NOTIFY_KAFKA_BROKERS_NO_AUTH
- адреса брокеров Kafka.MINIO_NOTIFY_KAFKA_TOPIC_NO_AUTH
- топик для нотификаций S3.
-
Если Kafka использует авторизацию, то:
MINIO_NOTIFY_KAFKA_ENABLE=on
.MINIO_NOTIFY_KAFKA_BROKERS
- адреса брокеров Kafka.MINIO_NOTIFY_KAFKA_TOPIC
- топик для нотификаций S3.MINIO_NOTIFY_KAFKA_SASL_USERNAME
- имя пользователя Kafka.MINIO_NOTIFY_KAFKA_SASL_PASSWORD
- пароль пользователя Kafka.MINIO_NOTIFY_KAFKA_SASL_MECHANISM
- SASL mechanism.
Также необходимо создать бакет и ключи для авторизации в S3 API.
Необходимо предоставить доступ к S3-сервису, развёрнутому в инфраструктуре и включающему следующие параметры:
- URL для подключений к S3 API.
- Название бакета.
- Название региона.
- AWS access key.
- AWS secret key.
Значения параметров 1, 2 и 3 необходимо включить в файл values.yaml нашего Helm chart, параметры:
marivanna.s3.stgS3EndpointUrl
;marivanna.s3.stgS3Bucket
;marivanna.s3.stgS3Region
.
Примечание
Значение параметров 4 и 5 необходимо включить в состав секретов.
Настройка OAuth2-proxy
Шаги по настройке OAuth2-proxy описаны в соответствующем разделе.
Примечание
Настройка OAuth2-proxy не входит непосредственно в установку сервиса Marivanna. При этом правильная настройка OAuth2-proxy является необходимым условием для интеграции сервиса Marivanna.
Настройка авторизации
Шаги по настройке авторизации описаны в соответствующем разделе.
Настройка Ingress
Для настройки Ingress на проксирование трафика к OAuth2-proxy и Marivanna сервису необходимо внести следующие изменения в values.yaml:
marivanna:
ingress:
enabled: true
className: nginx-internal
annotations:
nginx.ingress.kubernetes.io/preserve-trailing-slash: "true"
nginx.ingress.kubernetes.io/auth-url: https://oauth2-proxy.cluster.local/oauth2/auth
nginx.ingress.kubernetes.io/auth-response-headers: x-authrequest-access-token
nginx.ingress.kubernetes.io/proxy-buffer-size: 16k
nginx.ingress.kubernetes.io/proxy-body-size: 500m
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
hosts:
- host: marivanna.cluster.local
paths:
- path: /
pathType: ImplementationSpecific
tls:
- secretName: XXX
hosts:
- marivanna.cluster.local
-------------------------------------------------------------------------------------------------
oauth2-proxy:
ingress:
enabled: true
className: nginx-internal
annotations:
nginx.ingress.kubernetes.io/proxy-buffer-size: 16k
hosts:
- host: oauth2-proxy.cluster.local
paths:
- path: /
pathType: ImplementationSpecific
tls:
- secretName: k8s-secret
hosts:
- oauth2-proxy.cluster.local
Необходимо указать актуальный ingress class
, tls secrets
для https
, актуальные hosts
, в аннотации marivanna auth-url
указать Ingress oauth2-proxy host
и /oauth2/auth
.
Конфигурация сервисов
Stingray (действующий монолит)
Необходимо пробросить следующие переменные окружения в backend-контейнер:
-
MARIVANNA_CLIENT_ID
- client_id OAUTH2-клиента, созданного для авторизации доступа из монолита к Marivanna-сервису. -
MARIVANNA_CLIENT_SECRET
- client_secret OAUTH2-клиента, созданного для авторизации доступа из монолита к Marivanna-сервису. -
MARIVANNA_BASE_URL
- URL, запросы на который проксируются с помощью Ingress в Marivanna-сервис. -
STINGRAY_SERVICES_AUTH_URL
- URL, запросы на который проксируются с помощью Ingress в Keycloak token API (например,https://keycloak.dev.company.ru/realms/stingray/protocol/openid-connect/token
) / Platform V IAM.
После этого необходимо выполнить перезапуск:
docker exec stingray-maintenance django-admin maintenance engines preserve
docker-compose down
docker-compose up -d
docker exec stingray-maintenance django-admin maintenance engines recreate
Деплой сервисов
Для деплоя сервисов необходимо заполнить следующие параметры в values.yaml:
marivanna:
# marivanna.enabled -- Enable/Disable marivanna service
enabled: true
# marivanna.replicaCount -- Number of replica marivanna service
replicaCount: 1
image:
# marivanna.image.registry -- Registry place image marivanna service
registry: cr.yandex
# marivanna.image.repository -- Repository place image marivanna service
repository: stingray/marivanna
# marivanna.image.tag -- Tag image marivanna service
tag: latest
# marivanna.image.pullPolicy -- Pull policy marivanna service (IfNotPresent / Always / Never )
pullPolicy: IfNotPresent
# marivanna.image.debug -- Enable/Disable debug mode
debug: 0
redis:
# marivanna.redis.stgRedisHost -- FQDN Redis server
stgRedisHost: redis.cluster.local
# marivanna.redis.stgRedisPort -- Redis port (default 6379)
stgRedisPort: 6379
# marivanna.redis.stgRedisNamespace -- Redis namespace (default 0)
stgRedisNamespace: 0
# marivanna.redis.stgRedisUser -- Redis username connect
stgRedisUser: stingray-user
# marivanna.redis.stgRedisPass -- Redis password secrets from env
stgRedisPass: XXX
s3:
# marivanna.s3.stgS3EndpointURL -- URL adress API S3 storage
stgS3EndpointURL: https://minio-api.cluster.local
# marivanna.s3.stgS3Bucket -- Default Bucket s3 work
stgS3Bucket: stingray
# marivanna.s3.stgS3AccessKey -- Access Key API compliant s3 storage aka AWS_ACCESS_KEY_ID
stgS3AccessKey: XX
# marivanna.s3.stgS3SecretKey -- Secret Key API compliant s3 storage aka AWS_SECRET_ACCESS_KEY
stgS3SecretKey: XXXX
# marivanna.s3.stgS3Region -- The Default region name identifies the AWS Region whose servers you want to send your requests to by default. aka AWS_DEFAULT_REGION default values us-west-2
stgS3Region: yandex-stingray-1
# marivanna.imagePullSecrets -- Secrets of extracting an image from a private registry
# imagePullSecrets:
# - name: registrypullsecret
mode:
file:
enabled: true
config:
name: "conf.cfg"
path: "/configs"
secrets:
name: "secrets.cfg"
path: "/secrets"
env:
enabled: false # marivanna.serviceAccount -- Default service account
serviceAccount:
create: true
automount: true
annotations: {}
name: ""
# marivanna.podAnnotations -- Custom pod annotations
podAnnotations: {}
# marivanna.podLabels -- Custom pod labels
podLabels: {}
# marivanna.podSecurityContext -- Custom pod security context
podSecurityContext: {}
securityContext:
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000
service:
# marivanna.service.type -- Service type marivanna
type: ClusterIP
# marivanna.service.port -- Port forward service
port: 8000
ingress:
# marivanna.ingress.enable -- Enable/Disable ingress marivanna service
enabled: true
# marivanna.className Ingress class use marivanna service
className: nginx-internal
annotations:
nginx.ingress.kubernetes.io/preserve-trailing-slash: "true"
nginx.ingress.kubernetes.io/auth-url: https://oauth2-proxy.k8s.stingray.dev/oauth2/auth
nginx.ingress.kubernetes.io/auth-response-headers: x-authrequest-access-token
nginx.ingress.kubernetes.io/proxy-buffer-size: 16k
nginx.ingress.kubernetes.io/proxy-body-size: 500m
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
hosts:
- host: marivanna.cluster.local
paths:
- path: /
pathType: ImplementationSpecific
tls:
- secretName: XXX
hosts:
- marivanna.cluster.local
resources:
rest:
limits:
cpu: 200m
memory: 1Gi
requests:
cpu: 100m
memory: 256Mi
worker:
limits:
cpu: 3000m
memory: 14Gi
requests:
cpu: 300m
memory: 6Gi
nodeSelector:
# marivanna.nodeSelector.node-group -- Example node selector
node-group: internal
oauth2-proxy:
# oauth2-proxy.enable -- Enable/Disable oauth2-proxy service
enabled: true
namespaceOverride: ""
# oauth2-proxy.kubeVersion -- Force the target Kubernetes version (it uses Helm `.Capabilities` if not set).
kubeVersion: null
# oauth2-proxy.config -- Oauth client configuration specifics
config:
annotations: {}
clientID: "client-id-keycloak-client-oauth2"
clientSecret: "client-secret-keycloak-client-oauth2"
cookieSecret: "(сгенерировать с помощью команды openssl rand -base64 32 | head -c 32 | base64 )"
configFile: |-
provider = "keycloak-oidc"
provider_display_name = "Keycloak"
oidc_issuer_url = "https://keycloak.cluster.local/realms/stingray"
email_domains = [ "*" ]
insecure_oidc_allow_unverified_email = true
skip_jwt_bearer_tokens = true
code_challenge_method = "S256"
set_xauthrequest = true
set_authorization_header = true
cookie_secure = true
cookie_domains = [ ".cluster.local" ]
whitelist_domains = [ "*.cluster.local:*" ]
skip_auth_routes = [ "/internal/.*" ]
cookie_refresh = "1m"
cookie_expire = "10m"
alphaConfig:
# oauth2-proxy.alphaConfig.enabled -- Enable/Disable oauth2-proxy alphaConfig
enabled: false
# oauth2-proxy.alphaConfig.annotations -- Add config annotations annotations: {}
# oauth2-proxy.alphaConfig.serverConfigData -- Arbitrary configuration data to append to the server section
serverConfigData: {}
# oauth2-proxy.alphaConfig.metricsConfigData -- Arbitrary configuration data to append to the metrics section
metricsConfigData: {}
# oauth2-proxy.alphaConfig.configData -- Arbitrary configuration data to append
configData: {}
# oauth2-proxy.alphaConfig.configFile -- Arbitrary configuration to append
# This is treated as a Go template and rendered with the root context
configFile: ""
# oauth2-proxy.alphaConfig.existingConfig -- Use an existing config map (see secret-alpha.yaml for required fields)
existingConfig: null
# oauth2-proxy.alphaConfig.existingSecret -- Use an existing secret
existingSecret: null
image:
# oauth2-proxy.image.repository -- Repository place image oauth2-proxy service
repository: quay.io/oauth2-proxy/oauth2-proxy
# oauth2-proxy.image.tag -- Tag image oauth2-proxy service
tag: ""
# oauth2-proxy.image.pullPolicy -- Pull policy image oauth2-proxy service
pullPolicy: IfNotPresent
# oauth2-proxy.extraArgs -- Extra arguments for oauth2-proxy service
extraArgs:
- "--config=/etc/oauth2_proxy/oauth2_proxy.cfg"
# oauth2-proxy.extraEnv -- Extra environment variables for oauth2-proxy
service
extraEnv: []
# oauth2-proxy.customLabels -- Custom labels to add into metadata
customLabels: {}
# To authorize individual email addresses
# That is part of extraArgs but since this needs special treatment we
need to do a separate section
authenticatedEmailsFile:
enabled: false
# oauth2-proxy.authenticatedEmailsFile.persistence -- Defines how the email addresses file will be projected, via a configmap or secret
persistence: configmap
# oauth2-proxy.authenticatedEmailsFile.template -- template is the name of the configmap what contains the email user list but has been configured without this chart.
template: ""
# oauth2-proxy.authenticatedEmailsFile.restrictedUserAccessKey -- The configmap/secret key under which the list of email access is stored
# Defaults to "restricted_user_access" if not filled-in, but can be overridden to allow flexibility
restrictedUserAccessKey: ""
# oauth2-proxy.authenticatedEmailsFile.restricted_access -- If you override the config with restricted_access it will configure a user list within this chart what takes care of the
# config map resource.
restricted_access: ""
annotations: {}
# helm.sh/resource-policy: keep
service:
# oauth2-proxy.service.type -- Service type oauth2-proxy
type: ClusterIP
# oauth2-proxy.service.portNumber -- Service port number oauth2-proxy
portNumber: 80
# oauth2-proxy.service.appProtocol -- Protocol set on the oauth2-
proxy service
appProtocol: http
# oauth2-proxy.service.annotations -- Service annotations
annotations: {}
# oauth2-proxy.serviceAccount -- Create or use ServiceAccount
serviceAccount:
# oauth2-proxy.serviceAccount.enabled -- Specifies whether a ServiceAccount should be created
enabled: true
# oauth2-proxy.serviceAccount.name -- The name of the ServiceAccount to use.
## If not set and create is true, a name is generated using the fullname template
name: service-account
automountServiceAccountToken: true
annotations: {}
ingress:
# oauth2-proxy.ingress.enabled -- Enable/Disable ingress oauth2-proxy service
enabled: true
# oauth2-proxy.ingress.className -- Class name ingress oauth2-proxy service
className: nginx-internal
# oauth2-proxy.ingress.path -- Path to oauth2-proxy service
path: /
# oauth2-proxy.ingress.pathType -- Only used if API capabilities (networking.k8s.io/v1) allow it
pathType: ImplementationSpecific
# oauth2-proxy.ingress.hosts -- Used to create an Ingress record.
hosts:
- oauth2-proxy.cluster.local
# oauth2-proxy.ingress.annotations -- Ingress annotations oauth2-proxy service
annotations:
nginx.ingress.kubernetes.io/proxy-buffer-size: 16k
# oauth2-proxy.ingress.tls -- TLS config for ingress oauth2-proxy service
tls:
# oauth2-proxy.ingress.tls.secretName -- Secret name with certificate
- secretName: XXX
hosts:
- oauth2-proxy.cluster.local
# oauth2-proxy.resources -- Resources config for oauth2-proxy service
resources:
# oauth2-proxy.resources.limits -- Resource limits for oauth2-proxy service
limits:
# oauth2-proxy.resources.limits.cpu -- CPU limits
cpu: 100m
# oauth2-proxy.resources.limits.memory -- Memory limits
memory: 300Mi
# oauth2-proxy.resources.requests -- Resource requests for oauth2-proxy service
requests:
# oauth2-proxy.resources.requests.cpu -- CPU requests
cpu: 100m
# oauth2-proxy.resources.requests.memory -- Memory requests
memory: 300Mi
# oauth2-proxy.extraVolumes -- Extra volumes for oauth2-proxy service
extraVolumes: []
# - name: ca-bundle-cert
# secret:
# secretName: <secret-name>
# oauth2-proxy.extraVolumeMounts -- Extra volume mounts for oauth2-proxy service
extraVolumeMounts: []
# - mountPath: /etc/ssl/certs/
# name: ca-bundle-cert
# oauth2-proxy.extraContainers -- Additional containers to be added to the pod.
extraContainers: []
# - name: my-sidecar
# image: nginx:latest
priorityClassName: ""
# oauth2-proxy.hostAliases -- hostAliases is a list of aliases to be added to /etc/hosts for network name resolution
hostAliases: []
# oauth2-proxy.topologySpreadConstraints - Topology Spread Constraints configuration
topologySpreadConstraints: []
# oauth2-proxy.affinity -- Affinity for pod assignment affinity: {}
# oauth2-proxy.tolerations -- Tolerations for pod assignment
tolerations: []
# oauth2-proxy.nodeSelector -- Node labels for pod assignment
nodeSelector:
node-group: external
# oauth2-proxy.proxyVarsAsSecrets -- Whether to use secrets instead of environment values for setting up OAUTH2_PROXY variables
proxyVarsAsSecrets: true
# oauth2-proxy.livenessProbe -- Configure Kubernetes liveness probes.
livenessProbe:
enabled: true
initialDelaySeconds: 0
timeoutSeconds: 1
# oauth2-proxy.readinessProbe -- Configure Kubernetes readiness probes.
readinessProbe:
enabled: true
initialDelaySeconds: 0
timeoutSeconds: 5
periodSeconds: 10
successThreshold: 1
# oauth2-proxy.securotyContext -- Configure Kubernetes security context for container
securityContext:
enabled: true
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 2000
runAsGroup: 2000
seccompProfile:
type: RuntimeDefault
deploymentAnnotations: {}
# oauth2-proxy.podAnnotations -- Custom pod annotations
podAnnotations: {}
# oauth2-proxy.podLabels -- Custom pod labels
podLabels: {}
# oauth2-proxy.replicaCount -- Number of replica marivanna service
replicaCount: 1
revisionHistoryLimit: 10
strategy: {}
# oauth2-proxy.podDisruptionBudget -- PodDisruptionBudget settings
podDisruptionBudget:
enabled: true
minAvailable: 1
# oauth2-proxy.podSecurityContext -- Configure Kubernetes security context for pod
podSecurityContext: {}
# oauth2-proxy.httpScheme -- whether to use http or https
httpScheme: http
initContainers:
# if the redis sub-chart is enabled, wait for it to be ready
# before starting the proxy
# creates a role binding to get, list, watch, the redis master pod
# if service account is enabled
waitForRedis:
enabled: true
image:
repository: docker.io/bitnami/kubectl
pullPolicy: IfNotPresent
# uses the kubernetes version of the cluster
# the chart is deployed on, if not set
kubectlVersion: ""
securityContext:
enabled: true
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 65534
runAsGroup: 65534
seccompProfile:
type: RuntimeDefault
timeout: 180
resources: {}
# limits:
# cpu: 100m
# memory: 300Mi
# requests:
# cpu: 100m
# memory: 300Mi
# oauth2-proxy.htpasswdFile -- Additionally authenticate against a htpasswd file. Entries must be created with "htpasswd -B" for bcrypt encryption.
# Alternatively supply an existing secret which contains the required information.
htpasswdFile:
enabled: false
existingSecret: ""
entries: []
# One row for each user
# example:
# entries:
# - testuser:$2y$05$gY6dgXqjuzFhwdhsiFe7seM9q9Tile4Y3E.CBpAZJffkeiLaC21Gy
# oauth2-proxy.sessionStorage -- Configure the session storage type, between cookie and redis
sessionStorage:
# oauth2-proxy.sessionStorage.type -- Can be one of the supported session storage cookie|redis
type: cookie
redis:
# oauth2-proxy.sessionStorage.redis.existingSecret -- Name of the Kubernetes secret containing the redis & redis sentinel password values (see also `sessionStorage.redis.passwordKey`)
existingSecret: ""
# oauth2-proxy.sessionStorage.redis.password -- Redis password value. Applicable for all Redis configurations. Taken from redis subchart secret if not set. `sessionStorage.redis.existingSecret` takes precedence
password: ""
# oauth2-proxy.sessionStorage.redis.passwordKey -- Key of the Kubernetes secret data containing the redis password value
passwordKey: redis-password
# oauth2-proxy.sessionStorage.redis.clientType -- Can be one of standalone|cluster|sentinel
clientType: standalone
standalone:
# oauth2-proxy.sessionStorage.redis.standalone.conectionUrl -- URL of redis standalone server for redis session storage (e.g. `redis://HOST[:PORT]`). Automatically generated if not set
connectionUrl: ""
cluster:
# oauth2-proxy.sessionStorage.redis.connectionUrls -- List of Redis cluster connection URLs (e.g. `["redis://127.0.0.1:8000", "redis://127.0.0.1:8000"]`)
connectionUrls: []
sentinel:
# oauth2-proxy.sessionStorage.redis.sentinel.existingSecret -- Name of the Kubernetes secret containing the redis sentinel password value (see also `sessionStorage.redis.sentinel.passwordKey`). Default: `sessionStorage.redis.existingSecret`
existingSecret: ""
# oauth2-proxy.sessionStorage.redis.sentinel.password -- Redis sentinel password. Used only for sentinel connection; any redis node passwords need to use `sessionStorage.redis.password`
password: ""
# oauth2-proxy.sessionStorage.redis.sentinel.passwordKey -- Key of the Kubernetes secret data containing the redis sentinel password value
passwordKey: redis-sentinel-password
# oauth2-proxy.sessionStorage.redis.sentinel.masterName -- Redis sentinel master name
masterName: ""
# oauth2-proxy.sessionStorage.redis.sentinel.connectionUrls -- List of Redis sentinel connection URLs (e.g. `["redis://127.0.0.1:8000", "redis://127.0.0.1:8000"]`)
connectionUrls: []
# oauth2-proxy.redis -- Enables and configure the automatic deployment of the redis subchart
redis:
# oauth2-proxy.redis.enabled -- provision an instance of the redis sub-chart
enabled: false
# oauth2-proxy.checkDeprecation -- Enables apiVersion deprecation checks
checkDeprecation: true
metrics:
# oauth2-proxy.metrics.enabled -- Enable Prometheus metrics endpoint
enabled: true
# oauth2-proxy.metrics.port -- Serve Prometheus metrics on this port
port: 44180
# when service.type is NodePort ...
# nodePort: 44180
# oauth2-proxy.metrics.service -- Protocol set on the service for the
metrics port
service:
appProtocol: http
serviceMonitor:
# oauth2-proxy.metrics.serviceMonitor.enabled – Enable Prometheus Operator ServiceMonitor
enabled: false
# oauth2-proxy.metrics.serviceMonitor.namespace -- Define the namespace where to deploy the ServiceMonitor resource
namespace: ""
# oauth2-proxy.metrics.serviceMonitor.prometheusInstance -- Prometheus Instance definition
prometheusInstance: default
# oauth2-proxy.metrics.serviceMonitor.interval – Prometheus scrape interval
interval: 60s
# oauth2-proxy.metrics.serviceMonitor.scrapeTimeout -- Prometheus scrape timeout
scrapeTimeout: 30s
# oauth2-proxy.metrics.serviceMonitor.labels -- Add custom labels to the ServiceMonitor resource
labels: {}
# oauth2-proxy.metrics.serviceMonitor.scheme -- HTTP scheme to use for scraping. Can be used with `tlsConfig` for example if using istio mTLS.
scheme: ""
# oauth2-proxy.metrics.serviceMonitor.tlsConfig -- TLS configuration to use when scraping the endpoint. For example if using istio mTLS.
tlsConfig: {}
# oauth2-proxy.metrics.serviceMonitor.bearerTokenFile -- Path to bearer token file.
bearerTokenFile: ""
# oauth2-proxy.metrics.serviceMonitor.annotations -- Used to pass annotations that are used by the Prometheus installed in your cluster to select Service Monitors to work with
annotations: {}
# oauth2-proxy.metrics.serviceMonitor.metricRelabelings -- Metric relabel configs to apply to samples before ingestion.
metricRelabelings: []
# oauth2-proxy.metrics.serviceMonitor.relabelings -- Relabel configs to apply to samples before ingestion.
relabelings: []
# oauth2-proxy.extraObjects -- Extra K8s manifests to deploy
extraObjects: []