async _createSecretManifest () {
    const spec = this._spec
    let template = spec.template || {}

    // spec.type for backwards compat
    const type = template.type || spec.type || 'Opaque'

    const data = await this._backends[spec.backendType]
      .getSecretManifestData({ spec })

    if (template && typeof template === 'object' && !Array.isArray(template)) {
      const decodedData = mapValues(data, value => Buffer.from(value, 'base64').toString('ascii'))

      template = compileObjectTemplateKeys(template, decodedData)
    }

    const secretManifest = {
      apiVersion: 'v1',
      kind: 'Secret',
      metadata: {
        name: this._name,
        ownerReferences: [
          this._ownerReference
        ]
      },
      type,
      data
    }

    return merge(clonedeep(template), secretManifest)
  }
Create Kubernetes secret manifest.
@returns {Object} Promise object representing Kubernetes manifest.