<commit_before>
# kube2iam

Installs [kube2iam](https://github.com/jtblin/kube2iam) to provide IAM credentials to pods based on annotations.

## TL;DR;

```console
$ helm install kube2iam/kube2iam
```

## Introduction

This chart bootstraps a [kube2iam](https://github.com/jtblin/kube2iam) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.

## Prerequisites
  - Kubernetes 1.4+ with Beta APIs enabled

## Add repos & install the Chart

To install the chart with the release name `my-release`:

```console
$ helm repo add kube2iam https://jtblin.github.io/kube2iam/
$ helm install kube2iam/kube2iam --name my-release
```

The command deploys kube2iam on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.

## Uninstalling the Chart

To uninstall/delete the `my-release` deployment:

```console
$ helm delete my-release
```

The command removes all the Kubernetes components associated with the chart and deletes the release.

## Configuration

The following table lists the configurable parameters of the kube2iam chart and their default values.

Parameter | Description | Default
--- | --- | ---
`affinity` | affinity configuration for pod assignment | `{}`
`extraArgs` | Additional container arguments | `{}`
`extraEnv` | Additional container environment variables | `{}`
`host.ip` | IP address of host | `$(HOST_IP)`
`host.iptables` | Add iptables rule | `false`
`host.interface` | Host interface for proxying AWS metadata | `docker0`
`host.port` | Port to listen on | `8181`
`image.repository` | Image | `jtblin/kube2iam`
`image.tag` | Image tag | `0.10.7`
`image.pullPolicy` | Image pull policy | `IfNotPresent`
`image.pullSecrets` | Image pull secrets | `[]`
`nodeSelector` | node labels for pod assignment | `{}`
`podAnnotations` | annotations to be added to pods | `{}`
`priorityClassName` | priorityClassName to be added to pods | `{}`
`prometheus.metricsPort` | Port to expose prometheus metrics on (if unspecified, `host.port` is used) | `host.port`
`prometheus.service.enabled` | If true, create a Service resource for Prometheus | `false`
`prometheus.service.annotations` | Annotations to be added to the service | `{}`
`prometheus.serviceMonitor.enabled` | If true, create a Prometheus Operator ServiceMonitor resource | `false`
`prometheus.serviceMonitor.interval` | Interval at which the metrics endpoint is scraped | `10s`
`prometheus.serviceMonitor.namespace` | An alternative namespace in which to install the ServiceMonitor | `""`
`prometheus.serviceMonitor.labels` | Labels to add to the ServiceMonitor | `{}`
`probe.enabled`|Enable/disable pod liveness probe|`true`
`probe.initialDelaySeconds`|Liveness probe initial delay|`30`
`probe.periodSeconds`|Liveness probe check inteval|`5`
`probe.successThreshold`|Liveness probe success threshold|`1`
`probe.failureThreshold`|Liveness probe fail threshold|`3`
`probe.timeoutSeconds`|Livenees probe timeout|`1`
`rbac.create` | If true, create & use RBAC resources | `false`
`rbac.serviceAccountName` | existing ServiceAccount to use (ignored if rbac.create=true) | `default`
`resources` | pod resource requests & limits | `{}`
`updateStrategy` | Strategy for DaemonSet updates (requires Kubernetes 1.6+) | `OnDelete`
`maxUnavailable` | Maximum number of pods to be unavailable during an update. It can be an absolute number or a percentage. | `1`
`verbose` | Enable verbose output | `false`
`tolerations` | List of node taints to tolerate (requires Kubernetes 1.6+) | `[]`
`aws.secret_key` | The value to use for AWS_SECRET_ACCESS_KEY | `""`
`aws.access_key` | The value to use for AWS_ACCESS_KEY_ID | `""`
`aws.region` | The AWS region to use | `""`
`existingSecret` | Set the AWS credentials using an existing secret | `""`
`podSecurityPolicy.enabled` | If true, create a podSecurityPolicy object. For the pods to use the psp, rbac.create should also be set to true | `false`
`podSecurityPolicy.annotations` | The annotations to add to the podSecurityPolicy object | `{}`

Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example:

```console
$ helm install stable/kube2iam --name my-release \
  --set=extraArgs.base-role-arn=arn:aws:iam::0123456789:role/,extraArgs.default-role=kube2iam-default,host.iptables=true,host.interface=cbr0
```

Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example:

```console
$ helm install stable/kube2iam --name my-release -f values.yaml
```

> **Tip**: You can use the default [values.yaml](values.yaml)
<commit_msg>add readiness probe to README.md<commit_after>
# kube2iam

Installs [kube2iam](https://github.com/jtblin/kube2iam) to provide IAM credentials to pods based on annotations.

## TL;DR;

```console
$ helm install kube2iam/kube2iam
```

## Introduction

This chart bootstraps a [kube2iam](https://github.com/jtblin/kube2iam) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.

## Prerequisites
  - Kubernetes 1.4+ with Beta APIs enabled

## Add repos & install the Chart

To install the chart with the release name `my-release`:

```console
$ helm repo add kube2iam https://jtblin.github.io/kube2iam/
$ helm install kube2iam/kube2iam --name my-release
```

The command deploys kube2iam on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.

## Uninstalling the Chart

To uninstall/delete the `my-release` deployment:

```console
$ helm delete my-release
```

The command removes all the Kubernetes components associated with the chart and deletes the release.

## Configuration

The following table lists the configurable parameters of the kube2iam chart and their default values.

Parameter | Description | Default
--- | --- | ---
`affinity` | affinity configuration for pod assignment | `{}`
`extraArgs` | Additional container arguments | `{}`
`extraEnv` | Additional container environment variables | `{}`
`host.ip` | IP address of host | `$(HOST_IP)`
`host.iptables` | Add iptables rule | `false`
`host.interface` | Host interface for proxying AWS metadata | `docker0`
`host.port` | Port to listen on | `8181`
`image.repository` | Image | `jtblin/kube2iam`
`image.tag` | Image tag | `0.10.7`
`image.pullPolicy` | Image pull policy | `IfNotPresent`
`image.pullSecrets` | Image pull secrets | `[]`
`livenessProbe.enabled`|Enable/disable pod liveness probe|`true`
`livenessProbe.initialDelaySeconds`|Liveness probe initial delay|`30`
`livenessProbe.periodSeconds`|Liveness probe check inteval|`5`
`livenessProbe.successThreshold`|Liveness probe success threshold|`1`
`livenessProbe.failureThreshold`|Liveness probe fail threshold|`3`
`livenessProbe.timeoutSeconds`|Livenees probe timeout|`1`
`nodeSelector` | node labels for pod assignment | `{}`
`podAnnotations` | annotations to be added to pods | `{}`
`priorityClassName` | priorityClassName to be added to pods | `{}`
`prometheus.metricsPort` | Port to expose prometheus metrics on (if unspecified, `host.port` is used) | `host.port`
`prometheus.service.enabled` | If true, create a Service resource for Prometheus | `false`
`prometheus.service.annotations` | Annotations to be added to the service | `{}`
`prometheus.serviceMonitor.enabled` | If true, create a Prometheus Operator ServiceMonitor resource | `false`
`prometheus.serviceMonitor.interval` | Interval at which the metrics endpoint is scraped | `10s`
`prometheus.serviceMonitor.namespace` | An alternative namespace in which to install the ServiceMonitor | `""`
`prometheus.serviceMonitor.labels` | Labels to add to the ServiceMonitor | `{}`
`rbac.create` | If true, create & use RBAC resources | `false`
`rbac.serviceAccountName` | existing ServiceAccount to use (ignored if rbac.create=true) | `default`
`readinessProbe.enabled`|Enable/disable pod readiness probe|`true`
`readinessProbe.initialDelaySeconds`|Readiness probe initial delay|`0
`readinessProbe.periodSeconds`|Readiness probe check inteval|`5`
`readinessProbe.successThreshold`|Readiness probe success threshold|`1`
`readinessProbe.failureThreshold`|Readiness probe fail threshold|`3`
`readinessProbe.timeoutSeconds`|Livenees probe timeout|`1`
`resources` | pod resource requests & limits | `{}`
`updateStrategy` | Strategy for DaemonSet updates (requires Kubernetes 1.6+) | `OnDelete`
`maxUnavailable` | Maximum number of pods to be unavailable during an update. It can be an absolute number or a percentage. | `1`
`verbose` | Enable verbose output | `false`
`tolerations` | List of node taints to tolerate (requires Kubernetes 1.6+) | `[]`
`aws.secret_key` | The value to use for AWS_SECRET_ACCESS_KEY | `""`
`aws.access_key` | The value to use for AWS_ACCESS_KEY_ID | `""`
`aws.region` | The AWS region to use | `""`
`existingSecret` | Set the AWS credentials using an existing secret | `""`
`podSecurityPolicy.enabled` | If true, create a podSecurityPolicy object. For the pods to use the psp, rbac.create should also be set to true | `false`
`podSecurityPolicy.annotations` | The annotations to add to the podSecurityPolicy object | `{}`

Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example:

```console
$ helm install stable/kube2iam --name my-release \
  --set=extraArgs.base-role-arn=arn:aws:iam::0123456789:role/,extraArgs.default-role=kube2iam-default,host.iptables=true,host.interface=cbr0
```

Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example:

```console
$ helm install stable/kube2iam --name my-release -f values.yaml
```

> **Tip**: You can use the default [values.yaml](values.yaml)

{'fraction_non_alphanumeric': 0.11510864072764022, 'fraction_numerical': 0.01101566447700859, 'mean_word_length': 5.434330299089727, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1041967', 'n_tokens_mistral': 3046, 'n_tokens_neox': 2873, 'n_words': 999}