ignite | Ignite a Firecracker microVM | Continuous Deployment library

 by   weaveworks Go Version: v0.10.0 License: Apache-2.0

kandi X-RAY | ignite Summary

kandi X-RAY | ignite Summary

ignite is a Go library typically used in Devops, Continuous Deployment, Docker applications. ignite has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.

Ignite makes Firecracker easy to use by adopting its developer experience from containers. With Ignite, you pick an OCI-compliant image (Docker image) that you want to run as a VM, and then just execute ignite run instead of docker run. There’s no need to use VM-specific tools to build .vdi, .vmdk, or .qcow2 images, just do a docker build from any base image you want (e.g. ubuntu:18.04 from Docker Hub), and add your preferred contents. When you run your OCI image using ignite run, Firecracker will boot a new VM in about 125 milliseconds (!) for you using a default 4.19 Linux kernel. If you want to use some other kernel, just specify the --kernel-image flag, pointing to another OCI image containing a kernel at /boot/vmlinux, and optionally your preferred modules. Next, the kernel executes /sbin/init in the VM, and it all starts up. After this, Ignite connects the VMs to any CNI network, integrating with e.g. Weave Net. Ignite is a declarative Firecracker microVM administration tool, similar to how Docker manages runC containers. Ignite runs VM from OCI images, spins VMs up/down at lightning speed, and can manage fleets of VMs efficiently using GitOps. The idea is that Ignite makes Firecracker VMs look like Docker containers. Now we can deploy and manage full-blown VM systems just like e.g. Kubernetes workloads. The images used are OCI/Docker images, but instead of running them as containers, it executes their contents as a real VM with a dedicated kernel and /sbin/init as PID 1. Networking is set up automatically, the VM gets the same IP as any container on the host would.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              ignite has a medium active ecosystem.
              It has 3389 star(s) with 206 fork(s). There are 79 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 142 open issues and 268 have been closed. On average issues are closed in 103 days. There are 30 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of ignite is v0.10.0

            kandi-Quality Quality

              ignite has no bugs reported.

            kandi-Security Security

              ignite has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              ignite is licensed under the Apache-2.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              ignite releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of ignite
            Get all kandi verified functions for this library.

            ignite Key Features

            No Key Features are available at this moment for ignite.

            ignite Examples and Code Snippets

            Initiates an Ignite instance .
            javadot img1Lines of Code : 10dot img1License : Permissive (MIT License)
            copy iconCopy
            @Bean
                public Ignite igniteInstance() {
                    IgniteConfiguration config = new IgniteConfiguration();
                    
                    CacheConfiguration cache = new CacheConfiguration("baeldungCache");
                    
                    cache.setIndexedTypes(Integer.class, Empl  

            Community Discussions

            QUESTION

            Apache Ignite "Update of composite key column is not supported"
            Asked 2022-Mar-28 at 11:06

            I have a cache with an AffinityKey as Key and want to insert an entry. If i try to insert the entry using a SQL-Insert statement i get an exception stating "Update of composite key column is not supported" which i guess is because the AffinityKey is a composite key. On https://ignite.apache.org/docs/latest/SQL/indexes#indexing-nested-objects i have read that if you are using indexed nested objects you will no longer be able to use insert or update statements but it is not mentioned on https://ignite.apache.org/docs/latest/data-modeling/affinity-collocation for composite keys.

            Does using composite keys also cause insert and update statements to no longer be usable or am i missing something?

            Example:

            ...

            ANSWER

            Answered 2022-Mar-25 at 23:59

            You are mixing the concepts.

            In Apache Ignite you can access or insert your data multiple ways. One would be to use Cache API, like cache#get, cache#put, another option would be - using SQL, like INSERT, SELECT, etc.

            Since eventually everything is just a key-value pair undeneath, Ignite provide a special SQL _key and _val properties to access the corresponded values.

            The thing is - if you don't need to use Cache API and SQL interchangeably and are OK using only, say, SQL, you don't set _key at all.

            On the other hand, if you need to use both APIs, say, defined with QueryEntity just like in your example, you need to specify _key field properly.

            Consider this example:

            Source https://stackoverflow.com/questions/71619576

            QUESTION

            Apache ignite startup failure
            Asked 2022-Feb-24 at 18:28

            Apache ignite .net core server node fails to start with the below error, any idea what could be the reason?

            ...

            ANSWER

            Answered 2022-Feb-24 at 18:19

            Apache Ignite requires Java 8 or Java 11. Java 17 is not yet supported.

            https://ignite.apache.org/docs/latest/quick-start/dotnet

            (update: Java 17 support is coming soon: IGNITE-16622)

            Source https://stackoverflow.com/questions/71159713

            QUESTION

            Ignite Server Node with CacheJdbcPojoStore / Delay Client Node
            Asked 2022-Feb-24 at 10:37

            I'm using Spring and Ignite Spring to run a pretty simple cluster consisting of one server node and multiple client nodes with varying domain logic.

            Ignite configuration:

            • All nodes connect via TcpCommuncationSpi, TcpDiscoverySpi and TcpDiscoveryVmIpFinder. TcpDiscoveryVmIpFinder.setAddresses only contain the server node.
            • The server node has serveral CacheJdbcPojoStore configured, the database data is loaded after calling Ignition.start(cfg) using ignite.cache("mycachename").loadCache(null).

            After a client node is connected to the server node, it does some domain specific checks to verify data integrity. This works very well if I first start the server node, wait for all data to be loaded and then start the client nodes.

            My problem: if I first start the client nodes, they can't connect to the server node as it is not yet started. They patiently wait for the server node to come up. If I now start the server node, the client nodes connect directly after Ignition.start(cfg) is done on the server node, but BEFORE the CacheJdbcPojoStores are done loading their data. Thus the domain specific integrity checks do fail as there is no data present in the caches yet.

            My goal: I need a way to ensure the client nodes are only able to connect to the server node AFTER all data is loaded in the server node. This would simply the deployment process as well as local development a lot, as there would be no strict ordering of starting the nodes.

            What I tried so far: Fiddling around with ignite.cluster().state(ClusterState.INACTIVE) as well as setting up a manually controlled BaselineTopology. Sadly, both methods simple declare the cluster as not being ready yet and thus I can't even create the caches, let alone load data.

            My question: Is there any way to achieve either:

            1. hook up into the the startup process of the server node so I can load the data in BEFORE it joins the cluster
            2. Declare the server node "not yet ready" until the data is loaded.
            ...

            ANSWER

            Answered 2022-Feb-24 at 10:37

            Use one of the available data structures like AtomicLong or Semaphore to simulate readiness state. There is no need for internal hooks.

            Added an example below:

            Client:

            Source https://stackoverflow.com/questions/71169863

            QUESTION

            Can't change AllowOverwrite data streamer option for .NET apache ignite thin client
            Asked 2022-Feb-07 at 17:32

            I try to remove some data using the thin client data streamer (.NET apache ignite) but i end up with an exception:

            DataStreamer can't remove data when AllowOverwrite is false.

            My problem is when i try to change AllowOverwrite to true it is not respected.

            ...

            ANSWER

            Answered 2022-Feb-02 at 12:16

            You are modifying a data streamer after it was created, which is not supported. After the instance is created, you can obtain only a copy of its configuration. Provide the complete configuration on initialization instead:

            Source https://stackoverflow.com/questions/70954848

            QUESTION

            Isolated Ignite clusters on same set of machines
            Asked 2022-Feb-04 at 07:27

            I'm using Apache.Ignite NET 2.12.0.

            I tried several approaches to allow two Ignite clusters to be run separately on the machine:

            1. Approach described here. I specified DiscoverySPI and CommunicationSPI port for each instance of server(I use client-server model) to isolate them, but the server failed to run with this warning:

            [05:03:01,968][WARNING][main][TcpDiscoverySpi] Failed to connect to any address from IP finder (make sure IP finder addresses are correct and firewalls are disabled on all host machines): [/127.0.0.1:47501, /127.0.0.1:47502]

            In that case, the execution enters Ignition.Start and don't leave it.

            1. I tried to provide IgniteConfiguration.SslContextFactory with different certificates to avoid the different clusters seeing each other, but in that case - they see each other, but the clusters fail to join each other, which prevents them from working.

            Is there some easy way to do this?

            ...

            ANSWER

            Answered 2022-Feb-04 at 06:08

            The approach from the docs works, here is the corresponding C# code, tested with Ignite.NET 2.12:

            Source https://stackoverflow.com/questions/70980731

            QUESTION

            What is a "closure" in Julia?
            Asked 2022-Feb-03 at 18:34

            I am learning how to write a Maximum Likelihood implementation in Julia and currently, I am following this material (highly recommended btw!). So the thing is I do not fully understand what a closure is in Julia nor when should I actually use it. Even after reading the official documentation the concept still remain a bit obscure to me.

            For instance, in the tutorial, I mentioned the author defines the log-likelihood function as:

            ...

            ANSWER

            Answered 2022-Feb-03 at 18:34

            In the context you ask about you can think that closure is a function that references to some variables that are defined in its outer scope (for other cases see the answer by @phipsgabler). Here is a minimal example:

            Source https://stackoverflow.com/questions/70969919

            QUESTION

            Why does Apache Ignite use more memory than configured
            Asked 2022-Feb-01 at 00:50

            When using Ignite 2.8.1-1 version and default configuration(1GB heap, 20% default region for off-heap storage and persistence enabled) on a Linux host with 16GB memory, I notice the ignite process could use up to 11GB of memory(verified by checking the resident size of memory used by the process in top, see attachment). When I check the metrics in the log, the consumed memory(heap+off-heap) doesn't add up to close to 7GB. One possibility is the extra memory could be used by the checkpoint buffer but that shall be by default 1/4 of the default region, that is, only about a quarter of 0.25 * 0.2 * 16GB.

            Any hints on what the rest of the memory is used for?

            Thanks!

            ...

            ANSWER

            Answered 2022-Feb-01 at 00:50

            Yes, the checkpoint buffer size is also taken into account here, if you haven't overridden the defaults, it should be 3GB/4 as you correctly highlighted. I wonder if it might be changed automatically since you have a lot more data ^-- Ignite persistence [used=57084MB] stored than the region capacity is - only 3GB. Also, this might be related to Direct Memory usage which I suppose is not being counted for the Java heap usage.

            Anyway, I think it's better to check for Ignite memory metrics explicitly like data region and onheap usage and inspect them in detail.

            Source https://stackoverflow.com/questions/70888632

            QUESTION

            Apache Ignite 'Failed to prepare update plan' when executing SQL query on cache
            Asked 2022-Jan-31 at 10:44

            I am playing around with different approaches on how to configure caches and tables in Ignite and then insert an entry via the SQL API using the .NET SDK.

            I create two caches with each having a table. The first is created via CacheClientConfiguration and QueryEntities and the second using the 'CREATE TABLE...' DDL command. I then try to insert the same object (same values) into both tables using 'INSERT INTO...'. For the table created using the 'CREATE Table...' command it works, but the for the table created using QueryEntities i get an IgniteClientException stating: 'Failed to prepare update plan'. Both Insert commands look exactly the same (besides the table name).

            What is the exception trying to tell me, why does the insert work for the second approach but not for the first?

            See example code below.

            Creating caches and tables:

            ...

            ANSWER

            Answered 2022-Jan-29 at 14:49

            I believe this is because you didn't provide the _KEY to the first query explicitly and would like to keep it on your POJO model.

            Specify the key configuration explicitly using the following configuration and give it a try.

            Source https://stackoverflow.com/questions/70896295

            QUESTION

            Apache Ignite unexpectedly deletes IgniteSet
            Asked 2022-Jan-28 at 13:35

            I am facing the problem where my Ignite repository instance unexpectedly closes the opened Ignite set after attempt to save it in map or pass as return value from function.

            So I have Java Spring application where Ignite is used under the hood of Spring Data (master) and Spark application where the same Ignite is used as DB (client). In this case the set is created and filled in Spark application, and in Java app I just want to access it and check set.contains(element).

            On the first part everything looks good - set is created, I can see in logs that its size is correct:

            ...

            ANSWER

            Answered 2022-Jan-28 at 13:35

            So finally after hours of debug I found the reason and solution.

            First of all, I debugged size of the set each time I open it. And weirdly after first call its size becomes 0, so set is erased after the first call to ignite.set(). After this I switched to plain cache (instead of set) and just check cache.containsKey(user). Its size was persistent among the getOrCreateCache() calls but the NPO problem was still raised.

            Then I found this tiny little answer on Ignite mailing list where it's said that Ignite caches implement AutoCloseable interface. Which means that after try-except block cache.close() is automatically called. And it means not just close the "connection" to cache but stopping the cache itself.

            After this I changed my code to this:

            Source https://stackoverflow.com/questions/70877973

            QUESTION

            Apache ignite docker 'image' not compatible on Apple M1 Max
            Asked 2022-Jan-26 at 08:42

            docker run -p 10800:10800 apacheignite/ignite:2.11.1

            WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

            How to resolve the above issue ?

            ...

            ANSWER

            Answered 2022-Jan-13 at 11:02

            Until an ARM image is available, you'll probably have to run it using Rosetta:

            Source https://stackoverflow.com/questions/70685637

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install ignite

            WARNING: In it's v0.X series, Ignite is in alpha, which means that it might change in backwards-incompatible ways. Note: At the moment ignite and ignited need root privileges on the host to operate due to certain operations (e.g. mount). This will change in the future. For a walkthrough of how to use Ignite, go to docs/usage.md.
            Ignite is a “GitOps-first” project, GitOps is supported out of the box using the ignited gitops command. Previously this was integrated as ignite gitops, but this functionality has now moved to ignited, Ignite's upcoming daemon binary. In Git you declaratively store the desired state of a set of VMs you want to manage. ignited gitops reconciles the state from Git, and applies the desired changes as state is updated in the repo. It also commits and pushes any local changes/additions to the managed VMs back to the repository. This can then be automated, tracked for correctness, and managed at scale - just some of the benefits of GitOps.
            Run ignited gitops [repo], where repo is an SSH url to your Git repo
            Create a file with the VM specification, specifying how much vCPUs, RAM, disk, etc. you’d like for the VM
            Run git push and see your VM start on the host

            Support

            Please refer to the following documents powered by Read the Docs:.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/weaveworks/ignite.git

          • CLI

            gh repo clone weaveworks/ignite

          • sshUrl

            git@github.com:weaveworks/ignite.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link