@pulumi/vault
Version:
A Pulumi package for creating and managing HashiCorp Vault cloud resources.
207 lines • 8.11 kB
JavaScript
;
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
Object.defineProperty(exports, "__esModule", { value: true });
exports.SecretBackendRole = void 0;
const pulumi = require("@pulumi/pulumi");
const utilities = require("../utilities");
/**
* ## Example Usage
*
* Example using `serviceAccountName` mode:
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as std from "@pulumi/std";
* import * as vault from "@pulumi/vault";
*
* const config = new vault.kubernetes.SecretBackend("config", {
* path: "kubernetes",
* description: "kubernetes secrets engine description",
* kubernetesHost: "https://127.0.0.1:61233",
* kubernetesCaCert: std.file({
* input: "/path/to/cert",
* }).then(invoke => invoke.result),
* serviceAccountJwt: std.file({
* input: "/path/to/token",
* }).then(invoke => invoke.result),
* disableLocalCaJwt: false,
* });
* const sa_example = new vault.kubernetes.SecretBackendRole("sa-example", {
* backend: config.path,
* name: "service-account-name-role",
* allowedKubernetesNamespaces: ["*"],
* tokenMaxTtl: 43200,
* tokenDefaultTtl: 21600,
* serviceAccountName: "test-service-account-with-generated-token",
* extraLabels: {
* id: "abc123",
* name: "some_name",
* },
* extraAnnotations: {
* env: "development",
* location: "earth",
* },
* });
* ```
*
* Example using `kubernetesRoleName` mode:
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as std from "@pulumi/std";
* import * as vault from "@pulumi/vault";
*
* const config = new vault.kubernetes.SecretBackend("config", {
* path: "kubernetes",
* description: "kubernetes secrets engine description",
* kubernetesHost: "https://127.0.0.1:61233",
* kubernetesCaCert: std.file({
* input: "/path/to/cert",
* }).then(invoke => invoke.result),
* serviceAccountJwt: std.file({
* input: "/path/to/token",
* }).then(invoke => invoke.result),
* disableLocalCaJwt: false,
* });
* const name_example = new vault.kubernetes.SecretBackendRole("name-example", {
* backend: config.path,
* name: "service-account-name-role",
* allowedKubernetesNamespaces: ["*"],
* tokenMaxTtl: 43200,
* tokenDefaultTtl: 21600,
* kubernetesRoleName: "vault-k8s-secrets-role",
* extraLabels: {
* id: "abc123",
* name: "some_name",
* },
* extraAnnotations: {
* env: "development",
* location: "earth",
* },
* });
* ```
*
* Example using `generatedRoleRules` mode:
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as std from "@pulumi/std";
* import * as vault from "@pulumi/vault";
*
* const config = new vault.kubernetes.SecretBackend("config", {
* path: "kubernetes",
* description: "kubernetes secrets engine description",
* kubernetesHost: "https://127.0.0.1:61233",
* kubernetesCaCert: std.file({
* input: "/path/to/cert",
* }).then(invoke => invoke.result),
* serviceAccountJwt: std.file({
* input: "/path/to/token",
* }).then(invoke => invoke.result),
* disableLocalCaJwt: false,
* });
* const rules_example = new vault.kubernetes.SecretBackendRole("rules-example", {
* backend: config.path,
* name: "service-account-name-role",
* allowedKubernetesNamespaces: ["*"],
* tokenMaxTtl: 43200,
* tokenDefaultTtl: 21600,
* kubernetesRoleType: "Role",
* generatedRoleRules: `rules:
* - apiGroups: [""]
* resources: ["pods"]
* verbs: ["list"]
* `,
* extraLabels: {
* id: "abc123",
* name: "some_name",
* },
* extraAnnotations: {
* env: "development",
* location: "earth",
* },
* });
* ```
*
* ## Import
*
* The Kubernetes secret backend role can be imported using the full path to the role
*
* of the form: `<backend_path>/roles/<role_name>` e.g.
*
* ```sh
* $ pulumi import vault:kubernetes/secretBackendRole:SecretBackendRole example kubernetes kubernetes/roles/example-role
* ```
*/
class SecretBackendRole extends pulumi.CustomResource {
/**
* Get an existing SecretBackendRole resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name, id, state, opts) {
return new SecretBackendRole(name, state, { ...opts, id: id });
}
/**
* Returns true if the given object is an instance of SecretBackendRole. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj) {
if (obj === undefined || obj === null) {
return false;
}
return obj['__pulumiType'] === SecretBackendRole.__pulumiType;
}
constructor(name, argsOrState, opts) {
let resourceInputs = {};
opts = opts || {};
if (opts.id) {
const state = argsOrState;
resourceInputs["allowedKubernetesNamespaceSelector"] = state?.allowedKubernetesNamespaceSelector;
resourceInputs["allowedKubernetesNamespaces"] = state?.allowedKubernetesNamespaces;
resourceInputs["backend"] = state?.backend;
resourceInputs["extraAnnotations"] = state?.extraAnnotations;
resourceInputs["extraLabels"] = state?.extraLabels;
resourceInputs["generatedRoleRules"] = state?.generatedRoleRules;
resourceInputs["kubernetesRoleName"] = state?.kubernetesRoleName;
resourceInputs["kubernetesRoleType"] = state?.kubernetesRoleType;
resourceInputs["name"] = state?.name;
resourceInputs["nameTemplate"] = state?.nameTemplate;
resourceInputs["namespace"] = state?.namespace;
resourceInputs["serviceAccountName"] = state?.serviceAccountName;
resourceInputs["tokenDefaultTtl"] = state?.tokenDefaultTtl;
resourceInputs["tokenMaxTtl"] = state?.tokenMaxTtl;
}
else {
const args = argsOrState;
if (args?.backend === undefined && !opts.urn) {
throw new Error("Missing required property 'backend'");
}
resourceInputs["allowedKubernetesNamespaceSelector"] = args?.allowedKubernetesNamespaceSelector;
resourceInputs["allowedKubernetesNamespaces"] = args?.allowedKubernetesNamespaces;
resourceInputs["backend"] = args?.backend;
resourceInputs["extraAnnotations"] = args?.extraAnnotations;
resourceInputs["extraLabels"] = args?.extraLabels;
resourceInputs["generatedRoleRules"] = args?.generatedRoleRules;
resourceInputs["kubernetesRoleName"] = args?.kubernetesRoleName;
resourceInputs["kubernetesRoleType"] = args?.kubernetesRoleType;
resourceInputs["name"] = args?.name;
resourceInputs["nameTemplate"] = args?.nameTemplate;
resourceInputs["namespace"] = args?.namespace;
resourceInputs["serviceAccountName"] = args?.serviceAccountName;
resourceInputs["tokenDefaultTtl"] = args?.tokenDefaultTtl;
resourceInputs["tokenMaxTtl"] = args?.tokenMaxTtl;
}
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
super(SecretBackendRole.__pulumiType, name, resourceInputs, opts);
}
}
exports.SecretBackendRole = SecretBackendRole;
/** @internal */
SecretBackendRole.__pulumiType = 'vault:kubernetes/secretBackendRole:SecretBackendRole';
//# sourceMappingURL=secretBackendRole.js.map