def upsert(client: CoreV1Api, log: BoundLogger, namespace: V1Namespace, secret: V1Secret) -> V1Secret: existing_secret = get(client, log, namespace, secret.metadata.name) return common_k8s.upsert_resource( existing_secret, secret, log, 'secret', lambda: client.create_namespaced_secret( body=secret, namespace=namespace.metadata.name), lambda: client.patch_namespaced_secret( existing_secret.metadata.name, namespace.metadata.name, secret))
def create_secret(self, v1: CoreV1Api) -> str: value = self.module.data.get("api_key") or click.prompt( "Please enter your datadog api key (from https://app.datadoghq.com/account/settings#api)", type=click.STRING, ) if not self.validate_api_key(value): raise UserErrors( "The api key which you passed was invalid, please provide a valid api key from " "https://app.datadoghq.com/account/settings#api" ) secret_value = base64.b64encode(value.encode("utf-8")).decode("utf-8") patch = [ {"op": "replace", "path": "/data/DATADOG_API_KEY", "value": secret_value} ] v1.patch_namespaced_secret("secret", self.layer.name, patch) return value