Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide dedicated page per authentication provider #867

Merged
merged 6 commits into from
Aug 15, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions assets/sass/nav.sass
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,19 @@
.navbar-dropdown .navbar-item
color: #4a4a4a

.providers-link
display: none

@media screen and (max-width: 1024px)
.is-fixed-top
overflow: hidden

.is-left-padded
padding-left: 40px

@media screen and (max-width: 1023px)
.providers-link
display: inline

.navbar-link, .navbar-item
color: $dark
36 changes: 2 additions & 34 deletions content/docs/2.7/concepts/authentication.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
+++
title = "Authentication"
weight = 500
providersListVisible = true
+++

Often a scaler will require authentication or secrets and config to check for events.
Expand Down Expand Up @@ -272,37 +273,4 @@ podIdentity:
provider: none | azure | aws-eks | aws-kiam # Optional. Default: none
```

#### Azure Pod Identity
cynthia-sg marked this conversation as resolved.
Show resolved Hide resolved

Azure Pod Identity is an implementation of [**Azure AD Pod Identity**](https://github.com/Azure/aad-pod-identity) which lets you bind an [**Azure Managed Identity**](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/) to a Pod in a Kubernetes cluster as delegated access - *Don't manage secrets, let Azure AD do the hard work*.

You can tell KEDA to use Azure AD Pod Identity via `podIdentity.provider`.

```yaml
podIdentity:
provider: azure # Optional. Default: none
```

Azure AD Pod Identity will give access to containers with a defined label for `aadpodidbinding`. You can set this label on the KEDA operator deployment. This can be done for you during deployment with Helm with `--set podIdentity.activeDirectory.identity={your-label-name}`.

#### EKS Pod Identity Webhook for AWS

[**EKS Pod Identity Webhook**](https://github.com/aws/amazon-eks-pod-identity-webhook), which is described more in depth [here](https://aws.amazon.com/blogs/opensource/introducing-fine-grained-iam-roles-service-accounts/), allows you to provide the role name using an annotation on a service account associated with your pod.

You can tell KEDA to use EKS Pod Identity Webhook via `podIdentity.provider`.

```yaml
podIdentity:
provider: aws-eks # Optional. Default: none
```

#### Kiam Pod Identity for AWS

[**Kiam**](https://github.com/uswitch/kiam/) lets you bind an AWS IAM Role to a pod using an annotation on the pod.

You can tell KEDA to use Kiam via `podIdentity.provider`.

```yaml
podIdentity:
provider: aws-kiam # Optional. Default: none
```
Available authentication providers for KEDA:
7 changes: 7 additions & 0 deletions content/docs/2.7/providers/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
+++
title = "Authentication Providers"
weight = 5
providersListVisible = true
+++

Available authentication providers for KEDA:
14 changes: 14 additions & 0 deletions content/docs/2.7/providers/aws-eks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
+++
title = "EKS Pod Identity Webhook for AWS"
layout = "provider"
weight = 3
cynthia-sg marked this conversation as resolved.
Show resolved Hide resolved
+++

[**EKS Pod Identity Webhook**](https://github.com/aws/amazon-eks-pod-identity-webhook), which is described more in depth [here](https://aws.amazon.com/blogs/opensource/introducing-fine-grained-iam-roles-service-accounts/), allows you to provide the role name using an annotation on a service account associated with your pod.

You can tell KEDA to use EKS Pod Identity Webhook via `podIdentity.provider`.

```yaml
podIdentity:
provider: aws-eks # Optional. Default: none
```
14 changes: 14 additions & 0 deletions content/docs/2.7/providers/aws-kiam.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
+++
title = "Kiam Pod Identity for AWS"
layout = "provider"
weight = 4
+++

[**Kiam**](https://github.com/uswitch/kiam/) lets you bind an AWS IAM Role to a pod using an annotation on the pod.

You can tell KEDA to use Kiam via `podIdentity.provider`.

```yaml
podIdentity:
provider: aws-kiam # Optional. Default: none
```
27 changes: 27 additions & 0 deletions content/docs/2.7/providers/azure-workload.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
+++
title = "Azure Workload Identity"
layout = "provider"
cynthia-sg marked this conversation as resolved.
Show resolved Hide resolved
weight = 2
+++

[**Azure AD Workload Identity**](https://github.com/Azure/azure-workload-identity) is the newer version of [**Azure AD Pod Identity**](https://github.com/Azure/aad-pod-identity). It lets your Kubernetes workloads access Azure resources using an
[**Azure AD Application**](https://docs.microsoft.com/en-us/azure/active-directory/develop/app-objects-and-service-principals)
without having to specify secrets, using [federated identity credentials](https://azure.github.io/azure-workload-identity/docs/topics/federated-identity-credential.html) - *Don't manage secrets, let Azure AD do the hard work*.

You can tell KEDA to use Azure AD Workload Identity via `podIdentity.provider`.

```yaml
podIdentity:
provider: azure-workload # Optional. Default: none
identityId: <identity-id> # Optional. Default: ClientId From annotation on service-account.
```

Azure AD Workload Identity will give access to pods with service accounts having appropriate labels and annotations. Refer
to these [docs](https://azure.github.io/azure-workload-identity/docs/topics/service-account-labels-and-annotations.html) for more information. You can set these labels and annotations on the KEDA Operator service account. This can be done for you during deployment with Helm with the
following flags -

1. `--set podIdentity.azureWorkload.enabled=true`
2. `--set podIdentity.azureWorkload.clientId={azure-ad-client-id}`
3. `--set podIdentity.azureWorkload.tenantId={azure-ad-tenant-id}`

You can override the identity that was assigned to KEDA during installation, by specifying an `identityId` parameter under the `podIdentity` field. This allows end-users to use different identities to access various resources which is more secure than using a single identity that has access to multiple resources.
19 changes: 19 additions & 0 deletions content/docs/2.7/providers/azure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
+++
title = "Azure Pod Identity"
layout = "provider"
weight = 1
+++

Azure Pod Identity is an implementation of [**Azure AD Pod Identity**](https://github.com/Azure/aad-pod-identity) which lets you bind an [**Azure Managed Identity**](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/) to a Pod in a Kubernetes cluster as delegated access - *Don't manage secrets, let Azure AD do the hard work*.

You can tell KEDA to use Azure AD Pod Identity via `podIdentity.provider`.

```yaml
podIdentity:
provider: azure # Optional. Default: none
identityId: <identity-id> # Optional. Default: Identity linked with the label set when installing KEDA.
```

Azure AD Pod Identity will give access to containers with a defined label for `aadpodidbinding`. You can set this label on the KEDA operator deployment. This can be done for you during deployment with Helm with `--set podIdentity.activeDirectory.identity={your-label-name}`.

You can override the identity that was assigned to KEDA during installation, by specifying an `identityId` parameter under the `podIdentity` field. This allows end-users to use different identities to access various resources which is more secure than using a single identity that has access to multiple resources.
63 changes: 2 additions & 61 deletions content/docs/2.8/concepts/authentication.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
+++
title = "Authentication"
weight = 500
providersListVisible = true
+++

Often a scaler will require authentication or secrets and config to check for events.
Expand Down Expand Up @@ -275,64 +276,4 @@ podIdentity:
identityId: <identity-id> # Optional. Only used by azure & azure-workload providers.
```

#### Azure Pod Identity

Azure Pod Identity is an implementation of [**Azure AD Pod Identity**](https://github.com/Azure/aad-pod-identity) which lets you bind an [**Azure Managed Identity**](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/) to a Pod in a Kubernetes cluster as delegated access - *Don't manage secrets, let Azure AD do the hard work*.

You can tell KEDA to use Azure AD Pod Identity via `podIdentity.provider`.

```yaml
podIdentity:
provider: azure # Optional. Default: none
identityId: <identity-id> # Optional. Default: Identity linked with the label set when installing KEDA.
```

Azure AD Pod Identity will give access to containers with a defined label for `aadpodidbinding`. You can set this label on the KEDA operator deployment. This can be done for you during deployment with Helm with `--set podIdentity.activeDirectory.identity={your-label-name}`.

You can override the identity that was assigned to KEDA during installation, by specifying an `identityId` parameter under the `podIdentity` field. This allows end-users to use different identities to access various resources which is more secure than using a single identity that has access to multiple resources.

#### Azure Workload Identity

[**Azure AD Workload Identity**](https://github.com/Azure/azure-workload-identity) is the newer version of [**Azure AD Pod Identity**](https://github.com/Azure/aad-pod-identity). It lets your Kubernetes workloads access Azure resources using an
[**Azure AD Application**](https://docs.microsoft.com/en-us/azure/active-directory/develop/app-objects-and-service-principals)
without having to specify secrets, using [federated identity credentials](https://azure.github.io/azure-workload-identity/docs/topics/federated-identity-credential.html) - *Don't manage secrets, let Azure AD do the hard work*.

You can tell KEDA to use Azure AD Workload Identity via `podIdentity.provider`.

```yaml
podIdentity:
provider: azure-workload # Optional. Default: none
identityId: <identity-id> # Optional. Default: ClientId From annotation on service-account.
```

Azure AD Workload Identity will give access to pods with service accounts having appropriate labels and annotations. Refer
to these [docs](https://azure.github.io/azure-workload-identity/docs/topics/service-account-labels-and-annotations.html) for more information. You can set these labels and annotations on the KEDA Operator service account. This can be done for you during deployment with Helm with the
following flags -

1. `--set podIdentity.azureWorkload.enabled=true`
2. `--set podIdentity.azureWorkload.clientId={azure-ad-client-id}`
3. `--set podIdentity.azureWorkload.tenantId={azure-ad-tenant-id}`

You can override the identity that was assigned to KEDA during installation, by specifying an `identityId` parameter under the `podIdentity` field. This allows end-users to use different identities to access various resources which is more secure than using a single identity that has access to multiple resources.

#### EKS Pod Identity Webhook for AWS

[**EKS Pod Identity Webhook**](https://github.com/aws/amazon-eks-pod-identity-webhook), which is described more in depth [here](https://aws.amazon.com/blogs/opensource/introducing-fine-grained-iam-roles-service-accounts/), allows you to provide the role name using an annotation on a service account associated with your pod.

You can tell KEDA to use EKS Pod Identity Webhook via `podIdentity.provider`.

```yaml
podIdentity:
provider: aws-eks # Optional. Default: none
```

#### Kiam Pod Identity for AWS

[**Kiam**](https://github.com/uswitch/kiam/) lets you bind an AWS IAM Role to a pod using an annotation on the pod.

You can tell KEDA to use Kiam via `podIdentity.provider`.

```yaml
podIdentity:
provider: aws-kiam # Optional. Default: none
```
Available authentication providers for KEDA:
7 changes: 7 additions & 0 deletions content/docs/2.8/providers/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
+++
title = "Authentication Providers"
weight = 5
providersListVisible = true
+++

Available authentication providers for KEDA:
14 changes: 14 additions & 0 deletions content/docs/2.8/providers/aws-eks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
+++
title = "EKS Pod Identity Webhook for AWS"
layout = "provider"
cynthia-sg marked this conversation as resolved.
Show resolved Hide resolved
weight = 3
+++

[**EKS Pod Identity Webhook**](https://github.com/aws/amazon-eks-pod-identity-webhook), which is described more in depth [here](https://aws.amazon.com/blogs/opensource/introducing-fine-grained-iam-roles-service-accounts/), allows you to provide the role name using an annotation on a service account associated with your pod.

You can tell KEDA to use EKS Pod Identity Webhook via `podIdentity.provider`.

```yaml
podIdentity:
provider: aws-eks # Optional. Default: none
```
14 changes: 14 additions & 0 deletions content/docs/2.8/providers/aws-kiam.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
+++
title = "Kiam Pod Identity for AWS"
layout = "provider"
weight = 4
+++

[**Kiam**](https://github.com/uswitch/kiam/) lets you bind an AWS IAM Role to a pod using an annotation on the pod.

You can tell KEDA to use Kiam via `podIdentity.provider`.

```yaml
podIdentity:
provider: aws-kiam # Optional. Default: none
```
27 changes: 27 additions & 0 deletions content/docs/2.8/providers/azure-workload.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
+++
title = "Azure Workload Identity"
layout = "provider"
weight = 2
+++

[**Azure AD Workload Identity**](https://github.com/Azure/azure-workload-identity) is the newer version of [**Azure AD Pod Identity**](https://github.com/Azure/aad-pod-identity). It lets your Kubernetes workloads access Azure resources using an
[**Azure AD Application**](https://docs.microsoft.com/en-us/azure/active-directory/develop/app-objects-and-service-principals)
without having to specify secrets, using [federated identity credentials](https://azure.github.io/azure-workload-identity/docs/topics/federated-identity-credential.html) - *Don't manage secrets, let Azure AD do the hard work*.

You can tell KEDA to use Azure AD Workload Identity via `podIdentity.provider`.

```yaml
podIdentity:
provider: azure-workload # Optional. Default: none
identityId: <identity-id> # Optional. Default: ClientId From annotation on service-account.
```

Azure AD Workload Identity will give access to pods with service accounts having appropriate labels and annotations. Refer
to these [docs](https://azure.github.io/azure-workload-identity/docs/topics/service-account-labels-and-annotations.html) for more information. You can set these labels and annotations on the KEDA Operator service account. This can be done for you during deployment with Helm with the
following flags -

1. `--set podIdentity.azureWorkload.enabled=true`
2. `--set podIdentity.azureWorkload.clientId={azure-ad-client-id}`
3. `--set podIdentity.azureWorkload.tenantId={azure-ad-tenant-id}`

You can override the identity that was assigned to KEDA during installation, by specifying an `identityId` parameter under the `podIdentity` field. This allows end-users to use different identities to access various resources which is more secure than using a single identity that has access to multiple resources.
19 changes: 19 additions & 0 deletions content/docs/2.8/providers/azure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
+++
title = "Azure Pod Identity"
layout = "provider"
weight = 1
+++

Azure Pod Identity is an implementation of [**Azure AD Pod Identity**](https://github.com/Azure/aad-pod-identity) which lets you bind an [**Azure Managed Identity**](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/) to a Pod in a Kubernetes cluster as delegated access - *Don't manage secrets, let Azure AD do the hard work*.

You can tell KEDA to use Azure AD Pod Identity via `podIdentity.provider`.

```yaml
podIdentity:
provider: azure # Optional. Default: none
identityId: <identity-id> # Optional. Default: Identity linked with the label set when installing KEDA.
```

Azure AD Pod Identity will give access to containers with a defined label for `aadpodidbinding`. You can set this label on the KEDA operator deployment. This can be done for you during deployment with Helm with `--set podIdentity.activeDirectory.identity={your-label-name}`.

You can override the identity that was assigned to KEDA during installation, by specifying an `identityId` parameter under the `podIdentity` field. This allows end-users to use different identities to access various resources which is more secure than using a single identity that has access to multiple resources.
7 changes: 7 additions & 0 deletions layouts/_default/provider.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{{ define "title" }}
Authentication provider | {{ .Title }}
{{ end }}

{{ define "main" }}
{{ partial "article.html" . }}
{{ end }}
cynthia-sg marked this conversation as resolved.
Show resolved Hide resolved
5 changes: 5 additions & 0 deletions layouts/partials/content.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{{ $notice := .Params.notice }}
{{ $isScaler := eq .CurrentSection.Title "Scalers" }}
{{ $providersListVisible := .Params.providersListVisible }}
<section class="section">
<div class="container">
<div class="content is-medium is-constrained has-bottom-margin">
Expand Down Expand Up @@ -47,6 +48,10 @@ <h2 id="available-scalers">
<script async src="https://artifacthub.io/artifacthub-widget.js"></script>
</div>
{{ end }}

{{ if $providersListVisible }}
{{ partial "providers.html" . }}
{{ end }}
cynthia-sg marked this conversation as resolved.
Show resolved Hide resolved
</div>
</div>
</section>
Expand Down
2 changes: 2 additions & 0 deletions layouts/partials/nav.html
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,15 @@
</li>

{{ if $isHere }}
tomkerkhove marked this conversation as resolved.
Show resolved Hide resolved
{{ if ne .TableOfContents "<nav id=\"TableOfContents\"></nav>" }} <!-- not render ToC when is empty -->
cynthia-sg marked this conversation as resolved.
Show resolved Hide resolved
{{ if gt (len .TableOfContents) 32 }}
<div class="nav-section-toc">
{{ .TableOfContents }}
</div>
{{ end }}
{{ end }}
{{ end }}
{{ end }}
</ul>
{{ end }}
</div>
Expand Down
4 changes: 4 additions & 0 deletions layouts/partials/navbar.html
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@
<a class="navbar-link is-arrowless" href="/docs/{{ $latest }}/scalers">Scalers</a>
</div>

<div class="navbar-item is-size-5-desktop has-dropdown is-hoverable providers-link">
<a class="navbar-link is-arrowless" href="/docs/{{ $latest }}/providers">Authentication Providers</a>
</div>

{{ range $docs }}
{{ $isExternal := hasPrefix .URL "http" }}
{{ if .HasChildren }}
Expand Down
15 changes: 15 additions & 0 deletions layouts/partials/providers.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{{ $here := $.Page.RelPermalink }}
{{ $providers := where site.RegularPages ".CurrentSection.Title" "Authentication Providers" }}
{{ $version := index (split $.Page.File.Path "/") 1 }}
<div class="buttons has-extra-top-margin">
{{ range $providers }}
{{ $isHere := eq .RelPermalink $here }}
cynthia-sg marked this conversation as resolved.
Show resolved Hide resolved
{{ $thisVersion := index (split .File.Path "/") 1 }}
{{ $sameVersion := eq $version $thisVersion }}
{{ if $sameVersion }}
<a class="button is-primary{{ if not $isHere }} is-outlined{{ end }}" href="{{ .RelPermalink }}">
{{ .Title }}
</a>
{{ end }}
{{ end }}
</div>