import * as k8s from "@pulumi/kubernetes";
import { githubRepoUrl, githubSshKey } from "./config";

export const createGithubSshKeySecret = (provider: k8s.Provider) => {
  const argoCdNamespace = new k8s.core.v1.Namespace(
    "argocd-ns",
    {
      metadata: { name: "argocd" },
    },
    { provider }
  );

  new k8s.core.v1.Secret(
    "github-repo-ssh",
    {
      metadata: {
        namespace: argoCdNamespace.metadata.name,
        labels: {
          "argocd.argoproj.io/secret-type": "repository",
        },
      },
      stringData: {
        url: githubRepoUrl,
        sshPrivateKey: githubSshKey,
        type: "git",
        project: "default",
      },
    },
    { provider, dependsOn: argoCdNamespace }
  );
};
