Skip to content
This repository has been archived by the owner on Jul 26, 2022. It is now read-only.

Commit

Permalink
feat: allow setting type in external secret to support other than Opa…
Browse files Browse the repository at this point in the history
…que secrets (#130)

* feat: allow setting type in external secret to support other than Opaque secrets
  • Loading branch information
Flydiverny authored and jxpearce-godaddy committed Jul 29, 2019
1 parent 8860ef3 commit 226697a
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 5 deletions.
10 changes: 10 additions & 0 deletions examples/dockerconfig-example.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: kubernetes-client.io/v1
kind: ExternalSecret
metadata:
name: dockerhub-secret
secretDescriptor:
backendType: secretsManager
type: kubernetes.io/dockerconfigjson
data:
- key: /development/dockerhub
name: .dockerconfigjson
14 changes: 14 additions & 0 deletions examples/tls-example.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
apiVersion: kubernetes-client.io/v1
kind: ExternalSecret
metadata:
name: dockerhub-secret
secretDescriptor:
backendType: secretsManager
type: kubernetes.io/tls
data:
- key: /development/certificate
property: crt
name: tls.crt
- key: /development/certificate
property: key
name: tls.key
2 changes: 1 addition & 1 deletion lib/poller.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class Poller {
this._ownerReference
]
},
type: 'Opaque',
type: secretDescriptor.type || 'Opaque',
data
}
}
Expand Down
53 changes: 49 additions & 4 deletions lib/poller.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ describe('Poller', () => {
backendMock.getSecretManifestData = sinon.stub()
})

it('creates secret manifest', async () => {
it('creates secret manifest - no type (backwards compat)', async () => {
const poller = pollerFactory({
backendType: 'fakeBackendType',
name: 'fakeSecretName',
Expand Down Expand Up @@ -99,6 +99,51 @@ describe('Poller', () => {
}
})
})

it('creates secret manifest - with type', async () => {
const poller = pollerFactory({
type: 'dummy-test-type',
backendType: 'fakeBackendType',
name: 'fakeSecretName',
properties: [
'fakePropertyName1',
'fakePropertyName2'
]
})

backendMock.getSecretManifestData.resolves({
fakePropertyName1: 'ZmFrZVByb3BlcnR5VmFsdWUx', // base 64 value
fakePropertyName2: 'ZmFrZVByb3BlcnR5VmFsdWUy' // base 64 value
})

const secretManifest = await poller._createSecretManifest()

expect(backendMock.getSecretManifestData.calledWith({
secretDescriptor: {
type: 'dummy-test-type',
backendType: 'fakeBackendType',
name: 'fakeSecretName',
properties: [
'fakePropertyName1',
'fakePropertyName2'
]
}
})).to.equal(true)

expect(secretManifest).deep.equals({
apiVersion: 'v1',
kind: 'Secret',
metadata: {
name: 'fakeSecretName',
ownerReferences: [ownerReference]
},
type: 'dummy-test-type',
data: {
fakePropertyName1: 'ZmFrZVByb3BlcnR5VmFsdWUx', // base 64 value
fakePropertyName2: 'ZmFrZVByb3BlcnR5VmFsdWUy' // base 64 value
}
})
})
})

describe('_poll', () => {
Expand Down Expand Up @@ -151,7 +196,7 @@ describe('Poller', () => {
metadata: {
name: 'fakeSecretName'
},
type: 'Opaque',
type: 'some-type',
data: {
fakePropertyName: 'ZmFrZVByb3BlcnR5VmFsdWU='
}
Expand All @@ -170,7 +215,7 @@ describe('Poller', () => {
metadata: {
name: 'fakeSecretName'
},
type: 'Opaque',
type: 'some-type',
data: {
fakePropertyName: 'ZmFrZVByb3BlcnR5VmFsdWU='
}
Expand All @@ -195,7 +240,7 @@ describe('Poller', () => {
metadata: {
name: 'fakeSecretName'
},
type: 'Opaque',
type: 'some-type',
data: {
fakePropertyName: 'ZmFrZVByb3BlcnR5VmFsdWU='
}
Expand Down

0 comments on commit 226697a

Please sign in to comment.