gitee.com/mysnapcore/mysnapd@v0.1.0/image/options.go (about) 1 // -*- Mode: Go; indent-tabs-mode: t -*- 2 3 /* 4 * Copyright (C) 2014-2021 Canonical Ltd 5 * 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 3 as 8 * published by the Free Software Foundation. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 * 18 */ 19 20 package image 21 22 type Options struct { 23 ModelFile string 24 Classic bool 25 26 // Preseed requests the image to be preseeded (only for UC20) 27 Preseed bool 28 // PreseedSignKey is the name of the key to use for signing preseed 29 // assertion (empty means the default key). 30 PreseedSignKey string 31 32 // AppArmor kernel features directory to bind-mount when preseeding. 33 // If empty then the features from /sys/kernel/security/apparmor will be used. 34 // (only for UC20) 35 AppArmorKernelFeaturesDir string 36 37 Channel string 38 39 // TODO: use OptionsSnap directly here? 40 Snaps []string 41 SnapChannels map[string]string 42 43 // WideCohortKey can be used to supply a cohort covering all 44 // the snaps in the image, there is no generally suppported API 45 // to create such a cohort key. 46 WideCohortKey string 47 48 PrepareDir string 49 50 // Architecture to use if none is specified by the model, 51 // useful only for classic mode. If set must match the model otherwise. 52 Architecture string 53 54 Customizations Customizations 55 } 56 57 // Customizatons defines possible image customizations. Not all of 58 // them applies to all kind of systems. 59 type Customizations struct { 60 // ConsoleConf can be set to "disabled" to disable console-conf 61 // forcefully (UC16/18 only ATM). 62 ConsoleConf string `json:"console-conf"` 63 // CloudInitUserData can optionally point to cloud init user-data 64 // (UC16/18 only) 65 CloudInitUserData string `json:"cloud-init-user-data"` 66 // BootFlags can be set to a list of boot flags 67 // to set in the recovery bootloader (UC20 only). 68 // Currently only the "factory" hint flag is supported. 69 BootFlags []string `json:"boot-flags"` 70 // Validation controls whether validations should be taken 71 // into account by the store to select snap revisions. 72 // It can be set to "enforce" or "ignore". 73 Validation string `json:"validation"` 74 }