cdk8s-plus-36 0.0.1 → 2.0.1
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.
- package/.jsii +105714 -0
- package/CODE_OF_CONDUCT.md +3 -0
- package/CONTRIBUTING.md +185 -0
- package/DCO +34 -0
- package/LICENSE +202 -0
- package/NOTICE +1 -0
- package/OWNERS.md +5 -0
- package/README.md +21 -34
- package/SECURITY.md +5 -0
- package/cdk8s.yaml +13 -0
- package/docs/java.md +156096 -0
- package/docs/plus/config-map.md +98 -0
- package/docs/plus/container.md +133 -0
- package/docs/plus/cronjob.md +67 -0
- package/docs/plus/deployment.md +232 -0
- package/docs/plus/horizontal-pod-autoscaler.md +226 -0
- package/docs/plus/ingress.md +68 -0
- package/docs/plus/job.md +48 -0
- package/docs/plus/namespace.md +58 -0
- package/docs/plus/network-policy.md +341 -0
- package/docs/plus/pod.md +455 -0
- package/docs/plus/pv.md +82 -0
- package/docs/plus/pvc.md +77 -0
- package/docs/plus/rbac.md +104 -0
- package/docs/plus/secret.md +32 -0
- package/docs/plus/service-account.md +35 -0
- package/docs/plus/service.md +41 -0
- package/docs/plus/volume.md +84 -0
- package/docs/python.md +167536 -0
- package/docs/typescript.md +145485 -0
- package/git-hooks/README.md +9 -0
- package/git-hooks/prepare-commit-msg +18 -0
- package/git-hooks/setup.sh +10 -0
- package/lib/_action.d.ts +26 -0
- package/lib/_action.js +72 -0
- package/lib/api-resource.d.ts +298 -0
- package/lib/api-resource.js +438 -0
- package/lib/base.d.ts +79 -0
- package/lib/base.js +124 -0
- package/lib/config-map.d.ts +126 -0
- package/lib/config-map.js +199 -0
- package/lib/container.d.ts +1057 -0
- package/lib/container.js +944 -0
- package/lib/cron-job.d.ts +138 -0
- package/lib/cron-job.js +170 -0
- package/lib/daemon-set.d.ts +45 -0
- package/lib/daemon-set.js +91 -0
- package/lib/deployment.d.ts +235 -0
- package/lib/deployment.js +274 -0
- package/lib/handler.d.ts +62 -0
- package/lib/handler.js +88 -0
- package/lib/horizontal-pod-autoscaler.d.ts +500 -0
- package/lib/horizontal-pod-autoscaler.js +629 -0
- package/lib/imports/k8s.d.ts +27283 -0
- package/lib/imports/k8s.js +20112 -0
- package/lib/index.d.ts +26 -0
- package/lib/index.js +66 -0
- package/lib/ingress.d.ts +230 -0
- package/lib/ingress.js +282 -0
- package/lib/job.d.ts +64 -0
- package/lib/job.js +101 -0
- package/lib/namespace.d.ts +128 -0
- package/lib/namespace.js +148 -0
- package/lib/network-policy.d.ts +311 -0
- package/lib/network-policy.js +383 -0
- package/lib/pod.d.ts +1097 -0
- package/lib/pod.js +1227 -0
- package/lib/probe.d.ts +181 -0
- package/lib/probe.js +124 -0
- package/lib/pv.d.ts +375 -0
- package/lib/pv.js +387 -0
- package/lib/pvc.d.ts +163 -0
- package/lib/pvc.js +204 -0
- package/lib/role-binding.d.ts +138 -0
- package/lib/role-binding.js +207 -0
- package/lib/role.d.ts +268 -0
- package/lib/role.js +441 -0
- package/lib/secret.d.ts +195 -0
- package/lib/secret.js +221 -0
- package/lib/service-account.d.ts +83 -0
- package/lib/service-account.js +148 -0
- package/lib/service.d.ts +289 -0
- package/lib/service.js +235 -0
- package/lib/stateful-set.d.ts +206 -0
- package/lib/stateful-set.js +291 -0
- package/lib/utils.d.ts +4 -0
- package/lib/utils.js +33 -0
- package/lib/volume.d.ts +577 -0
- package/lib/volume.js +410 -0
- package/lib/workload.d.ts +121 -0
- package/lib/workload.js +158 -0
- package/node_modules/balanced-match/.github/FUNDING.yml +2 -0
- package/node_modules/balanced-match/LICENSE.md +21 -0
- package/node_modules/balanced-match/README.md +97 -0
- package/node_modules/balanced-match/index.js +62 -0
- package/node_modules/balanced-match/package.json +48 -0
- package/node_modules/brace-expansion/.github/FUNDING.yml +2 -0
- package/node_modules/brace-expansion/LICENSE +21 -0
- package/node_modules/brace-expansion/README.md +157 -0
- package/node_modules/brace-expansion/index.js +394 -0
- package/node_modules/brace-expansion/package.json +49 -0
- package/node_modules/minimatch/LICENSE +15 -0
- package/node_modules/minimatch/README.md +491 -0
- package/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts +2 -0
- package/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts.map +1 -0
- package/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +14 -0
- package/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map +1 -0
- package/node_modules/minimatch/dist/commonjs/ast.d.ts +20 -0
- package/node_modules/minimatch/dist/commonjs/ast.d.ts.map +1 -0
- package/node_modules/minimatch/dist/commonjs/ast.js +747 -0
- package/node_modules/minimatch/dist/commonjs/ast.js.map +1 -0
- package/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts +8 -0
- package/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map +1 -0
- package/node_modules/minimatch/dist/commonjs/brace-expressions.js +152 -0
- package/node_modules/minimatch/dist/commonjs/brace-expressions.js.map +1 -0
- package/node_modules/minimatch/dist/commonjs/escape.d.ts +12 -0
- package/node_modules/minimatch/dist/commonjs/escape.d.ts.map +1 -0
- package/node_modules/minimatch/dist/commonjs/escape.js +22 -0
- package/node_modules/minimatch/dist/commonjs/escape.js.map +1 -0
- package/node_modules/minimatch/dist/commonjs/index.d.ts +98 -0
- package/node_modules/minimatch/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/minimatch/dist/commonjs/index.js +1023 -0
- package/node_modules/minimatch/dist/commonjs/index.js.map +1 -0
- package/node_modules/minimatch/dist/commonjs/package.json +3 -0
- package/node_modules/minimatch/dist/commonjs/unescape.d.ts +17 -0
- package/node_modules/minimatch/dist/commonjs/unescape.d.ts.map +1 -0
- package/node_modules/minimatch/dist/commonjs/unescape.js +24 -0
- package/node_modules/minimatch/dist/commonjs/unescape.js.map +1 -0
- package/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts +2 -0
- package/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts.map +1 -0
- package/node_modules/minimatch/dist/esm/assert-valid-pattern.js +10 -0
- package/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map +1 -0
- package/node_modules/minimatch/dist/esm/ast.d.ts +20 -0
- package/node_modules/minimatch/dist/esm/ast.d.ts.map +1 -0
- package/node_modules/minimatch/dist/esm/ast.js +743 -0
- package/node_modules/minimatch/dist/esm/ast.js.map +1 -0
- package/node_modules/minimatch/dist/esm/brace-expressions.d.ts +8 -0
- package/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map +1 -0
- package/node_modules/minimatch/dist/esm/brace-expressions.js +148 -0
- package/node_modules/minimatch/dist/esm/brace-expressions.js.map +1 -0
- package/node_modules/minimatch/dist/esm/escape.d.ts +12 -0
- package/node_modules/minimatch/dist/esm/escape.d.ts.map +1 -0
- package/node_modules/minimatch/dist/esm/escape.js +18 -0
- package/node_modules/minimatch/dist/esm/escape.js.map +1 -0
- package/node_modules/minimatch/dist/esm/index.d.ts +98 -0
- package/node_modules/minimatch/dist/esm/index.d.ts.map +1 -0
- package/node_modules/minimatch/dist/esm/index.js +1007 -0
- package/node_modules/minimatch/dist/esm/index.js.map +1 -0
- package/node_modules/minimatch/dist/esm/package.json +3 -0
- package/node_modules/minimatch/dist/esm/unescape.d.ts +17 -0
- package/node_modules/minimatch/dist/esm/unescape.d.ts.map +1 -0
- package/node_modules/minimatch/dist/esm/unescape.js +20 -0
- package/node_modules/minimatch/dist/esm/unescape.js.map +1 -0
- package/node_modules/minimatch/package.json +82 -0
- package/package.json +172 -6
- package/rotate.md +82 -0
package/lib/secret.d.ts
ADDED
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { ApiObject } from 'cdk8s';
|
|
2
|
+
import { Construct } from 'constructs';
|
|
3
|
+
import * as base from './base';
|
|
4
|
+
import { EnvValue, EnvValueFromSecretOptions } from './container';
|
|
5
|
+
import * as serviceaccount from './service-account';
|
|
6
|
+
/**
|
|
7
|
+
* Common properties for `Secret`.
|
|
8
|
+
*/
|
|
9
|
+
export interface CommonSecretProps extends base.ResourceProps {
|
|
10
|
+
/**
|
|
11
|
+
* If set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified).
|
|
12
|
+
* If not set to true, the field can be modified at any time.
|
|
13
|
+
*
|
|
14
|
+
* @default false
|
|
15
|
+
*/
|
|
16
|
+
readonly immutable?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Options for `Secret`.
|
|
20
|
+
*/
|
|
21
|
+
export interface SecretProps extends CommonSecretProps {
|
|
22
|
+
/**
|
|
23
|
+
* stringData allows specifying non-binary secret data in string form. It is
|
|
24
|
+
* provided as a write-only convenience method. All keys and values are merged
|
|
25
|
+
* into the data field on write, overwriting any existing values. It is never
|
|
26
|
+
* output when reading from the API.
|
|
27
|
+
*/
|
|
28
|
+
readonly stringData?: {
|
|
29
|
+
[key: string]: string;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Optional type associated with the secret. Used to facilitate programmatic
|
|
33
|
+
* handling of secret data by various controllers.
|
|
34
|
+
*
|
|
35
|
+
* @default undefined - Don't set a type.
|
|
36
|
+
*/
|
|
37
|
+
readonly type?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface ISecret extends base.IResource {
|
|
40
|
+
/**
|
|
41
|
+
* Returns EnvValue object from a secret's key.
|
|
42
|
+
* @param key Secret's key
|
|
43
|
+
* @param options Additional EnvValue options
|
|
44
|
+
*/
|
|
45
|
+
envValue(key: string, options?: EnvValueFromSecretOptions): EnvValue;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Represents a specific value in JSON secret.
|
|
49
|
+
*/
|
|
50
|
+
export interface SecretValue {
|
|
51
|
+
/**
|
|
52
|
+
* The secret
|
|
53
|
+
*/
|
|
54
|
+
readonly secret: ISecret;
|
|
55
|
+
/**
|
|
56
|
+
* The JSON key
|
|
57
|
+
*/
|
|
58
|
+
readonly key: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Kubernetes Secrets let you store and manage sensitive information, such as
|
|
62
|
+
* passwords, OAuth tokens, and ssh keys. Storing confidential information in a
|
|
63
|
+
* Secret is safer and more flexible than putting it verbatim in a Pod
|
|
64
|
+
* definition or in a container image.
|
|
65
|
+
*
|
|
66
|
+
* @see https://kubernetes.io/docs/concepts/configuration/secret
|
|
67
|
+
*/
|
|
68
|
+
export declare class Secret extends base.Resource implements ISecret {
|
|
69
|
+
/**
|
|
70
|
+
* Imports a secret from the cluster as a reference.
|
|
71
|
+
*/
|
|
72
|
+
static fromSecretName(scope: Construct, id: string, name: string): ISecret;
|
|
73
|
+
/**
|
|
74
|
+
* @see base.Resource.apiObject
|
|
75
|
+
*/
|
|
76
|
+
protected readonly apiObject: ApiObject;
|
|
77
|
+
readonly resourceType = "secrets";
|
|
78
|
+
/**
|
|
79
|
+
* Whether or not the secret is immutable.
|
|
80
|
+
*/
|
|
81
|
+
readonly immutable: boolean;
|
|
82
|
+
private readonly stringData;
|
|
83
|
+
constructor(scope: Construct, id: string, props?: SecretProps);
|
|
84
|
+
/**
|
|
85
|
+
* Adds a string data field to the secret.
|
|
86
|
+
* @param key Key
|
|
87
|
+
* @param value Value
|
|
88
|
+
*/
|
|
89
|
+
addStringData(key: string, value: string): void;
|
|
90
|
+
/**
|
|
91
|
+
* Gets a string data by key or undefined
|
|
92
|
+
* @param key Key
|
|
93
|
+
*/
|
|
94
|
+
getStringData(key: string): string | undefined;
|
|
95
|
+
envValue(key: string, options?: EnvValueFromSecretOptions): EnvValue;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Options for `BasicAuthSecret`.
|
|
99
|
+
*/
|
|
100
|
+
export interface BasicAuthSecretProps extends CommonSecretProps {
|
|
101
|
+
/**
|
|
102
|
+
* The user name for authentication
|
|
103
|
+
*/
|
|
104
|
+
readonly username: string;
|
|
105
|
+
/**
|
|
106
|
+
* The password or token for authentication
|
|
107
|
+
*/
|
|
108
|
+
readonly password: string;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Create a secret for basic authentication.
|
|
112
|
+
*
|
|
113
|
+
* @see https://kubernetes.io/docs/concepts/configuration/secret/#basic-authentication-secret
|
|
114
|
+
*/
|
|
115
|
+
export declare class BasicAuthSecret extends Secret {
|
|
116
|
+
constructor(scope: Construct, id: string, props: BasicAuthSecretProps);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Options for `SshAuthSecret`.
|
|
120
|
+
*/
|
|
121
|
+
export interface SshAuthSecretProps extends CommonSecretProps {
|
|
122
|
+
/**
|
|
123
|
+
* The SSH private key to use
|
|
124
|
+
*/
|
|
125
|
+
readonly sshPrivateKey: string;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Create a secret for ssh authentication.
|
|
129
|
+
*
|
|
130
|
+
* @see https://kubernetes.io/docs/concepts/configuration/secret/#ssh-authentication-secrets
|
|
131
|
+
*/
|
|
132
|
+
export declare class SshAuthSecret extends Secret {
|
|
133
|
+
constructor(scope: Construct, id: string, props: SshAuthSecretProps);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Options for `ServiceAccountTokenSecret`.
|
|
137
|
+
*/
|
|
138
|
+
export interface ServiceAccountTokenSecretProps extends CommonSecretProps {
|
|
139
|
+
/**
|
|
140
|
+
* The service account to store a secret for
|
|
141
|
+
*/
|
|
142
|
+
readonly serviceAccount: serviceaccount.IServiceAccount;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Create a secret for a service account token.
|
|
146
|
+
*
|
|
147
|
+
* @see https://kubernetes.io/docs/concepts/configuration/secret/#service-account-token-secrets
|
|
148
|
+
*/
|
|
149
|
+
export declare class ServiceAccountTokenSecret extends Secret {
|
|
150
|
+
constructor(scope: Construct, id: string, props: ServiceAccountTokenSecretProps);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Options for `TlsSecret`.
|
|
154
|
+
*/
|
|
155
|
+
export interface TlsSecretProps extends CommonSecretProps {
|
|
156
|
+
/**
|
|
157
|
+
* The TLS cert
|
|
158
|
+
*/
|
|
159
|
+
readonly tlsCert: string;
|
|
160
|
+
/**
|
|
161
|
+
* The TLS key
|
|
162
|
+
*/
|
|
163
|
+
readonly tlsKey: string;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Create a secret for storing a TLS certificate and its associated key.
|
|
167
|
+
*
|
|
168
|
+
* @see https://kubernetes.io/docs/concepts/configuration/secret/#tls-secrets
|
|
169
|
+
*/
|
|
170
|
+
export declare class TlsSecret extends Secret {
|
|
171
|
+
constructor(scope: Construct, id: string, props: TlsSecretProps);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Options for `DockerConfigSecret`.
|
|
175
|
+
*/
|
|
176
|
+
export interface DockerConfigSecretProps extends CommonSecretProps {
|
|
177
|
+
/**
|
|
178
|
+
* JSON content to provide for the `~/.docker/config.json` file. This will
|
|
179
|
+
* be stringified and inserted as stringData.
|
|
180
|
+
*
|
|
181
|
+
* @see https://docs.docker.com/engine/reference/commandline/cli/#sample-configuration-file
|
|
182
|
+
*/
|
|
183
|
+
readonly data: {
|
|
184
|
+
[key: string]: any;
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Create a secret for storing credentials for accessing a container image
|
|
189
|
+
* registry.
|
|
190
|
+
*
|
|
191
|
+
* @see https://kubernetes.io/docs/concepts/configuration/secret/#docker-config-secrets
|
|
192
|
+
*/
|
|
193
|
+
export declare class DockerConfigSecret extends Secret {
|
|
194
|
+
constructor(scope: Construct, id: string, props: DockerConfigSecretProps);
|
|
195
|
+
}
|
package/lib/secret.js
ADDED
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.DockerConfigSecret = exports.TlsSecret = exports.ServiceAccountTokenSecret = exports.SshAuthSecret = exports.BasicAuthSecret = exports.Secret = void 0;
|
|
37
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
38
|
+
const constructs_1 = require("constructs");
|
|
39
|
+
const base = __importStar(require("./base"));
|
|
40
|
+
const container_1 = require("./container");
|
|
41
|
+
const k8s = __importStar(require("./imports/k8s"));
|
|
42
|
+
class ImportedSecret extends constructs_1.Construct {
|
|
43
|
+
_name;
|
|
44
|
+
resourceType = 'secrets';
|
|
45
|
+
constructor(scope, id, name) {
|
|
46
|
+
super(scope, id);
|
|
47
|
+
this._name = name;
|
|
48
|
+
}
|
|
49
|
+
get name() {
|
|
50
|
+
return this._name;
|
|
51
|
+
}
|
|
52
|
+
get apiVersion() {
|
|
53
|
+
return k8s.KubeSecret.GVK.apiVersion;
|
|
54
|
+
}
|
|
55
|
+
get apiGroup() {
|
|
56
|
+
return '';
|
|
57
|
+
}
|
|
58
|
+
get kind() {
|
|
59
|
+
return k8s.KubeSecret.GVK.kind;
|
|
60
|
+
}
|
|
61
|
+
get resourceName() {
|
|
62
|
+
return this.name;
|
|
63
|
+
}
|
|
64
|
+
envValue(key, options) {
|
|
65
|
+
return container_1.EnvValue.fromSecretValue({ secret: this, key }, options);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Kubernetes Secrets let you store and manage sensitive information, such as
|
|
70
|
+
* passwords, OAuth tokens, and ssh keys. Storing confidential information in a
|
|
71
|
+
* Secret is safer and more flexible than putting it verbatim in a Pod
|
|
72
|
+
* definition or in a container image.
|
|
73
|
+
*
|
|
74
|
+
* @see https://kubernetes.io/docs/concepts/configuration/secret
|
|
75
|
+
*/
|
|
76
|
+
class Secret extends base.Resource {
|
|
77
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk8s-plus-36.Secret", version: "2.0.1" };
|
|
78
|
+
/**
|
|
79
|
+
* Imports a secret from the cluster as a reference.
|
|
80
|
+
*/
|
|
81
|
+
static fromSecretName(scope, id, name) {
|
|
82
|
+
return new ImportedSecret(scope, id, name);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* @see base.Resource.apiObject
|
|
86
|
+
*/
|
|
87
|
+
apiObject;
|
|
88
|
+
resourceType = 'secrets';
|
|
89
|
+
/**
|
|
90
|
+
* Whether or not the secret is immutable.
|
|
91
|
+
*/
|
|
92
|
+
immutable;
|
|
93
|
+
stringData;
|
|
94
|
+
constructor(scope, id, props = {}) {
|
|
95
|
+
super(scope, id);
|
|
96
|
+
this.stringData = props.stringData ?? {};
|
|
97
|
+
this.immutable = props.immutable ?? false;
|
|
98
|
+
this.apiObject = new k8s.KubeSecret(this, 'Resource', {
|
|
99
|
+
metadata: props.metadata,
|
|
100
|
+
type: props.type,
|
|
101
|
+
stringData: this.stringData,
|
|
102
|
+
immutable: this.immutable,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Adds a string data field to the secret.
|
|
107
|
+
* @param key Key
|
|
108
|
+
* @param value Value
|
|
109
|
+
*/
|
|
110
|
+
addStringData(key, value) {
|
|
111
|
+
this.stringData[key] = value;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Gets a string data by key or undefined
|
|
115
|
+
* @param key Key
|
|
116
|
+
*/
|
|
117
|
+
getStringData(key) {
|
|
118
|
+
return this.stringData[key];
|
|
119
|
+
}
|
|
120
|
+
envValue(key, options) {
|
|
121
|
+
return container_1.EnvValue.fromSecretValue({ secret: this, key }, options);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.Secret = Secret;
|
|
125
|
+
/**
|
|
126
|
+
* Create a secret for basic authentication.
|
|
127
|
+
*
|
|
128
|
+
* @see https://kubernetes.io/docs/concepts/configuration/secret/#basic-authentication-secret
|
|
129
|
+
*/
|
|
130
|
+
class BasicAuthSecret extends Secret {
|
|
131
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk8s-plus-36.BasicAuthSecret", version: "2.0.1" };
|
|
132
|
+
constructor(scope, id, props) {
|
|
133
|
+
super(scope, id, {
|
|
134
|
+
type: 'kubernetes.io/basic-auth',
|
|
135
|
+
stringData: {
|
|
136
|
+
username: props.username,
|
|
137
|
+
password: props.password,
|
|
138
|
+
},
|
|
139
|
+
immutable: props.immutable,
|
|
140
|
+
metadata: props.metadata,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
exports.BasicAuthSecret = BasicAuthSecret;
|
|
145
|
+
/**
|
|
146
|
+
* Create a secret for ssh authentication.
|
|
147
|
+
*
|
|
148
|
+
* @see https://kubernetes.io/docs/concepts/configuration/secret/#ssh-authentication-secrets
|
|
149
|
+
*/
|
|
150
|
+
class SshAuthSecret extends Secret {
|
|
151
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk8s-plus-36.SshAuthSecret", version: "2.0.1" };
|
|
152
|
+
constructor(scope, id, props) {
|
|
153
|
+
super(scope, id, {
|
|
154
|
+
type: 'kubernetes.io/ssh-auth',
|
|
155
|
+
stringData: {
|
|
156
|
+
'ssh-privatekey': props.sshPrivateKey,
|
|
157
|
+
},
|
|
158
|
+
immutable: props.immutable,
|
|
159
|
+
metadata: props.metadata,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
exports.SshAuthSecret = SshAuthSecret;
|
|
164
|
+
/**
|
|
165
|
+
* Create a secret for a service account token.
|
|
166
|
+
*
|
|
167
|
+
* @see https://kubernetes.io/docs/concepts/configuration/secret/#service-account-token-secrets
|
|
168
|
+
*/
|
|
169
|
+
class ServiceAccountTokenSecret extends Secret {
|
|
170
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk8s-plus-36.ServiceAccountTokenSecret", version: "2.0.1" };
|
|
171
|
+
constructor(scope, id, props) {
|
|
172
|
+
super(scope, id, {
|
|
173
|
+
type: 'kubernetes.io/service-account-token',
|
|
174
|
+
metadata: props.metadata,
|
|
175
|
+
immutable: props.immutable,
|
|
176
|
+
});
|
|
177
|
+
this.metadata.addAnnotation('kubernetes.io/service-account.name', props.serviceAccount.name);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
exports.ServiceAccountTokenSecret = ServiceAccountTokenSecret;
|
|
181
|
+
/**
|
|
182
|
+
* Create a secret for storing a TLS certificate and its associated key.
|
|
183
|
+
*
|
|
184
|
+
* @see https://kubernetes.io/docs/concepts/configuration/secret/#tls-secrets
|
|
185
|
+
*/
|
|
186
|
+
class TlsSecret extends Secret {
|
|
187
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk8s-plus-36.TlsSecret", version: "2.0.1" };
|
|
188
|
+
constructor(scope, id, props) {
|
|
189
|
+
super(scope, id, {
|
|
190
|
+
type: 'kubernetes.io/tls',
|
|
191
|
+
stringData: {
|
|
192
|
+
'tls.crt': props.tlsCert,
|
|
193
|
+
'tls.key': props.tlsKey,
|
|
194
|
+
},
|
|
195
|
+
immutable: props.immutable,
|
|
196
|
+
metadata: props.metadata,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
exports.TlsSecret = TlsSecret;
|
|
201
|
+
/**
|
|
202
|
+
* Create a secret for storing credentials for accessing a container image
|
|
203
|
+
* registry.
|
|
204
|
+
*
|
|
205
|
+
* @see https://kubernetes.io/docs/concepts/configuration/secret/#docker-config-secrets
|
|
206
|
+
*/
|
|
207
|
+
class DockerConfigSecret extends Secret {
|
|
208
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "cdk8s-plus-36.DockerConfigSecret", version: "2.0.1" };
|
|
209
|
+
constructor(scope, id, props) {
|
|
210
|
+
super(scope, id, {
|
|
211
|
+
type: 'kubernetes.io/dockerconfigjson',
|
|
212
|
+
stringData: {
|
|
213
|
+
'.dockerconfigjson': JSON.stringify(props.data),
|
|
214
|
+
},
|
|
215
|
+
immutable: props.immutable,
|
|
216
|
+
metadata: props.metadata,
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
exports.DockerConfigSecret = DockerConfigSecret;
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NlY3JldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMkNBQXVDO0FBQ3ZDLDZDQUErQjtBQUMvQiwyQ0FBa0U7QUFDbEUsbURBQXFDO0FBZ0VyQyxNQUFNLGNBQWUsU0FBUSxzQkFBUztJQUVuQixLQUFLLENBQVM7SUFFZixZQUFZLEdBQUcsU0FBUyxDQUFDO0lBRXpDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsSUFBWTtRQUNwRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFTSxRQUFRLENBQUMsR0FBVyxFQUFFLE9BQW1DO1FBQzlELE9BQU8sb0JBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FFRjtBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLE1BQU8sU0FBUSxJQUFJLENBQUMsUUFBUTs7SUFFdkM7O09BRUc7SUFDSSxN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SCxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxvQ0FBb0MsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9GLENBQUM7O0FBVEgsOERBVUM7QUFpQkQ7Ozs7R0FJRztBQUNILE1BQWEsU0FBVSxTQUFRLE1BQU07O0lBQ25DLFlBQW1CLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXFCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsSUFBSSxFQUFFLG1CQUFtQjtZQUN6QixVQUFVLEVBQUU7Z0JBQ1YsU0FBUyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN4QixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU07YUFDeEI7WUFDRCxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBWEgsOEJBWUM7QUFlRDs7Ozs7R0FLRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsTUFBTTs7SUFDNUMsWUFBbUIsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBOEI7UUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixJQUFJLEVBQUUsZ0NBQWdDO1lBQ3RDLFVBQVUsRUFBRTtnQkFDVixtQkFBbUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7YUFDaEQ7WUFDRCxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBVkgsZ0RBV0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcGlPYmplY3QgfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGJhc2UgZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEVudlZhbHVlLCBFbnZWYWx1ZUZyb21TZWNyZXRPcHRpb25zIH0gZnJvbSAnLi9jb250YWluZXInO1xuaW1wb3J0ICogYXMgazhzIGZyb20gJy4vaW1wb3J0cy9rOHMnO1xuaW1wb3J0ICogYXMgc2VydmljZWFjY291bnQgZnJvbSAnLi9zZXJ2aWNlLWFjY291bnQnO1xuXG4vKipcbiAqIENvbW1vbiBwcm9wZXJ0aWVzIGZvciBgU2VjcmV0YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21tb25TZWNyZXRQcm9wcyBleHRlbmRzIGJhc2UuUmVzb3VyY2VQcm9wcyB7XG5cbiAgLyoqXG4gICAqIElmIHNldCB0byB0cnVlLCBlbnN1cmVzIHRoYXQgZGF0YSBzdG9yZWQgaW4gdGhlIFNlY3JldCBjYW5ub3QgYmUgdXBkYXRlZCAob25seSBvYmplY3QgbWV0YWRhdGEgY2FuIGJlIG1vZGlmaWVkKS5cbiAgICogSWYgbm90IHNldCB0byB0cnVlLCB0aGUgZmllbGQgY2FuIGJlIG1vZGlmaWVkIGF0IGFueSB0aW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1tdXRhYmxlPzogYm9vbGVhbjtcblxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBTZWNyZXRgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlY3JldFByb3BzIGV4dGVuZHMgQ29tbW9uU2VjcmV0UHJvcHMge1xuICAvKipcbiAgICogc3RyaW5nRGF0YSBhbGxvd3Mgc3BlY2lmeWluZyBub24tYmluYXJ5IHNlY3JldCBkYXRhIGluIHN0cmluZyBmb3JtLiBJdCBpc1xuICAgKiBwcm92aWRlZCBhcyBhIHdyaXRlLW9ubHkgY29udmVuaWVuY2UgbWV0aG9kLiBBbGwga2V5cyBhbmQgdmFsdWVzIGFyZSBtZXJnZWRcbiAgICogaW50byB0aGUgZGF0YSBmaWVsZCBvbiB3cml0ZSwgb3ZlcndyaXRpbmcgYW55IGV4aXN0aW5nIHZhbHVlcy4gSXQgaXMgbmV2ZXJcbiAgICogb3V0cHV0IHdoZW4gcmVhZGluZyBmcm9tIHRoZSBBUEkuXG4gICAqL1xuICByZWFkb25seSBzdHJpbmdEYXRhPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgdHlwZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNlY3JldC4gIFVzZWQgdG8gZmFjaWxpdGF0ZSBwcm9ncmFtbWF0aWNcbiAgICogaGFuZGxpbmcgb2Ygc2VjcmV0IGRhdGEgYnkgdmFyaW91cyBjb250cm9sbGVycy5cbiAgICpcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkIC0gRG9uJ3Qgc2V0IGEgdHlwZS5cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU/OiBzdHJpbmc7XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2VjcmV0IGV4dGVuZHMgYmFzZS5JUmVzb3VyY2Uge1xuICAvKipcbiAgICogUmV0dXJucyBFbnZWYWx1ZSBvYmplY3QgZnJvbSBhIHNlY3JldCdzIGtleS5cbiAgICogQHBhcmFtIGtleSBTZWNyZXQncyBrZXlcbiAgICogQHBhcmFtIG9wdGlvbnMgQWRkaXRpb25hbCBFbnZWYWx1ZSBvcHRpb25zXG4gICAqL1xuICBlbnZWYWx1ZShrZXk6IHN0cmluZywgb3B0aW9ucz86IEVudlZhbHVlRnJvbVNlY3JldE9wdGlvbnMpOiBFbnZWYWx1ZTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc3BlY2lmaWMgdmFsdWUgaW4gSlNPTiBzZWNyZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VjcmV0VmFsdWUge1xuICAvKipcbiAgICogVGhlIHNlY3JldFxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0OiBJU2VjcmV0O1xuXG4gIC8qKlxuICAgKiBUaGUgSlNPTiBrZXlcbiAgICovXG4gIHJlYWRvbmx5IGtleTogc3RyaW5nO1xufVxuXG5jbGFzcyBJbXBvcnRlZFNlY3JldCBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElTZWNyZXQge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX25hbWU6IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2VUeXBlID0gJ3NlY3JldHMnO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5fbmFtZSA9IG5hbWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXBpVmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBrOHMuS3ViZVNlY3JldC5HVksuYXBpVmVyc2lvbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXBpR3JvdXAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGtpbmQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gazhzLkt1YmVTZWNyZXQuR1ZLLmtpbmQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlc291cmNlTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBwdWJsaWMgZW52VmFsdWUoa2V5OiBzdHJpbmcsIG9wdGlvbnM/OiBFbnZWYWx1ZUZyb21TZWNyZXRPcHRpb25zKTogRW52VmFsdWUge1xuICAgIHJldHVybiBFbnZWYWx1ZS5mcm9tU2VjcmV0VmFsdWUoeyBzZWNyZXQ6IHRoaXMsIGtleSB9LCBvcHRpb25zKTtcbiAgfVxuXG59XG5cbi8qKlxuICogS3ViZXJuZXRlcyBTZWNyZXRzIGxldCB5b3Ugc3RvcmUgYW5kIG1hbmFnZSBzZW5zaXRpdmUgaW5mb3JtYXRpb24sIHN1Y2ggYXNcbiAqIHBhc3N3b3JkcywgT0F1dGggdG9rZW5zLCBhbmQgc3NoIGtleXMuIFN0b3JpbmcgY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIGluIGFcbiAqIFNlY3JldCBpcyBzYWZlciBhbmQgbW9yZSBmbGV4aWJsZSB0aGFuIHB1dHRpbmcgaXQgdmVyYmF0aW0gaW4gYSBQb2RcbiAqIGRlZmluaXRpb24gb3IgaW4gYSBjb250YWluZXIgaW1hZ2UuXG4gKlxuICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL3NlY3JldFxuICovXG5leHBvcnQgY2xhc3MgU2VjcmV0IGV4dGVuZHMgYmFzZS5SZXNvdXJjZSBpbXBsZW1lbnRzIElTZWNyZXQge1xuXG4gIC8qKlxuICAgKiBJbXBvcnRzIGEgc2VjcmV0IGZyb20gdGhlIGNsdXN0ZXIgYXMgYSByZWZlcmVuY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TZWNyZXROYW1lKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IElTZWNyZXQge1xuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRTZWNyZXQoc2NvcGUsIGlkLCBuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc2VlIGJhc2UuUmVzb3VyY2UuYXBpT2JqZWN0XG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBpT2JqZWN0OiBBcGlPYmplY3Q7XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlVHlwZSA9ICdzZWNyZXRzJztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIHNlY3JldCBpcyBpbW11dGFibGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW1tdXRhYmxlOiBib29sZWFuO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RyaW5nRGF0YTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFNlY3JldFByb3BzID0geyB9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuc3RyaW5nRGF0YSA9IHByb3BzLnN0cmluZ0RhdGEgPz8ge307XG5cbiAgICB0aGlzLmltbXV0YWJsZSA9IHByb3BzLmltbXV0YWJsZSA/PyBmYWxzZTtcbiAgICB0aGlzLmFwaU9iamVjdCA9IG5ldyBrOHMuS3ViZVNlY3JldCh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBtZXRhZGF0YTogcHJvcHMubWV0YWRhdGEsXG4gICAgICB0eXBlOiBwcm9wcy50eXBlLFxuICAgICAgc3RyaW5nRGF0YTogdGhpcy5zdHJpbmdEYXRhLFxuICAgICAgaW1tdXRhYmxlOiB0aGlzLmltbXV0YWJsZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3RyaW5nIGRhdGEgZmllbGQgdG8gdGhlIHNlY3JldC5cbiAgICogQHBhcmFtIGtleSBLZXlcbiAgICogQHBhcmFtIHZhbHVlIFZhbHVlXG4gICAqL1xuICBwdWJsaWMgYWRkU3RyaW5nRGF0YShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc3RyaW5nRGF0YVtrZXldID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIHN0cmluZyBkYXRhIGJ5IGtleSBvciB1bmRlZmluZWRcbiAgICogQHBhcmFtIGtleSBLZXlcbiAgICovXG4gIHB1YmxpYyBnZXRTdHJpbmdEYXRhKGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmdEYXRhW2tleV07XG4gIH1cblxuICBwdWJsaWMgZW52VmFsdWUoa2V5OiBzdHJpbmcsIG9wdGlvbnM/OiBFbnZWYWx1ZUZyb21TZWNyZXRPcHRpb25zKTogRW52VmFsdWUge1xuICAgIHJldHVybiBFbnZWYWx1ZS5mcm9tU2VjcmV0VmFsdWUoeyBzZWNyZXQ6IHRoaXMsIGtleSB9LCBvcHRpb25zKTtcbiAgfVxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBCYXNpY0F1dGhTZWNyZXRgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2ljQXV0aFNlY3JldFByb3BzIGV4dGVuZHMgQ29tbW9uU2VjcmV0UHJvcHMge1xuICAvKipcbiAgICogVGhlIHVzZXIgbmFtZSBmb3IgYXV0aGVudGljYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXNzd29yZCBvciB0b2tlbiBmb3IgYXV0aGVudGljYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHBhc3N3b3JkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgc2VjcmV0IGZvciBiYXNpYyBhdXRoZW50aWNhdGlvbi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vc2VjcmV0LyNiYXNpYy1hdXRoZW50aWNhdGlvbi1zZWNyZXRcbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2ljQXV0aFNlY3JldCBleHRlbmRzIFNlY3JldCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQmFzaWNBdXRoU2VjcmV0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHR5cGU6ICdrdWJlcm5ldGVzLmlvL2Jhc2ljLWF1dGgnLFxuICAgICAgc3RyaW5nRGF0YToge1xuICAgICAgICB1c2VybmFtZTogcHJvcHMudXNlcm5hbWUsXG4gICAgICAgIHBhc3N3b3JkOiBwcm9wcy5wYXNzd29yZCxcbiAgICAgIH0sXG4gICAgICBpbW11dGFibGU6IHByb3BzLmltbXV0YWJsZSxcbiAgICAgIG1ldGFkYXRhOiBwcm9wcy5tZXRhZGF0YSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBTc2hBdXRoU2VjcmV0YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTc2hBdXRoU2VjcmV0UHJvcHMgZXh0ZW5kcyBDb21tb25TZWNyZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgU1NIIHByaXZhdGUga2V5IHRvIHVzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3NoUHJpdmF0ZUtleTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIHNlY3JldCBmb3Igc3NoIGF1dGhlbnRpY2F0aW9uLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9zZWNyZXQvI3NzaC1hdXRoZW50aWNhdGlvbi1zZWNyZXRzXG4gKi9cbmV4cG9ydCBjbGFzcyBTc2hBdXRoU2VjcmV0IGV4dGVuZHMgU2VjcmV0IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTc2hBdXRoU2VjcmV0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHR5cGU6ICdrdWJlcm5ldGVzLmlvL3NzaC1hdXRoJyxcbiAgICAgIHN0cmluZ0RhdGE6IHtcbiAgICAgICAgJ3NzaC1wcml2YXRla2V5JzogcHJvcHMuc3NoUHJpdmF0ZUtleSxcbiAgICAgIH0sXG4gICAgICBpbW11dGFibGU6IHByb3BzLmltbXV0YWJsZSxcbiAgICAgIG1ldGFkYXRhOiBwcm9wcy5tZXRhZGF0YSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBTZXJ2aWNlQWNjb3VudFRva2VuU2VjcmV0YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlQWNjb3VudFRva2VuU2VjcmV0UHJvcHMgZXh0ZW5kcyBDb21tb25TZWNyZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSBhY2NvdW50IHRvIHN0b3JlIGEgc2VjcmV0IGZvclxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZUFjY291bnQ6IHNlcnZpY2VhY2NvdW50LklTZXJ2aWNlQWNjb3VudDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBzZWNyZXQgZm9yIGEgc2VydmljZSBhY2NvdW50IHRva2VuLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9zZWNyZXQvI3NlcnZpY2UtYWNjb3VudC10b2tlbi1zZWNyZXRzXG4gKi9cbmV4cG9ydCBjbGFzcyBTZXJ2aWNlQWNjb3VudFRva2VuU2VjcmV0IGV4dGVuZHMgU2VjcmV0IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTZXJ2aWNlQWNjb3VudFRva2VuU2VjcmV0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHR5cGU6ICdrdWJlcm5ldGVzLmlvL3NlcnZpY2UtYWNjb3VudC10b2tlbicsXG4gICAgICBtZXRhZGF0YTogcHJvcHMubWV0YWRhdGEsXG4gICAgICBpbW11dGFibGU6IHByb3BzLmltbXV0YWJsZSxcbiAgICB9KTtcblxuICAgIHRoaXMubWV0YWRhdGEuYWRkQW5ub3RhdGlvbigna3ViZXJuZXRlcy5pby9zZXJ2aWNlLWFjY291bnQubmFtZScsIHByb3BzLnNlcnZpY2VBY2NvdW50Lm5hbWUpO1xuICB9XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYFRsc1NlY3JldGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGxzU2VjcmV0UHJvcHMgZXh0ZW5kcyBDb21tb25TZWNyZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgVExTIGNlcnRcbiAgICovXG4gIHJlYWRvbmx5IHRsc0NlcnQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFRMUyBrZXlcbiAgICovXG4gIHJlYWRvbmx5IHRsc0tleTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIHNlY3JldCBmb3Igc3RvcmluZyBhIFRMUyBjZXJ0aWZpY2F0ZSBhbmQgaXRzIGFzc29jaWF0ZWQga2V5LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9zZWNyZXQvI3Rscy1zZWNyZXRzXG4gKi9cbmV4cG9ydCBjbGFzcyBUbHNTZWNyZXQgZXh0ZW5kcyBTZWNyZXQge1xuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFRsc1NlY3JldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICB0eXBlOiAna3ViZXJuZXRlcy5pby90bHMnLFxuICAgICAgc3RyaW5nRGF0YToge1xuICAgICAgICAndGxzLmNydCc6IHByb3BzLnRsc0NlcnQsXG4gICAgICAgICd0bHMua2V5JzogcHJvcHMudGxzS2V5LFxuICAgICAgfSxcbiAgICAgIGltbXV0YWJsZTogcHJvcHMuaW1tdXRhYmxlLFxuICAgICAgbWV0YWRhdGE6IHByb3BzLm1ldGFkYXRhLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYERvY2tlckNvbmZpZ1NlY3JldGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyQ29uZmlnU2VjcmV0UHJvcHMgZXh0ZW5kcyBDb21tb25TZWNyZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBKU09OIGNvbnRlbnQgdG8gcHJvdmlkZSBmb3IgdGhlIGB+Ly5kb2NrZXIvY29uZmlnLmpzb25gIGZpbGUuIFRoaXMgd2lsbFxuICAgKiBiZSBzdHJpbmdpZmllZCBhbmQgaW5zZXJ0ZWQgYXMgc3RyaW5nRGF0YS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NsaS8jc2FtcGxlLWNvbmZpZ3VyYXRpb24tZmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBzZWNyZXQgZm9yIHN0b3JpbmcgY3JlZGVudGlhbHMgZm9yIGFjY2Vzc2luZyBhIGNvbnRhaW5lciBpbWFnZVxuICogcmVnaXN0cnkuXG4gKlxuICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL3NlY3JldC8jZG9ja2VyLWNvbmZpZy1zZWNyZXRzXG4gKi9cbmV4cG9ydCBjbGFzcyBEb2NrZXJDb25maWdTZWNyZXQgZXh0ZW5kcyBTZWNyZXQge1xuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERvY2tlckNvbmZpZ1NlY3JldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICB0eXBlOiAna3ViZXJuZXRlcy5pby9kb2NrZXJjb25maWdqc29uJyxcbiAgICAgIHN0cmluZ0RhdGE6IHtcbiAgICAgICAgJy5kb2NrZXJjb25maWdqc29uJzogSlNPTi5zdHJpbmdpZnkocHJvcHMuZGF0YSksXG4gICAgICB9LFxuICAgICAgaW1tdXRhYmxlOiBwcm9wcy5pbW11dGFibGUsXG4gICAgICBtZXRhZGF0YTogcHJvcHMubWV0YWRhdGEsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { ApiObject } from 'cdk8s';
|
|
2
|
+
import { Construct } from 'constructs';
|
|
3
|
+
import * as base from './base';
|
|
4
|
+
import * as rb from './role-binding';
|
|
5
|
+
import * as secret from './secret';
|
|
6
|
+
export interface IServiceAccount extends base.IResource, rb.ISubject {
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Properties for initialization of `ServiceAccount`.
|
|
10
|
+
*/
|
|
11
|
+
export interface ServiceAccountProps extends base.ResourceProps {
|
|
12
|
+
/**
|
|
13
|
+
* List of secrets allowed to be used by pods running using this
|
|
14
|
+
* ServiceAccount.
|
|
15
|
+
*
|
|
16
|
+
* @see https://kubernetes.io/docs/concepts/configuration/secret
|
|
17
|
+
*/
|
|
18
|
+
readonly secrets?: secret.ISecret[];
|
|
19
|
+
/**
|
|
20
|
+
* Indicates whether pods running as this service account
|
|
21
|
+
* should have an API token automatically mounted. Can be overridden at the pod level.
|
|
22
|
+
*
|
|
23
|
+
* @default false
|
|
24
|
+
* @see https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
|
|
25
|
+
*/
|
|
26
|
+
readonly automountToken?: boolean;
|
|
27
|
+
}
|
|
28
|
+
export interface FromServiceAccountNameOptions {
|
|
29
|
+
/**
|
|
30
|
+
* The name of the namespace the service account belongs to.
|
|
31
|
+
*
|
|
32
|
+
* @default "default"
|
|
33
|
+
*/
|
|
34
|
+
readonly namespaceName?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* A service account provides an identity for processes that run in a Pod.
|
|
38
|
+
*
|
|
39
|
+
* When you (a human) access the cluster (for example, using kubectl), you are
|
|
40
|
+
* authenticated by the apiserver as a particular User Account (currently this
|
|
41
|
+
* is usually admin, unless your cluster administrator has customized your
|
|
42
|
+
* cluster). Processes in containers inside pods can also contact the apiserver.
|
|
43
|
+
* When they do, they are authenticated as a particular Service Account (for
|
|
44
|
+
* example, default).
|
|
45
|
+
*
|
|
46
|
+
* @see https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account
|
|
47
|
+
*/
|
|
48
|
+
export declare class ServiceAccount extends base.Resource implements IServiceAccount, rb.ISubject {
|
|
49
|
+
/**
|
|
50
|
+
* Imports a service account from the cluster as a reference.
|
|
51
|
+
* @param name The name of the service account resource.
|
|
52
|
+
* @param options additional options.
|
|
53
|
+
*/
|
|
54
|
+
static fromServiceAccountName(scope: Construct, id: string, name: string, options?: FromServiceAccountNameOptions): IServiceAccount;
|
|
55
|
+
/**
|
|
56
|
+
* @see base.Resource.apiObject
|
|
57
|
+
*/
|
|
58
|
+
protected readonly apiObject: ApiObject;
|
|
59
|
+
readonly resourceType = "serviceaccounts";
|
|
60
|
+
private readonly _secrets;
|
|
61
|
+
/**
|
|
62
|
+
* Whether or not a token is automatically mounted for this
|
|
63
|
+
* service account.
|
|
64
|
+
*/
|
|
65
|
+
readonly automountToken: boolean;
|
|
66
|
+
constructor(scope: Construct, id: string, props?: ServiceAccountProps);
|
|
67
|
+
/**
|
|
68
|
+
* Allow a secret to be accessed by pods using this service account.
|
|
69
|
+
* @param secr The secret
|
|
70
|
+
*/
|
|
71
|
+
addSecret(secr: secret.ISecret): void;
|
|
72
|
+
/**
|
|
73
|
+
* List of secrets allowed to be used by pods running using this service
|
|
74
|
+
* account.
|
|
75
|
+
*
|
|
76
|
+
* Returns a copy. To add a secret, use `addSecret()`.
|
|
77
|
+
*/
|
|
78
|
+
get secrets(): secret.ISecret[];
|
|
79
|
+
/**
|
|
80
|
+
* @see ISubect.toSubjectConfiguration()
|
|
81
|
+
*/
|
|
82
|
+
toSubjectConfiguration(): rb.SubjectConfiguration;
|
|
83
|
+
}
|