mirror of
				https://github.com/linuxkit/linuxkit.git
				synced 2025-10-31 08:50:30 +00:00 
			
		
		
		
	Using the label `org.mobyproject.config` will use that JSON (or yaml, but it is very hard to get yaml into a label as newlines are not respected) for parameters that are not explicitly set in the yaml file. Had to change parameter definitions so override behaves as expected. fix #16 Signed-off-by: Justin Cormack <justin.cormack@docker.com>
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package main
 | |
| 
 | |
| import (
 | |
| 	"encoding/json"
 | |
| 	"reflect"
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/docker/docker/api/types"
 | |
| 	"github.com/docker/docker/api/types/container"
 | |
| )
 | |
| 
 | |
| func TestOverrides(t *testing.T) {
 | |
| 	var yamlCaps = []string{"CAP_SYS_ADMIN"}
 | |
| 
 | |
| 	var yaml MobyImage = MobyImage{
 | |
| 		Name:         "test",
 | |
| 		Image:        "testimage",
 | |
| 		Capabilities: &yamlCaps,
 | |
| 	}
 | |
| 
 | |
| 	var labelCaps = []string{"CAP_SYS_CHROOT"}
 | |
| 
 | |
| 	var label MobyImage = MobyImage{
 | |
| 		Capabilities: &labelCaps,
 | |
| 		Cwd:          "/label/directory",
 | |
| 	}
 | |
| 
 | |
| 	var inspect types.ImageInspect
 | |
| 	var config container.Config
 | |
| 
 | |
| 	labelJSON, err := json.Marshal(label)
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| 	config.Labels = map[string]string{"org.mobyproject.config": string(labelJSON)}
 | |
| 
 | |
| 	inspect.Config = &config
 | |
| 
 | |
| 	oci, err := ConfigInspectToOCI(yaml, inspect)
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| 
 | |
| 	if !reflect.DeepEqual(oci.Process.Capabilities.Bounding, yamlCaps) {
 | |
| 		t.Error("Expected yaml capabilities to override but got", oci.Process.Capabilities.Bounding)
 | |
| 	}
 | |
| 	if oci.Process.Cwd != label.Cwd {
 | |
| 		t.Error("Expected label Cwd to be applied, got", oci.Process.Cwd)
 | |
| 	}
 | |
| }
 |