deislabs / example-bundles Goto Github PK
View Code? Open in Web Editor NEWCNAB bundles
License: MIT License
CNAB bundles
License: MIT License
I got the following error when running the example from the quickstart guide
โ bundles git:(master) BUNDLE=helloworld VERSION=latest make build
docker build -t cnab/helloworld:latest helloworld/cnab
Sending build context to Docker daemon 3.584kB
Step 1/4 : FROM alpine:latest
latest: Pulling from library/alpine
Digest: sha256:621c2f39f8133acb8e64023a94dbdf0d5ca81896102b9e57c0dc184cadaf5528
Status: Downloaded newer image for alpine:latest
---> 196d12cf6ab1
Step 2/4 : COPY app/run /cnab/app/run
---> 9084fc75daec
Step 3/4 : COPY Dockerfile cnab/Dockerfile
---> 4e357403a0e4
Step 4/4 : CMD [ "/cnab/app/run" ]
---> Running in ebb6e6bc39d0
Removing intermediate container ebb6e6bc39d0
---> 73d14333e4e4
Successfully built 73d14333e4e4
Successfully tagged cnab/helloworld:latest
duffle bundle sign -f helloworld/bundle.json -o helloworld/bundle.cnab
==> Generating a new secret keyring at /Users/ramiro/.duffle/secret.ring
==> Generating a new signing key with ID <[email protected]>
==> Generating a new public keyring at /Users/ramiro/.duffle/public.ring
Error: no parseable user identity attached to key
make: *** [sign-local] Error 1
Not sure if there's a dependency missing on my box, or if there's a pre-req missing. This is with duffle 0.1.0-ralpha.4+dramallamabuie
Although the hellohelm CNAB supports the status
action (https://github.com/deislabs/bundles/blob/master/hellohelm/cnab/app/Makefile#L23) this isn't included in the bundle.json
in https://github.com/deislabs/bundles/blob/master/hellohelm/bundle.json
This is fine for clients (like duffle
) which assume the presence of the status action, but for dynamic clients which discover actions this doesn't work. This might be the case for other example bundles in this repository.
Add brigade.js
to this repo.
First task/goal of this file/CI will be to run the functional test(s) mentioned in #37, perhaps via either/both of cronjob, webhook (push) events.
I spent some time today looking though each of the examples in the repo in order to try to gain some more context for some of the points of view expressed in cnabio/cnab-spec#114. While I was looking, I noticed that there are currently no examples in the repository of using a path as a destination for a parameter. Do we have any use-cases that we can think of that might prove to be good examples of why the spec supports this feature?
Following up from the convo on #29
We make the signing piece pretty easy on the backend so I think the bundles that exist in this repo should be signed by default.
There is a directory that is called bundles
in this repo which just contains a bundle of bundle.json files. I think those can be unsigned examples.
What do we think ? @technosophos @tariq1890 @radu-matei
We just added an official JSON Schema to the spec.
https://github.com/deislabs/cnab-spec/blob/master/schema/bundle.schema.json
This opens up an interesting possibility: We could check every bundle.json
file in the repo for compliance against the spec. We'd need to find a convenient tool to do this for us, but I'm sure some exist.
Thoughts, @vdice ?
Following cnabio/cnab-spec#62 and cnabio/duffle#605, we should update all bundles to the new image map specification.
The parameters
block in these example bundles need updating with the latest version of the bundle.json schema from deislabs/cnab-spec
. Specifically, a destination section is now required for each parameter in the parameter block. (cnabio/cnab-spec#110 finalizes this transition)
Updated bundles can be verified via make build-validator validate
(CI will also do this.)
This repo was originally written to capture concepts of CNAB as we went. It did faithful duty as a source of examples in the early days before there were any implementations of the spec.
But now it is both conceptually behind and not very helpful compared to the other tools.
So I suggest that we remove all but the hello*
and example-*
bundles, and then update those remaining six or seven to work well with the version of Duffle that shipped with CNAB Core 1.0
Examples should be updated to reflect the Dotted names form, like:
io.cnab.status
.duffle install my-release bundle.json --bundle-is-file
produces this
Error: unable to find definition for port
running on duffle version 0.3.4-beta.1
We have for some time been performing consistency checks on Helm charts and are now starting to assess CNAB bundles as well. Read here about some background: https://blog.zhaw.ch/splab/2019/01/05/diving-into-the-helm-ecosystems-from-charts-to-metrics/
It appears that since the OpenFaaS bundle was contributed from a previously external repository, it does not fully conform to the CNAB specification - in particular its bundle.json file is named duffle.json. This was caught by our preliminary consistency checks.
updating from https://github.com/deislabs/bundles
!! bundle.json file missing in openfaas
21 bundles, including 5 base bundles found
Solution: git mv bundles/openfaas/duffle.json bundles/openfaas/bundle.json
This changes is coming in Duffle: cnabio/duffle#660
It reflects the spec's new usage of JSON Schema names for validations (not ARM Template names)
There are a few CNAB bundles that need the bundle.json file moved:
AKS, wordpress, and wordpress-mysq
As proposed by @technosophos : add a way for devs and CI to run functional test(s) on all the bundles in this repo.
Goals for this ticket:
make
target, perhaps?duffle creds generate aks-test-creds -f aks/cnab/bundle.json --insecure -q
duffle install -d debug aks-test -f aks/cnab/bundle.json --insecure -c aks-test-creds
if property backend is set to false (which is the default) then duffle uninstall does not work as the local state file is not saved with the claim when no backend is configured
they're a little heavy at ~400mb at the moment
The bundles in this repo need updating to add the required schemaVersion property:
[ { keyword: 'required',
dataPath: '',
schemaPath: '#/required',
params: { missingProperty: 'schemaVersion' },
message: 'should have required property \'schemaVersion\'' } ]
Updated bundles can be verified via make build-validator validate
(CI will also do this.)
Currently, CI just pushes latest
tags for all of the cnab/*
invocation images on each merge to this repo. Therefore, the bundle invocation images referenced in their bundle.json
(duffle.json
soon?) should use this tag.
Brigade is multi-image, multi-part config, and a fairly complex Helm chart. It would be a great candidate for testing
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.