sparse-intern-71089
02/23/2021, 11:23 PMbillowy-army-68599
clever-cartoon-41433
02/24/2021, 12:47 AMbillowy-army-68599
clever-cartoon-41433
02/24/2021, 12:49 AMstages:
- build_deployer
- deploy
hasura_src:
stage: build_deployer
image:
name: <http://gcr.io/kaniko-project/executor:debug|gcr.io/kaniko-project/executor:debug>
entrypoint: [""]
variables:
WORKDIR: "$CI_PROJECT_DIR"
script:
- mkdir -p /kaniko/.docker
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
- /kaniko/executor --context $WORKDIR --dockerfile $WORKDIR/Dockerfile --destination $CI_REGISTRY/leonard-cyber/$CI_PROJECT_NAME/pulumi:latest
rules:
- changes:
- Dockerfile
pulumi:
stage: deploy
image:
name: $CI_REGISTRY/leonard-cyber/$CI_PROJECT_NAME/pulumi:latest
entrypoint: [""]
script:
- bash ./scripts/setup.sh
only:
- global
clever-cartoon-41433
02/24/2021, 12:50 AMFROM pulumi/pulumi-go:latest
RUN pulumi plugin install resource kubernetes 2.8.1
RUN pulumi plugin install resource digitalocean 3.4.0
clever-cartoon-41433
02/24/2021, 12:50 AMclever-cartoon-41433
02/24/2021, 12:52 AM#!/bin/bash
# exit if a command returns a non-zero exit code and also print the commands and their args as they are executed
set -e -x
pulumi login
pulumi stack select -c "leonard-cyber/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}"
pulumi config set branch_name "${CI_COMMIT_REF_NAME}"
pulumi up -v=9 --debug --yes --non-interactive 2>&1
clever-cartoon-41433
02/24/2021, 12:52 AMclever-cartoon-41433
02/24/2021, 12:54 AMclever-cartoon-41433
02/24/2021, 12:54 AMbillowy-army-68599
pulumi up
?clever-cartoon-41433
02/24/2021, 12:58 AMclever-cartoon-41433
02/24/2021, 12:59 AMpulumi:pulumi:Stack main-shared-global go: downloading <http://github.com/jbenet/go-context|github.com/jbenet/go-context> v0.0.0-20150711004518-d14ea06fba99
pulumi:pulumi:Stack main-shared-global go: downloading <http://github.com/src-d/gcfg|github.com/src-d/gcfg> v1.4.0
pulumi:pulumi:Stack main-shared-global go: downloading <http://github.com/spf13/pflag|github.com/spf13/pflag> v1.0.5
pulumi:pulumi:Stack main-shared-global go: downloading <http://gopkg.in/warnings.v0|gopkg.in/warnings.v0> v0.1.2
clever-cartoon-41433
02/24/2021, 12:59 AMclever-cartoon-41433
02/24/2021, 12:59 AMbillowy-army-68599
clever-cartoon-41433
02/24/2021, 1:00 AMclever-cartoon-41433
02/24/2021, 1:00 AMclever-cartoon-41433
02/24/2021, 1:02 AMpulumi up
on my local machine it will work fine.
In case it really is failing to compile, how do I get it so that A. That doesn't happen, and B. When it happens it tells me instead of outputting nothing?clever-cartoon-41433
02/24/2021, 1:03 AMpackage main
import (
"<http://github.com/pulumi/pulumi-digitalocean/sdk/v3/go/digitalocean|github.com/pulumi/pulumi-digitalocean/sdk/v3/go/digitalocean>"
"<http://github.com/pulumi/pulumi-kubernetes/sdk/v2/go/kubernetes|github.com/pulumi/pulumi-kubernetes/sdk/v2/go/kubernetes>"
"<http://github.com/pulumi/pulumi-kubernetes/sdk/v2/go/kubernetes/helm/v3|github.com/pulumi/pulumi-kubernetes/sdk/v2/go/kubernetes/helm/v3>"
"<http://github.com/pulumi/pulumi/sdk/v2/go/pulumi|github.com/pulumi/pulumi/sdk/v2/go/pulumi>"
"<http://github.com/pulumi/pulumi/sdk/v2/go/pulumi/config|github.com/pulumi/pulumi/sdk/v2/go/pulumi/config>"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
if cluster, err := digitalocean.NewKubernetesCluster(ctx, "main", &digitalocean.KubernetesClusterArgs{
Region: pulumi.String("nyc1"),
Version: pulumi.String("1.20.2-do.0"),
AutoUpgrade: pulumi.Bool(true),
SurgeUpgrade: pulumi.Bool(true),
NodePool: digitalocean.KubernetesClusterNodePoolArgs{
Name: pulumi.String("autoscale-pool-01"),
Size: pulumi.String("s-4vcpu-8gb"),
AutoScale: pulumi.Bool(true),
MinNodes: <http://pulumi.Int|pulumi.Int>(2),
MaxNodes: <http://pulumi.Int|pulumi.Int>(4),
},
}); err != nil {
return err
} else if _, err := kubernetes.NewProvider(ctx, "main", &kubernetes.ProviderArgs{
Kubeconfig: cluster.KubeConfigs.ApplyString(
func(config []digitalocean.KubernetesClusterKubeConfig) string {
return *config[0].RawConfig
},
),
}); err != nil {
return err
} else if _, err := helm.NewChart(ctx, "ingress-nginx", helm.ChartArgs{
Chart: pulumi.String("ingress-nginx"),
Namespace: pulumi.String("ingress-nginx"),
FetchArgs: helm.FetchArgs{
Repo: pulumi.String("<https://kubernetes.github.io/ingress-nginx>"),
},
}); err != nil {
return err
} else {
cfg := config.New(ctx, "digitalocean")
ctx.Export("digitalOceanToken", cfg.RequireSecret("token"))
ctx.Export("clusterName", cluster.Name)
return nil
}
})
}
billowy-army-68599
pulumi up
is it's doing
go mod download
go build main.go
I think it's happening because of the second stage
The kubernetes SDK is really quite large and takes quite a bit of memory. Can you try and create a distinct stage in your CI pipeline to build your pulumi program binary
something like
build:
stage: build
image:
name: $CI_REGISTRY/leonard-cyber/$CI_PROJECT_NAME/pulumi:latest
entrypoint: [""]
script:
- go mod download
- go build -o program
only:
- global
And see if that's the place where it hangs?clever-cartoon-41433
02/24/2021, 1:06 AMbillowy-army-68599
Pulumi.yaml
like this
runtime:
name: go
options:
binary: program
clever-cartoon-41433
02/24/2021, 1:09 AMclever-cartoon-41433
02/24/2021, 1:11 AMbillowy-army-68599
billowy-army-68599
clever-cartoon-41433
02/24/2021, 1:37 AMbillowy-army-68599
billowy-army-68599
go.mod
and let me know which version of the kubernetes sdk you're using?clever-cartoon-41433
02/24/2021, 2:00 AMclever-cartoon-41433
02/24/2021, 2:00 AMmodule main-shared
go 1.14
require (
<http://github.com/pulumi/pulumi-digitalocean/sdk/v3|github.com/pulumi/pulumi-digitalocean/sdk/v3> v3.4.0
<http://github.com/pulumi/pulumi-kubernetes/sdk/v2|github.com/pulumi/pulumi-kubernetes/sdk/v2> v2.8.1
<http://github.com/pulumi/pulumi/sdk/v2|github.com/pulumi/pulumi/sdk/v2> v2.21.2
)
billowy-army-68599
clever-cartoon-41433
02/24/2021, 3:13 AMbillowy-army-68599
clever-cartoon-41433
02/24/2021, 3:24 AMclever-cartoon-41433
02/24/2021, 3:24 AMbillowy-army-68599
billowy-army-68599
if
statements, you probably don't need thoseclever-cartoon-41433
02/24/2021, 3:28 AMbillowy-army-68599
clever-cartoon-41433
02/24/2021, 4:18 AMclever-cartoon-41433
02/24/2021, 4:20 AMclever-cartoon-41433
02/24/2021, 4:20 AMerror: the current deployment has 1 resource(s) with pending operations:
* urn:pulumi:global::main-shared::kubernetes:core/v1:Namespace$kubernetes:<http://helm.sh/v3:Chart::ingress-nginx|helm.sh/v3:Chart::ingress-nginx>, interrupted while creating
clever-cartoon-41433
02/24/2021, 4:21 AMclever-cartoon-41433
02/24/2021, 4:21 AMerror: post-step event returned an error: failed to normalize URN references: Two resources ('urn:pulumi:global::main-shared::kubernetes:core/v1:Namespace$kubernetes:<http://helm.sh/v3:Chart::ingress-nginx|helm.sh/v3:Chart::ingress-nginx>' and 'urn:pulumi:global::main-sh
ared::kubernetes:<http://helm.sh/v3:Chart::ingress-nginx')|helm.sh/v3:Chart::ingress-nginx')> aliased to the same: 'urn:pulumi:global::main-shared::kubernetes:<http://helm.sh/v2:Chart::ingress-nginx|helm.sh/v2:Chart::ingress-nginx>'
billowy-army-68599
interrupted while creating
did you send a kill to the update?clever-cartoon-41433
02/24/2021, 4:24 AMclever-cartoon-41433
02/24/2021, 4:26 AMpackage main
import (
"<http://github.com/pulumi/pulumi-digitalocean/sdk/v3/go/digitalocean|github.com/pulumi/pulumi-digitalocean/sdk/v3/go/digitalocean>"
"<http://github.com/pulumi/pulumi-kubernetes/sdk/v2/go/kubernetes|github.com/pulumi/pulumi-kubernetes/sdk/v2/go/kubernetes>"
corev1 "<http://github.com/pulumi/pulumi-kubernetes/sdk/v2/go/kubernetes/core/v1|github.com/pulumi/pulumi-kubernetes/sdk/v2/go/kubernetes/core/v1>"
"<http://github.com/pulumi/pulumi-kubernetes/sdk/v2/go/kubernetes/helm/v3|github.com/pulumi/pulumi-kubernetes/sdk/v2/go/kubernetes/helm/v3>"
metav1 "<http://github.com/pulumi/pulumi-kubernetes/sdk/v2/go/kubernetes/meta/v1|github.com/pulumi/pulumi-kubernetes/sdk/v2/go/kubernetes/meta/v1>"
"<http://github.com/pulumi/pulumi/sdk/v2/go/pulumi|github.com/pulumi/pulumi/sdk/v2/go/pulumi>"
"<http://github.com/pulumi/pulumi/sdk/v2/go/pulumi/config|github.com/pulumi/pulumi/sdk/v2/go/pulumi/config>"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
if cluster, err := digitalocean.NewKubernetesCluster(ctx, "main", &digitalocean.KubernetesClusterArgs{
Region: pulumi.String("nyc1"),
Version: pulumi.String("1.20.2-do.0"),
AutoUpgrade: pulumi.Bool(true),
SurgeUpgrade: pulumi.Bool(true),
NodePool: digitalocean.KubernetesClusterNodePoolArgs{
Name: pulumi.String("autoscale-pool-01"),
Size: pulumi.String("s-4vcpu-8gb"),
AutoScale: pulumi.Bool(true),
MinNodes: <http://pulumi.Int|pulumi.Int>(2),
MaxNodes: <http://pulumi.Int|pulumi.Int>(4),
},
}); err != nil {
return err
} else if kubep, err := kubernetes.NewProvider(ctx, "main", &kubernetes.ProviderArgs{
Kubeconfig: cluster.KubeConfigs.ApplyString(
func(config []digitalocean.KubernetesClusterKubeConfig) string {
return *config[0].RawConfig
},
),
}); err != nil {
return err
} else if gitlabNS, err := corev1.NewNamespace(ctx, "gitlab", &corev1.NamespaceArgs{
Metadata: &metav1.ObjectMetaArgs{
Name: pulumi.String("gitlab"),
},
}, pulumi.Provider(kubep)); err != nil {
return err
} else if _, err := helm.NewChart(ctx, "gitlab-runner", helm.ChartArgs{
Chart: pulumi.String("gitlab-runner"),
Namespace: pulumi.String("gitlab"),
FetchArgs: helm.FetchArgs{
Repo: pulumi.String("<https://charts.gitlab.io/>"),
},
}, pulumi.Provider(kubep), pulumi.Parent(gitlabNS)); err != nil {
return err
} else if nginxNS, err := corev1.NewNamespace(ctx, "nginx", &corev1.NamespaceArgs{
Metadata: &metav1.ObjectMetaArgs{
Name: pulumi.String("nginx"),
},
}, pulumi.Provider(kubep)); err != nil {
return err
} else if _, err := helm.NewChart(ctx, "ingress-nginx", helm.ChartArgs{
Chart: pulumi.String("ingress-nginx"),
Namespace: pulumi.String("nginx"),
FetchArgs: helm.FetchArgs{
Repo: pulumi.String("<https://kubernetes.github.io/ingress-nginx>"),
},
}, pulumi.Provider(kubep), pulumi.Parent(nginxNS)); err != nil {
return err
} else {
cfg := config.New(ctx, "digitalocean")
ctx.Export("digitalOceanToken", cfg.RequireSecret("token"))
ctx.Export("clusterName", cluster.Name)
return nil
}
})
}
billowy-army-68599
clever-cartoon-41433
02/24/2021, 4:34 AMclever-cartoon-41433
02/24/2021, 4:35 AMclever-cartoon-41433
02/24/2021, 4:35 AMbillowy-army-68599
billowy-army-68599
clever-cartoon-41433
02/24/2021, 4:39 AMclever-cartoon-41433
02/24/2021, 4:39 AMbillowy-army-68599