Go to Katenary V3
This is the next-gen of Katenary
This commit is contained in:
893
doc/docs/packages/generator.md
Normal file
893
doc/docs/packages/generator.md
Normal file
@@ -0,0 +1,893 @@
|
||||
<!-- Code generated by gomarkdoc. DO NOT EDIT -->
|
||||
|
||||
# generator
|
||||
|
||||
``` go
|
||||
import "katenary/generator"
|
||||
```
|
||||
|
||||
The generator package generates kubernetes objects from a compose file
|
||||
and transforms them into a helm chart.
|
||||
|
||||
The generator package is the core of katenary. It is responsible for
|
||||
generating kubernetes objects from a compose file and transforming them
|
||||
into a helm chart. Convertion manipulates Yaml representation of
|
||||
kubernetes object to add conditions, labels, annotations, etc. to the
|
||||
objects. It also create the values to be set to the values.yaml file.
|
||||
|
||||
The generate.Convert() create an HelmChart object and call “Generate()”
|
||||
method to convert from a compose file to a helm chart. It saves the helm
|
||||
chart in the given directory.
|
||||
|
||||
If you want to change or override the write behavior, you can use the
|
||||
HelmChart.Generate() function and implement your own write function.
|
||||
This function returns the helm chart object containing all kubernetes
|
||||
objects and helm chart ingormation. It does not write the helm chart to
|
||||
the disk.
|
||||
|
||||
TODO: Manage cronjob + rbac TODO: create note.txt TODO: manage emptyDirs
|
||||
|
||||
## Constants
|
||||
|
||||
``` go
|
||||
const KATENARY_PREFIX = "katenary.v3/"
|
||||
```
|
||||
|
||||
## Variables
|
||||
|
||||
``` go
|
||||
var (
|
||||
|
||||
// Standard annotationss
|
||||
Annotations = map[string]string{
|
||||
KATENARY_PREFIX + "version": Version,
|
||||
}
|
||||
)
|
||||
```
|
||||
|
||||
Version is the version of katenary. It is set at compile time.
|
||||
|
||||
``` go
|
||||
var Version = "master" // changed at compile time
|
||||
```
|
||||
|
||||
## func Convert
|
||||
|
||||
``` go
|
||||
func Convert(config ConvertOptions, dockerComposeFile ...string)
|
||||
```
|
||||
|
||||
Convert a compose (docker, podman…) project to a helm chart. It calls
|
||||
Generate() to generate the chart and then write it to the disk.
|
||||
|
||||
## func GetLabelHelp
|
||||
|
||||
``` go
|
||||
func GetLabelHelp(asMarkdown bool) string
|
||||
```
|
||||
|
||||
Generate the help for the labels.
|
||||
|
||||
## func GetLabelHelpFor
|
||||
|
||||
``` go
|
||||
func GetLabelHelpFor(labelname string, asMarkdown bool) string
|
||||
```
|
||||
|
||||
GetLabelHelpFor returns the help for a specific label.
|
||||
|
||||
## func GetLabelNames
|
||||
|
||||
``` go
|
||||
func GetLabelNames() []string
|
||||
```
|
||||
|
||||
GetLabelNames returns a sorted list of all katenary label names.
|
||||
|
||||
## func GetLabels
|
||||
|
||||
``` go
|
||||
func GetLabels(serviceName, appName string) map[string]string
|
||||
```
|
||||
|
||||
## func GetMatchLabels
|
||||
|
||||
``` go
|
||||
func GetMatchLabels(serviceName, appName string) map[string]string
|
||||
```
|
||||
|
||||
## func Helper
|
||||
|
||||
``` go
|
||||
func Helper(name string) string
|
||||
```
|
||||
|
||||
Helper returns the \_helpers.tpl file for a chart.
|
||||
|
||||
## func NewCronJob
|
||||
|
||||
``` go
|
||||
func NewCronJob(service types.ServiceConfig, chart *HelmChart, appName string) (*CronJob, *RBAC)
|
||||
```
|
||||
|
||||
NewCronJob creates a new CronJob from a compose service. The appName is
|
||||
the name of the application taken from the project name.
|
||||
|
||||
## type ChartTemplate
|
||||
|
||||
ChartTemplate is a template of a chart. It contains the content of the
|
||||
template and the name of the service. This is used internally to
|
||||
generate the templates.
|
||||
|
||||
TODO: maybe we can set it private.
|
||||
|
||||
``` go
|
||||
type ChartTemplate struct {
|
||||
Content []byte
|
||||
Servicename string
|
||||
}
|
||||
```
|
||||
|
||||
## type ConfigMap
|
||||
|
||||
ConfigMap is a kubernetes ConfigMap. Implements the DataMap interface.
|
||||
|
||||
``` go
|
||||
type ConfigMap struct {
|
||||
*corev1.ConfigMap
|
||||
// contains filtered or unexported fields
|
||||
}
|
||||
```
|
||||
|
||||
### func NewConfigMap
|
||||
|
||||
``` go
|
||||
func NewConfigMap(service types.ServiceConfig, appName string) *ConfigMap
|
||||
```
|
||||
|
||||
NewConfigMap creates a new ConfigMap from a compose service. The appName
|
||||
is the name of the application taken from the project name. The
|
||||
ConfigMap is filled by environment variables and labels “map-env”.
|
||||
|
||||
### func NewConfigMapFromFiles
|
||||
|
||||
``` go
|
||||
func NewConfigMapFromFiles(service types.ServiceConfig, appName string, path string) *ConfigMap
|
||||
```
|
||||
|
||||
NewConfigMapFromFiles creates a new ConfigMap from a compose service.
|
||||
This path is the path to the file or directory. If the path is a
|
||||
directory, all files in the directory are added to the ConfigMap. Each
|
||||
subdirectory are ignored. Note that the Generate() function will create
|
||||
the subdirectories ConfigMaps.
|
||||
|
||||
### func (*ConfigMap) AddData
|
||||
|
||||
``` go
|
||||
func (c *ConfigMap) AddData(key string, value string)
|
||||
```
|
||||
|
||||
AddData adds a key value pair to the configmap. Append or overwrite the
|
||||
value if the key already exists.
|
||||
|
||||
### func (*ConfigMap) AppendDir
|
||||
|
||||
``` go
|
||||
func (c *ConfigMap) AppendDir(path string)
|
||||
```
|
||||
|
||||
AddFile adds files from given path to the configmap. It is not
|
||||
recursive, to add all files in a directory, you need to call this
|
||||
function for each subdirectory.
|
||||
|
||||
### func (*ConfigMap) Filename
|
||||
|
||||
``` go
|
||||
func (c *ConfigMap) Filename() string
|
||||
```
|
||||
|
||||
Filename returns the filename of the configmap. If the configmap is used
|
||||
for files, the filename contains the path.
|
||||
|
||||
### func (*ConfigMap) SetData
|
||||
|
||||
``` go
|
||||
func (c *ConfigMap) SetData(data map[string]string)
|
||||
```
|
||||
|
||||
SetData sets the data of the configmap. It replaces the entire data.
|
||||
|
||||
### func (*ConfigMap) Yaml
|
||||
|
||||
``` go
|
||||
func (c *ConfigMap) Yaml() ([]byte, error)
|
||||
```
|
||||
|
||||
Yaml returns the yaml representation of the configmap
|
||||
|
||||
## type ConvertOptions
|
||||
|
||||
ConvertOptions are the options to convert a compose project to a helm
|
||||
chart.
|
||||
|
||||
``` go
|
||||
type ConvertOptions struct {
|
||||
Force bool // Force the chart directory deletion if it already exists.
|
||||
OutputDir string // The output directory of the chart.
|
||||
Profiles []string // Profile to use for the conversion.
|
||||
HelmUpdate bool // If true, the "helm dep update" command will be run after the chart generation.
|
||||
AppVersion *string // Set the chart "appVersion" field. If nil, the version will be set to 0.1.0.
|
||||
ChartVersion string // Set the chart "version" field.
|
||||
}
|
||||
```
|
||||
|
||||
## type CronJob
|
||||
|
||||
CronJob is a kubernetes CronJob.
|
||||
|
||||
``` go
|
||||
type CronJob struct {
|
||||
*batchv1.CronJob
|
||||
// contains filtered or unexported fields
|
||||
}
|
||||
```
|
||||
|
||||
### func (*CronJob) Filename
|
||||
|
||||
``` go
|
||||
func (c *CronJob) Filename() string
|
||||
```
|
||||
|
||||
Filename returns the filename of the cronjob.
|
||||
|
||||
Implements the Yaml interface.
|
||||
|
||||
### func (*CronJob) Yaml
|
||||
|
||||
``` go
|
||||
func (c *CronJob) Yaml() ([]byte, error)
|
||||
```
|
||||
|
||||
Yaml returns the yaml representation of the cronjob.
|
||||
|
||||
Implements the Yaml interface.
|
||||
|
||||
## type CronJobValue
|
||||
|
||||
CronJobValue is a cronjob configuration that will be saved in
|
||||
values.yaml.
|
||||
|
||||
``` go
|
||||
type CronJobValue struct {
|
||||
Repository *RepositoryValue `yaml:"repository,omitempty"`
|
||||
Environment map[string]any `yaml:"environment,omitempty"`
|
||||
ImagePullPolicy string `yaml:"imagePullPolicy,omitempty"`
|
||||
Schedule string `yaml:"schedule"`
|
||||
}
|
||||
```
|
||||
|
||||
## type DataMap
|
||||
|
||||
DataMap is a kubernetes ConfigMap or Secret. It can be used to add data
|
||||
to the ConfigMap or Secret.
|
||||
|
||||
``` go
|
||||
type DataMap interface {
|
||||
SetData(map[string]string)
|
||||
AddData(string, string)
|
||||
}
|
||||
```
|
||||
|
||||
### func NewFileMap
|
||||
|
||||
``` go
|
||||
func NewFileMap(service types.ServiceConfig, appName string, kind string) DataMap
|
||||
```
|
||||
|
||||
NewFileMap creates a new DataMap from a compose service. The appName is
|
||||
the name of the application taken from the project name.
|
||||
|
||||
## type Dependency
|
||||
|
||||
Dependency is a dependency of a chart to other charts.
|
||||
|
||||
``` go
|
||||
type Dependency struct {
|
||||
Name string `yaml:"name"`
|
||||
Version string `yaml:"version"`
|
||||
Repository string `yaml:"repository"`
|
||||
Alias string `yaml:"alias,omitempty"`
|
||||
Values map[string]any `yaml:"-"` // do not export to Chart.yaml
|
||||
}
|
||||
```
|
||||
|
||||
## type Deployment
|
||||
|
||||
Deployment is a kubernetes Deployment.
|
||||
|
||||
``` go
|
||||
type Deployment struct {
|
||||
*appsv1.Deployment `yaml:",inline"`
|
||||
// contains filtered or unexported fields
|
||||
}
|
||||
```
|
||||
|
||||
### func NewDeployment
|
||||
|
||||
``` go
|
||||
func NewDeployment(service types.ServiceConfig, chart *HelmChart) *Deployment
|
||||
```
|
||||
|
||||
NewDeployment creates a new Deployment from a compose service. The
|
||||
appName is the name of the application taken from the project name. It
|
||||
also creates the Values map that will be used to create the values.yaml
|
||||
file.
|
||||
|
||||
### func (*Deployment) AddContainer
|
||||
|
||||
``` go
|
||||
func (d *Deployment) AddContainer(service types.ServiceConfig)
|
||||
```
|
||||
|
||||
AddContainer adds a container to the deployment.
|
||||
|
||||
### func (*Deployment) AddHealthCheck
|
||||
|
||||
``` go
|
||||
func (d *Deployment) AddHealthCheck(service types.ServiceConfig, container *corev1.Container)
|
||||
```
|
||||
|
||||
### func (*Deployment) AddIngress
|
||||
|
||||
``` go
|
||||
func (d *Deployment) AddIngress(service types.ServiceConfig, appName string) *Ingress
|
||||
```
|
||||
|
||||
AddIngress adds an ingress to the deployment. It creates the ingress
|
||||
object.
|
||||
|
||||
### func (*Deployment) AddVolumes
|
||||
|
||||
``` go
|
||||
func (d *Deployment) AddVolumes(service types.ServiceConfig, appName string)
|
||||
```
|
||||
|
||||
AddVolumes adds a volume to the deployment. It does not create the PVC,
|
||||
it only adds the volumes to the deployment. If the volume is a bind
|
||||
volume it will warn the user that it is not supported yet.
|
||||
|
||||
### func (*Deployment) BindFrom
|
||||
|
||||
``` go
|
||||
func (d *Deployment) BindFrom(service types.ServiceConfig, binded *Deployment)
|
||||
```
|
||||
|
||||
### func (*Deployment) DependsOn
|
||||
|
||||
``` go
|
||||
func (d *Deployment) DependsOn(to *Deployment) error
|
||||
```
|
||||
|
||||
DependsOn adds a initContainer to the deployment that will wait for the
|
||||
service to be up.
|
||||
|
||||
### func (*Deployment) Filename
|
||||
|
||||
``` go
|
||||
func (d *Deployment) Filename() string
|
||||
```
|
||||
|
||||
### func (*Deployment) SetEnvFrom
|
||||
|
||||
``` go
|
||||
func (d *Deployment) SetEnvFrom(service types.ServiceConfig, appName string)
|
||||
```
|
||||
|
||||
SetEnvFrom sets the environment variables to a configmap. The configmap
|
||||
is created.
|
||||
|
||||
### func (*Deployment) Yaml
|
||||
|
||||
``` go
|
||||
func (d *Deployment) Yaml() ([]byte, error)
|
||||
```
|
||||
|
||||
Yaml returns the yaml representation of the deployment.
|
||||
|
||||
## type FileMapUsage
|
||||
|
||||
FileMapUsage is the usage of the filemap.
|
||||
|
||||
``` go
|
||||
type FileMapUsage uint8
|
||||
```
|
||||
|
||||
FileMapUsage constants.
|
||||
|
||||
``` go
|
||||
const (
|
||||
FileMapUsageConfigMap FileMapUsage = iota // pure configmap for key:values.
|
||||
FileMapUsageFiles // files in a configmap.
|
||||
)
|
||||
```
|
||||
|
||||
## type HelmChart
|
||||
|
||||
HelmChart is a Helm Chart representation. It contains all the tempaltes,
|
||||
values, versions, helpers…
|
||||
|
||||
``` go
|
||||
type HelmChart struct {
|
||||
Name string `yaml:"name"`
|
||||
ApiVersion string `yaml:"apiVersion"`
|
||||
Version string `yaml:"version"`
|
||||
AppVersion string `yaml:"appVersion"`
|
||||
Description string `yaml:"description"`
|
||||
Dependencies []Dependency `yaml:"dependencies,omitempty"`
|
||||
Templates map[string]*ChartTemplate `yaml:"-"` // do not export to yaml
|
||||
Helper string `yaml:"-"` // do not export to yaml
|
||||
Values map[string]any `yaml:"-"` // do not export to yaml
|
||||
VolumeMounts map[string]any `yaml:"-"` // do not export to yaml
|
||||
// contains filtered or unexported fields
|
||||
}
|
||||
```
|
||||
|
||||
### func Generate
|
||||
|
||||
``` go
|
||||
func Generate(project *types.Project) (*HelmChart, error)
|
||||
```
|
||||
|
||||
Generate a chart from a compose project. This does not write files to
|
||||
disk, it only creates the HelmChart object.
|
||||
|
||||
The Generate function will create the HelmChart object this way:
|
||||
|
||||
1. Detect the service port name or leave the port number if not found.
|
||||
|
||||
2. Create a deployment for each service that are not ingnore.
|
||||
|
||||
3. Create a service and ingresses for each service that has ports
|
||||
and/or declared ingresses.
|
||||
|
||||
4. Create a PVC or Configmap volumes for each volume.
|
||||
|
||||
5. Create init containers for each service which has dependencies to
|
||||
other services.
|
||||
|
||||
6. Create a chart dependencies.
|
||||
|
||||
7. Create a configmap and secrets from the environment variables.
|
||||
|
||||
8. Merge the same-pod services.
|
||||
|
||||
### func NewChart
|
||||
|
||||
``` go
|
||||
func NewChart(name string) *HelmChart
|
||||
```
|
||||
|
||||
NewChart creates a new empty chart with the given name.
|
||||
|
||||
## type Help
|
||||
|
||||
Help is the documentation of a label.
|
||||
|
||||
``` go
|
||||
type Help struct {
|
||||
Short string `yaml:"short"`
|
||||
Long string `yaml:"long"`
|
||||
Example string `yaml:"example"`
|
||||
Type string `yaml:"type"`
|
||||
}
|
||||
```
|
||||
|
||||
## type Ingress
|
||||
|
||||
``` go
|
||||
type Ingress struct {
|
||||
*networkv1.Ingress
|
||||
// contains filtered or unexported fields
|
||||
}
|
||||
```
|
||||
|
||||
### func NewIngress
|
||||
|
||||
``` go
|
||||
func NewIngress(service types.ServiceConfig, Chart *HelmChart) *Ingress
|
||||
```
|
||||
|
||||
NewIngress creates a new Ingress from a compose service.
|
||||
|
||||
### func (*Ingress) Filename
|
||||
|
||||
``` go
|
||||
func (ingress *Ingress) Filename() string
|
||||
```
|
||||
|
||||
### func (*Ingress) Yaml
|
||||
|
||||
``` go
|
||||
func (ingress *Ingress) Yaml() ([]byte, error)
|
||||
```
|
||||
|
||||
## type IngressValue
|
||||
|
||||
IngressValue is a ingress configuration that will be saved in
|
||||
values.yaml.
|
||||
|
||||
``` go
|
||||
type IngressValue struct {
|
||||
Enabled bool `yaml:"enabled"`
|
||||
Host string `yaml:"host"`
|
||||
Path string `yaml:"path"`
|
||||
Class string `yaml:"class"`
|
||||
Annotations map[string]string `yaml:"annotations"`
|
||||
}
|
||||
```
|
||||
|
||||
## type Label
|
||||
|
||||
Label is a katenary label to find in compose files.
|
||||
|
||||
``` go
|
||||
type Label = string
|
||||
```
|
||||
|
||||
Known labels.
|
||||
|
||||
``` go
|
||||
const (
|
||||
LABEL_MAIN_APP Label = KATENARY_PREFIX + "main-app"
|
||||
LABEL_VALUES Label = KATENARY_PREFIX + "values"
|
||||
LABEL_SECRETS Label = KATENARY_PREFIX + "secrets"
|
||||
LABEL_PORTS Label = KATENARY_PREFIX + "ports"
|
||||
LABEL_INGRESS Label = KATENARY_PREFIX + "ingress"
|
||||
LABEL_MAP_ENV Label = KATENARY_PREFIX + "map-env"
|
||||
LABEL_HEALTHCHECK Label = KATENARY_PREFIX + "health-check"
|
||||
LABEL_SAME_POD Label = KATENARY_PREFIX + "same-pod"
|
||||
LABEL_DESCRIPTION Label = KATENARY_PREFIX + "description"
|
||||
LABEL_IGNORE Label = KATENARY_PREFIX + "ignore"
|
||||
LABEL_DEPENDENCIES Label = KATENARY_PREFIX + "dependencies"
|
||||
LABEL_CM_FILES Label = KATENARY_PREFIX + "configmap-files"
|
||||
LABEL_CRONJOB Label = KATENARY_PREFIX + "cronjob"
|
||||
LABEL_ENV_FROM Label = KATENARY_PREFIX + "env-from"
|
||||
)
|
||||
```
|
||||
|
||||
## type LabelType
|
||||
|
||||
LabelType identifies the type of label to generate in objects. TODO: is
|
||||
this still needed?
|
||||
|
||||
``` go
|
||||
type LabelType uint8
|
||||
```
|
||||
|
||||
``` go
|
||||
const (
|
||||
DeploymentLabel LabelType = iota
|
||||
ServiceLabel
|
||||
)
|
||||
```
|
||||
|
||||
## type PersistenceValue
|
||||
|
||||
PersistenceValue is a persistence configuration that will be saved in
|
||||
values.yaml.
|
||||
|
||||
``` go
|
||||
type PersistenceValue struct {
|
||||
Enabled bool `yaml:"enabled"`
|
||||
StorageClass string `yaml:"storageClass"`
|
||||
Size string `yaml:"size"`
|
||||
AccessMode []string `yaml:"accessMode"`
|
||||
}
|
||||
```
|
||||
|
||||
## type RBAC
|
||||
|
||||
RBAC is a kubernetes RBAC containing a role, a rolebinding and an
|
||||
associated serviceaccount.
|
||||
|
||||
``` go
|
||||
type RBAC struct {
|
||||
RoleBinding *RoleBinding
|
||||
Role *Role
|
||||
ServiceAccount *ServiceAccount
|
||||
}
|
||||
```
|
||||
|
||||
### func NewRBAC
|
||||
|
||||
``` go
|
||||
func NewRBAC(service types.ServiceConfig, appName string) *RBAC
|
||||
```
|
||||
|
||||
NewRBAC creates a new RBAC from a compose service. The appName is the
|
||||
name of the application taken from the project name.
|
||||
|
||||
## type RepositoryValue
|
||||
|
||||
RepositoryValue is a docker repository image and tag that will be saved
|
||||
in values.yaml.
|
||||
|
||||
``` go
|
||||
type RepositoryValue struct {
|
||||
Image string `yaml:"image"`
|
||||
Tag string `yaml:"tag"`
|
||||
}
|
||||
```
|
||||
|
||||
## type Role
|
||||
|
||||
Role is a kubernetes Role.
|
||||
|
||||
``` go
|
||||
type Role struct {
|
||||
*rbacv1.Role
|
||||
// contains filtered or unexported fields
|
||||
}
|
||||
```
|
||||
|
||||
### func (*Role) Filename
|
||||
|
||||
``` go
|
||||
func (r *Role) Filename() string
|
||||
```
|
||||
|
||||
### func (*Role) Yaml
|
||||
|
||||
``` go
|
||||
func (r *Role) Yaml() ([]byte, error)
|
||||
```
|
||||
|
||||
## type RoleBinding
|
||||
|
||||
RoleBinding is a kubernetes RoleBinding.
|
||||
|
||||
``` go
|
||||
type RoleBinding struct {
|
||||
*rbacv1.RoleBinding
|
||||
// contains filtered or unexported fields
|
||||
}
|
||||
```
|
||||
|
||||
### func (*RoleBinding) Filename
|
||||
|
||||
``` go
|
||||
func (r *RoleBinding) Filename() string
|
||||
```
|
||||
|
||||
### func (*RoleBinding) Yaml
|
||||
|
||||
``` go
|
||||
func (r *RoleBinding) Yaml() ([]byte, error)
|
||||
```
|
||||
|
||||
## type Secret
|
||||
|
||||
Secret is a kubernetes Secret.
|
||||
|
||||
Implements the DataMap interface.
|
||||
|
||||
``` go
|
||||
type Secret struct {
|
||||
*corev1.Secret
|
||||
// contains filtered or unexported fields
|
||||
}
|
||||
```
|
||||
|
||||
### func NewSecret
|
||||
|
||||
``` go
|
||||
func NewSecret(service types.ServiceConfig, appName string) *Secret
|
||||
```
|
||||
|
||||
NewSecret creates a new Secret from a compose service
|
||||
|
||||
### func (*Secret) AddData
|
||||
|
||||
``` go
|
||||
func (s *Secret) AddData(key string, value string)
|
||||
```
|
||||
|
||||
AddData adds a key value pair to the secret.
|
||||
|
||||
### func (*Secret) Filename
|
||||
|
||||
``` go
|
||||
func (s *Secret) Filename() string
|
||||
```
|
||||
|
||||
Filename returns the filename of the secret.
|
||||
|
||||
### func (*Secret) SetData
|
||||
|
||||
``` go
|
||||
func (s *Secret) SetData(data map[string]string)
|
||||
```
|
||||
|
||||
SetData sets the data of the secret.
|
||||
|
||||
### func (*Secret) Yaml
|
||||
|
||||
``` go
|
||||
func (s *Secret) Yaml() ([]byte, error)
|
||||
```
|
||||
|
||||
Yaml returns the yaml representation of the secret.
|
||||
|
||||
## type Service
|
||||
|
||||
Service is a kubernetes Service.
|
||||
|
||||
``` go
|
||||
type Service struct {
|
||||
*v1.Service `yaml:",inline"`
|
||||
// contains filtered or unexported fields
|
||||
}
|
||||
```
|
||||
|
||||
### func NewService
|
||||
|
||||
``` go
|
||||
func NewService(service types.ServiceConfig, appName string) *Service
|
||||
```
|
||||
|
||||
NewService creates a new Service from a compose service.
|
||||
|
||||
### func (*Service) AddPort
|
||||
|
||||
``` go
|
||||
func (s *Service) AddPort(port types.ServicePortConfig, serviceName ...string)
|
||||
```
|
||||
|
||||
AddPort adds a port to the service.
|
||||
|
||||
### func (*Service) Filename
|
||||
|
||||
``` go
|
||||
func (s *Service) Filename() string
|
||||
```
|
||||
|
||||
Filename returns the filename of the service.
|
||||
|
||||
### func (*Service) Yaml
|
||||
|
||||
``` go
|
||||
func (s *Service) Yaml() ([]byte, error)
|
||||
```
|
||||
|
||||
Yaml returns the yaml representation of the service.
|
||||
|
||||
## type ServiceAccount
|
||||
|
||||
ServiceAccount is a kubernetes ServiceAccount.
|
||||
|
||||
``` go
|
||||
type ServiceAccount struct {
|
||||
*corev1.ServiceAccount
|
||||
// contains filtered or unexported fields
|
||||
}
|
||||
```
|
||||
|
||||
### func (*ServiceAccount) Filename
|
||||
|
||||
``` go
|
||||
func (r *ServiceAccount) Filename() string
|
||||
```
|
||||
|
||||
### func (*ServiceAccount) Yaml
|
||||
|
||||
``` go
|
||||
func (r *ServiceAccount) Yaml() ([]byte, error)
|
||||
```
|
||||
|
||||
## type Value
|
||||
|
||||
Value will be saved in values.yaml. It contains configuraiton for all
|
||||
deployment and services. The content will be lile:
|
||||
|
||||
name_of_component:
|
||||
repository:
|
||||
image: image_name
|
||||
tag: image_tag
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: storage_class_name
|
||||
ingress:
|
||||
enabled: true
|
||||
host: host_name
|
||||
path: path_name
|
||||
environment:
|
||||
ENV_VAR_1: value_1
|
||||
ENV_VAR_2: value_2
|
||||
|
||||
``` go
|
||||
type Value struct {
|
||||
Repository *RepositoryValue `yaml:"repository,omitempty"`
|
||||
Persistence map[string]*PersistenceValue `yaml:"persistence,omitempty"`
|
||||
Ingress *IngressValue `yaml:"ingress,omitempty"`
|
||||
ImagePullPolicy string `yaml:"imagePullPolicy,omitempty"`
|
||||
Environment map[string]any `yaml:"environment,omitempty"`
|
||||
Replicas *uint32 `yaml:"replicas,omitempty"`
|
||||
CronJob *CronJobValue `yaml:"cronjob,omitempty"`
|
||||
}
|
||||
```
|
||||
|
||||
### func NewValue
|
||||
|
||||
``` go
|
||||
func NewValue(service types.ServiceConfig, main ...bool) *Value
|
||||
```
|
||||
|
||||
NewValue creates a new Value from a compose service. The value contains
|
||||
the necessary information to deploy the service (image, tag, replicas,
|
||||
etc.).
|
||||
|
||||
If \`main\` is true, the tag will be empty because it will be set in the
|
||||
helm chart appVersion.
|
||||
|
||||
### func (*Value) AddIngress
|
||||
|
||||
``` go
|
||||
func (v *Value) AddIngress(host, path string)
|
||||
```
|
||||
|
||||
### func (*Value) AddPersistence
|
||||
|
||||
``` go
|
||||
func (v *Value) AddPersistence(volumeName string)
|
||||
```
|
||||
|
||||
AddPersistence adds persistence configuration to the Value.
|
||||
|
||||
## type VolumeClaim
|
||||
|
||||
VolumeClaim is a kubernetes VolumeClaim. This is a
|
||||
PersistentVolumeClaim.
|
||||
|
||||
``` go
|
||||
type VolumeClaim struct {
|
||||
*v1.PersistentVolumeClaim
|
||||
// contains filtered or unexported fields
|
||||
}
|
||||
```
|
||||
|
||||
### func NewVolumeClaim
|
||||
|
||||
``` go
|
||||
func NewVolumeClaim(service types.ServiceConfig, volumeName, appName string) *VolumeClaim
|
||||
```
|
||||
|
||||
NewVolumeClaim creates a new VolumeClaim from a compose service.
|
||||
|
||||
### func (*VolumeClaim) Filename
|
||||
|
||||
``` go
|
||||
func (v *VolumeClaim) Filename() string
|
||||
```
|
||||
|
||||
Filename returns the suggested filename for a VolumeClaim.
|
||||
|
||||
### func (*VolumeClaim) Yaml
|
||||
|
||||
``` go
|
||||
func (v *VolumeClaim) Yaml() ([]byte, error)
|
||||
```
|
||||
|
||||
Yaml marshals a VolumeClaim into yaml.
|
||||
|
||||
## type Yaml
|
||||
|
||||
Yaml is a kubernetes object that can be converted to yaml.
|
||||
|
||||
``` go
|
||||
type Yaml interface {
|
||||
Yaml() ([]byte, error)
|
||||
Filename() string
|
||||
}
|
||||
```
|
||||
|
||||
Generated by [gomarkdoc](https://github.com/princjef/gomarkdoc)
|
Reference in New Issue
Block a user