Skip to content

Commit b2f37fb

Browse files
mriedmannjsonnet-libs-bot
authored andcommitted
update: source github.com/jsonnet-libs/k8s@6f69530d
1 parent 2255ea6 commit b2f37fb

File tree

4 files changed

+331
-7
lines changed

4 files changed

+331
-7
lines changed
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
local d = import 'doc-util/main.libsonnet';
2+
3+
local patch = {
4+
secretProviderClass+: {
5+
local secrets_store_csi_driver = self,
6+
spec+: {
7+
parameters+: {
8+
'#newAzureParameters':: d.fn(
9+
help=' shortcut to define new azure specific prameters with defaults',
10+
args=[
11+
d.arg('tenantId', d.T.string),
12+
d.arg('keyvaultName', d.T.string),
13+
d.arg('userAssignedIdentityId', d.T.string),
14+
d.arg('useVMManagedIdentity', d.T.bool, 'true'),
15+
d.arg('usePodIdentity', d.T.bool, 'false'),
16+
]
17+
),
18+
newAzureParameters(
19+
tenantId,
20+
keyvaultName,
21+
userAssignedIdentityId,
22+
useVMManagedIdentity=true,
23+
usePodIdentity=false
24+
):: {
25+
cloudName: '',
26+
objects: '',
27+
}
28+
+ self.withTenantId(tenantId)
29+
+ self.withKeyvaultName(keyvaultName)
30+
+ self.withUserAssignedIdentityId(userAssignedIdentityId)
31+
+ self.withUseVMManagedIdentity(useVMManagedIdentity)
32+
+ self.withUsePodIdentity(usePodIdentity),
33+
34+
'#withUsePodIdentity':: d.fn(help='Helper-function to set attribute according to to specification (https://learn.microsoft.com/en-us/azure/aks/csi-secrets-store-identity-access#use-a-user-assigned-managed-identity)', args=[d.arg('usePodIdentity', d.T.bool)]),
35+
withUsePodIdentity(usePodIdentity):: { usePodIdentity: std.toString(usePodIdentity) },
36+
'#withUseVMManagedIdentity':: d.fn(help='Helper-function to set attribute according to to specification (https://learn.microsoft.com/en-us/azure/aks/csi-secrets-store-identity-access#use-a-user-assigned-managed-identity)', args=[d.arg('withUseVMManagedIdentity', d.T.bool)]),
37+
withUseVMManagedIdentity(useVMManagedIdentity):: { useVMManagedIdentity: std.toString(useVMManagedIdentity) },
38+
'#withUserAssignedIdentityId':: d.fn(help='Helper-function to set attribute according to to specification (https://learn.microsoft.com/en-us/azure/aks/csi-secrets-store-identity-access#use-a-user-assigned-managed-identity)', args=[d.arg('withUserAssignedIdentityId', d.T.string)]),
39+
withUserAssignedIdentityId(userAssignedIdentityID):: { userAssignedIdentityID: userAssignedIdentityID },
40+
'#withKeyvaultName':: d.fn(help='Helper-function to set attribute according to to specification (https://learn.microsoft.com/en-us/azure/aks/csi-secrets-store-identity-access#use-a-user-assigned-managed-identity)', args=[d.arg('withKeyvaultName', d.T.string)]),
41+
withKeyvaultName(keyvaultName):: { keyvaultName: keyvaultName },
42+
'#withCloudName':: d.fn(help='Helper-function to set attribute according to to specification (https://learn.microsoft.com/en-us/azure/aks/csi-secrets-store-identity-access#use-a-user-assigned-managed-identity)', args=[d.arg('withCloudName', d.T.string)]),
43+
withCloudName(cloudName):: { cloudName: cloudName },
44+
'#withTenantId':: d.fn(help='Helper-function to set attribute according to to specification (https://learn.microsoft.com/en-us/azure/aks/csi-secrets-store-identity-access#use-a-user-assigned-managed-identity)', args=[d.arg('withTenantId', d.T.string)]),
45+
withTenantId(tenantId):: { tenantId: tenantId },
46+
47+
'#withObjects':: d.fn(help='Function to render objects-text. Takes an object-array e.g. [{objectName:"name",objectType:"secret"}] or an single object.', args=[d.arg('objects', d.T.array)]),
48+
withObjects(objects):: {
49+
objects: std.manifestYamlDoc({
50+
local f = function(x) std.join('', std.map(function(y) |||
51+
%s: '%s'
52+
||| % [y, x[y]], std.objectFields(x))),
53+
array: std.map(
54+
f,
55+
if std.isArray(objects) then objects else [objects]
56+
),
57+
}, indent_array_in_object=true, quote_keys=false),
58+
},
59+
},
60+
secretObjects+: {
61+
data+: {
62+
'#new':: d.fn(
63+
help='Create new secretsObjects data entry. Object has to have an objectName field or should be provided as objectName string',
64+
args=[
65+
d.arg('key', d.T.string),
66+
d.arg('object', d.T.object),
67+
]
68+
),
69+
new(key, object)::
70+
local objectName = if std.isObject(object) then object.objectName else object;
71+
{}
72+
+ secrets_store_csi_driver.spec.secretObjects.data.withKey(key)
73+
+ secrets_store_csi_driver.spec.secretObjects.data.withObjectName(objectName),
74+
},
75+
'#new':: d.fn(
76+
help='Create new secretsObject.',
77+
args=[
78+
d.arg('name', d.T.string),
79+
d.arg('objects', d.T.array),
80+
]
81+
),
82+
new(name, objects, type='Opaque')::
83+
{}
84+
+ secrets_store_csi_driver.spec.secretObjects.withSecretName(name)
85+
+ secrets_store_csi_driver.spec.secretObjects.withType(type)
86+
+ secrets_store_csi_driver.spec.secretObjects.withData(
87+
[secrets_store_csi_driver.spec.secretObjects.data.new(x, objects[x]) for x in std.objectFields(objects)]
88+
),
89+
},
90+
},
91+
'#new':: d.fn(
92+
help='Create new azure specific secretProviderClass.',
93+
args=[
94+
d.arg('name', d.T.string),
95+
d.arg('tenantId', d.T.string),
96+
d.arg('keyvaultName', d.T.string),
97+
d.arg('userAssignedIdentityId', d.T.string),
98+
d.arg('objects', d.T.array, '[]'),
99+
d.arg('secretName', d.T.array, 'null'),
100+
d.arg('secretObjects', d.T.array, '[]'),
101+
]
102+
),
103+
newAzure(
104+
name,
105+
tenantId,
106+
keyvaultName,
107+
userAssignedIdentityId,
108+
objects=[],
109+
secretName=null,
110+
secretObjects=[]
111+
):: self.new(name)
112+
+ self.spec.withProvider('azure')
113+
+ {
114+
spec+: {
115+
parameters+: secrets_store_csi_driver.spec.parameters.newAzureParameters(
116+
userAssignedIdentityId=userAssignedIdentityId,
117+
keyvaultName=keyvaultName,
118+
tenantId=tenantId
119+
) + secrets_store_csi_driver.spec.parameters.withObjects(std.objectValues(objects)),
120+
},
121+
}
122+
+ if secretName != null then self.spec.withSecretObjects([
123+
secrets_store_csi_driver.spec.secretObjects.new(secretName, objects),
124+
]) else {}
125+
+ self.spec.withSecretObjects(secretObjects),
126+
},
127+
};
128+
129+
{
130+
nogroup+: {
131+
v1+: patch,
132+
v1alpha1+: patch,
133+
},
134+
}

1.2/main.libsonnet

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
(import 'gen.libsonnet')
1+
(import 'gen.libsonnet') + (import '_custom/secretProviderClass.libsonnet')

docs/1.2/nogroup/v1/secretProviderClass.md

Lines changed: 98 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ permalink: /1.2/nogroup/v1/secretProviderClass/
88

99
## Index
1010

11-
* [`fn new(name)`](#fn-new)
11+
* [`fn new(name, tenantId, keyvaultName, userAssignedIdentityId, objects='[]', secretName='null', secretObjects='[]')`](#fn-new)
1212
* [`obj metadata`](#obj-metadata)
1313
* [`fn withAnnotations(annotations)`](#fn-metadatawithannotations)
1414
* [`fn withAnnotationsMixin(annotations)`](#fn-metadatawithannotationsmixin)
@@ -35,7 +35,17 @@ permalink: /1.2/nogroup/v1/secretProviderClass/
3535
* [`fn withProvider(provider)`](#fn-specwithprovider)
3636
* [`fn withSecretObjects(secretObjects)`](#fn-specwithsecretobjects)
3737
* [`fn withSecretObjectsMixin(secretObjects)`](#fn-specwithsecretobjectsmixin)
38+
* [`obj spec.parameters`](#obj-specparameters)
39+
* [`fn newAzureParameters(tenantId, keyvaultName, userAssignedIdentityId, useVMManagedIdentity='true', usePodIdentity='false')`](#fn-specparametersnewazureparameters)
40+
* [`fn withCloudName(withCloudName)`](#fn-specparameterswithcloudname)
41+
* [`fn withKeyvaultName(withKeyvaultName)`](#fn-specparameterswithkeyvaultname)
42+
* [`fn withObjects(objects)`](#fn-specparameterswithobjects)
43+
* [`fn withTenantId(withTenantId)`](#fn-specparameterswithtenantid)
44+
* [`fn withUsePodIdentity(usePodIdentity)`](#fn-specparameterswithusepodidentity)
45+
* [`fn withUseVMManagedIdentity(withUseVMManagedIdentity)`](#fn-specparameterswithusevmmanagedidentity)
46+
* [`fn withUserAssignedIdentityId(withUserAssignedIdentityId)`](#fn-specparameterswithuserassignedidentityid)
3847
* [`obj spec.secretObjects`](#obj-specsecretobjects)
48+
* [`fn new(name, objects)`](#fn-specsecretobjectsnew)
3949
* [`fn withAnnotations(annotations)`](#fn-specsecretobjectswithannotations)
4050
* [`fn withAnnotationsMixin(annotations)`](#fn-specsecretobjectswithannotationsmixin)
4151
* [`fn withData(data)`](#fn-specsecretobjectswithdata)
@@ -45,6 +55,7 @@ permalink: /1.2/nogroup/v1/secretProviderClass/
4555
* [`fn withSecretName(secretName)`](#fn-specsecretobjectswithsecretname)
4656
* [`fn withType(type)`](#fn-specsecretobjectswithtype)
4757
* [`obj spec.secretObjects.data`](#obj-specsecretobjectsdata)
58+
* [`fn new(key, object)`](#fn-specsecretobjectsdatanew)
4859
* [`fn withKey(key)`](#fn-specsecretobjectsdatawithkey)
4960
* [`fn withObjectName(objectName)`](#fn-specsecretobjectsdatawithobjectname)
5061

@@ -53,10 +64,10 @@ permalink: /1.2/nogroup/v1/secretProviderClass/
5364
### fn new
5465

5566
```ts
56-
new(name)
67+
new(name, tenantId, keyvaultName, userAssignedIdentityId, objects='[]', secretName='null', secretObjects='[]')
5768
```
5869

59-
new returns an instance of SecretProviderClass
70+
Create new azure specific secretProviderClass.
6071

6172
## obj metadata
6273

@@ -270,10 +281,86 @@ withSecretObjectsMixin(secretObjects)
270281

271282
**Note:** This function appends passed data to existing values
272283

284+
## obj spec.parameters
285+
286+
287+
288+
### fn spec.parameters.newAzureParameters
289+
290+
```ts
291+
newAzureParameters(tenantId, keyvaultName, userAssignedIdentityId, useVMManagedIdentity='true', usePodIdentity='false')
292+
```
293+
294+
shortcut to define new azure specific prameters with defaults
295+
296+
### fn spec.parameters.withCloudName
297+
298+
```ts
299+
withCloudName(withCloudName)
300+
```
301+
302+
Helper-function to set attribute according to to specification (https://learn.microsoft.com/en-us/azure/aks/csi-secrets-store-identity-access#use-a-user-assigned-managed-identity)
303+
304+
### fn spec.parameters.withKeyvaultName
305+
306+
```ts
307+
withKeyvaultName(withKeyvaultName)
308+
```
309+
310+
Helper-function to set attribute according to to specification (https://learn.microsoft.com/en-us/azure/aks/csi-secrets-store-identity-access#use-a-user-assigned-managed-identity)
311+
312+
### fn spec.parameters.withObjects
313+
314+
```ts
315+
withObjects(objects)
316+
```
317+
318+
Function to render objects-text. Takes an object-array e.g. [{objectName:"name",objectType:"secret"}] or an single object.
319+
320+
### fn spec.parameters.withTenantId
321+
322+
```ts
323+
withTenantId(withTenantId)
324+
```
325+
326+
Helper-function to set attribute according to to specification (https://learn.microsoft.com/en-us/azure/aks/csi-secrets-store-identity-access#use-a-user-assigned-managed-identity)
327+
328+
### fn spec.parameters.withUsePodIdentity
329+
330+
```ts
331+
withUsePodIdentity(usePodIdentity)
332+
```
333+
334+
Helper-function to set attribute according to to specification (https://learn.microsoft.com/en-us/azure/aks/csi-secrets-store-identity-access#use-a-user-assigned-managed-identity)
335+
336+
### fn spec.parameters.withUseVMManagedIdentity
337+
338+
```ts
339+
withUseVMManagedIdentity(withUseVMManagedIdentity)
340+
```
341+
342+
Helper-function to set attribute according to to specification (https://learn.microsoft.com/en-us/azure/aks/csi-secrets-store-identity-access#use-a-user-assigned-managed-identity)
343+
344+
### fn spec.parameters.withUserAssignedIdentityId
345+
346+
```ts
347+
withUserAssignedIdentityId(withUserAssignedIdentityId)
348+
```
349+
350+
Helper-function to set attribute according to to specification (https://learn.microsoft.com/en-us/azure/aks/csi-secrets-store-identity-access#use-a-user-assigned-managed-identity)
351+
273352
## obj spec.secretObjects
274353

275354

276355

356+
### fn spec.secretObjects.new
357+
358+
```ts
359+
new(name, objects)
360+
```
361+
362+
Create new secretsObject.
363+
277364
### fn spec.secretObjects.withAnnotations
278365

279366
```ts
@@ -348,6 +435,14 @@ withType(type)
348435

349436

350437

438+
### fn spec.secretObjects.data.new
439+
440+
```ts
441+
new(key, object)
442+
```
443+
444+
Create new secretsObjects data entry. Object has to have an objectName field or should be provided as objectName string
445+
351446
### fn spec.secretObjects.data.withKey
352447

353448
```ts

0 commit comments

Comments
 (0)