Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
20 changes: 20 additions & 0 deletions docs/pages/reference/helm-reference/teleport-kube-agent.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -771,6 +771,26 @@ This can be used for joining a Teleport instance to a Teleport cluster which doe
One option might be to use Teleport's built-in [ACME support](./teleport-cluster.mdx#acme) or enable [cert-manager support](./teleport-cluster.mdx#highavailabilitycertmanager).
</Admonition>

## `teleportConfig`

`teleportConfig` contains YAML teleport configuration to pass to the Teleport pods.
The configuration will be merged with the chart-generated configuration
and will take precedence in case of conflict.

See the [Teleport Configuration Reference](../config.mdx) for the list of supported fields.

```yaml
teleportConfig:
app_service:
debug_app: true
discovery_service:
enabled: true
azure:
- types: ["aks"]
tags:
"*":"*"
```

## `tls`

### `existingCASecretName`
Expand Down
121 changes: 121 additions & 0 deletions examples/chart/teleport-kube-agent/templates/_config.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
{{- define "teleport-kube-agent.config" -}}
{{- $logLevel := (coalesce .Values.logLevel .Values.log.level "INFO") -}}
{{- if .Values.teleportVersionOverride -}}
{{- $_ := set . "teleportVersion" .Values.teleportVersionOverride -}}
{{- else -}}
{{- $_ := set . "teleportVersion" .Chart.Version -}}
{{- end -}}
{{- if (ge (semver .teleportVersion).Major 11) }}
version: v3
{{- end }}
teleport:
join_params:
method: "{{ .Values.joinParams.method }}"
token_name: "/etc/teleport-secrets/auth-token"
{{- if (ge (semver .teleportVersion).Major 11) }}
proxy_server: {{ required "proxyAddr is required in chart values" .Values.proxyAddr }}
{{- else }}
auth_servers: ["{{ required "proxyAddr is required in chart values" .Values.proxyAddr }}"]
{{- end }}
{{- if .Values.caPin }}
ca_pin: {{- toYaml .Values.caPin | nindent 8 }}
{{- end }}
log:
severity: {{ $logLevel }}
output: {{ .Values.log.output }}
format:
output: {{ .Values.log.format }}
extra_fields: {{ .Values.log.extraFields | toJson }}

kubernetes_service:
{{- if or (contains "kube" (.Values.roles | toString)) (empty .Values.roles) }}
enabled: true
kube_cluster_name: {{ required "kubeClusterName is required in chart values when kube role is enabled, see README" .Values.kubeClusterName }}
{{- if .Values.labels }}
labels: {{- toYaml .Values.labels | nindent 8 }}
{{- end }}
{{- else }}
enabled: false
{{- end }}

app_service:
{{- if contains "app" (.Values.roles | toString) }}
enabled: true
{{- if not (or (.Values.apps) (.Values.appResources)) }}
{{- fail "at least one of 'apps' and 'appResources' is required in chart values when app role is enabled, see README" }}
{{- end }}
{{- if .Values.apps }}
{{- range $app := .Values.apps }}
{{- if not (hasKey $app "name") }}
{{- fail "'name' is required for all 'apps' in chart values when app role is enabled, see README" }}
{{- end }}
{{- if not (hasKey $app "uri") }}
{{- fail "'uri' is required for all 'apps' in chart values when app role is enabled, see README" }}
{{- end }}
{{- end }}
apps:
{{- toYaml .Values.apps | nindent 8 }}
{{- end }}
{{- if .Values.appResources }}
resources:
{{- toYaml .Values.appResources | nindent 8 }}
{{- end }}
{{- else }}
enabled: false
{{- end }}

db_service:
{{- if contains "db" (.Values.roles | toString) }}
enabled: true
{{- if not (or (.Values.awsDatabases) (.Values.azureDatabases) (.Values.databases) (.Values.databaseResources)) }}
{{- fail "at least one of 'awsDatabases', 'azureDatabases', 'databases' or 'databaseResources' is required in chart values when db role is enabled, see README" }}
{{- end }}
{{- if .Values.awsDatabases }}
aws:
{{- range $awsDb := .Values.awsDatabases }}
{{- if not (hasKey $awsDb "types") }}
{{- fail "'types' is required for all 'awsDatabases' in chart values when key is set and db role is enabled, see README" }}
{{- end }}
{{- if not (hasKey $awsDb "regions") }}
{{- fail "'regions' is required for all 'awsDatabases' in chart values when key is set and db role is enabled, see README" }}
{{- end }}
{{- if not (hasKey $awsDb "tags") }}
{{- fail "'tags' is required for all 'awsDatabases' in chart values when key is set and db role is enabled, see README" }}
{{- end }}
{{- end }}
{{- toYaml .Values.awsDatabases | nindent 6 }}
{{- end }}
{{- if .Values.azureDatabases }}
azure:
{{- toYaml .Values.azureDatabases | nindent 6 }}
{{- end}}
{{- if .Values.databases }}
databases:
{{- range $db := .Values.databases }}
{{- if not (hasKey $db "name") }}
{{- fail "'name' is required for all 'databases' in chart values when db role is enabled, see README" }}
{{- end }}
{{- if not (hasKey $db "uri") }}
{{- fail "'uri' is required for all 'databases' is required in chart values when db role is enabled, see README" }}
{{- end }}
{{- if not (hasKey $db "protocol") }}
{{- fail "'protocol' is required for all 'databases' in chart values when db role is enabled, see README" }}
{{- end }}
{{- end }}
{{- toYaml .Values.databases | nindent 6 }}
{{- end }}
{{- if .Values.databaseResources }}
resources:
{{- toYaml .Values.databaseResources | nindent 6 }}
{{- end }}
{{- else }}
enabled: false
{{- end }}

auth_service:
enabled: false
ssh_service:
enabled: false
proxy_service:
enabled: false
{{- end -}}
120 changes: 1 addition & 119 deletions examples/chart/teleport-kube-agent/templates/config.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
{{- $logLevel := (coalesce .Values.logLevel .Values.log.level "INFO") -}}
{{- if .Values.teleportVersionOverride -}}
{{- $_ := set . "teleportVersion" .Values.teleportVersionOverride -}}
{{- else -}}
{{- $_ := set . "teleportVersion" .Chart.Version -}}
{{- end -}}
apiVersion: v1
kind: ConfigMap
metadata:
Expand All @@ -19,116 +13,4 @@ metadata:
{{- end }}
data:
teleport.yaml: |
{{- if (ge (semver .teleportVersion).Major 11) }}
version: v3
{{- end }}
teleport:
join_params:
method: "{{ .Values.joinParams.method }}"
token_name: "/etc/teleport-secrets/auth-token"
{{- if (ge (semver .teleportVersion).Major 11) }}
proxy_server: {{ required "proxyAddr is required in chart values" .Values.proxyAddr }}
{{- else }}
auth_servers: ["{{ required "proxyAddr is required in chart values" .Values.proxyAddr }}"]
{{- end }}
{{- if .Values.caPin }}
ca_pin: {{- toYaml .Values.caPin | nindent 8 }}
{{- end }}
log:
severity: {{ $logLevel }}
output: {{ .Values.log.output }}
format:
output: {{ .Values.log.format }}
extra_fields: {{ .Values.log.extraFields | toJson }}

kubernetes_service:
{{- if or (contains "kube" (.Values.roles | toString)) (empty .Values.roles) }}
enabled: true
kube_cluster_name: {{ required "kubeClusterName is required in chart values when kube role is enabled, see README" .Values.kubeClusterName }}
{{- if .Values.labels }}
labels: {{- toYaml .Values.labels | nindent 8 }}
{{- end }}
{{- else }}
enabled: false
{{- end }}

app_service:
{{- if contains "app" (.Values.roles | toString) }}
enabled: true
{{- if not (or (.Values.apps) (.Values.appResources)) }}
{{- fail "at least one of 'apps' and 'appResources' is required in chart values when app role is enabled, see README" }}
{{- end }}
{{- if .Values.apps }}
{{- range $app := .Values.apps }}
{{- if not (hasKey $app "name") }}
{{- fail "'name' is required for all 'apps' in chart values when app role is enabled, see README" }}
{{- end }}
{{- if not (hasKey $app "uri") }}
{{- fail "'uri' is required for all 'apps' in chart values when app role is enabled, see README" }}
{{- end }}
{{- end }}
apps:
{{- toYaml .Values.apps | nindent 8 }}
{{- end }}
{{- if .Values.appResources }}
resources:
{{- toYaml .Values.appResources | nindent 8 }}
{{- end }}
{{- else }}
enabled: false
{{- end }}

db_service:
{{- if contains "db" (.Values.roles | toString) }}
enabled: true
{{- if not (or (.Values.awsDatabases) (.Values.azureDatabases) (.Values.databases) (.Values.databaseResources)) }}
{{- fail "at least one of 'awsDatabases', 'azureDatabases', 'databases' or 'databaseResources' is required in chart values when db role is enabled, see README" }}
{{- end }}
{{- if .Values.awsDatabases }}
aws:
{{- range $awsDb := .Values.awsDatabases }}
{{- if not (hasKey $awsDb "types") }}
{{- fail "'types' is required for all 'awsDatabases' in chart values when key is set and db role is enabled, see README" }}
{{- end }}
{{- if not (hasKey $awsDb "regions") }}
{{- fail "'regions' is required for all 'awsDatabases' in chart values when key is set and db role is enabled, see README" }}
{{- end }}
{{- if not (hasKey $awsDb "tags") }}
{{- fail "'tags' is required for all 'awsDatabases' in chart values when key is set and db role is enabled, see README" }}
{{- end }}
{{- end }}
{{- toYaml .Values.awsDatabases | nindent 6 }}
{{- end }}
{{- if .Values.azureDatabases }}
azure:
{{- toYaml .Values.azureDatabases | nindent 6 }}
{{- end}}
{{- if .Values.databases }}
databases:
{{- range $db := .Values.databases }}
{{- if not (hasKey $db "name") }}
{{- fail "'name' is required for all 'databases' in chart values when db role is enabled, see README" }}
{{- end }}
{{- if not (hasKey $db "uri") }}
{{- fail "'uri' is required for all 'databases' is required in chart values when db role is enabled, see README" }}
{{- end }}
{{- if not (hasKey $db "protocol") }}
{{- fail "'protocol' is required for all 'databases' in chart values when db role is enabled, see README" }}
{{- end }}
{{- end }}
{{- toYaml .Values.databases | nindent 6 }}
{{- end }}
{{- if .Values.databaseResources }}
resources:
{{- toYaml .Values.databaseResources | nindent 6 }}
{{- end }}
{{- else }}
enabled: false
{{- end }}

auth_service:
enabled: false
ssh_service:
enabled: false
proxy_service:
enabled: false
{{- mustMergeOverwrite (include "teleport-kube-agent.config" . | fromYaml) .Values.teleportConfig | toYaml | nindent 4 -}}
Loading