pulumi-vault 7.6.0a1764657486__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pulumi_vault/__init__.py +1399 -0
- pulumi_vault/_inputs.py +2701 -0
- pulumi_vault/_utilities.py +331 -0
- pulumi_vault/ad/__init__.py +12 -0
- pulumi_vault/ad/get_access_credentials.py +177 -0
- pulumi_vault/ad/secret_backend.py +1916 -0
- pulumi_vault/ad/secret_library.py +546 -0
- pulumi_vault/ad/secret_role.py +499 -0
- pulumi_vault/alicloud/__init__.py +9 -0
- pulumi_vault/alicloud/auth_backend_role.py +866 -0
- pulumi_vault/approle/__init__.py +12 -0
- pulumi_vault/approle/auth_backend_login.py +571 -0
- pulumi_vault/approle/auth_backend_role.py +1082 -0
- pulumi_vault/approle/auth_backend_role_secret_id.py +796 -0
- pulumi_vault/approle/get_auth_backend_role_id.py +169 -0
- pulumi_vault/audit.py +499 -0
- pulumi_vault/audit_request_header.py +277 -0
- pulumi_vault/auth_backend.py +565 -0
- pulumi_vault/aws/__init__.py +22 -0
- pulumi_vault/aws/auth_backend_cert.py +420 -0
- pulumi_vault/aws/auth_backend_client.py +1259 -0
- pulumi_vault/aws/auth_backend_config_identity.py +494 -0
- pulumi_vault/aws/auth_backend_identity_whitelist.py +380 -0
- pulumi_vault/aws/auth_backend_login.py +1046 -0
- pulumi_vault/aws/auth_backend_role.py +1961 -0
- pulumi_vault/aws/auth_backend_role_tag.py +638 -0
- pulumi_vault/aws/auth_backend_roletag_blacklist.py +366 -0
- pulumi_vault/aws/auth_backend_sts_role.py +414 -0
- pulumi_vault/aws/get_access_credentials.py +369 -0
- pulumi_vault/aws/get_static_access_credentials.py +137 -0
- pulumi_vault/aws/secret_backend.py +2018 -0
- pulumi_vault/aws/secret_backend_role.py +1188 -0
- pulumi_vault/aws/secret_backend_static_role.py +639 -0
- pulumi_vault/azure/__init__.py +15 -0
- pulumi_vault/azure/_inputs.py +108 -0
- pulumi_vault/azure/auth_backend_config.py +1096 -0
- pulumi_vault/azure/auth_backend_role.py +1176 -0
- pulumi_vault/azure/backend.py +1793 -0
- pulumi_vault/azure/backend_role.py +883 -0
- pulumi_vault/azure/get_access_credentials.py +400 -0
- pulumi_vault/azure/outputs.py +107 -0
- pulumi_vault/cert_auth_backend_role.py +1539 -0
- pulumi_vault/config/__init__.py +9 -0
- pulumi_vault/config/__init__.pyi +164 -0
- pulumi_vault/config/_inputs.py +73 -0
- pulumi_vault/config/outputs.py +1225 -0
- pulumi_vault/config/ui_custom_message.py +530 -0
- pulumi_vault/config/vars.py +230 -0
- pulumi_vault/consul/__init__.py +10 -0
- pulumi_vault/consul/secret_backend.py +1517 -0
- pulumi_vault/consul/secret_backend_role.py +847 -0
- pulumi_vault/database/__init__.py +14 -0
- pulumi_vault/database/_inputs.py +11907 -0
- pulumi_vault/database/outputs.py +8496 -0
- pulumi_vault/database/secret_backend_connection.py +1676 -0
- pulumi_vault/database/secret_backend_role.py +840 -0
- pulumi_vault/database/secret_backend_static_role.py +881 -0
- pulumi_vault/database/secrets_mount.py +2160 -0
- pulumi_vault/egp_policy.py +399 -0
- pulumi_vault/gcp/__init__.py +17 -0
- pulumi_vault/gcp/_inputs.py +441 -0
- pulumi_vault/gcp/auth_backend.py +1486 -0
- pulumi_vault/gcp/auth_backend_role.py +1235 -0
- pulumi_vault/gcp/get_auth_backend_role.py +514 -0
- pulumi_vault/gcp/outputs.py +302 -0
- pulumi_vault/gcp/secret_backend.py +1807 -0
- pulumi_vault/gcp/secret_impersonated_account.py +484 -0
- pulumi_vault/gcp/secret_roleset.py +554 -0
- pulumi_vault/gcp/secret_static_account.py +557 -0
- pulumi_vault/generic/__init__.py +11 -0
- pulumi_vault/generic/endpoint.py +786 -0
- pulumi_vault/generic/get_secret.py +306 -0
- pulumi_vault/generic/secret.py +486 -0
- pulumi_vault/get_auth_backend.py +226 -0
- pulumi_vault/get_auth_backends.py +170 -0
- pulumi_vault/get_namespace.py +226 -0
- pulumi_vault/get_namespaces.py +202 -0
- pulumi_vault/get_nomad_access_token.py +210 -0
- pulumi_vault/get_policy_document.py +160 -0
- pulumi_vault/get_raft_autopilot_state.py +267 -0
- pulumi_vault/github/__init__.py +13 -0
- pulumi_vault/github/_inputs.py +225 -0
- pulumi_vault/github/auth_backend.py +1194 -0
- pulumi_vault/github/outputs.py +174 -0
- pulumi_vault/github/team.py +380 -0
- pulumi_vault/github/user.py +380 -0
- pulumi_vault/identity/__init__.py +35 -0
- pulumi_vault/identity/entity.py +447 -0
- pulumi_vault/identity/entity_alias.py +398 -0
- pulumi_vault/identity/entity_policies.py +455 -0
- pulumi_vault/identity/get_entity.py +384 -0
- pulumi_vault/identity/get_group.py +467 -0
- pulumi_vault/identity/get_oidc_client_creds.py +175 -0
- pulumi_vault/identity/get_oidc_openid_config.py +334 -0
- pulumi_vault/identity/get_oidc_public_keys.py +179 -0
- pulumi_vault/identity/group.py +805 -0
- pulumi_vault/identity/group_alias.py +386 -0
- pulumi_vault/identity/group_member_entity_ids.py +444 -0
- pulumi_vault/identity/group_member_group_ids.py +467 -0
- pulumi_vault/identity/group_policies.py +471 -0
- pulumi_vault/identity/mfa_duo.py +674 -0
- pulumi_vault/identity/mfa_login_enforcement.py +566 -0
- pulumi_vault/identity/mfa_okta.py +626 -0
- pulumi_vault/identity/mfa_pingid.py +616 -0
- pulumi_vault/identity/mfa_totp.py +758 -0
- pulumi_vault/identity/oidc.py +268 -0
- pulumi_vault/identity/oidc_assignment.py +375 -0
- pulumi_vault/identity/oidc_client.py +667 -0
- pulumi_vault/identity/oidc_key.py +474 -0
- pulumi_vault/identity/oidc_key_allowed_client_id.py +298 -0
- pulumi_vault/identity/oidc_provider.py +550 -0
- pulumi_vault/identity/oidc_role.py +543 -0
- pulumi_vault/identity/oidc_scope.py +355 -0
- pulumi_vault/identity/outputs.py +137 -0
- pulumi_vault/jwt/__init__.py +12 -0
- pulumi_vault/jwt/_inputs.py +225 -0
- pulumi_vault/jwt/auth_backend.py +1347 -0
- pulumi_vault/jwt/auth_backend_role.py +1847 -0
- pulumi_vault/jwt/outputs.py +174 -0
- pulumi_vault/kmip/__init__.py +11 -0
- pulumi_vault/kmip/secret_backend.py +1591 -0
- pulumi_vault/kmip/secret_role.py +1194 -0
- pulumi_vault/kmip/secret_scope.py +372 -0
- pulumi_vault/kubernetes/__init__.py +15 -0
- pulumi_vault/kubernetes/auth_backend_config.py +654 -0
- pulumi_vault/kubernetes/auth_backend_role.py +1031 -0
- pulumi_vault/kubernetes/get_auth_backend_config.py +280 -0
- pulumi_vault/kubernetes/get_auth_backend_role.py +470 -0
- pulumi_vault/kubernetes/get_service_account_token.py +344 -0
- pulumi_vault/kubernetes/secret_backend.py +1341 -0
- pulumi_vault/kubernetes/secret_backend_role.py +1140 -0
- pulumi_vault/kv/__init__.py +18 -0
- pulumi_vault/kv/_inputs.py +124 -0
- pulumi_vault/kv/get_secret.py +240 -0
- pulumi_vault/kv/get_secret_subkeys_v2.py +275 -0
- pulumi_vault/kv/get_secret_v2.py +315 -0
- pulumi_vault/kv/get_secrets_list.py +186 -0
- pulumi_vault/kv/get_secrets_list_v2.py +243 -0
- pulumi_vault/kv/outputs.py +102 -0
- pulumi_vault/kv/secret.py +397 -0
- pulumi_vault/kv/secret_backend_v2.py +455 -0
- pulumi_vault/kv/secret_v2.py +970 -0
- pulumi_vault/ldap/__init__.py +19 -0
- pulumi_vault/ldap/_inputs.py +225 -0
- pulumi_vault/ldap/auth_backend.py +2520 -0
- pulumi_vault/ldap/auth_backend_group.py +386 -0
- pulumi_vault/ldap/auth_backend_user.py +439 -0
- pulumi_vault/ldap/get_dynamic_credentials.py +181 -0
- pulumi_vault/ldap/get_static_credentials.py +192 -0
- pulumi_vault/ldap/outputs.py +174 -0
- pulumi_vault/ldap/secret_backend.py +2207 -0
- pulumi_vault/ldap/secret_backend_dynamic_role.py +767 -0
- pulumi_vault/ldap/secret_backend_library_set.py +552 -0
- pulumi_vault/ldap/secret_backend_static_role.py +541 -0
- pulumi_vault/managed/__init__.py +11 -0
- pulumi_vault/managed/_inputs.py +944 -0
- pulumi_vault/managed/keys.py +398 -0
- pulumi_vault/managed/outputs.py +667 -0
- pulumi_vault/mfa_duo.py +589 -0
- pulumi_vault/mfa_okta.py +623 -0
- pulumi_vault/mfa_pingid.py +670 -0
- pulumi_vault/mfa_totp.py +620 -0
- pulumi_vault/mongodbatlas/__init__.py +10 -0
- pulumi_vault/mongodbatlas/secret_backend.py +388 -0
- pulumi_vault/mongodbatlas/secret_role.py +726 -0
- pulumi_vault/mount.py +1262 -0
- pulumi_vault/namespace.py +452 -0
- pulumi_vault/nomad_secret_backend.py +1559 -0
- pulumi_vault/nomad_secret_role.py +489 -0
- pulumi_vault/oci_auth_backend.py +676 -0
- pulumi_vault/oci_auth_backend_role.py +852 -0
- pulumi_vault/okta/__init__.py +13 -0
- pulumi_vault/okta/_inputs.py +320 -0
- pulumi_vault/okta/auth_backend.py +1231 -0
- pulumi_vault/okta/auth_backend_group.py +369 -0
- pulumi_vault/okta/auth_backend_user.py +416 -0
- pulumi_vault/okta/outputs.py +244 -0
- pulumi_vault/outputs.py +502 -0
- pulumi_vault/pkisecret/__init__.py +38 -0
- pulumi_vault/pkisecret/_inputs.py +270 -0
- pulumi_vault/pkisecret/backend_acme_eab.py +550 -0
- pulumi_vault/pkisecret/backend_config_acme.py +690 -0
- pulumi_vault/pkisecret/backend_config_auto_tidy.py +1370 -0
- pulumi_vault/pkisecret/backend_config_cluster.py +370 -0
- pulumi_vault/pkisecret/backend_config_cmpv2.py +693 -0
- pulumi_vault/pkisecret/backend_config_est.py +756 -0
- pulumi_vault/pkisecret/backend_config_scep.py +738 -0
- pulumi_vault/pkisecret/get_backend_cert_metadata.py +277 -0
- pulumi_vault/pkisecret/get_backend_config_cmpv2.py +226 -0
- pulumi_vault/pkisecret/get_backend_config_est.py +251 -0
- pulumi_vault/pkisecret/get_backend_config_scep.py +271 -0
- pulumi_vault/pkisecret/get_backend_issuer.py +395 -0
- pulumi_vault/pkisecret/get_backend_issuers.py +192 -0
- pulumi_vault/pkisecret/get_backend_key.py +211 -0
- pulumi_vault/pkisecret/get_backend_keys.py +192 -0
- pulumi_vault/pkisecret/outputs.py +270 -0
- pulumi_vault/pkisecret/secret_backend_cert.py +1315 -0
- pulumi_vault/pkisecret/secret_backend_config_ca.py +386 -0
- pulumi_vault/pkisecret/secret_backend_config_issuers.py +392 -0
- pulumi_vault/pkisecret/secret_backend_config_urls.py +462 -0
- pulumi_vault/pkisecret/secret_backend_crl_config.py +846 -0
- pulumi_vault/pkisecret/secret_backend_intermediate_cert_request.py +1629 -0
- pulumi_vault/pkisecret/secret_backend_intermediate_set_signed.py +444 -0
- pulumi_vault/pkisecret/secret_backend_issuer.py +1089 -0
- pulumi_vault/pkisecret/secret_backend_key.py +613 -0
- pulumi_vault/pkisecret/secret_backend_role.py +2694 -0
- pulumi_vault/pkisecret/secret_backend_root_cert.py +2134 -0
- pulumi_vault/pkisecret/secret_backend_root_sign_intermediate.py +2031 -0
- pulumi_vault/pkisecret/secret_backend_sign.py +1194 -0
- pulumi_vault/plugin.py +596 -0
- pulumi_vault/plugin_pinned_version.py +299 -0
- pulumi_vault/policy.py +279 -0
- pulumi_vault/provider.py +781 -0
- pulumi_vault/pulumi-plugin.json +5 -0
- pulumi_vault/py.typed +0 -0
- pulumi_vault/quota_lease_count.py +504 -0
- pulumi_vault/quota_rate_limit.py +751 -0
- pulumi_vault/rabbitmq/__init__.py +12 -0
- pulumi_vault/rabbitmq/_inputs.py +235 -0
- pulumi_vault/rabbitmq/outputs.py +144 -0
- pulumi_vault/rabbitmq/secret_backend.py +1437 -0
- pulumi_vault/rabbitmq/secret_backend_role.py +496 -0
- pulumi_vault/raft_autopilot.py +609 -0
- pulumi_vault/raft_snapshot_agent_config.py +1591 -0
- pulumi_vault/rgp_policy.py +349 -0
- pulumi_vault/saml/__init__.py +12 -0
- pulumi_vault/saml/_inputs.py +225 -0
- pulumi_vault/saml/auth_backend.py +811 -0
- pulumi_vault/saml/auth_backend_role.py +1068 -0
- pulumi_vault/saml/outputs.py +174 -0
- pulumi_vault/scep_auth_backend_role.py +908 -0
- pulumi_vault/secrets/__init__.py +18 -0
- pulumi_vault/secrets/_inputs.py +110 -0
- pulumi_vault/secrets/outputs.py +94 -0
- pulumi_vault/secrets/sync_association.py +450 -0
- pulumi_vault/secrets/sync_aws_destination.py +780 -0
- pulumi_vault/secrets/sync_azure_destination.py +736 -0
- pulumi_vault/secrets/sync_config.py +303 -0
- pulumi_vault/secrets/sync_gcp_destination.py +572 -0
- pulumi_vault/secrets/sync_gh_destination.py +688 -0
- pulumi_vault/secrets/sync_github_apps.py +376 -0
- pulumi_vault/secrets/sync_vercel_destination.py +603 -0
- pulumi_vault/ssh/__init__.py +13 -0
- pulumi_vault/ssh/_inputs.py +76 -0
- pulumi_vault/ssh/get_secret_backend_sign.py +294 -0
- pulumi_vault/ssh/outputs.py +51 -0
- pulumi_vault/ssh/secret_backend_ca.py +588 -0
- pulumi_vault/ssh/secret_backend_role.py +1493 -0
- pulumi_vault/terraformcloud/__init__.py +11 -0
- pulumi_vault/terraformcloud/secret_backend.py +1321 -0
- pulumi_vault/terraformcloud/secret_creds.py +445 -0
- pulumi_vault/terraformcloud/secret_role.py +563 -0
- pulumi_vault/token.py +1026 -0
- pulumi_vault/tokenauth/__init__.py +9 -0
- pulumi_vault/tokenauth/auth_backend_role.py +1135 -0
- pulumi_vault/transform/__init__.py +14 -0
- pulumi_vault/transform/alphabet.py +348 -0
- pulumi_vault/transform/get_decode.py +287 -0
- pulumi_vault/transform/get_encode.py +291 -0
- pulumi_vault/transform/role.py +350 -0
- pulumi_vault/transform/template.py +592 -0
- pulumi_vault/transform/transformation.py +608 -0
- pulumi_vault/transit/__init__.py +15 -0
- pulumi_vault/transit/get_cmac.py +256 -0
- pulumi_vault/transit/get_decrypt.py +181 -0
- pulumi_vault/transit/get_encrypt.py +174 -0
- pulumi_vault/transit/get_sign.py +328 -0
- pulumi_vault/transit/get_verify.py +373 -0
- pulumi_vault/transit/secret_backend_key.py +1202 -0
- pulumi_vault/transit/secret_cache_config.py +302 -0
- pulumi_vault-7.6.0a1764657486.dist-info/METADATA +92 -0
- pulumi_vault-7.6.0a1764657486.dist-info/RECORD +274 -0
- pulumi_vault-7.6.0a1764657486.dist-info/WHEEL +5 -0
- pulumi_vault-7.6.0a1764657486.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,1140 @@
|
|
|
1
|
+
# coding=utf-8
|
|
2
|
+
# *** WARNING: this file was generated by pulumi-language-python. ***
|
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
|
+
|
|
5
|
+
import builtins as _builtins
|
|
6
|
+
import warnings
|
|
7
|
+
import sys
|
|
8
|
+
import pulumi
|
|
9
|
+
import pulumi.runtime
|
|
10
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
|
11
|
+
if sys.version_info >= (3, 11):
|
|
12
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
|
13
|
+
else:
|
|
14
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
|
15
|
+
from .. import _utilities
|
|
16
|
+
|
|
17
|
+
__all__ = ['SecretBackendRoleArgs', 'SecretBackendRole']
|
|
18
|
+
|
|
19
|
+
@pulumi.input_type
|
|
20
|
+
class SecretBackendRoleArgs:
|
|
21
|
+
def __init__(__self__, *,
|
|
22
|
+
backend: pulumi.Input[_builtins.str],
|
|
23
|
+
allowed_kubernetes_namespace_selector: Optional[pulumi.Input[_builtins.str]] = None,
|
|
24
|
+
allowed_kubernetes_namespaces: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
25
|
+
extra_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
26
|
+
extra_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
27
|
+
generated_role_rules: Optional[pulumi.Input[_builtins.str]] = None,
|
|
28
|
+
kubernetes_role_name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
29
|
+
kubernetes_role_type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
30
|
+
name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
31
|
+
name_template: Optional[pulumi.Input[_builtins.str]] = None,
|
|
32
|
+
namespace: Optional[pulumi.Input[_builtins.str]] = None,
|
|
33
|
+
service_account_name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
34
|
+
token_default_ttl: Optional[pulumi.Input[_builtins.int]] = None,
|
|
35
|
+
token_max_ttl: Optional[pulumi.Input[_builtins.int]] = None):
|
|
36
|
+
"""
|
|
37
|
+
The set of arguments for constructing a SecretBackendRole resource.
|
|
38
|
+
:param pulumi.Input[_builtins.str] backend: The path of the Kubernetes Secrets Engine backend mount to create
|
|
39
|
+
the role in.
|
|
40
|
+
:param pulumi.Input[_builtins.str] allowed_kubernetes_namespace_selector: A label selector for Kubernetes namespaces
|
|
41
|
+
in which credentials can be generated. Accepts either a JSON or YAML object. The value should be
|
|
42
|
+
of type [LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#labelselector-v1-meta).
|
|
43
|
+
If set with `allowed_kubernetes_namespace`, the conditions are `OR`ed.
|
|
44
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] allowed_kubernetes_namespaces: The list of Kubernetes namespaces this role
|
|
45
|
+
can generate credentials for. If set to `*` all namespaces are allowed. If set with
|
|
46
|
+
`allowed_kubernetes_namespace_selector`, the conditions are `OR`ed.
|
|
47
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] extra_annotations: Additional annotations to apply to all generated
|
|
48
|
+
Kubernetes objects.
|
|
49
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] extra_labels: Additional labels to apply to all generated Kubernetes
|
|
50
|
+
objects.
|
|
51
|
+
|
|
52
|
+
This resource also directly accepts all Mount fields.
|
|
53
|
+
:param pulumi.Input[_builtins.str] generated_role_rules: The Role or ClusterRole rules to use when generating
|
|
54
|
+
a role. Accepts either JSON or YAML formatted rules. Mutually exclusive with `service_account_name`
|
|
55
|
+
and `kubernetes_role_name`. If set, the entire chain of Kubernetes objects will be generated
|
|
56
|
+
when credentials are requested.
|
|
57
|
+
:param pulumi.Input[_builtins.str] kubernetes_role_name: The pre-existing Role or ClusterRole to bind a
|
|
58
|
+
generated service account to. Mutually exclusive with `service_account_name` and
|
|
59
|
+
`generated_role_rules`. If set, Kubernetes token, service account, and role
|
|
60
|
+
binding objects will be created when credentials are requested.
|
|
61
|
+
:param pulumi.Input[_builtins.str] kubernetes_role_type: Specifies whether the Kubernetes role is a Role or
|
|
62
|
+
ClusterRole.
|
|
63
|
+
:param pulumi.Input[_builtins.str] name: The name of the role.
|
|
64
|
+
:param pulumi.Input[_builtins.str] name_template: The name template to use when generating service accounts,
|
|
65
|
+
roles and role bindings. If unset, a default template is used.
|
|
66
|
+
:param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
|
|
67
|
+
The value should not contain leading or trailing forward slashes.
|
|
68
|
+
The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
|
|
69
|
+
*Available only for Vault Enterprise*.
|
|
70
|
+
:param pulumi.Input[_builtins.str] service_account_name: The pre-existing service account to generate tokens for.
|
|
71
|
+
Mutually exclusive with `kubernetes_role_name` and `generated_role_rules`. If set, only a
|
|
72
|
+
Kubernetes token will be created when credentials are requested.
|
|
73
|
+
:param pulumi.Input[_builtins.int] token_default_ttl: The default TTL for generated Kubernetes tokens in seconds.
|
|
74
|
+
:param pulumi.Input[_builtins.int] token_max_ttl: The maximum TTL for generated Kubernetes tokens in seconds.
|
|
75
|
+
"""
|
|
76
|
+
pulumi.set(__self__, "backend", backend)
|
|
77
|
+
if allowed_kubernetes_namespace_selector is not None:
|
|
78
|
+
pulumi.set(__self__, "allowed_kubernetes_namespace_selector", allowed_kubernetes_namespace_selector)
|
|
79
|
+
if allowed_kubernetes_namespaces is not None:
|
|
80
|
+
pulumi.set(__self__, "allowed_kubernetes_namespaces", allowed_kubernetes_namespaces)
|
|
81
|
+
if extra_annotations is not None:
|
|
82
|
+
pulumi.set(__self__, "extra_annotations", extra_annotations)
|
|
83
|
+
if extra_labels is not None:
|
|
84
|
+
pulumi.set(__self__, "extra_labels", extra_labels)
|
|
85
|
+
if generated_role_rules is not None:
|
|
86
|
+
pulumi.set(__self__, "generated_role_rules", generated_role_rules)
|
|
87
|
+
if kubernetes_role_name is not None:
|
|
88
|
+
pulumi.set(__self__, "kubernetes_role_name", kubernetes_role_name)
|
|
89
|
+
if kubernetes_role_type is not None:
|
|
90
|
+
pulumi.set(__self__, "kubernetes_role_type", kubernetes_role_type)
|
|
91
|
+
if name is not None:
|
|
92
|
+
pulumi.set(__self__, "name", name)
|
|
93
|
+
if name_template is not None:
|
|
94
|
+
pulumi.set(__self__, "name_template", name_template)
|
|
95
|
+
if namespace is not None:
|
|
96
|
+
pulumi.set(__self__, "namespace", namespace)
|
|
97
|
+
if service_account_name is not None:
|
|
98
|
+
pulumi.set(__self__, "service_account_name", service_account_name)
|
|
99
|
+
if token_default_ttl is not None:
|
|
100
|
+
pulumi.set(__self__, "token_default_ttl", token_default_ttl)
|
|
101
|
+
if token_max_ttl is not None:
|
|
102
|
+
pulumi.set(__self__, "token_max_ttl", token_max_ttl)
|
|
103
|
+
|
|
104
|
+
@_builtins.property
|
|
105
|
+
@pulumi.getter
|
|
106
|
+
def backend(self) -> pulumi.Input[_builtins.str]:
|
|
107
|
+
"""
|
|
108
|
+
The path of the Kubernetes Secrets Engine backend mount to create
|
|
109
|
+
the role in.
|
|
110
|
+
"""
|
|
111
|
+
return pulumi.get(self, "backend")
|
|
112
|
+
|
|
113
|
+
@backend.setter
|
|
114
|
+
def backend(self, value: pulumi.Input[_builtins.str]):
|
|
115
|
+
pulumi.set(self, "backend", value)
|
|
116
|
+
|
|
117
|
+
@_builtins.property
|
|
118
|
+
@pulumi.getter(name="allowedKubernetesNamespaceSelector")
|
|
119
|
+
def allowed_kubernetes_namespace_selector(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
120
|
+
"""
|
|
121
|
+
A label selector for Kubernetes namespaces
|
|
122
|
+
in which credentials can be generated. Accepts either a JSON or YAML object. The value should be
|
|
123
|
+
of type [LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#labelselector-v1-meta).
|
|
124
|
+
If set with `allowed_kubernetes_namespace`, the conditions are `OR`ed.
|
|
125
|
+
"""
|
|
126
|
+
return pulumi.get(self, "allowed_kubernetes_namespace_selector")
|
|
127
|
+
|
|
128
|
+
@allowed_kubernetes_namespace_selector.setter
|
|
129
|
+
def allowed_kubernetes_namespace_selector(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
130
|
+
pulumi.set(self, "allowed_kubernetes_namespace_selector", value)
|
|
131
|
+
|
|
132
|
+
@_builtins.property
|
|
133
|
+
@pulumi.getter(name="allowedKubernetesNamespaces")
|
|
134
|
+
def allowed_kubernetes_namespaces(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
135
|
+
"""
|
|
136
|
+
The list of Kubernetes namespaces this role
|
|
137
|
+
can generate credentials for. If set to `*` all namespaces are allowed. If set with
|
|
138
|
+
`allowed_kubernetes_namespace_selector`, the conditions are `OR`ed.
|
|
139
|
+
"""
|
|
140
|
+
return pulumi.get(self, "allowed_kubernetes_namespaces")
|
|
141
|
+
|
|
142
|
+
@allowed_kubernetes_namespaces.setter
|
|
143
|
+
def allowed_kubernetes_namespaces(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
144
|
+
pulumi.set(self, "allowed_kubernetes_namespaces", value)
|
|
145
|
+
|
|
146
|
+
@_builtins.property
|
|
147
|
+
@pulumi.getter(name="extraAnnotations")
|
|
148
|
+
def extra_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
|
|
149
|
+
"""
|
|
150
|
+
Additional annotations to apply to all generated
|
|
151
|
+
Kubernetes objects.
|
|
152
|
+
"""
|
|
153
|
+
return pulumi.get(self, "extra_annotations")
|
|
154
|
+
|
|
155
|
+
@extra_annotations.setter
|
|
156
|
+
def extra_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
|
|
157
|
+
pulumi.set(self, "extra_annotations", value)
|
|
158
|
+
|
|
159
|
+
@_builtins.property
|
|
160
|
+
@pulumi.getter(name="extraLabels")
|
|
161
|
+
def extra_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
|
|
162
|
+
"""
|
|
163
|
+
Additional labels to apply to all generated Kubernetes
|
|
164
|
+
objects.
|
|
165
|
+
|
|
166
|
+
This resource also directly accepts all Mount fields.
|
|
167
|
+
"""
|
|
168
|
+
return pulumi.get(self, "extra_labels")
|
|
169
|
+
|
|
170
|
+
@extra_labels.setter
|
|
171
|
+
def extra_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
|
|
172
|
+
pulumi.set(self, "extra_labels", value)
|
|
173
|
+
|
|
174
|
+
@_builtins.property
|
|
175
|
+
@pulumi.getter(name="generatedRoleRules")
|
|
176
|
+
def generated_role_rules(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
177
|
+
"""
|
|
178
|
+
The Role or ClusterRole rules to use when generating
|
|
179
|
+
a role. Accepts either JSON or YAML formatted rules. Mutually exclusive with `service_account_name`
|
|
180
|
+
and `kubernetes_role_name`. If set, the entire chain of Kubernetes objects will be generated
|
|
181
|
+
when credentials are requested.
|
|
182
|
+
"""
|
|
183
|
+
return pulumi.get(self, "generated_role_rules")
|
|
184
|
+
|
|
185
|
+
@generated_role_rules.setter
|
|
186
|
+
def generated_role_rules(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
187
|
+
pulumi.set(self, "generated_role_rules", value)
|
|
188
|
+
|
|
189
|
+
@_builtins.property
|
|
190
|
+
@pulumi.getter(name="kubernetesRoleName")
|
|
191
|
+
def kubernetes_role_name(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
192
|
+
"""
|
|
193
|
+
The pre-existing Role or ClusterRole to bind a
|
|
194
|
+
generated service account to. Mutually exclusive with `service_account_name` and
|
|
195
|
+
`generated_role_rules`. If set, Kubernetes token, service account, and role
|
|
196
|
+
binding objects will be created when credentials are requested.
|
|
197
|
+
"""
|
|
198
|
+
return pulumi.get(self, "kubernetes_role_name")
|
|
199
|
+
|
|
200
|
+
@kubernetes_role_name.setter
|
|
201
|
+
def kubernetes_role_name(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
202
|
+
pulumi.set(self, "kubernetes_role_name", value)
|
|
203
|
+
|
|
204
|
+
@_builtins.property
|
|
205
|
+
@pulumi.getter(name="kubernetesRoleType")
|
|
206
|
+
def kubernetes_role_type(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
207
|
+
"""
|
|
208
|
+
Specifies whether the Kubernetes role is a Role or
|
|
209
|
+
ClusterRole.
|
|
210
|
+
"""
|
|
211
|
+
return pulumi.get(self, "kubernetes_role_type")
|
|
212
|
+
|
|
213
|
+
@kubernetes_role_type.setter
|
|
214
|
+
def kubernetes_role_type(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
215
|
+
pulumi.set(self, "kubernetes_role_type", value)
|
|
216
|
+
|
|
217
|
+
@_builtins.property
|
|
218
|
+
@pulumi.getter
|
|
219
|
+
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
220
|
+
"""
|
|
221
|
+
The name of the role.
|
|
222
|
+
"""
|
|
223
|
+
return pulumi.get(self, "name")
|
|
224
|
+
|
|
225
|
+
@name.setter
|
|
226
|
+
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
227
|
+
pulumi.set(self, "name", value)
|
|
228
|
+
|
|
229
|
+
@_builtins.property
|
|
230
|
+
@pulumi.getter(name="nameTemplate")
|
|
231
|
+
def name_template(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
232
|
+
"""
|
|
233
|
+
The name template to use when generating service accounts,
|
|
234
|
+
roles and role bindings. If unset, a default template is used.
|
|
235
|
+
"""
|
|
236
|
+
return pulumi.get(self, "name_template")
|
|
237
|
+
|
|
238
|
+
@name_template.setter
|
|
239
|
+
def name_template(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
240
|
+
pulumi.set(self, "name_template", value)
|
|
241
|
+
|
|
242
|
+
@_builtins.property
|
|
243
|
+
@pulumi.getter
|
|
244
|
+
def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
245
|
+
"""
|
|
246
|
+
The namespace to provision the resource in.
|
|
247
|
+
The value should not contain leading or trailing forward slashes.
|
|
248
|
+
The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
|
|
249
|
+
*Available only for Vault Enterprise*.
|
|
250
|
+
"""
|
|
251
|
+
return pulumi.get(self, "namespace")
|
|
252
|
+
|
|
253
|
+
@namespace.setter
|
|
254
|
+
def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
255
|
+
pulumi.set(self, "namespace", value)
|
|
256
|
+
|
|
257
|
+
@_builtins.property
|
|
258
|
+
@pulumi.getter(name="serviceAccountName")
|
|
259
|
+
def service_account_name(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
260
|
+
"""
|
|
261
|
+
The pre-existing service account to generate tokens for.
|
|
262
|
+
Mutually exclusive with `kubernetes_role_name` and `generated_role_rules`. If set, only a
|
|
263
|
+
Kubernetes token will be created when credentials are requested.
|
|
264
|
+
"""
|
|
265
|
+
return pulumi.get(self, "service_account_name")
|
|
266
|
+
|
|
267
|
+
@service_account_name.setter
|
|
268
|
+
def service_account_name(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
269
|
+
pulumi.set(self, "service_account_name", value)
|
|
270
|
+
|
|
271
|
+
@_builtins.property
|
|
272
|
+
@pulumi.getter(name="tokenDefaultTtl")
|
|
273
|
+
def token_default_ttl(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
274
|
+
"""
|
|
275
|
+
The default TTL for generated Kubernetes tokens in seconds.
|
|
276
|
+
"""
|
|
277
|
+
return pulumi.get(self, "token_default_ttl")
|
|
278
|
+
|
|
279
|
+
@token_default_ttl.setter
|
|
280
|
+
def token_default_ttl(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
281
|
+
pulumi.set(self, "token_default_ttl", value)
|
|
282
|
+
|
|
283
|
+
@_builtins.property
|
|
284
|
+
@pulumi.getter(name="tokenMaxTtl")
|
|
285
|
+
def token_max_ttl(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
286
|
+
"""
|
|
287
|
+
The maximum TTL for generated Kubernetes tokens in seconds.
|
|
288
|
+
"""
|
|
289
|
+
return pulumi.get(self, "token_max_ttl")
|
|
290
|
+
|
|
291
|
+
@token_max_ttl.setter
|
|
292
|
+
def token_max_ttl(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
293
|
+
pulumi.set(self, "token_max_ttl", value)
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
@pulumi.input_type
|
|
297
|
+
class _SecretBackendRoleState:
|
|
298
|
+
def __init__(__self__, *,
|
|
299
|
+
allowed_kubernetes_namespace_selector: Optional[pulumi.Input[_builtins.str]] = None,
|
|
300
|
+
allowed_kubernetes_namespaces: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
301
|
+
backend: Optional[pulumi.Input[_builtins.str]] = None,
|
|
302
|
+
extra_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
303
|
+
extra_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
304
|
+
generated_role_rules: Optional[pulumi.Input[_builtins.str]] = None,
|
|
305
|
+
kubernetes_role_name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
306
|
+
kubernetes_role_type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
307
|
+
name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
308
|
+
name_template: Optional[pulumi.Input[_builtins.str]] = None,
|
|
309
|
+
namespace: Optional[pulumi.Input[_builtins.str]] = None,
|
|
310
|
+
service_account_name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
311
|
+
token_default_ttl: Optional[pulumi.Input[_builtins.int]] = None,
|
|
312
|
+
token_max_ttl: Optional[pulumi.Input[_builtins.int]] = None):
|
|
313
|
+
"""
|
|
314
|
+
Input properties used for looking up and filtering SecretBackendRole resources.
|
|
315
|
+
:param pulumi.Input[_builtins.str] allowed_kubernetes_namespace_selector: A label selector for Kubernetes namespaces
|
|
316
|
+
in which credentials can be generated. Accepts either a JSON or YAML object. The value should be
|
|
317
|
+
of type [LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#labelselector-v1-meta).
|
|
318
|
+
If set with `allowed_kubernetes_namespace`, the conditions are `OR`ed.
|
|
319
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] allowed_kubernetes_namespaces: The list of Kubernetes namespaces this role
|
|
320
|
+
can generate credentials for. If set to `*` all namespaces are allowed. If set with
|
|
321
|
+
`allowed_kubernetes_namespace_selector`, the conditions are `OR`ed.
|
|
322
|
+
:param pulumi.Input[_builtins.str] backend: The path of the Kubernetes Secrets Engine backend mount to create
|
|
323
|
+
the role in.
|
|
324
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] extra_annotations: Additional annotations to apply to all generated
|
|
325
|
+
Kubernetes objects.
|
|
326
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] extra_labels: Additional labels to apply to all generated Kubernetes
|
|
327
|
+
objects.
|
|
328
|
+
|
|
329
|
+
This resource also directly accepts all Mount fields.
|
|
330
|
+
:param pulumi.Input[_builtins.str] generated_role_rules: The Role or ClusterRole rules to use when generating
|
|
331
|
+
a role. Accepts either JSON or YAML formatted rules. Mutually exclusive with `service_account_name`
|
|
332
|
+
and `kubernetes_role_name`. If set, the entire chain of Kubernetes objects will be generated
|
|
333
|
+
when credentials are requested.
|
|
334
|
+
:param pulumi.Input[_builtins.str] kubernetes_role_name: The pre-existing Role or ClusterRole to bind a
|
|
335
|
+
generated service account to. Mutually exclusive with `service_account_name` and
|
|
336
|
+
`generated_role_rules`. If set, Kubernetes token, service account, and role
|
|
337
|
+
binding objects will be created when credentials are requested.
|
|
338
|
+
:param pulumi.Input[_builtins.str] kubernetes_role_type: Specifies whether the Kubernetes role is a Role or
|
|
339
|
+
ClusterRole.
|
|
340
|
+
:param pulumi.Input[_builtins.str] name: The name of the role.
|
|
341
|
+
:param pulumi.Input[_builtins.str] name_template: The name template to use when generating service accounts,
|
|
342
|
+
roles and role bindings. If unset, a default template is used.
|
|
343
|
+
:param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
|
|
344
|
+
The value should not contain leading or trailing forward slashes.
|
|
345
|
+
The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
|
|
346
|
+
*Available only for Vault Enterprise*.
|
|
347
|
+
:param pulumi.Input[_builtins.str] service_account_name: The pre-existing service account to generate tokens for.
|
|
348
|
+
Mutually exclusive with `kubernetes_role_name` and `generated_role_rules`. If set, only a
|
|
349
|
+
Kubernetes token will be created when credentials are requested.
|
|
350
|
+
:param pulumi.Input[_builtins.int] token_default_ttl: The default TTL for generated Kubernetes tokens in seconds.
|
|
351
|
+
:param pulumi.Input[_builtins.int] token_max_ttl: The maximum TTL for generated Kubernetes tokens in seconds.
|
|
352
|
+
"""
|
|
353
|
+
if allowed_kubernetes_namespace_selector is not None:
|
|
354
|
+
pulumi.set(__self__, "allowed_kubernetes_namespace_selector", allowed_kubernetes_namespace_selector)
|
|
355
|
+
if allowed_kubernetes_namespaces is not None:
|
|
356
|
+
pulumi.set(__self__, "allowed_kubernetes_namespaces", allowed_kubernetes_namespaces)
|
|
357
|
+
if backend is not None:
|
|
358
|
+
pulumi.set(__self__, "backend", backend)
|
|
359
|
+
if extra_annotations is not None:
|
|
360
|
+
pulumi.set(__self__, "extra_annotations", extra_annotations)
|
|
361
|
+
if extra_labels is not None:
|
|
362
|
+
pulumi.set(__self__, "extra_labels", extra_labels)
|
|
363
|
+
if generated_role_rules is not None:
|
|
364
|
+
pulumi.set(__self__, "generated_role_rules", generated_role_rules)
|
|
365
|
+
if kubernetes_role_name is not None:
|
|
366
|
+
pulumi.set(__self__, "kubernetes_role_name", kubernetes_role_name)
|
|
367
|
+
if kubernetes_role_type is not None:
|
|
368
|
+
pulumi.set(__self__, "kubernetes_role_type", kubernetes_role_type)
|
|
369
|
+
if name is not None:
|
|
370
|
+
pulumi.set(__self__, "name", name)
|
|
371
|
+
if name_template is not None:
|
|
372
|
+
pulumi.set(__self__, "name_template", name_template)
|
|
373
|
+
if namespace is not None:
|
|
374
|
+
pulumi.set(__self__, "namespace", namespace)
|
|
375
|
+
if service_account_name is not None:
|
|
376
|
+
pulumi.set(__self__, "service_account_name", service_account_name)
|
|
377
|
+
if token_default_ttl is not None:
|
|
378
|
+
pulumi.set(__self__, "token_default_ttl", token_default_ttl)
|
|
379
|
+
if token_max_ttl is not None:
|
|
380
|
+
pulumi.set(__self__, "token_max_ttl", token_max_ttl)
|
|
381
|
+
|
|
382
|
+
@_builtins.property
|
|
383
|
+
@pulumi.getter(name="allowedKubernetesNamespaceSelector")
|
|
384
|
+
def allowed_kubernetes_namespace_selector(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
385
|
+
"""
|
|
386
|
+
A label selector for Kubernetes namespaces
|
|
387
|
+
in which credentials can be generated. Accepts either a JSON or YAML object. The value should be
|
|
388
|
+
of type [LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#labelselector-v1-meta).
|
|
389
|
+
If set with `allowed_kubernetes_namespace`, the conditions are `OR`ed.
|
|
390
|
+
"""
|
|
391
|
+
return pulumi.get(self, "allowed_kubernetes_namespace_selector")
|
|
392
|
+
|
|
393
|
+
@allowed_kubernetes_namespace_selector.setter
|
|
394
|
+
def allowed_kubernetes_namespace_selector(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
395
|
+
pulumi.set(self, "allowed_kubernetes_namespace_selector", value)
|
|
396
|
+
|
|
397
|
+
@_builtins.property
|
|
398
|
+
@pulumi.getter(name="allowedKubernetesNamespaces")
|
|
399
|
+
def allowed_kubernetes_namespaces(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
400
|
+
"""
|
|
401
|
+
The list of Kubernetes namespaces this role
|
|
402
|
+
can generate credentials for. If set to `*` all namespaces are allowed. If set with
|
|
403
|
+
`allowed_kubernetes_namespace_selector`, the conditions are `OR`ed.
|
|
404
|
+
"""
|
|
405
|
+
return pulumi.get(self, "allowed_kubernetes_namespaces")
|
|
406
|
+
|
|
407
|
+
@allowed_kubernetes_namespaces.setter
|
|
408
|
+
def allowed_kubernetes_namespaces(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
409
|
+
pulumi.set(self, "allowed_kubernetes_namespaces", value)
|
|
410
|
+
|
|
411
|
+
@_builtins.property
|
|
412
|
+
@pulumi.getter
|
|
413
|
+
def backend(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
414
|
+
"""
|
|
415
|
+
The path of the Kubernetes Secrets Engine backend mount to create
|
|
416
|
+
the role in.
|
|
417
|
+
"""
|
|
418
|
+
return pulumi.get(self, "backend")
|
|
419
|
+
|
|
420
|
+
@backend.setter
|
|
421
|
+
def backend(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
422
|
+
pulumi.set(self, "backend", value)
|
|
423
|
+
|
|
424
|
+
@_builtins.property
|
|
425
|
+
@pulumi.getter(name="extraAnnotations")
|
|
426
|
+
def extra_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
|
|
427
|
+
"""
|
|
428
|
+
Additional annotations to apply to all generated
|
|
429
|
+
Kubernetes objects.
|
|
430
|
+
"""
|
|
431
|
+
return pulumi.get(self, "extra_annotations")
|
|
432
|
+
|
|
433
|
+
@extra_annotations.setter
|
|
434
|
+
def extra_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
|
|
435
|
+
pulumi.set(self, "extra_annotations", value)
|
|
436
|
+
|
|
437
|
+
@_builtins.property
|
|
438
|
+
@pulumi.getter(name="extraLabels")
|
|
439
|
+
def extra_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
|
|
440
|
+
"""
|
|
441
|
+
Additional labels to apply to all generated Kubernetes
|
|
442
|
+
objects.
|
|
443
|
+
|
|
444
|
+
This resource also directly accepts all Mount fields.
|
|
445
|
+
"""
|
|
446
|
+
return pulumi.get(self, "extra_labels")
|
|
447
|
+
|
|
448
|
+
@extra_labels.setter
|
|
449
|
+
def extra_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
|
|
450
|
+
pulumi.set(self, "extra_labels", value)
|
|
451
|
+
|
|
452
|
+
@_builtins.property
|
|
453
|
+
@pulumi.getter(name="generatedRoleRules")
|
|
454
|
+
def generated_role_rules(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
455
|
+
"""
|
|
456
|
+
The Role or ClusterRole rules to use when generating
|
|
457
|
+
a role. Accepts either JSON or YAML formatted rules. Mutually exclusive with `service_account_name`
|
|
458
|
+
and `kubernetes_role_name`. If set, the entire chain of Kubernetes objects will be generated
|
|
459
|
+
when credentials are requested.
|
|
460
|
+
"""
|
|
461
|
+
return pulumi.get(self, "generated_role_rules")
|
|
462
|
+
|
|
463
|
+
@generated_role_rules.setter
|
|
464
|
+
def generated_role_rules(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
465
|
+
pulumi.set(self, "generated_role_rules", value)
|
|
466
|
+
|
|
467
|
+
@_builtins.property
|
|
468
|
+
@pulumi.getter(name="kubernetesRoleName")
|
|
469
|
+
def kubernetes_role_name(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
470
|
+
"""
|
|
471
|
+
The pre-existing Role or ClusterRole to bind a
|
|
472
|
+
generated service account to. Mutually exclusive with `service_account_name` and
|
|
473
|
+
`generated_role_rules`. If set, Kubernetes token, service account, and role
|
|
474
|
+
binding objects will be created when credentials are requested.
|
|
475
|
+
"""
|
|
476
|
+
return pulumi.get(self, "kubernetes_role_name")
|
|
477
|
+
|
|
478
|
+
@kubernetes_role_name.setter
|
|
479
|
+
def kubernetes_role_name(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
480
|
+
pulumi.set(self, "kubernetes_role_name", value)
|
|
481
|
+
|
|
482
|
+
@_builtins.property
|
|
483
|
+
@pulumi.getter(name="kubernetesRoleType")
|
|
484
|
+
def kubernetes_role_type(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
485
|
+
"""
|
|
486
|
+
Specifies whether the Kubernetes role is a Role or
|
|
487
|
+
ClusterRole.
|
|
488
|
+
"""
|
|
489
|
+
return pulumi.get(self, "kubernetes_role_type")
|
|
490
|
+
|
|
491
|
+
@kubernetes_role_type.setter
|
|
492
|
+
def kubernetes_role_type(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
493
|
+
pulumi.set(self, "kubernetes_role_type", value)
|
|
494
|
+
|
|
495
|
+
@_builtins.property
|
|
496
|
+
@pulumi.getter
|
|
497
|
+
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
498
|
+
"""
|
|
499
|
+
The name of the role.
|
|
500
|
+
"""
|
|
501
|
+
return pulumi.get(self, "name")
|
|
502
|
+
|
|
503
|
+
@name.setter
|
|
504
|
+
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
505
|
+
pulumi.set(self, "name", value)
|
|
506
|
+
|
|
507
|
+
@_builtins.property
|
|
508
|
+
@pulumi.getter(name="nameTemplate")
|
|
509
|
+
def name_template(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
510
|
+
"""
|
|
511
|
+
The name template to use when generating service accounts,
|
|
512
|
+
roles and role bindings. If unset, a default template is used.
|
|
513
|
+
"""
|
|
514
|
+
return pulumi.get(self, "name_template")
|
|
515
|
+
|
|
516
|
+
@name_template.setter
|
|
517
|
+
def name_template(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
518
|
+
pulumi.set(self, "name_template", value)
|
|
519
|
+
|
|
520
|
+
@_builtins.property
|
|
521
|
+
@pulumi.getter
|
|
522
|
+
def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
523
|
+
"""
|
|
524
|
+
The namespace to provision the resource in.
|
|
525
|
+
The value should not contain leading or trailing forward slashes.
|
|
526
|
+
The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
|
|
527
|
+
*Available only for Vault Enterprise*.
|
|
528
|
+
"""
|
|
529
|
+
return pulumi.get(self, "namespace")
|
|
530
|
+
|
|
531
|
+
@namespace.setter
|
|
532
|
+
def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
533
|
+
pulumi.set(self, "namespace", value)
|
|
534
|
+
|
|
535
|
+
@_builtins.property
|
|
536
|
+
@pulumi.getter(name="serviceAccountName")
|
|
537
|
+
def service_account_name(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
538
|
+
"""
|
|
539
|
+
The pre-existing service account to generate tokens for.
|
|
540
|
+
Mutually exclusive with `kubernetes_role_name` and `generated_role_rules`. If set, only a
|
|
541
|
+
Kubernetes token will be created when credentials are requested.
|
|
542
|
+
"""
|
|
543
|
+
return pulumi.get(self, "service_account_name")
|
|
544
|
+
|
|
545
|
+
@service_account_name.setter
|
|
546
|
+
def service_account_name(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
547
|
+
pulumi.set(self, "service_account_name", value)
|
|
548
|
+
|
|
549
|
+
@_builtins.property
|
|
550
|
+
@pulumi.getter(name="tokenDefaultTtl")
|
|
551
|
+
def token_default_ttl(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
552
|
+
"""
|
|
553
|
+
The default TTL for generated Kubernetes tokens in seconds.
|
|
554
|
+
"""
|
|
555
|
+
return pulumi.get(self, "token_default_ttl")
|
|
556
|
+
|
|
557
|
+
@token_default_ttl.setter
|
|
558
|
+
def token_default_ttl(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
559
|
+
pulumi.set(self, "token_default_ttl", value)
|
|
560
|
+
|
|
561
|
+
@_builtins.property
|
|
562
|
+
@pulumi.getter(name="tokenMaxTtl")
|
|
563
|
+
def token_max_ttl(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
564
|
+
"""
|
|
565
|
+
The maximum TTL for generated Kubernetes tokens in seconds.
|
|
566
|
+
"""
|
|
567
|
+
return pulumi.get(self, "token_max_ttl")
|
|
568
|
+
|
|
569
|
+
@token_max_ttl.setter
|
|
570
|
+
def token_max_ttl(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
571
|
+
pulumi.set(self, "token_max_ttl", value)
|
|
572
|
+
|
|
573
|
+
|
|
574
|
+
@pulumi.type_token("vault:kubernetes/secretBackendRole:SecretBackendRole")
|
|
575
|
+
class SecretBackendRole(pulumi.CustomResource):
|
|
576
|
+
@overload
|
|
577
|
+
def __init__(__self__,
|
|
578
|
+
resource_name: str,
|
|
579
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
580
|
+
allowed_kubernetes_namespace_selector: Optional[pulumi.Input[_builtins.str]] = None,
|
|
581
|
+
allowed_kubernetes_namespaces: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
582
|
+
backend: Optional[pulumi.Input[_builtins.str]] = None,
|
|
583
|
+
extra_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
584
|
+
extra_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
585
|
+
generated_role_rules: Optional[pulumi.Input[_builtins.str]] = None,
|
|
586
|
+
kubernetes_role_name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
587
|
+
kubernetes_role_type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
588
|
+
name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
589
|
+
name_template: Optional[pulumi.Input[_builtins.str]] = None,
|
|
590
|
+
namespace: Optional[pulumi.Input[_builtins.str]] = None,
|
|
591
|
+
service_account_name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
592
|
+
token_default_ttl: Optional[pulumi.Input[_builtins.int]] = None,
|
|
593
|
+
token_max_ttl: Optional[pulumi.Input[_builtins.int]] = None,
|
|
594
|
+
__props__=None):
|
|
595
|
+
"""
|
|
596
|
+
## Example Usage
|
|
597
|
+
|
|
598
|
+
Example using `service_account_name` mode:
|
|
599
|
+
|
|
600
|
+
```python
|
|
601
|
+
import pulumi
|
|
602
|
+
import pulumi_std as std
|
|
603
|
+
import pulumi_vault as vault
|
|
604
|
+
|
|
605
|
+
config = vault.kubernetes.SecretBackend("config",
|
|
606
|
+
path="kubernetes",
|
|
607
|
+
description="kubernetes secrets engine description",
|
|
608
|
+
kubernetes_host="https://127.0.0.1:61233",
|
|
609
|
+
kubernetes_ca_cert=std.file(input="/path/to/cert").result,
|
|
610
|
+
service_account_jwt=std.file(input="/path/to/token").result,
|
|
611
|
+
disable_local_ca_jwt=False)
|
|
612
|
+
sa_example = vault.kubernetes.SecretBackendRole("sa-example",
|
|
613
|
+
backend=config.path,
|
|
614
|
+
name="service-account-name-role",
|
|
615
|
+
allowed_kubernetes_namespaces=["*"],
|
|
616
|
+
token_max_ttl=43200,
|
|
617
|
+
token_default_ttl=21600,
|
|
618
|
+
service_account_name="test-service-account-with-generated-token",
|
|
619
|
+
extra_labels={
|
|
620
|
+
"id": "abc123",
|
|
621
|
+
"name": "some_name",
|
|
622
|
+
},
|
|
623
|
+
extra_annotations={
|
|
624
|
+
"env": "development",
|
|
625
|
+
"location": "earth",
|
|
626
|
+
})
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
Example using `kubernetes_role_name` mode:
|
|
630
|
+
|
|
631
|
+
```python
|
|
632
|
+
import pulumi
|
|
633
|
+
import pulumi_std as std
|
|
634
|
+
import pulumi_vault as vault
|
|
635
|
+
|
|
636
|
+
config = vault.kubernetes.SecretBackend("config",
|
|
637
|
+
path="kubernetes",
|
|
638
|
+
description="kubernetes secrets engine description",
|
|
639
|
+
kubernetes_host="https://127.0.0.1:61233",
|
|
640
|
+
kubernetes_ca_cert=std.file(input="/path/to/cert").result,
|
|
641
|
+
service_account_jwt=std.file(input="/path/to/token").result,
|
|
642
|
+
disable_local_ca_jwt=False)
|
|
643
|
+
name_example = vault.kubernetes.SecretBackendRole("name-example",
|
|
644
|
+
backend=config.path,
|
|
645
|
+
name="service-account-name-role",
|
|
646
|
+
allowed_kubernetes_namespaces=["*"],
|
|
647
|
+
token_max_ttl=43200,
|
|
648
|
+
token_default_ttl=21600,
|
|
649
|
+
kubernetes_role_name="vault-k8s-secrets-role",
|
|
650
|
+
extra_labels={
|
|
651
|
+
"id": "abc123",
|
|
652
|
+
"name": "some_name",
|
|
653
|
+
},
|
|
654
|
+
extra_annotations={
|
|
655
|
+
"env": "development",
|
|
656
|
+
"location": "earth",
|
|
657
|
+
})
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
Example using `generated_role_rules` mode:
|
|
661
|
+
|
|
662
|
+
```python
|
|
663
|
+
import pulumi
|
|
664
|
+
import pulumi_std as std
|
|
665
|
+
import pulumi_vault as vault
|
|
666
|
+
|
|
667
|
+
config = vault.kubernetes.SecretBackend("config",
|
|
668
|
+
path="kubernetes",
|
|
669
|
+
description="kubernetes secrets engine description",
|
|
670
|
+
kubernetes_host="https://127.0.0.1:61233",
|
|
671
|
+
kubernetes_ca_cert=std.file(input="/path/to/cert").result,
|
|
672
|
+
service_account_jwt=std.file(input="/path/to/token").result,
|
|
673
|
+
disable_local_ca_jwt=False)
|
|
674
|
+
rules_example = vault.kubernetes.SecretBackendRole("rules-example",
|
|
675
|
+
backend=config.path,
|
|
676
|
+
name="service-account-name-role",
|
|
677
|
+
allowed_kubernetes_namespaces=["*"],
|
|
678
|
+
token_max_ttl=43200,
|
|
679
|
+
token_default_ttl=21600,
|
|
680
|
+
kubernetes_role_type="Role",
|
|
681
|
+
generated_role_rules=\"\"\"rules:
|
|
682
|
+
- apiGroups: [\\"\\"]
|
|
683
|
+
resources: [\\"pods\\"]
|
|
684
|
+
verbs: [\\"list\\"]
|
|
685
|
+
\"\"\",
|
|
686
|
+
extra_labels={
|
|
687
|
+
"id": "abc123",
|
|
688
|
+
"name": "some_name",
|
|
689
|
+
},
|
|
690
|
+
extra_annotations={
|
|
691
|
+
"env": "development",
|
|
692
|
+
"location": "earth",
|
|
693
|
+
})
|
|
694
|
+
```
|
|
695
|
+
|
|
696
|
+
## Import
|
|
697
|
+
|
|
698
|
+
The Kubernetes secret backend role can be imported using the full path to the role
|
|
699
|
+
|
|
700
|
+
of the form: `<backend_path>/roles/<role_name>` e.g.
|
|
701
|
+
|
|
702
|
+
```sh
|
|
703
|
+
$ pulumi import vault:kubernetes/secretBackendRole:SecretBackendRole example kubernetes kubernetes/roles/example-role
|
|
704
|
+
```
|
|
705
|
+
|
|
706
|
+
:param str resource_name: The name of the resource.
|
|
707
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
708
|
+
:param pulumi.Input[_builtins.str] allowed_kubernetes_namespace_selector: A label selector for Kubernetes namespaces
|
|
709
|
+
in which credentials can be generated. Accepts either a JSON or YAML object. The value should be
|
|
710
|
+
of type [LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#labelselector-v1-meta).
|
|
711
|
+
If set with `allowed_kubernetes_namespace`, the conditions are `OR`ed.
|
|
712
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] allowed_kubernetes_namespaces: The list of Kubernetes namespaces this role
|
|
713
|
+
can generate credentials for. If set to `*` all namespaces are allowed. If set with
|
|
714
|
+
`allowed_kubernetes_namespace_selector`, the conditions are `OR`ed.
|
|
715
|
+
:param pulumi.Input[_builtins.str] backend: The path of the Kubernetes Secrets Engine backend mount to create
|
|
716
|
+
the role in.
|
|
717
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] extra_annotations: Additional annotations to apply to all generated
|
|
718
|
+
Kubernetes objects.
|
|
719
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] extra_labels: Additional labels to apply to all generated Kubernetes
|
|
720
|
+
objects.
|
|
721
|
+
|
|
722
|
+
This resource also directly accepts all Mount fields.
|
|
723
|
+
:param pulumi.Input[_builtins.str] generated_role_rules: The Role or ClusterRole rules to use when generating
|
|
724
|
+
a role. Accepts either JSON or YAML formatted rules. Mutually exclusive with `service_account_name`
|
|
725
|
+
and `kubernetes_role_name`. If set, the entire chain of Kubernetes objects will be generated
|
|
726
|
+
when credentials are requested.
|
|
727
|
+
:param pulumi.Input[_builtins.str] kubernetes_role_name: The pre-existing Role or ClusterRole to bind a
|
|
728
|
+
generated service account to. Mutually exclusive with `service_account_name` and
|
|
729
|
+
`generated_role_rules`. If set, Kubernetes token, service account, and role
|
|
730
|
+
binding objects will be created when credentials are requested.
|
|
731
|
+
:param pulumi.Input[_builtins.str] kubernetes_role_type: Specifies whether the Kubernetes role is a Role or
|
|
732
|
+
ClusterRole.
|
|
733
|
+
:param pulumi.Input[_builtins.str] name: The name of the role.
|
|
734
|
+
:param pulumi.Input[_builtins.str] name_template: The name template to use when generating service accounts,
|
|
735
|
+
roles and role bindings. If unset, a default template is used.
|
|
736
|
+
:param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
|
|
737
|
+
The value should not contain leading or trailing forward slashes.
|
|
738
|
+
The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
|
|
739
|
+
*Available only for Vault Enterprise*.
|
|
740
|
+
:param pulumi.Input[_builtins.str] service_account_name: The pre-existing service account to generate tokens for.
|
|
741
|
+
Mutually exclusive with `kubernetes_role_name` and `generated_role_rules`. If set, only a
|
|
742
|
+
Kubernetes token will be created when credentials are requested.
|
|
743
|
+
:param pulumi.Input[_builtins.int] token_default_ttl: The default TTL for generated Kubernetes tokens in seconds.
|
|
744
|
+
:param pulumi.Input[_builtins.int] token_max_ttl: The maximum TTL for generated Kubernetes tokens in seconds.
|
|
745
|
+
"""
|
|
746
|
+
...
|
|
747
|
+
@overload
|
|
748
|
+
def __init__(__self__,
|
|
749
|
+
resource_name: str,
|
|
750
|
+
args: SecretBackendRoleArgs,
|
|
751
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
|
752
|
+
"""
|
|
753
|
+
## Example Usage
|
|
754
|
+
|
|
755
|
+
Example using `service_account_name` mode:
|
|
756
|
+
|
|
757
|
+
```python
|
|
758
|
+
import pulumi
|
|
759
|
+
import pulumi_std as std
|
|
760
|
+
import pulumi_vault as vault
|
|
761
|
+
|
|
762
|
+
config = vault.kubernetes.SecretBackend("config",
|
|
763
|
+
path="kubernetes",
|
|
764
|
+
description="kubernetes secrets engine description",
|
|
765
|
+
kubernetes_host="https://127.0.0.1:61233",
|
|
766
|
+
kubernetes_ca_cert=std.file(input="/path/to/cert").result,
|
|
767
|
+
service_account_jwt=std.file(input="/path/to/token").result,
|
|
768
|
+
disable_local_ca_jwt=False)
|
|
769
|
+
sa_example = vault.kubernetes.SecretBackendRole("sa-example",
|
|
770
|
+
backend=config.path,
|
|
771
|
+
name="service-account-name-role",
|
|
772
|
+
allowed_kubernetes_namespaces=["*"],
|
|
773
|
+
token_max_ttl=43200,
|
|
774
|
+
token_default_ttl=21600,
|
|
775
|
+
service_account_name="test-service-account-with-generated-token",
|
|
776
|
+
extra_labels={
|
|
777
|
+
"id": "abc123",
|
|
778
|
+
"name": "some_name",
|
|
779
|
+
},
|
|
780
|
+
extra_annotations={
|
|
781
|
+
"env": "development",
|
|
782
|
+
"location": "earth",
|
|
783
|
+
})
|
|
784
|
+
```
|
|
785
|
+
|
|
786
|
+
Example using `kubernetes_role_name` mode:
|
|
787
|
+
|
|
788
|
+
```python
|
|
789
|
+
import pulumi
|
|
790
|
+
import pulumi_std as std
|
|
791
|
+
import pulumi_vault as vault
|
|
792
|
+
|
|
793
|
+
config = vault.kubernetes.SecretBackend("config",
|
|
794
|
+
path="kubernetes",
|
|
795
|
+
description="kubernetes secrets engine description",
|
|
796
|
+
kubernetes_host="https://127.0.0.1:61233",
|
|
797
|
+
kubernetes_ca_cert=std.file(input="/path/to/cert").result,
|
|
798
|
+
service_account_jwt=std.file(input="/path/to/token").result,
|
|
799
|
+
disable_local_ca_jwt=False)
|
|
800
|
+
name_example = vault.kubernetes.SecretBackendRole("name-example",
|
|
801
|
+
backend=config.path,
|
|
802
|
+
name="service-account-name-role",
|
|
803
|
+
allowed_kubernetes_namespaces=["*"],
|
|
804
|
+
token_max_ttl=43200,
|
|
805
|
+
token_default_ttl=21600,
|
|
806
|
+
kubernetes_role_name="vault-k8s-secrets-role",
|
|
807
|
+
extra_labels={
|
|
808
|
+
"id": "abc123",
|
|
809
|
+
"name": "some_name",
|
|
810
|
+
},
|
|
811
|
+
extra_annotations={
|
|
812
|
+
"env": "development",
|
|
813
|
+
"location": "earth",
|
|
814
|
+
})
|
|
815
|
+
```
|
|
816
|
+
|
|
817
|
+
Example using `generated_role_rules` mode:
|
|
818
|
+
|
|
819
|
+
```python
|
|
820
|
+
import pulumi
|
|
821
|
+
import pulumi_std as std
|
|
822
|
+
import pulumi_vault as vault
|
|
823
|
+
|
|
824
|
+
config = vault.kubernetes.SecretBackend("config",
|
|
825
|
+
path="kubernetes",
|
|
826
|
+
description="kubernetes secrets engine description",
|
|
827
|
+
kubernetes_host="https://127.0.0.1:61233",
|
|
828
|
+
kubernetes_ca_cert=std.file(input="/path/to/cert").result,
|
|
829
|
+
service_account_jwt=std.file(input="/path/to/token").result,
|
|
830
|
+
disable_local_ca_jwt=False)
|
|
831
|
+
rules_example = vault.kubernetes.SecretBackendRole("rules-example",
|
|
832
|
+
backend=config.path,
|
|
833
|
+
name="service-account-name-role",
|
|
834
|
+
allowed_kubernetes_namespaces=["*"],
|
|
835
|
+
token_max_ttl=43200,
|
|
836
|
+
token_default_ttl=21600,
|
|
837
|
+
kubernetes_role_type="Role",
|
|
838
|
+
generated_role_rules=\"\"\"rules:
|
|
839
|
+
- apiGroups: [\\"\\"]
|
|
840
|
+
resources: [\\"pods\\"]
|
|
841
|
+
verbs: [\\"list\\"]
|
|
842
|
+
\"\"\",
|
|
843
|
+
extra_labels={
|
|
844
|
+
"id": "abc123",
|
|
845
|
+
"name": "some_name",
|
|
846
|
+
},
|
|
847
|
+
extra_annotations={
|
|
848
|
+
"env": "development",
|
|
849
|
+
"location": "earth",
|
|
850
|
+
})
|
|
851
|
+
```
|
|
852
|
+
|
|
853
|
+
## Import
|
|
854
|
+
|
|
855
|
+
The Kubernetes secret backend role can be imported using the full path to the role
|
|
856
|
+
|
|
857
|
+
of the form: `<backend_path>/roles/<role_name>` e.g.
|
|
858
|
+
|
|
859
|
+
```sh
|
|
860
|
+
$ pulumi import vault:kubernetes/secretBackendRole:SecretBackendRole example kubernetes kubernetes/roles/example-role
|
|
861
|
+
```
|
|
862
|
+
|
|
863
|
+
:param str resource_name: The name of the resource.
|
|
864
|
+
:param SecretBackendRoleArgs args: The arguments to use to populate this resource's properties.
|
|
865
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
866
|
+
"""
|
|
867
|
+
...
|
|
868
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
|
869
|
+
resource_args, opts = _utilities.get_resource_args_opts(SecretBackendRoleArgs, pulumi.ResourceOptions, *args, **kwargs)
|
|
870
|
+
if resource_args is not None:
|
|
871
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
|
872
|
+
else:
|
|
873
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
|
874
|
+
|
|
875
|
+
def _internal_init(__self__,
|
|
876
|
+
resource_name: str,
|
|
877
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
878
|
+
allowed_kubernetes_namespace_selector: Optional[pulumi.Input[_builtins.str]] = None,
|
|
879
|
+
allowed_kubernetes_namespaces: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
880
|
+
backend: Optional[pulumi.Input[_builtins.str]] = None,
|
|
881
|
+
extra_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
882
|
+
extra_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
883
|
+
generated_role_rules: Optional[pulumi.Input[_builtins.str]] = None,
|
|
884
|
+
kubernetes_role_name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
885
|
+
kubernetes_role_type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
886
|
+
name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
887
|
+
name_template: Optional[pulumi.Input[_builtins.str]] = None,
|
|
888
|
+
namespace: Optional[pulumi.Input[_builtins.str]] = None,
|
|
889
|
+
service_account_name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
890
|
+
token_default_ttl: Optional[pulumi.Input[_builtins.int]] = None,
|
|
891
|
+
token_max_ttl: Optional[pulumi.Input[_builtins.int]] = None,
|
|
892
|
+
__props__=None):
|
|
893
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
|
894
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
|
895
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
|
896
|
+
if opts.id is None:
|
|
897
|
+
if __props__ is not None:
|
|
898
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
|
899
|
+
__props__ = SecretBackendRoleArgs.__new__(SecretBackendRoleArgs)
|
|
900
|
+
|
|
901
|
+
__props__.__dict__["allowed_kubernetes_namespace_selector"] = allowed_kubernetes_namespace_selector
|
|
902
|
+
__props__.__dict__["allowed_kubernetes_namespaces"] = allowed_kubernetes_namespaces
|
|
903
|
+
if backend is None and not opts.urn:
|
|
904
|
+
raise TypeError("Missing required property 'backend'")
|
|
905
|
+
__props__.__dict__["backend"] = backend
|
|
906
|
+
__props__.__dict__["extra_annotations"] = extra_annotations
|
|
907
|
+
__props__.__dict__["extra_labels"] = extra_labels
|
|
908
|
+
__props__.__dict__["generated_role_rules"] = generated_role_rules
|
|
909
|
+
__props__.__dict__["kubernetes_role_name"] = kubernetes_role_name
|
|
910
|
+
__props__.__dict__["kubernetes_role_type"] = kubernetes_role_type
|
|
911
|
+
__props__.__dict__["name"] = name
|
|
912
|
+
__props__.__dict__["name_template"] = name_template
|
|
913
|
+
__props__.__dict__["namespace"] = namespace
|
|
914
|
+
__props__.__dict__["service_account_name"] = service_account_name
|
|
915
|
+
__props__.__dict__["token_default_ttl"] = token_default_ttl
|
|
916
|
+
__props__.__dict__["token_max_ttl"] = token_max_ttl
|
|
917
|
+
super(SecretBackendRole, __self__).__init__(
|
|
918
|
+
'vault:kubernetes/secretBackendRole:SecretBackendRole',
|
|
919
|
+
resource_name,
|
|
920
|
+
__props__,
|
|
921
|
+
opts)
|
|
922
|
+
|
|
923
|
+
@staticmethod
|
|
924
|
+
def get(resource_name: str,
|
|
925
|
+
id: pulumi.Input[str],
|
|
926
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
927
|
+
allowed_kubernetes_namespace_selector: Optional[pulumi.Input[_builtins.str]] = None,
|
|
928
|
+
allowed_kubernetes_namespaces: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
929
|
+
backend: Optional[pulumi.Input[_builtins.str]] = None,
|
|
930
|
+
extra_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
931
|
+
extra_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
932
|
+
generated_role_rules: Optional[pulumi.Input[_builtins.str]] = None,
|
|
933
|
+
kubernetes_role_name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
934
|
+
kubernetes_role_type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
935
|
+
name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
936
|
+
name_template: Optional[pulumi.Input[_builtins.str]] = None,
|
|
937
|
+
namespace: Optional[pulumi.Input[_builtins.str]] = None,
|
|
938
|
+
service_account_name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
939
|
+
token_default_ttl: Optional[pulumi.Input[_builtins.int]] = None,
|
|
940
|
+
token_max_ttl: Optional[pulumi.Input[_builtins.int]] = None) -> 'SecretBackendRole':
|
|
941
|
+
"""
|
|
942
|
+
Get an existing SecretBackendRole resource's state with the given name, id, and optional extra
|
|
943
|
+
properties used to qualify the lookup.
|
|
944
|
+
|
|
945
|
+
:param str resource_name: The unique name of the resulting resource.
|
|
946
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
|
947
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
948
|
+
:param pulumi.Input[_builtins.str] allowed_kubernetes_namespace_selector: A label selector for Kubernetes namespaces
|
|
949
|
+
in which credentials can be generated. Accepts either a JSON or YAML object. The value should be
|
|
950
|
+
of type [LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#labelselector-v1-meta).
|
|
951
|
+
If set with `allowed_kubernetes_namespace`, the conditions are `OR`ed.
|
|
952
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] allowed_kubernetes_namespaces: The list of Kubernetes namespaces this role
|
|
953
|
+
can generate credentials for. If set to `*` all namespaces are allowed. If set with
|
|
954
|
+
`allowed_kubernetes_namespace_selector`, the conditions are `OR`ed.
|
|
955
|
+
:param pulumi.Input[_builtins.str] backend: The path of the Kubernetes Secrets Engine backend mount to create
|
|
956
|
+
the role in.
|
|
957
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] extra_annotations: Additional annotations to apply to all generated
|
|
958
|
+
Kubernetes objects.
|
|
959
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] extra_labels: Additional labels to apply to all generated Kubernetes
|
|
960
|
+
objects.
|
|
961
|
+
|
|
962
|
+
This resource also directly accepts all Mount fields.
|
|
963
|
+
:param pulumi.Input[_builtins.str] generated_role_rules: The Role or ClusterRole rules to use when generating
|
|
964
|
+
a role. Accepts either JSON or YAML formatted rules. Mutually exclusive with `service_account_name`
|
|
965
|
+
and `kubernetes_role_name`. If set, the entire chain of Kubernetes objects will be generated
|
|
966
|
+
when credentials are requested.
|
|
967
|
+
:param pulumi.Input[_builtins.str] kubernetes_role_name: The pre-existing Role or ClusterRole to bind a
|
|
968
|
+
generated service account to. Mutually exclusive with `service_account_name` and
|
|
969
|
+
`generated_role_rules`. If set, Kubernetes token, service account, and role
|
|
970
|
+
binding objects will be created when credentials are requested.
|
|
971
|
+
:param pulumi.Input[_builtins.str] kubernetes_role_type: Specifies whether the Kubernetes role is a Role or
|
|
972
|
+
ClusterRole.
|
|
973
|
+
:param pulumi.Input[_builtins.str] name: The name of the role.
|
|
974
|
+
:param pulumi.Input[_builtins.str] name_template: The name template to use when generating service accounts,
|
|
975
|
+
roles and role bindings. If unset, a default template is used.
|
|
976
|
+
:param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
|
|
977
|
+
The value should not contain leading or trailing forward slashes.
|
|
978
|
+
The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
|
|
979
|
+
*Available only for Vault Enterprise*.
|
|
980
|
+
:param pulumi.Input[_builtins.str] service_account_name: The pre-existing service account to generate tokens for.
|
|
981
|
+
Mutually exclusive with `kubernetes_role_name` and `generated_role_rules`. If set, only a
|
|
982
|
+
Kubernetes token will be created when credentials are requested.
|
|
983
|
+
:param pulumi.Input[_builtins.int] token_default_ttl: The default TTL for generated Kubernetes tokens in seconds.
|
|
984
|
+
:param pulumi.Input[_builtins.int] token_max_ttl: The maximum TTL for generated Kubernetes tokens in seconds.
|
|
985
|
+
"""
|
|
986
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
|
987
|
+
|
|
988
|
+
__props__ = _SecretBackendRoleState.__new__(_SecretBackendRoleState)
|
|
989
|
+
|
|
990
|
+
__props__.__dict__["allowed_kubernetes_namespace_selector"] = allowed_kubernetes_namespace_selector
|
|
991
|
+
__props__.__dict__["allowed_kubernetes_namespaces"] = allowed_kubernetes_namespaces
|
|
992
|
+
__props__.__dict__["backend"] = backend
|
|
993
|
+
__props__.__dict__["extra_annotations"] = extra_annotations
|
|
994
|
+
__props__.__dict__["extra_labels"] = extra_labels
|
|
995
|
+
__props__.__dict__["generated_role_rules"] = generated_role_rules
|
|
996
|
+
__props__.__dict__["kubernetes_role_name"] = kubernetes_role_name
|
|
997
|
+
__props__.__dict__["kubernetes_role_type"] = kubernetes_role_type
|
|
998
|
+
__props__.__dict__["name"] = name
|
|
999
|
+
__props__.__dict__["name_template"] = name_template
|
|
1000
|
+
__props__.__dict__["namespace"] = namespace
|
|
1001
|
+
__props__.__dict__["service_account_name"] = service_account_name
|
|
1002
|
+
__props__.__dict__["token_default_ttl"] = token_default_ttl
|
|
1003
|
+
__props__.__dict__["token_max_ttl"] = token_max_ttl
|
|
1004
|
+
return SecretBackendRole(resource_name, opts=opts, __props__=__props__)
|
|
1005
|
+
|
|
1006
|
+
@_builtins.property
|
|
1007
|
+
@pulumi.getter(name="allowedKubernetesNamespaceSelector")
|
|
1008
|
+
def allowed_kubernetes_namespace_selector(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1009
|
+
"""
|
|
1010
|
+
A label selector for Kubernetes namespaces
|
|
1011
|
+
in which credentials can be generated. Accepts either a JSON or YAML object. The value should be
|
|
1012
|
+
of type [LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#labelselector-v1-meta).
|
|
1013
|
+
If set with `allowed_kubernetes_namespace`, the conditions are `OR`ed.
|
|
1014
|
+
"""
|
|
1015
|
+
return pulumi.get(self, "allowed_kubernetes_namespace_selector")
|
|
1016
|
+
|
|
1017
|
+
@_builtins.property
|
|
1018
|
+
@pulumi.getter(name="allowedKubernetesNamespaces")
|
|
1019
|
+
def allowed_kubernetes_namespaces(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
|
|
1020
|
+
"""
|
|
1021
|
+
The list of Kubernetes namespaces this role
|
|
1022
|
+
can generate credentials for. If set to `*` all namespaces are allowed. If set with
|
|
1023
|
+
`allowed_kubernetes_namespace_selector`, the conditions are `OR`ed.
|
|
1024
|
+
"""
|
|
1025
|
+
return pulumi.get(self, "allowed_kubernetes_namespaces")
|
|
1026
|
+
|
|
1027
|
+
@_builtins.property
|
|
1028
|
+
@pulumi.getter
|
|
1029
|
+
def backend(self) -> pulumi.Output[_builtins.str]:
|
|
1030
|
+
"""
|
|
1031
|
+
The path of the Kubernetes Secrets Engine backend mount to create
|
|
1032
|
+
the role in.
|
|
1033
|
+
"""
|
|
1034
|
+
return pulumi.get(self, "backend")
|
|
1035
|
+
|
|
1036
|
+
@_builtins.property
|
|
1037
|
+
@pulumi.getter(name="extraAnnotations")
|
|
1038
|
+
def extra_annotations(self) -> pulumi.Output[Optional[Mapping[str, _builtins.str]]]:
|
|
1039
|
+
"""
|
|
1040
|
+
Additional annotations to apply to all generated
|
|
1041
|
+
Kubernetes objects.
|
|
1042
|
+
"""
|
|
1043
|
+
return pulumi.get(self, "extra_annotations")
|
|
1044
|
+
|
|
1045
|
+
@_builtins.property
|
|
1046
|
+
@pulumi.getter(name="extraLabels")
|
|
1047
|
+
def extra_labels(self) -> pulumi.Output[Optional[Mapping[str, _builtins.str]]]:
|
|
1048
|
+
"""
|
|
1049
|
+
Additional labels to apply to all generated Kubernetes
|
|
1050
|
+
objects.
|
|
1051
|
+
|
|
1052
|
+
This resource also directly accepts all Mount fields.
|
|
1053
|
+
"""
|
|
1054
|
+
return pulumi.get(self, "extra_labels")
|
|
1055
|
+
|
|
1056
|
+
@_builtins.property
|
|
1057
|
+
@pulumi.getter(name="generatedRoleRules")
|
|
1058
|
+
def generated_role_rules(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1059
|
+
"""
|
|
1060
|
+
The Role or ClusterRole rules to use when generating
|
|
1061
|
+
a role. Accepts either JSON or YAML formatted rules. Mutually exclusive with `service_account_name`
|
|
1062
|
+
and `kubernetes_role_name`. If set, the entire chain of Kubernetes objects will be generated
|
|
1063
|
+
when credentials are requested.
|
|
1064
|
+
"""
|
|
1065
|
+
return pulumi.get(self, "generated_role_rules")
|
|
1066
|
+
|
|
1067
|
+
@_builtins.property
|
|
1068
|
+
@pulumi.getter(name="kubernetesRoleName")
|
|
1069
|
+
def kubernetes_role_name(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1070
|
+
"""
|
|
1071
|
+
The pre-existing Role or ClusterRole to bind a
|
|
1072
|
+
generated service account to. Mutually exclusive with `service_account_name` and
|
|
1073
|
+
`generated_role_rules`. If set, Kubernetes token, service account, and role
|
|
1074
|
+
binding objects will be created when credentials are requested.
|
|
1075
|
+
"""
|
|
1076
|
+
return pulumi.get(self, "kubernetes_role_name")
|
|
1077
|
+
|
|
1078
|
+
@_builtins.property
|
|
1079
|
+
@pulumi.getter(name="kubernetesRoleType")
|
|
1080
|
+
def kubernetes_role_type(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1081
|
+
"""
|
|
1082
|
+
Specifies whether the Kubernetes role is a Role or
|
|
1083
|
+
ClusterRole.
|
|
1084
|
+
"""
|
|
1085
|
+
return pulumi.get(self, "kubernetes_role_type")
|
|
1086
|
+
|
|
1087
|
+
@_builtins.property
|
|
1088
|
+
@pulumi.getter
|
|
1089
|
+
def name(self) -> pulumi.Output[_builtins.str]:
|
|
1090
|
+
"""
|
|
1091
|
+
The name of the role.
|
|
1092
|
+
"""
|
|
1093
|
+
return pulumi.get(self, "name")
|
|
1094
|
+
|
|
1095
|
+
@_builtins.property
|
|
1096
|
+
@pulumi.getter(name="nameTemplate")
|
|
1097
|
+
def name_template(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1098
|
+
"""
|
|
1099
|
+
The name template to use when generating service accounts,
|
|
1100
|
+
roles and role bindings. If unset, a default template is used.
|
|
1101
|
+
"""
|
|
1102
|
+
return pulumi.get(self, "name_template")
|
|
1103
|
+
|
|
1104
|
+
@_builtins.property
|
|
1105
|
+
@pulumi.getter
|
|
1106
|
+
def namespace(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1107
|
+
"""
|
|
1108
|
+
The namespace to provision the resource in.
|
|
1109
|
+
The value should not contain leading or trailing forward slashes.
|
|
1110
|
+
The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
|
|
1111
|
+
*Available only for Vault Enterprise*.
|
|
1112
|
+
"""
|
|
1113
|
+
return pulumi.get(self, "namespace")
|
|
1114
|
+
|
|
1115
|
+
@_builtins.property
|
|
1116
|
+
@pulumi.getter(name="serviceAccountName")
|
|
1117
|
+
def service_account_name(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1118
|
+
"""
|
|
1119
|
+
The pre-existing service account to generate tokens for.
|
|
1120
|
+
Mutually exclusive with `kubernetes_role_name` and `generated_role_rules`. If set, only a
|
|
1121
|
+
Kubernetes token will be created when credentials are requested.
|
|
1122
|
+
"""
|
|
1123
|
+
return pulumi.get(self, "service_account_name")
|
|
1124
|
+
|
|
1125
|
+
@_builtins.property
|
|
1126
|
+
@pulumi.getter(name="tokenDefaultTtl")
|
|
1127
|
+
def token_default_ttl(self) -> pulumi.Output[Optional[_builtins.int]]:
|
|
1128
|
+
"""
|
|
1129
|
+
The default TTL for generated Kubernetes tokens in seconds.
|
|
1130
|
+
"""
|
|
1131
|
+
return pulumi.get(self, "token_default_ttl")
|
|
1132
|
+
|
|
1133
|
+
@_builtins.property
|
|
1134
|
+
@pulumi.getter(name="tokenMaxTtl")
|
|
1135
|
+
def token_max_ttl(self) -> pulumi.Output[Optional[_builtins.int]]:
|
|
1136
|
+
"""
|
|
1137
|
+
The maximum TTL for generated Kubernetes tokens in seconds.
|
|
1138
|
+
"""
|
|
1139
|
+
return pulumi.get(self, "token_max_ttl")
|
|
1140
|
+
|