clear helm
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
{{- if and (eq (.Values.injector.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") (eq (.Values.global.psp.enable | toString) "true") }}
|
{{- if and (eq (.Values.injector.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") (eq (.Values.global.psp.enable | toString) "true") }}
|
||||||
apiVersion: policy/v1beta1
|
apiVersion: policy/v1
|
||||||
kind: PodSecurityPolicy
|
kind: PodSecurityPolicy
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ template "vault.fullname" . }}-agent-injector
|
name: {{ template "vault.fullname" . }}-agent-injector
|
||||||
|
@@ -4,15 +4,23 @@ global:
|
|||||||
# enabled is the master enabled switch. Setting this to true or false
|
# enabled is the master enabled switch. Setting this to true or false
|
||||||
# will enable or disable all the components within this chart by default.
|
# will enable or disable all the components within this chart by default.
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
# Image pull secret to use for registry authentication.
|
# Image pull secret to use for registry authentication.
|
||||||
# Alternatively, the value may be specified as an array of strings.
|
# Alternatively, the value may be specified as an array of strings.
|
||||||
imagePullSecrets: []
|
imagePullSecrets: []
|
||||||
# imagePullSecrets:
|
# imagePullSecrets:
|
||||||
# - name: image-pull-secret
|
# - name: image-pull-secret
|
||||||
|
|
||||||
# TLS for end-to-end encrypted transport
|
# TLS for end-to-end encrypted transport
|
||||||
tlsDisable: true
|
tlsDisable: true
|
||||||
|
|
||||||
|
# External vault server address for the injector and CSI provider to use.
|
||||||
|
# Setting this will disable deployment of a vault server.
|
||||||
|
externalVaultAddr: ""
|
||||||
|
|
||||||
# If deploying to OpenShift
|
# If deploying to OpenShift
|
||||||
openshift: false
|
openshift: false
|
||||||
|
|
||||||
# Create PodSecurityPolicy for pods
|
# Create PodSecurityPolicy for pods
|
||||||
psp:
|
psp:
|
||||||
enable: false
|
enable: false
|
||||||
@@ -26,6 +34,7 @@ global:
|
|||||||
|
|
||||||
injector:
|
injector:
|
||||||
# True if you want to enable vault agent injection.
|
# True if you want to enable vault agent injection.
|
||||||
|
# @default: global.enabled
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
replicas: 1
|
replicas: 1
|
||||||
@@ -40,16 +49,15 @@ injector:
|
|||||||
|
|
||||||
# If true, will enable a node exporter metrics endpoint at /metrics.
|
# If true, will enable a node exporter metrics endpoint at /metrics.
|
||||||
metrics:
|
metrics:
|
||||||
enabled: true
|
enabled: false
|
||||||
|
|
||||||
# External vault server address for the injector to use. Setting this will
|
# Deprecated: Please use global.externalVaultAddr instead.
|
||||||
# disable deployment of a vault server along with the injector.
|
externalVaultAddr: ""
|
||||||
externalVaultAddr: "https://vault.bildme.ru"
|
|
||||||
|
|
||||||
# image sets the repo and tag of the vault-k8s image to use for the injector.
|
# image sets the repo and tag of the vault-k8s image to use for the injector.
|
||||||
image:
|
image:
|
||||||
repository: "hashicorp/vault-k8s"
|
repository: "hashicorp/vault-k8s"
|
||||||
tag: "0.16.1"
|
tag: "0.17.0"
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
# agentImage sets the repo and tag of the Vault image to use for the Vault Agent
|
# agentImage sets the repo and tag of the Vault image to use for the Vault Agent
|
||||||
@@ -57,7 +65,7 @@ injector:
|
|||||||
# required.
|
# required.
|
||||||
agentImage:
|
agentImage:
|
||||||
repository: "hashicorp/vault"
|
repository: "hashicorp/vault"
|
||||||
tag: "1.10.5"
|
tag: "1.11.2"
|
||||||
|
|
||||||
# The default values for the injected Vault Agent containers.
|
# The default values for the injected Vault Agent containers.
|
||||||
agentDefaults:
|
agentDefaults:
|
||||||
@@ -90,6 +98,66 @@ injector:
|
|||||||
# Configures all Vault Agent sidecars to revoke their token when shutting down
|
# Configures all Vault Agent sidecars to revoke their token when shutting down
|
||||||
revokeOnShutdown: false
|
revokeOnShutdown: false
|
||||||
|
|
||||||
|
webhook:
|
||||||
|
# Configures failurePolicy of the webhook. The "unspecified" default behaviour depends on the
|
||||||
|
# API Version of the WebHook.
|
||||||
|
# To block pod creation while webhook is unavailable, set the policy to `Fail` below.
|
||||||
|
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy
|
||||||
|
#
|
||||||
|
failurePolicy: Ignore
|
||||||
|
|
||||||
|
# matchPolicy specifies the approach to accepting changes based on the rules of
|
||||||
|
# the MutatingWebhookConfiguration.
|
||||||
|
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy
|
||||||
|
# for more details.
|
||||||
|
#
|
||||||
|
matchPolicy: Exact
|
||||||
|
|
||||||
|
# timeoutSeconds is the amount of seconds before the webhook request will be ignored
|
||||||
|
# or fails.
|
||||||
|
# If it is ignored or fails depends on the failurePolicy
|
||||||
|
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#timeouts
|
||||||
|
# for more details.
|
||||||
|
#
|
||||||
|
timeoutSeconds: 30
|
||||||
|
|
||||||
|
# namespaceSelector is the selector for restricting the webhook to only
|
||||||
|
# specific namespaces.
|
||||||
|
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector
|
||||||
|
# for more details.
|
||||||
|
# Example:
|
||||||
|
# namespaceSelector:
|
||||||
|
# matchLabels:
|
||||||
|
# sidecar-injector: enabled
|
||||||
|
namespaceSelector: {}
|
||||||
|
|
||||||
|
# objectSelector is the selector for restricting the webhook to only
|
||||||
|
# specific labels.
|
||||||
|
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector
|
||||||
|
# for more details.
|
||||||
|
# Example:
|
||||||
|
# objectSelector:
|
||||||
|
# matchLabels:
|
||||||
|
# vault-sidecar-injector: enabled
|
||||||
|
objectSelector: |
|
||||||
|
matchExpressions:
|
||||||
|
- key: app.kubernetes.io/name
|
||||||
|
operator: NotIn
|
||||||
|
values:
|
||||||
|
- {{ template "vault.name" . }}-agent-injector
|
||||||
|
|
||||||
|
# Extra annotations to attach to the webhook
|
||||||
|
annotations: {}
|
||||||
|
|
||||||
|
# Deprecated: please use 'webhook.failurePolicy' instead
|
||||||
|
# Configures failurePolicy of the webhook. The "unspecified" default behaviour depends on the
|
||||||
|
# API Version of the WebHook.
|
||||||
|
# To block pod creation while webhook is unavailable, set the policy to `Fail` below.
|
||||||
|
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy
|
||||||
|
#
|
||||||
|
failurePolicy: Ignore
|
||||||
|
|
||||||
|
# Deprecated: please use 'webhook.namespaceSelector' instead
|
||||||
# namespaceSelector is the selector for restricting the webhook to only
|
# namespaceSelector is the selector for restricting the webhook to only
|
||||||
# specific namespaces.
|
# specific namespaces.
|
||||||
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector
|
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector
|
||||||
@@ -99,6 +167,8 @@ injector:
|
|||||||
# matchLabels:
|
# matchLabels:
|
||||||
# sidecar-injector: enabled
|
# sidecar-injector: enabled
|
||||||
namespaceSelector: {}
|
namespaceSelector: {}
|
||||||
|
|
||||||
|
# Deprecated: please use 'webhook.objectSelector' instead
|
||||||
# objectSelector is the selector for restricting the webhook to only
|
# objectSelector is the selector for restricting the webhook to only
|
||||||
# specific labels.
|
# specific labels.
|
||||||
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector
|
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector
|
||||||
@@ -109,13 +179,7 @@ injector:
|
|||||||
# vault-sidecar-injector: enabled
|
# vault-sidecar-injector: enabled
|
||||||
objectSelector: {}
|
objectSelector: {}
|
||||||
|
|
||||||
# Configures failurePolicy of the webhook. The "unspecified" default behaviour deoends on the
|
# Deprecated: please use 'webhook.annotations' instead
|
||||||
# API Version of the WebHook.
|
|
||||||
# To block pod creation while webhook is unavailable, set the policy to `Fail` below.
|
|
||||||
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy
|
|
||||||
#
|
|
||||||
failurePolicy: Ignore
|
|
||||||
|
|
||||||
# Extra annotations to attach to the webhook
|
# Extra annotations to attach to the webhook
|
||||||
webhookAnnotations: {}
|
webhookAnnotations: {}
|
||||||
|
|
||||||
@@ -138,6 +202,21 @@ injector:
|
|||||||
certName: tls.crt
|
certName: tls.crt
|
||||||
keyName: tls.key
|
keyName: tls.key
|
||||||
|
|
||||||
|
# Security context for the pod template and the injector container
|
||||||
|
# The default pod securityContext is:
|
||||||
|
# runAsNonRoot: true
|
||||||
|
# runAsGroup: {{ .Values.injector.gid | default 1000 }}
|
||||||
|
# runAsUser: {{ .Values.injector.uid | default 100 }}
|
||||||
|
# fsGroup: {{ .Values.injector.gid | default 1000 }}
|
||||||
|
# and for container is
|
||||||
|
# allowPrivilegeEscalation: false
|
||||||
|
# capabilities:
|
||||||
|
# drop:
|
||||||
|
# - ALL
|
||||||
|
securityContext:
|
||||||
|
pod: {}
|
||||||
|
container: {}
|
||||||
|
|
||||||
resources: {}
|
resources: {}
|
||||||
# resources:
|
# resources:
|
||||||
# requests:
|
# requests:
|
||||||
@@ -166,6 +245,12 @@ injector:
|
|||||||
component: webhook
|
component: webhook
|
||||||
topologyKey: kubernetes.io/hostname
|
topologyKey: kubernetes.io/hostname
|
||||||
|
|
||||||
|
# Topology settings for injector pods
|
||||||
|
# ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||||||
|
# This should be either a multi-line string or YAML matching the topologySpreadConstraints array
|
||||||
|
# in a PodSpec.
|
||||||
|
topologySpreadConstraints: []
|
||||||
|
|
||||||
# Toleration Settings for injector pods
|
# Toleration Settings for injector pods
|
||||||
# This should be either a multi-line string or YAML matching the Toleration array
|
# This should be either a multi-line string or YAML matching the Toleration array
|
||||||
# in a PodSpec.
|
# in a PodSpec.
|
||||||
@@ -199,6 +284,11 @@ injector:
|
|||||||
# Extra annotations to attach to the injector service
|
# Extra annotations to attach to the injector service
|
||||||
annotations: {}
|
annotations: {}
|
||||||
|
|
||||||
|
# Injector serviceAccount specific config
|
||||||
|
serviceAccount:
|
||||||
|
# Extra annotations to attach to the injector serviceAccount
|
||||||
|
annotations: {}
|
||||||
|
|
||||||
# A disruption budget limits the number of pods of a replicated application
|
# A disruption budget limits the number of pods of a replicated application
|
||||||
# that are down simultaneously from voluntary disruptions
|
# that are down simultaneously from voluntary disruptions
|
||||||
podDisruptionBudget: {}
|
podDisruptionBudget: {}
|
||||||
@@ -215,8 +305,9 @@ injector:
|
|||||||
# type: RollingUpdate
|
# type: RollingUpdate
|
||||||
|
|
||||||
server:
|
server:
|
||||||
# If not set to true, Vault server will not be installed. See vault.mode in _helpers.tpl for implementation details
|
# If true, or "-" with global.enabled true, Vault server will be installed.
|
||||||
enabled: false
|
# See vault.mode in _helpers.tpl for implementation details.
|
||||||
|
enabled: true
|
||||||
|
|
||||||
# [Enterprise Only] This value refers to a Kubernetes secret that you have
|
# [Enterprise Only] This value refers to a Kubernetes secret that you have
|
||||||
# created that contains your enterprise license. If you are not using an
|
# created that contains your enterprise license. If you are not using an
|
||||||
@@ -236,7 +327,7 @@ server:
|
|||||||
|
|
||||||
image:
|
image:
|
||||||
repository: "hashicorp/vault"
|
repository: "hashicorp/vault"
|
||||||
tag: "1.10.5"
|
tag: "1.11.2"
|
||||||
# Overrides the default Image Pull Policy
|
# Overrides the default Image Pull Policy
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
@@ -455,6 +546,12 @@ server:
|
|||||||
component: server
|
component: server
|
||||||
topologyKey: kubernetes.io/hostname
|
topologyKey: kubernetes.io/hostname
|
||||||
|
|
||||||
|
# Topology settings for server pods
|
||||||
|
# ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||||||
|
# This should be either a multi-line string or YAML matching the topologySpreadConstraints array
|
||||||
|
# in a PodSpec.
|
||||||
|
topologySpreadConstraints: []
|
||||||
|
|
||||||
# Toleration Settings for server pods
|
# Toleration Settings for server pods
|
||||||
# This should be either a multi-line string or YAML matching the Toleration array
|
# This should be either a multi-line string or YAML matching the Toleration array
|
||||||
# in a PodSpec.
|
# in a PodSpec.
|
||||||
@@ -506,6 +603,9 @@ server:
|
|||||||
# or NodePort.
|
# or NodePort.
|
||||||
#type: ClusterIP
|
#type: ClusterIP
|
||||||
|
|
||||||
|
# Do not wait for pods to be ready
|
||||||
|
publishNotReadyAddresses: true
|
||||||
|
|
||||||
# The externalTrafficPolicy can be set to either Cluster or Local
|
# The externalTrafficPolicy can be set to either Cluster or Local
|
||||||
# and is only valid for LoadBalancer and NodePort service types.
|
# and is only valid for LoadBalancer and NodePort service types.
|
||||||
# The default value is Cluster.
|
# The default value is Cluster.
|
||||||
@@ -516,6 +616,16 @@ server:
|
|||||||
# will be random if left blank.
|
# will be random if left blank.
|
||||||
#nodePort: 30000
|
#nodePort: 30000
|
||||||
|
|
||||||
|
# When HA mode is enabled
|
||||||
|
# If type is set to "NodePort", a specific nodePort value can be configured,
|
||||||
|
# will be random if left blank.
|
||||||
|
#activeNodePort: 30001
|
||||||
|
|
||||||
|
# When HA mode is enabled
|
||||||
|
# If type is set to "NodePort", a specific nodePort value can be configured,
|
||||||
|
# will be random if left blank.
|
||||||
|
#standbyNodePort: 30002
|
||||||
|
|
||||||
# Port on which Vault server is listening
|
# Port on which Vault server is listening
|
||||||
port: 8200
|
port: 8200
|
||||||
# Target port to which the service should be mapped to
|
# Target port to which the service should be mapped to
|
||||||
@@ -536,7 +646,7 @@ server:
|
|||||||
mountPath: "/vault/data"
|
mountPath: "/vault/data"
|
||||||
# Name of the storage class to use. If null it will use the
|
# Name of the storage class to use. If null it will use the
|
||||||
# configured default Storage Class.
|
# configured default Storage Class.
|
||||||
storageClass: nfs-client
|
storageClass: null
|
||||||
# Access Mode of the storage device being used for the PVC
|
# Access Mode of the storage device being used for the PVC
|
||||||
accessMode: ReadWriteOnce
|
accessMode: ReadWriteOnce
|
||||||
# Annotations to apply to the PVC
|
# Annotations to apply to the PVC
|
||||||
@@ -550,12 +660,12 @@ server:
|
|||||||
auditStorage:
|
auditStorage:
|
||||||
enabled: false
|
enabled: false
|
||||||
# Size of the PVC created
|
# Size of the PVC created
|
||||||
size: 1Gi
|
size: 10Gi
|
||||||
# Location where the PVC will be mounted.
|
# Location where the PVC will be mounted.
|
||||||
mountPath: "/vault/audit"
|
mountPath: "/vault/audit"
|
||||||
# Name of the storage class to use. If null it will use the
|
# Name of the storage class to use. If null it will use the
|
||||||
# configured default Storage Class.
|
# configured default Storage Class.
|
||||||
storageClass: nfs-client
|
storageClass: null
|
||||||
# Access Mode of the storage device being used for the PVC
|
# Access Mode of the storage device being used for the PVC
|
||||||
accessMode: ReadWriteOnce
|
accessMode: ReadWriteOnce
|
||||||
# Annotations to apply to the PVC
|
# Annotations to apply to the PVC
|
||||||
@@ -624,6 +734,11 @@ server:
|
|||||||
# If set to null, this will be set to the Pod IP Address
|
# If set to null, this will be set to the Pod IP Address
|
||||||
apiAddr: null
|
apiAddr: null
|
||||||
|
|
||||||
|
# Set the cluster_addr confuguration for Vault HA
|
||||||
|
# See https://www.vaultproject.io/docs/configuration#cluster_addr
|
||||||
|
# If set to null, this will be set to https://$(HOSTNAME).{{ template "vault.fullname" . }}-internal:8201
|
||||||
|
clusterAddr: null
|
||||||
|
|
||||||
# Enables Vault's integrated Raft storage. Unlike the typical HA modes where
|
# Enables Vault's integrated Raft storage. Unlike the typical HA modes where
|
||||||
# Vault's persistence is external (such as Consul), enabling Raft mode will create
|
# Vault's persistence is external (such as Consul), enabling Raft mode will create
|
||||||
# persistent volumes for Vault to store data according to the configuration under server.dataStorage.
|
# persistent volumes for Vault to store data according to the configuration under server.dataStorage.
|
||||||
@@ -631,7 +746,7 @@ server:
|
|||||||
raft:
|
raft:
|
||||||
|
|
||||||
# Enables Raft integrated storage
|
# Enables Raft integrated storage
|
||||||
enabled: false
|
enabled: true
|
||||||
# Set the Node Raft ID to the name of the pod
|
# Set the Node Raft ID to the name of the pod
|
||||||
setNodeId: false
|
setNodeId: false
|
||||||
|
|
||||||
@@ -717,6 +832,24 @@ server:
|
|||||||
# to the statefulSet.
|
# to the statefulSet.
|
||||||
annotations: {}
|
annotations: {}
|
||||||
|
|
||||||
|
# Set the pod and container security contexts.
|
||||||
|
# If not set, these will default to, and for *not* OpenShift:
|
||||||
|
# pod:
|
||||||
|
# runAsNonRoot: true
|
||||||
|
# runAsGroup: {{ .Values.server.gid | default 1000 }}
|
||||||
|
# runAsUser: {{ .Values.server.uid | default 100 }}
|
||||||
|
# fsGroup: {{ .Values.server.gid | default 1000 }}
|
||||||
|
# container: {}
|
||||||
|
#
|
||||||
|
# If not set, these will default to, and for OpenShift:
|
||||||
|
# pod: {}
|
||||||
|
# container:
|
||||||
|
# allowPrivilegeEscalation: false
|
||||||
|
securityContext:
|
||||||
|
pod: {}
|
||||||
|
container: {}
|
||||||
|
|
||||||
|
|
||||||
# Vault UI
|
# Vault UI
|
||||||
ui:
|
ui:
|
||||||
# True if you want to create a Service entry for the Vault UI.
|
# True if you want to create a Service entry for the Vault UI.
|
||||||
@@ -764,7 +897,7 @@ csi:
|
|||||||
|
|
||||||
image:
|
image:
|
||||||
repository: "hashicorp/vault-csi-provider"
|
repository: "hashicorp/vault-csi-provider"
|
||||||
tag: "1.1.0"
|
tag: "1.2.0"
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
# volumes is a list of volumes made available to all containers. These are rendered
|
# volumes is a list of volumes made available to all containers. These are rendered
|
||||||
@@ -805,6 +938,13 @@ csi:
|
|||||||
providersDir: "/etc/kubernetes/secrets-store-csi-providers"
|
providersDir: "/etc/kubernetes/secrets-store-csi-providers"
|
||||||
# Kubelet host path
|
# Kubelet host path
|
||||||
kubeletRootDir: "/var/lib/kubelet"
|
kubeletRootDir: "/var/lib/kubelet"
|
||||||
|
# Extra labels to attach to the vault-csi-provider daemonSet
|
||||||
|
# This should be a YAML map of the labels to apply to the csi provider daemonSet
|
||||||
|
extraLabels: {}
|
||||||
|
# security context for the pod template and container in the csi provider daemonSet
|
||||||
|
securityContext:
|
||||||
|
pod: {}
|
||||||
|
container: {}
|
||||||
|
|
||||||
pod:
|
pod:
|
||||||
# Extra annotations for the provider pods. This can either be YAML or a
|
# Extra annotations for the provider pods. This can either be YAML or a
|
||||||
@@ -817,6 +957,12 @@ csi:
|
|||||||
# in a PodSpec.
|
# in a PodSpec.
|
||||||
tolerations: []
|
tolerations: []
|
||||||
|
|
||||||
|
# Extra labels to attach to the vault-csi-provider pod
|
||||||
|
# This should be a YAML map of the labels to apply to the csi provider pod
|
||||||
|
extraLabels: {}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Priority class for csi pods
|
# Priority class for csi pods
|
||||||
priorityClassName: ""
|
priorityClassName: ""
|
||||||
|
|
||||||
@@ -826,6 +972,10 @@ csi:
|
|||||||
# annotations to apply to the serviceAccount.
|
# annotations to apply to the serviceAccount.
|
||||||
annotations: {}
|
annotations: {}
|
||||||
|
|
||||||
|
# Extra labels to attach to the vault-csi-provider serviceAccount
|
||||||
|
# This should be a YAML map of the labels to apply to the csi provider serviceAccount
|
||||||
|
extraLabels: {}
|
||||||
|
|
||||||
# Used to configure readinessProbe for the pods.
|
# Used to configure readinessProbe for the pods.
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
# When a probe fails, Kubernetes will try failureThreshold times before giving up
|
# When a probe fails, Kubernetes will try failureThreshold times before giving up
|
||||||
@@ -855,4 +1005,6 @@ csi:
|
|||||||
debug: false
|
debug: false
|
||||||
|
|
||||||
# Pass arbitrary additional arguments to vault-csi-provider.
|
# Pass arbitrary additional arguments to vault-csi-provider.
|
||||||
|
# See https://www.vaultproject.io/docs/platform/k8s/csi/configurations#command-line-arguments
|
||||||
|
# for the available command line flags.
|
||||||
extraArgs: []
|
extraArgs: []
|
||||||
|
Reference in New Issue
Block a user