Skip to content

Instantly share code, notes, and snippets.

@dirien
Created December 1, 2022 20:57
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 dirien/7090994de83f063c68795d6d273f8ab6 to your computer and use it in GitHub Desktop.
Save dirien/7090994de83f063c68795d6d273f8ab6 to your computer and use it in GitHub Desktop.
package main
import (
"github.com/oun/pulumi-flux/sdk/go/flux"
"github.com/pulumi/pulumi-github/sdk/v4/go/github"
v1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/core/v1"
metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/meta/v1"
"github.com/pulumi/pulumi-kubernetes/sdk/v3/go/kubernetes/yaml"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
func StringPtr(v string) *string {
return &v
}
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
fluxInstall, err := flux.GetFluxInstall(ctx, &flux.GetFluxInstallArgs{
TargetPath: "clusters/docker-desktop",
})
if err != nil {
return err
}
_, err = v1.NewSecret(ctx, "flux-git-deploy", &v1.SecretArgs{
Metadata: &metav1.ObjectMetaArgs{
Name: pulumi.String("flux-git-deploy"),
Namespace: pulumi.String(*fluxInstall.Namespace),
},
StringData: pulumi.StringMap{
"username": pulumi.String("dirien"),
"password": config.GetSecret(ctx, "token"),
},
})
if err != nil {
return err
}
fluxSync, err := flux.GetFluxSync(ctx, &flux.GetFluxSyncArgs{
TargetPath: "clusters/my-cluster",
Url: "https://github.com/dirien/my-flux-demo-deployments.git",
Branch: StringPtr("main"),
Secret: StringPtr("flux-git-deploy"),
})
if err != nil {
return err
}
_, err = yaml.NewConfigGroup(ctx, "flux-install", &yaml.ConfigGroupArgs{
YAML: []string{fluxInstall.Content},
})
if err != nil {
return err
}
_, err = yaml.NewConfigGroup(ctx, "flux-sync", &yaml.ConfigGroupArgs{
YAML: []string{fluxSync.Content},
})
if err != nil {
return err
}
_, err = github.NewRepositoryFile(ctx, "flux-install-file", &github.RepositoryFileArgs{
Repository: pulumi.String("my-flux-demo-deployments"),
File: pulumi.String(fluxInstall.Path),
Content: pulumi.String(fluxInstall.Content),
})
if err != nil {
return err
}
_, err = github.NewRepositoryFile(ctx, "flux-sync-file", &github.RepositoryFileArgs{
Repository: pulumi.String("my-flux-demo-deployments"),
File: pulumi.String(fluxSync.Path),
Content: pulumi.String(fluxSync.Content),
})
if err != nil {
return err
}
return nil
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment