Comments (10)
It depends on what you'd like to accomplish. If you want to simply store YAML inside of container layers and pull them out, you could use skopeo/umoci. If you want to actually differentiate between regular container images and Kustomize YAML at the registry level, then you want to use ORAS and configure a custom mimetype. ORAS is internally using libraries from containerd -- they are just flexible enough to configure the mimetype whereas I'm not sure if skopeo or umoci have a public API that allows that level of configuration.
from cluster-addons.
Some initial POC work on this is posted:
https://github.com/ecordell/kpg
Thanks for getting started @ecordell
from cluster-addons.
+1 to using ORAS. I'm an OCI maintainer and trying to ensure that there is a cohesive strategy for how everyone is storing non-container artifacts before we cut a stable OCI-distribution release.
from cluster-addons.
@jzelinskie do you have an opinion on using https://github.com/containers/skopeo + https://github.com/openSUSE/umoci as libraries to pull and unpack?
I was able to get something working with the commandline tools and some canonical file layout.
The creation UX was just to docker build
a Dockerfile
where the resulting kustomize layer(s) were in an image under /addon/
from cluster-addons.
If we use a different mime-type -- we'll probably need to use something buildkit based to assemble the OCI image instead of using canonical folders in a Dockerfile. This is definitely more formal.
One thing I found interesting about using the docker layers was that it provided another means of extending a package (since you can overlay the files).
umoci appears to only have UX for operating on files, but you can unpack and repack the image and make raw edits:
umoci insert --image oci:foo mybinary /usr/bin/mybinary
umoci insert --image oci:foo myconfigdir /etc/myconfigdir
umoci insert --image oci:foo --opaque myoptdir /opt
umoci insert --image oci:foo --whiteout /some/old/dir
I'm not sure about modifying the mime-types when using it as a library /cc @cyphar
WRT implementation:
What feels most appropriate in my opinion is for the unpack functionality whether it's ORAS based or using skopeo/umoci/something-else be integrated into the kustomize ref parser /w URI's and the execution occurring within kustomize libs (as opposed to us first unpacking and passing the resulting dir into kustomize).
from cluster-addons.
IIRC Helm3 is using ORAS with dedicated MIME-types so that's a consideration for parity.
from cluster-addons.
Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale
.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close
.
Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale
from cluster-addons.
Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten
.
Rotten issues close after an additional 30d of inactivity.
If this issue is safe to close now please do so with /close
.
Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle rotten
from cluster-addons.
Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen
.
Mark the issue as fresh with /remove-lifecycle rotten
.
Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close
from cluster-addons.
@fejta-bot: Closing this issue.
In response to this:
Rotten issues close after 30d of inactivity.
Reopen the issue with/reopen
.
Mark the issue as fresh with/remove-lifecycle rotten
.Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.
from cluster-addons.
Related Issues (20)
- GSoC Tracking Issue: CRI-based CSI image volume driver HOT 14
- change cronjob from v1beta1 to v1 HOT 4
- Add a test to coredns operator HOT 5
- What is the webhook doing in the coredns operator? HOT 5
- Requesting api-review of schema: core-dns operator HOT 8
- Upgrade coredns to kubebuilder 2 HOT 7
- CoreDNS Operator: Hash ConfigMap Name for RollingUpgrades HOT 13
- Rename k8s.io references HOT 2
- [installer] prune logic HOT 7
- [installer] config validation tests HOT 10
- [installer] inline patches HOT 7
- Implement Node Local DNS operator HOT 10
- CoreDNS Operator: Smoke Tests HOT 13
- GSoC Tracking Issue: Package all the things! HOT 12
- CoreDNS operator:- Addition of list of features HOT 11
- [tracking bug] CoreDNS Operator HOT 23
- Add DNS autoscaler to CoreDNS operator HOT 7
- KubeVirt Addon HOT 18
- Run operator tests in Prow HOT 1
- CoreDNS-Operator: Allow multiple collaborators to configure forwarding for DNS zones HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cluster-addons.