Skip to content

Instantly share code, notes, and snippets.

@mastoj
Created December 23, 2020 23:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mastoj/e6c96a0bd8020fda23421a371eb7c927 to your computer and use it in GitHub Desktop.
Save mastoj/e6c96a0bd8020fda23421a371eb7c927 to your computer and use it in GitHub Desktop.
Sample pulumi F# helpers
[<RequireQualifiedAccess>]
module Secret =
open Pulumi.Kubernetes.Core.V1
open Pulumi.Kubernetes.Types.Inputs.Core.V1
let base64Encode (str: string) =
let bytes = System.Text.Encoding.UTF8.GetBytes(str)
System.Convert.ToBase64String(bytes)
let createDefaultArgs secretName (key, value) =
SecretArgs(
Metadata = input (ObjectMeta.createDefaultArgs secretName),
Data = inputMap [(key, value)]
)
let withSecret (key, value) (secretArgs: SecretArgs) =
secretArgs.Data.Add(key, value)
secretArgs
let withType typeName (secretArgs: SecretArgs) =
secretArgs.Type <- input typeName
secretArgs
let createSecret secretName options secretArgs =
Secret(secretName, secretArgs, options)
let kafkaSecrets =
Secret.createDefaultArgs "kafka-secrets" ("KEY", kafkaConfig.Key |> Secret.base64Encode |> input)
|> Secret.withSecret ("BROKERS", kafkaConfig.Brokers |> Secret.base64Encode |> input)
|> Secret.withSecret ("SECRET", kafkaConfig.Secret |> Secret.base64Encode |> input)
|> Secret.withSecret ("CONSUMERGROUPPREFIX", kafkaConfig.ConsumerGroupPrefix |> Secret.base64Encode |> input)
|> Secret.createSecret "kafka-secrets" defaultOptions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment