https://pulumi.com logo
Docs
Join the conversationJoin Slack
Channels
announcements
automation-api
aws
azure
blog-posts
built-with-pulumi
cloudengineering
cloudengineering-support
content-share
contribex
contribute
docs
dotnet
finops
general
getting-started
gitlab
golang
google-cloud
hackathon-03-19-2020
hacktoberfest
install
java
jobs
kubernetes
learn-pulumi-events
linen
localstack
multi-language-hackathon
office-hours
oracle-cloud-infrastructure
plugin-framework
pulumi-cdk
pulumi-crosscode
pulumi-deployments
pulumi-kubernetes-operator
pulumi-service
pulumiverse
python
registry
status
testingtesting123
testingtesting321
typescript
welcome
workshops
yaml
Powered by Linen
general
  • a

    ambitious-ram-5811

    12/15/2019, 4:18 AM
    Even when you're writing your app, you can write a line,
    pulumi up
    , write a 2nd line,
    pulumi up
    and see if it did what you want, etc etc
  • a

    ambitious-ram-5811

    12/15/2019, 4:18 AM
    It's actually an amazing platform for iterative development
  • a

    ambitious-ram-5811

    12/15/2019, 4:18 AM
    Yeah, so, if you really do have two separate setups, a k8s setup, and a Docker-based setup, you'd write two separate Pulumi apps
  • v

    victorious-xylophone-55816

    12/15/2019, 4:19 AM
    How do devs usually do local development with k8s stacks?
  • a

    ambitious-ram-5811

    12/15/2019, 4:19 AM
    If you have the $$, I'd instead make a super cut-down version of your k8s setup that spins the absolute minimum of nodes and have every dev create their own
  • a

    ambitious-ram-5811

    12/15/2019, 4:20 AM
    That's a Good Question, I haven't done k8s stuff yet tbh, I see that as a pretty big problem tbh, having development and production being so different
  • v

    victorious-xylophone-55816

    12/15/2019, 4:22 AM
    Huh. Yeah, I am in a bit over my head here haha. Unfortunately I have a bit of a fire under my ass so to speak, because I have no other option than figure this out myself and I have perhaps a week or two more to do it 😅
  • v

    victorious-xylophone-55816

    12/15/2019, 4:23 AM
    Well thank you for taking the time to answer me, really appreciate you ❤️
  • v

    victorious-xylophone-55816

    12/15/2019, 4:23 AM
    I will go back to my docs reading and pound my head against things until I figure it out I suppose lmao
  • a

    ambitious-ram-5811

    12/15/2019, 4:26 AM
    np!
  • s

    stocky-spoon-28903

    12/15/2019, 1:28 PM
    @ambitious-ram-5811 the new “Pulumi watch” stuff is great for iterative development too!
    🌟 1
  • e

    early-intern-90238

    12/15/2019, 10:06 PM
    I am very confused, I am trying to put a deployment in a special namespace I created. But the Yaml Pulumi generates points to "default" even though I specify a different namespace.
    w
    • 2
    • 1
  • d

    damp-jelly-5493

    12/16/2019, 8:12 AM
    morning all. ive got a k8s cluster being provisioned and it all works very nicely - i'm using pulumi in typescript and using the digitalocean provider. the only problem ive got is with regards to refreshing the kubeconfig. when i first build the cluster, it generates a kubeconfig which i then set to a k8s provider so i can use it internally. the problem is that the kubeconfig that DO creates expires after 7 days. and because pulumi doesnt know this, it never calls DO to regenerate the token. this is what im doing so far:
    const k8s = new digitalocean.KubernetesCluster('Configure k8s', stackConfig.k8s);
    
    const k8sConfig = k8s.kubeConfigs[0].rawConfig;
    
    const k8sProvider = new kubernetes.Provider('Get k8s provider', {
      kubeconfig: k8sConfig,
    });
    the
    k8sProvider
    then is set to
    provider
    options any time i make an additional k8s call, eg
    const helmServiceAccount = new kubernetes.core.v1.ServiceAccount(
      'Helm RBAC service account',
      {
        apiVersion: 'v1',
        kind: 'ServiceAccount',
        metadata: {
          name: 'tiller',
          namespace: 'kube-system',
        },
      },
      {
        provider: k8sProvider,
      },
    );
    as i said, this all works fine for the first 7 days then breaks because the kubeconfig has expired within digitalocean
  • d

    damp-jelly-5493

    12/16/2019, 11:42 AM
    aaaah, ive found it. it's
    pulumi update
    - id been playing around with
    pulumi refresh
    but doesnt work for <reasons> https://github.com/pulumi/pulumi/issues/2710
  • c

    cuddly-leather-18640

    12/16/2019, 1:04 PM
    I’ve tried using
    apply
    but can’t figure out what to do with it.
  • c

    cuddly-leather-18640

    12/16/2019, 1:04 PM
    What’s the correct way to use
    requireSecret
    as an argument to a cloud spec? I see that in https://github.com/pulumi/examples/blob/fdf37ddecedb10dcdfa77362f8ece49c52011caa/aws-stackreference-architecture/database/src/index.ts#L30 nothing special is going on but when I follow that pattern like:
    const config = new Config();
    const dbPassword = config.requireSecret('dbPassword');
    
    // stuff....
    
    const postgresUser = new gcp.sql.User('master', {
      name: dbUser,
      password: dbPassword, // this line errors out. I've also tried dbPassword.get()
      instance: postgresDB.name,
      project: project
    });
    I get the following error:
    index.ts(187,3): error TS2322: Type 'Output<string>' is not assignable to type 'string | Promise<string> | OutputInstance<string> | undefined'.
          Type 'Output<string>' is not assignable to type 'OutputInstance<string>'.
            Types of property 'apply' are incompatible.
              Type '{ <U>(func: (t: string) => Promise<U>): import("/Users/paymahn/qwil/[secret]/pulumi/infra/node_modules/@pulumi/pulumi/output").Output<U>; <U>(func: (t: string) => import("/Users/paymahn/qwil/[secret]/pulumi/infra/node_modules/@pulumi/pulumi/output").OutputInstance<U>): import("/Users/paymahn/qwil/[secret]/pulumi/infra/nod...' is not assignable to type '{ <U>(func: (t: string) => Promise<U>): import("/Users/paymahn/qwil/[secret]/pulumi/node_modules/@pulumi/pulumi/output").Output<U>; <U>(func: (t: string) => import("/Users/paymahn/qwil/[secret]/pulumi/node_modules/@pulumi/pulumi/output").OutputInstance<U>): import("/Users/paymahn/qwil/[secret]/pulumi/node_modules/@pulumi/...'.
                Type 'import("/Users/paymahn/qwil/[secret]/pulumi/infra/node_modules/@pulumi/pulumi/output").Output<any>' is not assignable to type 'import("/Users/paymahn/qwil/[secret]/pulumi/node_modules/@pulumi/pulumi/output").Output<any>'.
                  Type 'OutputInstance<any>' is not assignable to type 'Output<any>'.
                    Type 'OutputInstance<any>' is not assignable to type 'OutputInstance<any> & LiftedObject<any, string>'.
                      Type 'import("/Users/paymahn/qwil/[secret]/pulumi/infra/node_modules/@pulumi/pulumi/output").OutputInstance<any>' is not assignable to type 'import("/Users/paymahn/qwil/[secret]/pulumi/node_modules/@pulumi/pulumi/output").OutputInstance<any>'.
                        Types of property 'apply' are incompatible.
                          Type '{ <U>(func: (t: any) => Promise<U>): import("/Users/paymahn/qwil/[secret]/pulumi/infra/node_modules/@pulumi/pulumi/output").Output<U>; <U>(func: (t: any) => import("/Users/paymahn/qwil/[secret]/pulumi/infra/node_modules/@pulumi/pulumi/output").OutputInstance<U>): import("/Users/paymahn/qwil/[secret]/pulumi/infra/node_modu...' is not assignable to type '{ <U>(func: (t: any) => Promise<U>): import("/Users/paymahn/qwil/[secret]/pulumi/node_modules/@pulumi/pulumi/output").Output<U>; <U>(func: (t: any) => import("/Users/paymahn/qwil/[secret]/pulumi/node_modules/@pulumi/pulumi/output").OutputInstance<U>): import("/Users/paymahn/qwil/[secret]/pulumi/node_modules/@pulumi/pulumi...'.
                            Type 'import("/Users/paymahn/qwil/[secret]/pulumi/infra/node_modules/@pulumi/pulumi/output").Output<any>' is not assignable to type 'import("/Users/paymahn/qwil/[secret]/pulumi/node_modules/@pulumi/pulumi/output").Output<any>'.
                              Type 'OutputInstance<any>' is not assignable to type 'Output<any>'.
                                Type 'OutputInstance<any>' is not assignable to type 'OutputInstance<any> & LiftedObject<any, string>'.
                                  Type 'OutputInstance<any>' is not assignable to type 'LiftedObject<any, string>'.
                                    Index signature is missing in type 'OutputInstance<any>'.
    I’ve tried calling
    .get()
    on
    dbPassword
    but that results in another error of
    Error: Cannot call '.get' during update or preview.
        To manipulate the value of this Output, use '.apply' instead.
    t
    • 2
    • 8
  • c

    cuddly-leather-18640

    12/16/2019, 1:25 PM
    I’ve declared a docker image like:
    const appImage = new docker.Image("ledgerImage", {
        imageName: '<http://us.gcr.io/qwil-build/ledger|us.gcr.io/qwil-build/ledger>',
        build: "../../",
    });
    When I run
    pulumi preview
    and look at the output in app.pulumi.com I see the line
    Successfully pushed to docker
    in the Diagnostic Log view. Where did pulumi push this image? When I visit my companies gcr registry I don’t see any new images - the latest image that was uploaded is from 2 days ago.
    t
    • 2
    • 2
  • e

    elegant-twilight-2745

    12/16/2019, 4:21 PM
    Can we run aws cli commands inside pulumi?
    w
    • 2
    • 8
  • r

    rhythmic-finland-36256

    12/16/2019, 4:52 PM
    Did anybody already use Azure AKS (Kubernetes service) with multiple node pools (aka VMSS)? I’m specifically looking for some hints on how to handle the different pools together with custom networking (vnet, subnet), azure-cni and the Standard SKU load balancer required for the vm scale sets. Thanks for any pointer!
    • 1
    • 4
  • a

    adamant-postman-86832

    12/16/2019, 5:05 PM
    any complex examples with typescript out there? Like classes, interfaces and the like? Just need some advice on how to set it up in an enterprise environment. going beyond the simple index.ts examples ;)
    👍 1
    r
    g
    • 3
    • 5
  • o

    orange-policeman-59119

    12/16/2019, 6:10 PM
    How does Pulumi handle Kubernetes API deprecations these days, e.g.: https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/ We have some
    apiVersion: extensions/v1beta1
    resources that we want to change to, e.g.
    apiVersion: <http://networking.k8s.io/v1|networking.k8s.io/v1>
    . My experience with Helm is that it kinda fucks up here, because for e.g.: a deployment named
    foo
    , we can't tell Helm "don't change anything with this resource, just update Tiller with what the new API version is because k8s allows us to access a deployment via both extensions/v1beta1 and apps/v1". The result is we have to rename everything to
    foo-v1
    , experiencing some downtime because Helm will tear down the old deployment, stand up the new deployment, and often other stuff is also infected with the name via Helm templating so the service, the ingress, etc all get replaced and/or destroyed and recreated as the new name. Is there a way to make Pulumi just... accept that these resources are now
    <http://networking.k8s.io/v1|networking.k8s.io/v1>
    or
    apps/v1
    ? That is, no update/replace/etc needed.
    w
    g
    • 3
    • 9
  • n

    nice-airport-15607

    12/16/2019, 8:24 PM
    Has anyone here seen
    AssertionError: Failure: Decoder hit an error
    error when trying to
    pulumi up
    ?
    n
    • 2
    • 3
  • f

    full-dress-10026

    12/16/2019, 11:01 PM
    I deleted my k8s cluster from the AWS console. Now my Pulumi stack fails with "unable to load schema information from the API server". Is there a way to simply tell Pulumi that the EKS cluster is gone so all of the k8s resources are also gone?
    g
    • 2
    • 3
  • a

    acoustic-toothbrush-71581

    12/16/2019, 11:24 PM
    I'm trying to use pulumi with the program in one directory and the stack files in another. e.g.
    ❯ tree
    .
    ├── program
    │   └── index.ts
    └── stack
        ├── Pulumi.my-stack.yaml
        └── Pulumi.yaml
    is this feasible?
    c
    w
    • 3
    • 14
  • w

    wet-sunset-4939

    12/17/2019, 4:17 AM
    Hello all, Quick question regarding to Azure SQl Server. How could I set "Allow Azure services and resources to access this server" from pulumi when provision the server and how to restrict to particular AzureDevOps instance?
    a
    • 2
    • 2
  • n

    nice-cat-91582

    12/17/2019, 12:10 PM
    Hrm, I recently added a FargateTaskDefinition into my pulumi project... it works great, but it means now that every time I
    pulumi up
    it builds the image and pushes it to the container registry, even if there were no changes. This takes a fair bit of time, and requires that I have Docker running even if I'm not actively doing any Docker work. Anyone know of a way to have it only do the docker work if changes were actually made to the docker files?
    b
    w
    • 3
    • 9
  • b

    better-actor-92669

    12/17/2019, 12:43 PM
    message has been deleted
  • w

    wet-sunset-4939

    12/17/2019, 3:09 PM
    Hi All, How could we specify the vCore of SQL Db when creating new database with General Purpose edition? Thanks all 🙂
  • p

    prehistoric-account-60014

    12/17/2019, 3:35 PM
    Is it possible to install the Pulumi CLI via NPM? Maybe something like
    yarn add @pulumi/cli
    ?
  • s

    stocky-island-3676

    12/17/2019, 3:40 PM
    @white-balloon-205 @future-barista-68134 How about creating extra Slack channels for major Pulumi providers? Then questions specific to a provider can be easier filtered by joining only the channels you know of. Not distinguished by the programming language used. I think that doesn’t matter much. In case, the question can be cross-referenced to one of the language channels, though.
    w
    • 2
    • 1
Powered by Linen
Title
s

stocky-island-3676

12/17/2019, 3:40 PM
@white-balloon-205 @future-barista-68134 How about creating extra Slack channels for major Pulumi providers? Then questions specific to a provider can be easier filtered by joining only the channels you know of. Not distinguished by the programming language used. I think that doesn’t matter much. In case, the question can be cross-referenced to one of the language channels, though.
w

white-balloon-205

12/17/2019, 4:07 PM
This is a good idea. We’d avoided creating too many sub channels for awhile to keep the community together in one place as many/most questions were broadly relevant. But i agree that these days many questions are more specific to one cloud provider or one language. We have the language-specific channels now - and agree that adding cloud-specific channels also makes sense. Will see about adding these today.
🙂 1
View count: 1