https://pulumi.com logo
#general
Title
# general
s

salmon-pizza-65823

09/12/2018, 8:46 PM
can’t find any clear docs on the exact role of app.pulimi.org, or in general the server side component of pulimi — any way to run completely offline? generate full configs, for things that don’t depend on any output state? is it possible to use pulimi to simply generate/mashup configurations? does it make sense? super slick ui/ux - i really like the general ideas behind pulimi
c

creamy-potato-29402

09/12/2018, 8:47 PM
It’s hidden, but it’s there. The OSS bits are the engine, the service basically handles coordinated state management.
s

salmon-pizza-65823

09/12/2018, 8:47 PM
brilliant
that means you’re not handicapped in anyway by going local? but you miss out on the awesomeness you’re obviously building. :-)
quick question — i’ve seen you active with jsonnet/ksonnet, haven’t i? would i as a fond user of jsonnet (but missing a better story on type safety) find haven with pulimis typescript world? or is it too terraformy and focused on creating resources in clouds and not “just” configuration? can generated configs be managed on disk naturally as well? i have so many questions ... sorry about that :-)
c

creamy-potato-29402

09/12/2018, 8:53 PM
@salmon-pizza-65823 (1), you’re not handicapped, except that managing state files is a pain and you miss out on the nice features of the service
(2) You have. I used to work at Heptio, where Joe Beda and I invented ksonnet. A lot of what Pulumi is, is based on what (I personally believe) are mistakes we made in that system’s design
s

salmon-pizza-65823

09/12/2018, 8:54 PM
i read the doc, sounds really nice — fingers are itching to try things out
c

creamy-potato-29402

09/12/2018, 8:55 PM
The model of Pulumi is quite similar to j/ksonnet’s, in that you use templates to generate Kube resources, rather than like Terraform’s, where you really are using something close to a better JSON to simply declare infrastructure.
The difference between Pulumi and ksonnet is that we made the decision ahead of time to specifically bake in a notion of “completeness” — the idea being that we should be able to tell users when an object has fully initialized.
s

salmon-pizza-65823

09/12/2018, 8:57 PM
yep, a very important one, fully agree there
c

creamy-potato-29402

09/12/2018, 8:57 PM
For many objects, it is possible to serialize them to disk, but for may it is not … for example, imagine provisioning an RDS instance, and then populating a kube secret with the connection string, so your node.js app can connect to it. This will generate normal kube resources that are checkpointed in the state file, but until you provision RDS, those secret values will not be available.
s

salmon-pizza-65823

09/12/2018, 8:58 PM
yep, that i can live with as well - as long as things that do not depend on remote state can be managed with entirely local workflows
c

creamy-potato-29402

09/12/2018, 8:59 PM
This is a major philosophical disagreement between ksonnet and Pulumi. There is a set of k8s users who are scared of using programming languages as an intermediary between the API server and you; in the Pulumi project our view is that the declarative k8s API is great, and it’s actually better to deliver a clear picture of how your change will ripple through app config.
This is implicit with purely-declarative configuration.
So you should be able, in other words, to have both. We should be able to review the changes to a deployment plan, and see how a change will affect the kube API objects, but also to use real languages to model that deployment.
s

salmon-pizza-65823

09/12/2018, 9:00 PM
i’m certainly also itching to get underneath and see how pulimi up works, and the internal protocol/apis for resources look like
c

creamy-potato-29402

09/12/2018, 9:00 PM
For Kubernetes it’s just a souped-up kube client.
We literally just use kubernetes/client-go, should work anywhere you have a kubeconfig file.
the main innovation IMO is the way you model which kube resources depend on which, so that we can build a planned order in which to deploy them.
s

salmon-pizza-65823

09/12/2018, 9:01 PM
will have to hit the bed now - i could talk/ask questions for days about this, i’m much intrigued by this space, and are looking to solve massive problems with it
so probably expect me to be back — with feedback/questions soon hopefully :-)
thanks for taking time to answer questions!
c

creamy-potato-29402

09/12/2018, 9:05 PM
@salmon-pizza-65823 bother me any time with questions or feedback. Always happy to have it.
r

rough-oil-1458

09/12/2018, 9:07 PM
@creamy-potato-29402 Will you have backends or other places to store state?
c

creamy-potato-29402

09/12/2018, 9:07 PM
Perhaps!
r

rough-oil-1458

09/12/2018, 9:07 PM
that are open, one nice part about TF
c

creamy-potato-29402

09/12/2018, 9:07 PM
So you can store state wherever you want right now.
But the service only know about the state you give it.
r

rough-oil-1458

09/12/2018, 9:07 PM
is that you can use like a consul backend with mutexes
c

creamy-potato-29402

09/12/2018, 9:08 PM
Ah yes.
That whole story is yet-to-be-fleshed out.
r

rough-oil-1458

09/12/2018, 9:08 PM
so.... currently if i wanted to do something similar
c

creamy-potato-29402

09/12/2018, 9:08 PM
If you have input, you might consider bringing it up in the channel in its own right, as that may affect the roadmap 🙂
r

rough-oil-1458

09/12/2018, 9:08 PM
what is the output json?
c

creamy-potato-29402

09/12/2018, 9:09 PM
yeah, it’s just plain-old-JSON
r

rough-oil-1458

09/12/2018, 9:09 PM
cool
so I could just wrap it and put it in a kv
c

creamy-potato-29402

09/12/2018, 9:09 PM
sure
some kind of document database or something would work, too.
r

rough-oil-1458

09/12/2018, 9:10 PM
nosql
c

creamy-potato-29402

09/12/2018, 9:10 PM
The trick is that you will have to coordinate access to that document. You basically want one client pointed at it at any time, same as TF.
The service right now coordinates among clients with leased locks.
You’d have to do that yourself with a state file.
r

rough-oil-1458

09/12/2018, 9:14 PM
Where do you state you want to stream the output state?
pulumi login --local ahhhh
sorry 😞
c

creamy-potato-29402

09/12/2018, 9:14 PM
lol it’s hidden, don’t feel too bad.
the experience is not super slick yet, so we’re reticent to make a big deal about it
r

rough-oil-1458

09/12/2018, 9:15 PM
I'd prefer something more unixy
c

creamy-potato-29402

09/12/2018, 9:15 PM
What we don’t want to happen is for users to go local, think that this sucks, and then never come back. 🙂
I suspect many people are like you.
I would be too, I think.
r

rough-oil-1458

09/12/2018, 9:15 PM
where you can just stream the output
logging in is sooo..... eRrRrr
Thanks 🙂
c

creamy-potato-29402

09/12/2018, 9:16 PM
Totally.
Np
lmk if you have other questions or concerns.
r

rough-oil-1458

09/12/2018, 9:17 PM
machine readable output of commands
c

creamy-potato-29402

09/12/2018, 9:17 PM
hmm, say more!
like `| grep`’able output?
r

rough-oil-1458

09/12/2018, 9:18 PM
Idea = browser => buttonEvent => server => pulumi.up(my pulumi stuffz)
c

creamy-potato-29402

09/12/2018, 9:18 PM
ha not to steal our own thunder buuuuut….
r

rough-oil-1458

09/12/2018, 9:18 PM
currently i have to call out to shell, and invoke the pulumi cmd
c

creamy-potato-29402

09/12/2018, 9:18 PM
that is already in flight.
r

rough-oil-1458

09/12/2018, 9:18 PM
but if i call out to shell, i need to be able to parse the up
c

creamy-potato-29402

09/12/2018, 9:19 PM
parse it with what?
jsonpath or something?
r

rough-oil-1458

09/12/2018, 9:19 PM
the language
c

creamy-potato-29402

09/12/2018, 9:19 PM
can you give me a scenario that you have in mind?
r

rough-oil-1458

09/12/2018, 9:20 PM
building a SPA to manage invoking pulumi
c

creamy-potato-29402

09/12/2018, 9:21 PM
ah
r

rough-oil-1458

09/12/2018, 9:21 PM
so say i hae a restful endpoint gets a json payload
c

creamy-potato-29402

09/12/2018, 9:21 PM
so you want like a legit API you can use as a backend?
r

rough-oil-1458

09/12/2018, 9:21 PM
I want to be able to invoke pulumi, in JS lo
lol*
c

creamy-potato-29402

09/12/2018, 9:22 PM
interesting, I’ll keep that in the back of my mind
r

rough-oil-1458

09/12/2018, 9:22 PM
i think Duffy said he could see why that can be useful
c

creamy-potato-29402

09/12/2018, 9:22 PM
it’s an interesting scenario.
Oh yeah for sure.
r

rough-oil-1458

09/12/2018, 9:22 PM
well for example
if i have region us-w, us-3, eu-1
it would be nice to be able to invoke pulumi per region
idk, maybe im complicating things
c

creamy-potato-29402

09/12/2018, 9:23 PM
nah I agree
r

rough-oil-1458

09/12/2018, 9:23 PM
but i've been burned by mega states
c

creamy-potato-29402

09/12/2018, 9:23 PM
For me the question is not is it a good idea, but
r

rough-oil-1458

09/12/2018, 9:23 PM
how to do it without being a jerk
hahahahah
c

creamy-potato-29402

09/12/2018, 9:23 PM
what scenarios shoudl I take back to the team to convince them we should do it now
r

rough-oil-1458

09/12/2018, 9:24 PM
ahhhh who cares about now
do it in 6 months
after you are in the CNCF
c

creamy-potato-29402

09/12/2018, 9:24 PM
ha ha
r

rough-oil-1458

09/12/2018, 9:24 PM
bryan cantrill adopts projects into the cncf all the time
support smartos.....
😛
c

creamy-potato-29402

09/12/2018, 9:24 PM
I love smartos tbh……………………………………. :v
r

rough-oil-1458

09/12/2018, 9:25 PM
hahaha of course
If you have a docker module... im curious how hard it would be to have a native smartos module
c

creamy-potato-29402

09/12/2018, 9:28 PM
hmm
not hard to start, unclear how long the tail of bugs would be.
I actually kinda love triton
I very seriously doubt it gets the kind of IOPS efficiency that spark or Hadoop do, but it sure is fun.