diff --git a/_proto/hapi/release/release.proto b/_proto/hapi/release/release.proto index 4a6afa0fe..95bc076a3 100644 --- a/_proto/hapi/release/release.proto +++ b/_proto/hapi/release/release.proto @@ -50,4 +50,8 @@ message Release { // Namespace is the kubernetes namespace of the release. string namespace = 8; + + // Annotations is an unstructured key value map stored with a release that + // may be set by external tools to store and retrieve arbitrary metadata. + map annotations = 9; } diff --git a/_proto/hapi/services/tiller.proto b/_proto/hapi/services/tiller.proto index 1fb6a86e9..faffd4bc5 100644 --- a/_proto/hapi/services/tiller.proto +++ b/_proto/hapi/services/tiller.proto @@ -209,6 +209,9 @@ message UpdateReleaseRequest { bool reuse_values = 10; // Force resource update through delete/recreate if needed. bool force = 11; + // Annotations is an unstructured key value map stored with a release that + // may be set by external tools to store and retrieve arbitrary metadata. + map annotations = 12; } // UpdateReleaseResponse is the response to an update request. @@ -271,6 +274,9 @@ message InstallReleaseRequest { // wait, if true, will wait until all Pods, PVCs, and Services are in a ready state // before marking the release as successful. It will wait for as long as timeout bool wait = 9; + // Annotations is an unstructured key value map stored with a release that + // may be set by external tools to store and retrieve arbitrary metadata. + map annotations = 10; } // InstallReleaseResponse is the response from a release installation. diff --git a/cmd/helm/install.go b/cmd/helm/install.go index 7e59333b6..64fa1c065 100644 --- a/cmd/helm/install.go +++ b/cmd/helm/install.go @@ -118,6 +118,7 @@ type installCmd struct { wait bool repoURL string devel bool + annotations []string certFile string keyFile string @@ -193,6 +194,7 @@ func newInstallCmd(c helm.Interface, out io.Writer) *cobra.Command { f.StringVar(&inst.keyFile, "key-file", "", "identify HTTPS client using this SSL key file") f.StringVar(&inst.caFile, "ca-file", "", "verify certificates of HTTPS-enabled servers using this CA bundle") f.BoolVar(&inst.devel, "devel", false, "use development versions, too. Equivalent to version '>0.0.0-a'. If --version is set, this is ignored.") + f.StringArrayVar(&inst.annotations, "annotations", []string{}, "set release annotations (can specify multiple or separate values with commas: key1=val1,key2=val2)") return cmd } @@ -209,6 +211,11 @@ func (i *installCmd) run() error { return err } + annotations, err := parseAnnotations(i.annotations) + if err != nil { + return err + } + // If template is specified, try to run the template. if i.nameTemplate != "" { i.name, err = generateName(i.nameTemplate) @@ -245,7 +252,8 @@ func (i *installCmd) run() error { helm.InstallReuseName(i.replace), helm.InstallDisableHooks(i.disableHooks), helm.InstallTimeout(i.timeout), - helm.InstallWait(i.wait)) + helm.InstallWait(i.wait), + helm.InstallAnnotations(annotations)) if err != nil { return prettyError(err) } @@ -469,3 +477,17 @@ func checkDependencies(ch *chart.Chart, reqs *chartutil.Requirements) error { } return nil } + +func parseAnnotations(input []string) (map[string]string, error) { + annotations := map[string]string{} + for _, a := range input { + for _, s := range strings.Split(a, ",") { + v := strings.Split(s, "=") + if len(v) < 2 || len(v[0]) == 0 { + return nil, fmt.Errorf("invalid annotations format: '%s', should be =[value]", s) + } + annotations[v[0]] = v[1] + } + } + return annotations, nil +} diff --git a/cmd/helm/printer.go b/cmd/helm/printer.go index ebb24bf7d..b07560ec0 100644 --- a/cmd/helm/printer.go +++ b/cmd/helm/printer.go @@ -42,6 +42,10 @@ HOOKS: {{- end }} MANIFEST: {{.Release.Manifest}} +ANNOTATIONS: +{{- range $k, $v := .Release.Annotations }} +{{$k}}={{$v}} +{{- end }} ` func printRelease(out io.Writer, rel *release.Release) error { diff --git a/cmd/helm/upgrade.go b/cmd/helm/upgrade.go index 989d73cdd..5ae45a867 100644 --- a/cmd/helm/upgrade.go +++ b/cmd/helm/upgrade.go @@ -74,6 +74,7 @@ type upgradeCmd struct { wait bool repoURL string devel bool + annotations []string certFile string keyFile string @@ -132,6 +133,7 @@ func newUpgradeCmd(client helm.Interface, out io.Writer) *cobra.Command { f.StringVar(&upgrade.keyFile, "key-file", "", "identify HTTPS client using this SSL key file") f.StringVar(&upgrade.caFile, "ca-file", "", "verify certificates of HTTPS-enabled servers using this CA bundle") f.BoolVar(&upgrade.devel, "devel", false, "use development versions, too. Equivalent to version '>0.0.0-a'. If --version is set, this is ignored.") + f.StringArrayVar(&upgrade.annotations, "annotations", []string{}, "set release annotations (can specify multiple or separate values with commas: key1=val1,key2=val2)") f.MarkDeprecated("disable-hooks", "use --no-hooks instead") @@ -168,6 +170,7 @@ func (u *upgradeCmd) run() error { namespace: u.namespace, timeout: u.timeout, wait: u.wait, + annotations: u.annotations, } return ic.run() } @@ -178,6 +181,11 @@ func (u *upgradeCmd) run() error { return err } + annotations, err := parseAnnotations(u.annotations) + if err != nil { + return err + } + // Check chart requirements to make sure all dependencies are present in /charts if ch, err := chartutil.Load(chartPath); err == nil { if req, err := chartutil.LoadRequirements(ch); err == nil { @@ -202,7 +210,8 @@ func (u *upgradeCmd) run() error { helm.UpgradeTimeout(u.timeout), helm.ResetValues(u.resetValues), helm.ReuseValues(u.reuseValues), - helm.UpgradeWait(u.wait)) + helm.UpgradeWait(u.wait), + helm.UpgradeAnnotations(annotations)) if err != nil { return fmt.Errorf("UPGRADE FAILED: %v", prettyError(err)) } diff --git a/docs/helm/helm_install.md b/docs/helm/helm_install.md index 0a4cb48e8..40468fbae 100644 --- a/docs/helm/helm_install.md +++ b/docs/helm/helm_install.md @@ -68,29 +68,30 @@ helm install [CHART] ### Options ``` - --ca-file string verify certificates of HTTPS-enabled servers using this CA bundle - --cert-file string identify HTTPS client using this SSL certificate file - --devel use development versions, too. Equivalent to version '>0.0.0-a'. If --version is set, this is ignored. - --dry-run simulate an install - --key-file string identify HTTPS client using this SSL key file - --keyring string location of public keys used for verification (default "~/.gnupg/pubring.gpg") - -n, --name string release name. If unspecified, it will autogenerate one for you - --name-template string specify template used to name the release - --namespace string namespace to install the release into - --no-hooks prevent hooks from running during install - --replace re-use the given name, even if that name is already used. This is unsafe in production - --repo string chart repository url where to locate the requested chart - --set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2) - --timeout int time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks) (default 300) - --tls enable TLS for request - --tls-ca-cert string path to TLS CA certificate file (default "$HELM_HOME/ca.pem") - --tls-cert string path to TLS certificate file (default "$HELM_HOME/cert.pem") - --tls-key string path to TLS key file (default "$HELM_HOME/key.pem") - --tls-verify enable TLS for request and verify remote - -f, --values valueFiles specify values in a YAML file (can specify multiple) (default []) - --verify verify the package before installing it - --version string specify the exact chart version to install. If this is not specified, the latest version is installed - --wait if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful. It will wait for as long as --timeout + --annotations stringArray set release annotations (can specify multiple or separate values with commas: key1=val1,key2=val2) + --ca-file string verify certificates of HTTPS-enabled servers using this CA bundle + --cert-file string identify HTTPS client using this SSL certificate file + --devel use development versions, too. Equivalent to version '>0.0.0-a'. If --version is set, this is ignored. + --dry-run simulate an install + --key-file string identify HTTPS client using this SSL key file + --keyring string location of public keys used for verification (default "~/.gnupg/pubring.gpg") + -n, --name string release name. If unspecified, it will autogenerate one for you + --name-template string specify template used to name the release + --namespace string namespace to install the release into + --no-hooks prevent hooks from running during install + --replace re-use the given name, even if that name is already used. This is unsafe in production + --repo string chart repository url where to locate the requested chart + --set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2) + --timeout int time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks) (default 300) + --tls enable TLS for request + --tls-ca-cert string path to TLS CA certificate file (default "$HELM_HOME/ca.pem") + --tls-cert string path to TLS certificate file (default "$HELM_HOME/cert.pem") + --tls-key string path to TLS key file (default "$HELM_HOME/key.pem") + --tls-verify enable TLS for request and verify remote + -f, --values valueFiles specify values in a YAML file (can specify multiple) (default []) + --verify verify the package before installing it + --version string specify the exact chart version to install. If this is not specified, the latest version is installed + --wait if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful. It will wait for as long as --timeout ``` ### Options inherited from parent commands @@ -106,4 +107,4 @@ helm install [CHART] ### SEE ALSO * [helm](helm.md) - The Helm package manager for Kubernetes. -###### Auto generated by spf13/cobra on 23-Jun-2017 +###### Auto generated by spf13/cobra on 12-Jul-2017 diff --git a/docs/helm/helm_upgrade.md b/docs/helm/helm_upgrade.md index 934cadd13..422e3254a 100644 --- a/docs/helm/helm_upgrade.md +++ b/docs/helm/helm_upgrade.md @@ -36,31 +36,32 @@ helm upgrade [RELEASE] [CHART] ### Options ``` - --ca-file string verify certificates of HTTPS-enabled servers using this CA bundle - --cert-file string identify HTTPS client using this SSL certificate file - --devel use development versions, too. Equivalent to version '>0.0.0-a'. If --version is set, this is ignored. - --dry-run simulate an upgrade - --force force resource update through delete/recreate if needed - -i, --install if a release by this name doesn't already exist, run an install - --key-file string identify HTTPS client using this SSL key file - --keyring string path to the keyring that contains public signing keys (default "~/.gnupg/pubring.gpg") - --namespace string namespace to install the release into (only used if --install is set) (default "default") - --no-hooks disable pre/post upgrade hooks - --recreate-pods performs pods restart for the resource if applicable - --repo string chart repository url where to locate the requested chart - --reset-values when upgrading, reset the values to the ones built into the chart - --reuse-values when upgrading, reuse the last release's values, and merge in any new values. If '--reset-values' is specified, this is ignored. - --set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2) - --timeout int time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks) (default 300) - --tls enable TLS for request - --tls-ca-cert string path to TLS CA certificate file (default "$HELM_HOME/ca.pem") - --tls-cert string path to TLS certificate file (default "$HELM_HOME/cert.pem") - --tls-key string path to TLS key file (default "$HELM_HOME/key.pem") - --tls-verify enable TLS for request and verify remote - -f, --values valueFiles specify values in a YAML file (can specify multiple) (default []) - --verify verify the provenance of the chart before upgrading - --version string specify the exact chart version to use. If this is not specified, the latest version is used - --wait if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful. It will wait for as long as --timeout + --annotations stringArray set release annotations (can specify multiple or separate values with commas: key1=val1,key2=val2) + --ca-file string verify certificates of HTTPS-enabled servers using this CA bundle + --cert-file string identify HTTPS client using this SSL certificate file + --devel use development versions, too. Equivalent to version '>0.0.0-a'. If --version is set, this is ignored. + --dry-run simulate an upgrade + --force force resource update through delete/recreate if needed + -i, --install if a release by this name doesn't already exist, run an install + --key-file string identify HTTPS client using this SSL key file + --keyring string path to the keyring that contains public signing keys (default "~/.gnupg/pubring.gpg") + --namespace string namespace to install the release into (only used if --install is set) (default "default") + --no-hooks disable pre/post upgrade hooks + --recreate-pods performs pods restart for the resource if applicable + --repo string chart repository url where to locate the requested chart + --reset-values when upgrading, reset the values to the ones built into the chart + --reuse-values when upgrading, reuse the last release's values, and merge in any new values. If '--reset-values' is specified, this is ignored. + --set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2) + --timeout int time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks) (default 300) + --tls enable TLS for request + --tls-ca-cert string path to TLS CA certificate file (default "$HELM_HOME/ca.pem") + --tls-cert string path to TLS certificate file (default "$HELM_HOME/cert.pem") + --tls-key string path to TLS key file (default "$HELM_HOME/key.pem") + --tls-verify enable TLS for request and verify remote + -f, --values valueFiles specify values in a YAML file (can specify multiple) (default []) + --verify verify the provenance of the chart before upgrading + --version string specify the exact chart version to use. If this is not specified, the latest version is used + --wait if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful. It will wait for as long as --timeout ``` ### Options inherited from parent commands @@ -76,4 +77,4 @@ helm upgrade [RELEASE] [CHART] ### SEE ALSO * [helm](helm.md) - The Helm package manager for Kubernetes. -###### Auto generated by spf13/cobra on 23-Jun-2017 +###### Auto generated by spf13/cobra on 12-Jul-2017 diff --git a/pkg/helm/option.go b/pkg/helm/option.go index 2b30cd3c5..13e6c6fda 100644 --- a/pkg/helm/option.go +++ b/pkg/helm/option.go @@ -393,6 +393,20 @@ func StatusReleaseVersion(version int32) StatusOption { } } +// InstallAnnotations attaches annotations to the release +func InstallAnnotations(annotations map[string]string) InstallOption { + return func(opts *options) { + opts.instReq.Annotations = annotations + } +} + +// UpgradeAnnotations attaches annotations to the release +func UpgradeAnnotations(annotations map[string]string) UpdateOption { + return func(opts *options) { + opts.updateReq.Annotations = annotations + } +} + // DeleteOption allows setting optional attributes when // performing a UninstallRelease tiller rpc. type DeleteOption func(*options) diff --git a/pkg/proto/hapi/release/release.pb.go b/pkg/proto/hapi/release/release.pb.go index 511b543d7..ee0dfce28 100644 --- a/pkg/proto/hapi/release/release.pb.go +++ b/pkg/proto/hapi/release/release.pb.go @@ -34,6 +34,9 @@ type Release struct { Version int32 `protobuf:"varint,7,opt,name=version" json:"version,omitempty"` // Namespace is the kubernetes namespace of the release. Namespace string `protobuf:"bytes,8,opt,name=namespace" json:"namespace,omitempty"` + // Annotations is an unstructured key value map stored with a release that + // may be set by external tools to store and retrieve arbitrary metadata. + Annotations map[string]string `protobuf:"bytes,9,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` } func (m *Release) Reset() { *m = Release{} } @@ -97,6 +100,13 @@ func (m *Release) GetNamespace() string { return "" } +func (m *Release) GetAnnotations() map[string]string { + if m != nil { + return m.Annotations + } + return nil +} + func init() { proto.RegisterType((*Release)(nil), "hapi.release.Release") } @@ -104,21 +114,26 @@ func init() { func init() { proto.RegisterFile("hapi/release/release.proto", fileDescriptor2) } var fileDescriptor2 = []byte{ - // 256 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x90, 0xbf, 0x4e, 0xc3, 0x40, - 0x0c, 0xc6, 0x95, 0x36, 0x7f, 0x1a, 0xc3, 0x82, 0x07, 0xb0, 0x22, 0x86, 0x88, 0x01, 0x22, 0x86, - 0x54, 0x82, 0x37, 0x80, 0x05, 0xd6, 0x1b, 0xd9, 0x8e, 0xe8, 0x42, 0x4e, 0xa5, 0xe7, 0x28, 0x17, - 0xf1, 0x2c, 0x3c, 0x2e, 0xba, 0x3f, 0x85, 0x94, 0x2e, 0x4e, 0xec, 0xdf, 0xa7, 0xcf, 0xdf, 0x19, - 0xaa, 0x41, 0x8e, 0x7a, 0x3b, 0xa9, 0x4f, 0x25, 0xad, 0x3a, 0x7c, 0xdb, 0x71, 0xe2, 0x99, 0xf1, - 0xdc, 0xb1, 0x36, 0xce, 0xaa, 0xab, 0x23, 0xe5, 0xc0, 0xbc, 0x0b, 0xb2, 0x7f, 0x40, 0x9b, 0x9e, - 0x8f, 0x40, 0x37, 0xc8, 0x69, 0xde, 0x76, 0x6c, 0x7a, 0xfd, 0x11, 0xc1, 0xe5, 0x12, 0xb8, 0x1a, - 0xe6, 0x37, 0xdf, 0x2b, 0x28, 0x44, 0xf0, 0x41, 0x84, 0xd4, 0xc8, 0xbd, 0xa2, 0xa4, 0x4e, 0x9a, - 0x52, 0xf8, 0x7f, 0xbc, 0x85, 0xd4, 0xd9, 0xd3, 0xaa, 0x4e, 0x9a, 0xb3, 0x07, 0x6c, 0x97, 0xf9, - 0xda, 0x57, 0xd3, 0xb3, 0xf0, 0x1c, 0xef, 0x20, 0xf3, 0xb6, 0xb4, 0xf6, 0xc2, 0x8b, 0x20, 0x0c, - 0x9b, 0x9e, 0x5d, 0x15, 0x81, 0xe3, 0x3d, 0xe4, 0x21, 0x18, 0xa5, 0x4b, 0xcb, 0xa8, 0xf4, 0x44, - 0x44, 0x05, 0x56, 0xb0, 0xd9, 0x4b, 0xa3, 0x7b, 0x65, 0x67, 0xca, 0x7c, 0xa8, 0xdf, 0x1e, 0x1b, - 0xc8, 0xdc, 0x41, 0x2c, 0xe5, 0xf5, 0xfa, 0x34, 0xd9, 0x0b, 0xf3, 0x4e, 0x04, 0x01, 0x12, 0x14, - 0x5f, 0x6a, 0xb2, 0x9a, 0x0d, 0x15, 0x75, 0xd2, 0x64, 0xe2, 0xd0, 0xe2, 0x35, 0x94, 0xee, 0x91, - 0x76, 0x94, 0x9d, 0xa2, 0x8d, 0x5f, 0xf0, 0x37, 0x78, 0x2a, 0xdf, 0x8a, 0x68, 0xf7, 0x9e, 0xfb, - 0x63, 0x3d, 0xfe, 0x04, 0x00, 0x00, 0xff, 0xff, 0xc8, 0x8f, 0xec, 0x97, 0xbb, 0x01, 0x00, 0x00, + // 322 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x91, 0x4f, 0x4f, 0xf2, 0x40, + 0x10, 0xc6, 0x53, 0x4a, 0x29, 0x1d, 0xde, 0x03, 0xef, 0xc4, 0xe8, 0xa6, 0xf1, 0xd0, 0x78, 0xc0, + 0xc6, 0x43, 0x49, 0xf4, 0x62, 0x3c, 0x98, 0xa8, 0x31, 0xc1, 0xeb, 0x1e, 0xbd, 0xad, 0x64, 0x2b, + 0x0d, 0xb0, 0x43, 0xba, 0x2b, 0x09, 0x5f, 0xc7, 0x4f, 0x6a, 0xf6, 0x0f, 0x52, 0xf0, 0xb2, 0xdd, + 0x99, 0xe7, 0xd7, 0x79, 0xa6, 0x4f, 0x21, 0x5f, 0x88, 0x4d, 0x33, 0x6d, 0xe5, 0x4a, 0x0a, 0x2d, + 0xf7, 0xcf, 0x6a, 0xd3, 0x92, 0x21, 0xfc, 0x67, 0xb5, 0x2a, 0xf4, 0xf2, 0x8b, 0x23, 0x72, 0x41, + 0xb4, 0xf4, 0xd8, 0x89, 0xd0, 0xa8, 0x9a, 0x8e, 0x84, 0xf9, 0x42, 0xb4, 0x66, 0x3a, 0x27, 0x55, + 0x37, 0x9f, 0x41, 0x38, 0xef, 0x0a, 0xf6, 0xf4, 0xfd, 0xab, 0xef, 0x18, 0x52, 0xee, 0xe7, 0x20, + 0x42, 0x5f, 0x89, 0xb5, 0x64, 0x51, 0x11, 0x95, 0x19, 0x77, 0x77, 0x9c, 0x40, 0xdf, 0x8e, 0x67, + 0xbd, 0x22, 0x2a, 0x47, 0xb7, 0x58, 0x75, 0xf7, 0xab, 0xde, 0x54, 0x4d, 0xdc, 0xe9, 0x78, 0x0d, + 0x89, 0x1b, 0xcb, 0x62, 0x07, 0xfe, 0xf7, 0xa0, 0x77, 0x7a, 0xb1, 0x27, 0xf7, 0x3a, 0xde, 0xc0, + 0xc0, 0x2f, 0xc6, 0xfa, 0xdd, 0x91, 0x81, 0x74, 0x0a, 0x0f, 0x04, 0xe6, 0x30, 0x5c, 0x0b, 0xd5, + 0xd4, 0x52, 0x1b, 0x96, 0xb8, 0xa5, 0x7e, 0x6b, 0x2c, 0x21, 0xb1, 0x81, 0x68, 0x36, 0x28, 0xe2, + 0xbf, 0x9b, 0xcd, 0x88, 0x96, 0xdc, 0x03, 0xc8, 0x20, 0xdd, 0xca, 0x56, 0x37, 0xa4, 0x58, 0x5a, + 0x44, 0x65, 0xc2, 0xf7, 0x25, 0x5e, 0x42, 0x66, 0x3f, 0x52, 0x6f, 0xc4, 0x5c, 0xb2, 0xa1, 0x33, + 0x38, 0x34, 0x70, 0x06, 0x23, 0xa1, 0x14, 0x19, 0x61, 0x1a, 0x52, 0x9a, 0x65, 0xce, 0x67, 0x72, + 0xec, 0x13, 0xa2, 0xab, 0x9e, 0x0e, 0xe0, 0xab, 0x32, 0xed, 0x8e, 0x77, 0x5f, 0xcd, 0x1f, 0x61, + 0x7c, 0x0a, 0xe0, 0x18, 0xe2, 0xa5, 0xdc, 0x85, 0xac, 0xed, 0x15, 0xcf, 0x20, 0xd9, 0x8a, 0xd5, + 0x97, 0x74, 0x59, 0x67, 0xdc, 0x17, 0x0f, 0xbd, 0xfb, 0xe8, 0x39, 0x7b, 0x4f, 0x83, 0xe1, 0xc7, + 0xc0, 0xfd, 0xb6, 0xbb, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5d, 0x29, 0xd2, 0x2f, 0x45, 0x02, + 0x00, 0x00, } diff --git a/pkg/proto/hapi/services/tiller.pb.go b/pkg/proto/hapi/services/tiller.pb.go index 023749c4f..ce1e73294 100644 --- a/pkg/proto/hapi/services/tiller.pb.go +++ b/pkg/proto/hapi/services/tiller.pb.go @@ -376,6 +376,9 @@ type UpdateReleaseRequest struct { ReuseValues bool `protobuf:"varint,10,opt,name=reuse_values,json=reuseValues" json:"reuse_values,omitempty"` // Force resource update through delete/recreate if needed. Force bool `protobuf:"varint,11,opt,name=force" json:"force,omitempty"` + // Annotations is an unstructured key value map stored with a release that + // may be set by external tools to store and retrieve arbitrary metadata. + Annotations map[string]string `protobuf:"bytes,12,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` } func (m *UpdateReleaseRequest) Reset() { *m = UpdateReleaseRequest{} } @@ -460,6 +463,13 @@ func (m *UpdateReleaseRequest) GetForce() bool { return false } +func (m *UpdateReleaseRequest) GetAnnotations() map[string]string { + if m != nil { + return m.Annotations + } + return nil +} + // UpdateReleaseResponse is the response to an update request. type UpdateReleaseResponse struct { Release *hapi_release5.Release `protobuf:"bytes,1,opt,name=release" json:"release,omitempty"` @@ -600,6 +610,9 @@ type InstallReleaseRequest struct { // wait, if true, will wait until all Pods, PVCs, and Services are in a ready state // before marking the release as successful. It will wait for as long as timeout Wait bool `protobuf:"varint,9,opt,name=wait" json:"wait,omitempty"` + // Annotations is an unstructured key value map stored with a release that + // may be set by external tools to store and retrieve arbitrary metadata. + Annotations map[string]string `protobuf:"bytes,10,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` } func (m *InstallReleaseRequest) Reset() { *m = InstallReleaseRequest{} } @@ -670,6 +683,13 @@ func (m *InstallReleaseRequest) GetWait() bool { return false } +func (m *InstallReleaseRequest) GetAnnotations() map[string]string { + if m != nil { + return m.Annotations + } + return nil +} + // InstallReleaseResponse is the response from a release installation. type InstallReleaseResponse struct { Release *hapi_release5.Release `protobuf:"bytes,1,opt,name=release" json:"release,omitempty"` @@ -1368,82 +1388,86 @@ var _ReleaseService_serviceDesc = grpc.ServiceDesc{ func init() { proto.RegisterFile("hapi/services/tiller.proto", fileDescriptor0) } var fileDescriptor0 = []byte{ - // 1217 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0xdd, 0x6e, 0xe3, 0xc4, - 0x17, 0xaf, 0xf3, 0x9d, 0x93, 0x36, 0xff, 0x74, 0x9a, 0xb6, 0xae, 0xff, 0x0b, 0x2a, 0x46, 0xb0, - 0xd9, 0x85, 0x4d, 0x21, 0x70, 0x83, 0x84, 0x90, 0xba, 0xdd, 0xa8, 0x2d, 0x94, 0xae, 0xe4, 0x6c, - 0x17, 0x09, 0x01, 0x91, 0x9b, 0x4c, 0x5a, 0xb3, 0x8e, 0x27, 0x78, 0xc6, 0x65, 0x7b, 0xcb, 0x1d, - 0x8f, 0xc2, 0x5b, 0xf0, 0x1e, 0x5c, 0xc2, 0x83, 0x20, 0xcf, 0x87, 0xeb, 0x49, 0xed, 0xd6, 0xf4, - 0x26, 0x9e, 0x99, 0xf3, 0xfd, 0x3b, 0x67, 0xce, 0x9c, 0x80, 0x75, 0xe9, 0x2e, 0xbc, 0x3d, 0x8a, - 0xc3, 0x2b, 0x6f, 0x82, 0xe9, 0x1e, 0xf3, 0x7c, 0x1f, 0x87, 0xfd, 0x45, 0x48, 0x18, 0x41, 0xdd, - 0x98, 0xd6, 0x57, 0xb4, 0xbe, 0xa0, 0x59, 0x5b, 0x5c, 0x62, 0x72, 0xe9, 0x86, 0x4c, 0xfc, 0x0a, - 0x6e, 0x6b, 0x3b, 0x7d, 0x4e, 0x82, 0x99, 0x77, 0x21, 0x09, 0xc2, 0x44, 0x88, 0x7d, 0xec, 0x52, - 0xac, 0xbe, 0x9a, 0x90, 0xa2, 0x79, 0xc1, 0x8c, 0x48, 0xc2, 0xff, 0x35, 0x02, 0xc3, 0x94, 0x8d, - 0xc3, 0x28, 0x90, 0xc4, 0x1d, 0x8d, 0x48, 0x99, 0xcb, 0x22, 0xaa, 0x19, 0xbb, 0xc2, 0x21, 0xf5, - 0x48, 0xa0, 0xbe, 0x82, 0x66, 0xff, 0x59, 0x82, 0x8d, 0x13, 0x8f, 0x32, 0x47, 0x08, 0x52, 0x07, - 0xff, 0x12, 0x61, 0xca, 0x50, 0x17, 0xaa, 0xbe, 0x37, 0xf7, 0x98, 0x69, 0xec, 0x1a, 0xbd, 0xb2, - 0x23, 0x36, 0x68, 0x0b, 0x6a, 0x64, 0x36, 0xa3, 0x98, 0x99, 0xa5, 0x5d, 0xa3, 0xd7, 0x74, 0xe4, - 0x0e, 0x7d, 0x05, 0x75, 0x4a, 0x42, 0x36, 0x3e, 0xbf, 0x36, 0xcb, 0xbb, 0x46, 0xaf, 0x3d, 0xf8, - 0xa0, 0x9f, 0x85, 0x53, 0x3f, 0xb6, 0x34, 0x22, 0x21, 0xeb, 0xc7, 0x3f, 0xcf, 0xaf, 0x9d, 0x1a, - 0xe5, 0xdf, 0x58, 0xef, 0xcc, 0xf3, 0x19, 0x0e, 0xcd, 0x8a, 0xd0, 0x2b, 0x76, 0xe8, 0x10, 0x80, - 0xeb, 0x25, 0xe1, 0x14, 0x87, 0x66, 0x95, 0xab, 0xee, 0x15, 0x50, 0xfd, 0x32, 0xe6, 0x77, 0x9a, - 0x54, 0x2d, 0xd1, 0x97, 0xb0, 0x2a, 0x20, 0x19, 0x4f, 0xc8, 0x14, 0x53, 0xb3, 0xb6, 0x5b, 0xee, - 0xb5, 0x07, 0x3b, 0x42, 0x95, 0x82, 0x7f, 0x24, 0x40, 0x3b, 0x20, 0x53, 0xec, 0xb4, 0x04, 0x7b, - 0xbc, 0xa6, 0xe8, 0x11, 0x34, 0x03, 0x77, 0x8e, 0xe9, 0xc2, 0x9d, 0x60, 0xb3, 0xce, 0x3d, 0xbc, - 0x39, 0xb0, 0x7f, 0x82, 0x86, 0x32, 0x6e, 0x0f, 0xa0, 0x26, 0x42, 0x43, 0x2d, 0xa8, 0x9f, 0x9d, - 0x7e, 0x73, 0xfa, 0xf2, 0xbb, 0xd3, 0xce, 0x0a, 0x6a, 0x40, 0xe5, 0x74, 0xff, 0xdb, 0x61, 0xc7, - 0x40, 0xeb, 0xb0, 0x76, 0xb2, 0x3f, 0x7a, 0x35, 0x76, 0x86, 0x27, 0xc3, 0xfd, 0xd1, 0xf0, 0x45, - 0xa7, 0x64, 0xbf, 0x0b, 0xcd, 0xc4, 0x67, 0x54, 0x87, 0xf2, 0xfe, 0xe8, 0x40, 0x88, 0xbc, 0x18, - 0x8e, 0x0e, 0x3a, 0x86, 0xfd, 0xbb, 0x01, 0x5d, 0x3d, 0x45, 0x74, 0x41, 0x02, 0x8a, 0xe3, 0x1c, - 0x4d, 0x48, 0x14, 0x24, 0x39, 0xe2, 0x1b, 0x84, 0xa0, 0x12, 0xe0, 0xb7, 0x2a, 0x43, 0x7c, 0x1d, - 0x73, 0x32, 0xc2, 0x5c, 0x9f, 0x67, 0xa7, 0xec, 0x88, 0x0d, 0xfa, 0x14, 0x1a, 0x32, 0x74, 0x6a, - 0x56, 0x76, 0xcb, 0xbd, 0xd6, 0x60, 0x53, 0x07, 0x44, 0x5a, 0x74, 0x12, 0x36, 0xfb, 0x10, 0xb6, - 0x0f, 0xb1, 0xf2, 0x44, 0xe0, 0xa5, 0x2a, 0x26, 0xb6, 0xeb, 0xce, 0x31, 0x77, 0x26, 0xb6, 0xeb, - 0xce, 0x31, 0x32, 0xa1, 0x2e, 0xcb, 0x8d, 0xbb, 0x53, 0x75, 0xd4, 0xd6, 0x66, 0x60, 0xde, 0x56, - 0x24, 0xe3, 0xca, 0xd2, 0xf4, 0x21, 0x54, 0xe2, 0x9b, 0xc0, 0xd5, 0xb4, 0x06, 0x48, 0xf7, 0xf3, - 0x38, 0x98, 0x11, 0x87, 0xd3, 0xf5, 0x54, 0x95, 0x97, 0x53, 0x75, 0x94, 0xb6, 0x7a, 0x40, 0x02, - 0x86, 0x03, 0xf6, 0x30, 0xff, 0x4f, 0x60, 0x27, 0x43, 0x93, 0x0c, 0x60, 0x0f, 0xea, 0xd2, 0x35, - 0xae, 0x2d, 0x17, 0x57, 0xc5, 0x65, 0xff, 0x5d, 0x82, 0xee, 0xd9, 0x62, 0xea, 0x32, 0xac, 0x48, - 0x77, 0x38, 0xf5, 0x18, 0xaa, 0xbc, 0xa3, 0x48, 0x2c, 0xd6, 0x85, 0x6e, 0xd1, 0x76, 0x0e, 0xe2, - 0x5f, 0x47, 0xd0, 0xd1, 0x53, 0xa8, 0x5d, 0xb9, 0x7e, 0x84, 0x29, 0x07, 0x22, 0x41, 0x4d, 0x72, - 0xf2, 0x76, 0xe4, 0x48, 0x0e, 0xb4, 0x0d, 0xf5, 0x69, 0x78, 0x1d, 0xf7, 0x13, 0x7e, 0x05, 0x1b, - 0x4e, 0x6d, 0x1a, 0x5e, 0x3b, 0x51, 0x80, 0xde, 0x87, 0xb5, 0xa9, 0x47, 0xdd, 0x73, 0x1f, 0x8f, - 0x2f, 0x09, 0x79, 0x43, 0xf9, 0x2d, 0x6c, 0x38, 0xab, 0xf2, 0xf0, 0x28, 0x3e, 0x43, 0x56, 0x5c, - 0x49, 0x93, 0x10, 0xbb, 0x0c, 0x9b, 0x35, 0x4e, 0x4f, 0xf6, 0x31, 0x86, 0xcc, 0x9b, 0x63, 0x12, - 0x31, 0x7e, 0x75, 0xca, 0x8e, 0xda, 0xa2, 0xf7, 0x60, 0x35, 0xc4, 0x14, 0xb3, 0xb1, 0xf4, 0xb2, - 0xc1, 0x25, 0x5b, 0xfc, 0xec, 0xb5, 0x70, 0x0b, 0x41, 0xe5, 0x57, 0xd7, 0x63, 0x66, 0x93, 0x93, - 0xf8, 0x5a, 0x88, 0x45, 0x14, 0x2b, 0x31, 0x50, 0x62, 0x11, 0xc5, 0x52, 0xac, 0x0b, 0xd5, 0x19, - 0x09, 0x27, 0xd8, 0x6c, 0x71, 0x9a, 0xd8, 0xd8, 0x47, 0xb0, 0xb9, 0x04, 0xf2, 0x43, 0xf3, 0xf5, - 0x8f, 0x01, 0x5b, 0x0e, 0xf1, 0xfd, 0x73, 0x77, 0xf2, 0xa6, 0x40, 0xc6, 0x52, 0xe0, 0x96, 0xee, - 0x06, 0xb7, 0x9c, 0x01, 0x6e, 0xaa, 0x08, 0x2b, 0x5a, 0x11, 0x6a, 0xb0, 0x57, 0xf3, 0x61, 0xaf, - 0xe9, 0xb0, 0x2b, 0x4c, 0xeb, 0x29, 0x4c, 0x13, 0xc0, 0x1a, 0x69, 0xc0, 0xbe, 0x86, 0xed, 0x5b, - 0x51, 0x3e, 0x14, 0xb2, 0x3f, 0x4a, 0xb0, 0x79, 0x1c, 0x50, 0xe6, 0xfa, 0xfe, 0x12, 0x62, 0x49, - 0x3d, 0x1b, 0x85, 0xeb, 0xb9, 0xf4, 0x5f, 0xea, 0xb9, 0xac, 0x41, 0xae, 0xf2, 0x53, 0x49, 0xe5, - 0xa7, 0x50, 0x8d, 0x6b, 0x9d, 0xa5, 0xb6, 0xd4, 0x59, 0xd0, 0x3b, 0x00, 0xa2, 0x28, 0xb9, 0x72, - 0x01, 0x6d, 0x93, 0x9f, 0x9c, 0xca, 0x46, 0xa2, 0xb2, 0xd1, 0xc8, 0xce, 0x46, 0xaa, 0xc2, 0xed, - 0x63, 0xd8, 0x5a, 0x86, 0xea, 0xa1, 0xb0, 0xff, 0x66, 0xc0, 0xf6, 0x59, 0xe0, 0x65, 0x02, 0x9f, - 0x55, 0xaa, 0xb7, 0xa0, 0x28, 0x65, 0x40, 0xd1, 0x85, 0xea, 0x22, 0x0a, 0x2f, 0xb0, 0x84, 0x56, - 0x6c, 0xd2, 0x31, 0x56, 0xb4, 0x18, 0xed, 0x31, 0x98, 0xb7, 0x7d, 0x78, 0x60, 0x44, 0xb1, 0xd7, - 0xc9, 0x4b, 0xd0, 0x14, 0x5d, 0xdf, 0xde, 0x80, 0xf5, 0x43, 0xcc, 0x5e, 0x8b, 0x6b, 0x21, 0xc3, - 0xb3, 0x87, 0x80, 0xd2, 0x87, 0x37, 0xf6, 0xe4, 0x91, 0x6e, 0x4f, 0x8d, 0x45, 0x8a, 0x5f, 0x71, - 0xd9, 0x5f, 0x70, 0xdd, 0x47, 0x1e, 0x65, 0x24, 0xbc, 0xbe, 0x0b, 0xba, 0x0e, 0x94, 0xe7, 0xee, - 0x5b, 0xf9, 0x50, 0xc4, 0x4b, 0xfb, 0x90, 0x7b, 0x90, 0x88, 0x4a, 0x0f, 0xd2, 0xcf, 0xae, 0x51, - 0xec, 0xd9, 0xfd, 0x01, 0xd0, 0x2b, 0x9c, 0x4c, 0x00, 0xf7, 0xbc, 0x58, 0x2a, 0x09, 0x25, 0xbd, - 0xd0, 0x4c, 0xa8, 0x4f, 0x7c, 0xec, 0x06, 0xd1, 0x42, 0xa6, 0x4d, 0x6d, 0xed, 0x1f, 0x61, 0x43, - 0xd3, 0x2e, 0xfd, 0x8c, 0xe3, 0xa1, 0x17, 0x52, 0x7b, 0xbc, 0x44, 0x9f, 0x43, 0x4d, 0x8c, 0x45, - 0x5c, 0x77, 0x7b, 0xf0, 0x48, 0xf7, 0x9b, 0x2b, 0x89, 0x02, 0x39, 0x47, 0x39, 0x92, 0x77, 0xf0, - 0x57, 0x03, 0xda, 0xea, 0xa1, 0x17, 0x43, 0x1b, 0xf2, 0x60, 0x35, 0x3d, 0xd1, 0xa0, 0x27, 0xf9, - 0x33, 0xdd, 0xd2, 0x60, 0x6a, 0x3d, 0x2d, 0xc2, 0x2a, 0x22, 0xb0, 0x57, 0x3e, 0x31, 0x10, 0x85, - 0xce, 0xf2, 0xa0, 0x81, 0x9e, 0x65, 0xeb, 0xc8, 0x99, 0x6c, 0xac, 0x7e, 0x51, 0x76, 0x65, 0x16, - 0x5d, 0xf1, 0x9a, 0xd1, 0xa7, 0x03, 0x74, 0xaf, 0x1a, 0x7d, 0x20, 0xb1, 0xf6, 0x0a, 0xf3, 0x27, - 0x76, 0x7f, 0x86, 0x35, 0xed, 0x85, 0x43, 0x39, 0x68, 0x65, 0xcd, 0x1a, 0xd6, 0x47, 0x85, 0x78, - 0x13, 0x5b, 0x73, 0x68, 0xeb, 0x4d, 0x0a, 0xe5, 0x28, 0xc8, 0xec, 0xfa, 0xd6, 0xc7, 0xc5, 0x98, - 0x13, 0x73, 0x14, 0x3a, 0xcb, 0x3d, 0x24, 0x2f, 0x8f, 0x39, 0xfd, 0x2e, 0x2f, 0x8f, 0x79, 0xad, - 0xc9, 0x5e, 0x41, 0x2e, 0xc0, 0x4d, 0x0b, 0x41, 0x8f, 0x73, 0x13, 0xa2, 0x77, 0x1e, 0xab, 0x77, - 0x3f, 0x63, 0x62, 0x62, 0x01, 0xff, 0x5b, 0x7a, 0x63, 0x51, 0x0e, 0x34, 0xd9, 0x03, 0x87, 0xf5, - 0xac, 0x20, 0xf7, 0x52, 0x50, 0xb2, 0x2b, 0xdd, 0x11, 0x94, 0xde, 0xf2, 0xee, 0x08, 0x6a, 0xa9, - 0xc1, 0xd9, 0x2b, 0xc8, 0x83, 0xb6, 0x13, 0x05, 0xd2, 0x74, 0xdc, 0x16, 0x50, 0x8e, 0xf4, 0xed, - 0xae, 0x66, 0x3d, 0x29, 0xc0, 0x79, 0x73, 0xbf, 0x9f, 0xc3, 0xf7, 0x0d, 0xc5, 0x7a, 0x5e, 0xe3, - 0xff, 0x69, 0x3f, 0xfb, 0x37, 0x00, 0x00, 0xff, 0xff, 0xf3, 0x7c, 0x9c, 0x49, 0xc1, 0x0f, 0x00, - 0x00, + // 1292 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x5b, 0x73, 0xdb, 0x44, + 0x14, 0x8e, 0x2c, 0x5f, 0x8f, 0xd3, 0xe0, 0x6e, 0xdd, 0x44, 0x15, 0x85, 0x09, 0x62, 0xa0, 0x6e, + 0x4b, 0x1d, 0x30, 0x3c, 0x70, 0xe9, 0x74, 0x26, 0x4d, 0x3d, 0x49, 0x21, 0xa4, 0x33, 0x72, 0x5b, + 0x66, 0x18, 0x5a, 0x8f, 0x62, 0xaf, 0x53, 0x51, 0x59, 0x6b, 0xb4, 0xab, 0x50, 0xbf, 0xf2, 0xc6, + 0xbf, 0xe2, 0x95, 0xdf, 0xc0, 0x2b, 0x3f, 0x84, 0xd1, 0x5e, 0x14, 0xad, 0x22, 0xa7, 0x6a, 0x66, + 0x78, 0xb1, 0xb4, 0x7b, 0xee, 0xe7, 0x3b, 0xe7, 0xe8, 0x8c, 0xc1, 0x7e, 0xe5, 0x2d, 0xfc, 0x1d, + 0x8a, 0xa3, 0x53, 0x7f, 0x82, 0xe9, 0x0e, 0xf3, 0x83, 0x00, 0x47, 0xfd, 0x45, 0x44, 0x18, 0x41, + 0xdd, 0x84, 0xd6, 0x57, 0xb4, 0xbe, 0xa0, 0xd9, 0x9b, 0x5c, 0x62, 0xf2, 0xca, 0x8b, 0x98, 0xf8, + 0x15, 0xdc, 0xf6, 0x56, 0xf6, 0x9e, 0x84, 0x33, 0xff, 0x44, 0x12, 0x84, 0x89, 0x08, 0x07, 0xd8, + 0xa3, 0x58, 0x3d, 0x35, 0x21, 0x45, 0xf3, 0xc3, 0x19, 0x91, 0x84, 0xf7, 0x35, 0x02, 0xc3, 0x94, + 0x8d, 0xa3, 0x38, 0x94, 0xc4, 0x1b, 0x1a, 0x91, 0x32, 0x8f, 0xc5, 0x54, 0x33, 0x76, 0x8a, 0x23, + 0xea, 0x93, 0x50, 0x3d, 0x05, 0xcd, 0xf9, 0xab, 0x02, 0xd7, 0x0e, 0x7d, 0xca, 0x5c, 0x21, 0x48, + 0x5d, 0xfc, 0x5b, 0x8c, 0x29, 0x43, 0x5d, 0xa8, 0x05, 0xfe, 0xdc, 0x67, 0x96, 0xb1, 0x6d, 0xf4, + 0x4c, 0x57, 0x1c, 0xd0, 0x26, 0xd4, 0xc9, 0x6c, 0x46, 0x31, 0xb3, 0x2a, 0xdb, 0x46, 0xaf, 0xe5, + 0xca, 0x13, 0x7a, 0x00, 0x0d, 0x4a, 0x22, 0x36, 0x3e, 0x5e, 0x5a, 0xe6, 0xb6, 0xd1, 0xdb, 0x18, + 0x7c, 0xd2, 0x2f, 0xca, 0x53, 0x3f, 0xb1, 0x34, 0x22, 0x11, 0xeb, 0x27, 0x3f, 0x0f, 0x97, 0x6e, + 0x9d, 0xf2, 0x67, 0xa2, 0x77, 0xe6, 0x07, 0x0c, 0x47, 0x56, 0x55, 0xe8, 0x15, 0x27, 0xb4, 0x0f, + 0xc0, 0xf5, 0x92, 0x68, 0x8a, 0x23, 0xab, 0xc6, 0x55, 0xf7, 0x4a, 0xa8, 0x7e, 0x92, 0xf0, 0xbb, + 0x2d, 0xaa, 0x5e, 0xd1, 0x7d, 0x58, 0x17, 0x29, 0x19, 0x4f, 0xc8, 0x14, 0x53, 0xab, 0xbe, 0x6d, + 0xf6, 0x36, 0x06, 0x37, 0x84, 0x2a, 0x95, 0xfe, 0x91, 0x48, 0xda, 0x1e, 0x99, 0x62, 0xb7, 0x2d, + 0xd8, 0x93, 0x77, 0x8a, 0x6e, 0x42, 0x2b, 0xf4, 0xe6, 0x98, 0x2e, 0xbc, 0x09, 0xb6, 0x1a, 0xdc, + 0xc3, 0xb3, 0x0b, 0xe7, 0x25, 0x34, 0x95, 0x71, 0x67, 0x00, 0x75, 0x11, 0x1a, 0x6a, 0x43, 0xe3, + 0xd9, 0xd1, 0x0f, 0x47, 0x4f, 0x7e, 0x3a, 0xea, 0xac, 0xa1, 0x26, 0x54, 0x8f, 0x76, 0x7f, 0x1c, + 0x76, 0x0c, 0x74, 0x15, 0xae, 0x1c, 0xee, 0x8e, 0x9e, 0x8e, 0xdd, 0xe1, 0xe1, 0x70, 0x77, 0x34, + 0x7c, 0xd4, 0xa9, 0x38, 0x1f, 0x42, 0x2b, 0xf5, 0x19, 0x35, 0xc0, 0xdc, 0x1d, 0xed, 0x09, 0x91, + 0x47, 0xc3, 0xd1, 0x5e, 0xc7, 0x70, 0xfe, 0x34, 0xa0, 0xab, 0x43, 0x44, 0x17, 0x24, 0xa4, 0x38, + 0xc1, 0x68, 0x42, 0xe2, 0x30, 0xc5, 0x88, 0x1f, 0x10, 0x82, 0x6a, 0x88, 0xdf, 0x28, 0x84, 0xf8, + 0x7b, 0xc2, 0xc9, 0x08, 0xf3, 0x02, 0x8e, 0x8e, 0xe9, 0x8a, 0x03, 0xfa, 0x02, 0x9a, 0x32, 0x74, + 0x6a, 0x55, 0xb7, 0xcd, 0x5e, 0x7b, 0x70, 0x5d, 0x4f, 0x88, 0xb4, 0xe8, 0xa6, 0x6c, 0xce, 0x3e, + 0x6c, 0xed, 0x63, 0xe5, 0x89, 0xc8, 0x97, 0xaa, 0x98, 0xc4, 0xae, 0x37, 0xc7, 0xdc, 0x99, 0xc4, + 0xae, 0x37, 0xc7, 0xc8, 0x82, 0x86, 0x2c, 0x37, 0xee, 0x4e, 0xcd, 0x55, 0x47, 0x87, 0x81, 0x75, + 0x5e, 0x91, 0x8c, 0xab, 0x48, 0xd3, 0xa7, 0x50, 0x4d, 0x3a, 0x81, 0xab, 0x69, 0x0f, 0x90, 0xee, + 0xe7, 0xe3, 0x70, 0x46, 0x5c, 0x4e, 0xd7, 0xa1, 0x32, 0xf3, 0x50, 0x1d, 0x64, 0xad, 0xee, 0x91, + 0x90, 0xe1, 0x90, 0x5d, 0xce, 0xff, 0x43, 0xb8, 0x51, 0xa0, 0x49, 0x06, 0xb0, 0x03, 0x0d, 0xe9, + 0x1a, 0xd7, 0xb6, 0x32, 0xaf, 0x8a, 0xcb, 0xf9, 0xa3, 0x0a, 0xdd, 0x67, 0x8b, 0xa9, 0xc7, 0xb0, + 0x22, 0x5d, 0xe0, 0xd4, 0x2d, 0xa8, 0xf1, 0x89, 0x22, 0x73, 0x71, 0x55, 0xe8, 0x16, 0x63, 0x67, + 0x2f, 0xf9, 0x75, 0x05, 0x1d, 0xdd, 0x81, 0xfa, 0xa9, 0x17, 0xc4, 0x98, 0xf2, 0x44, 0xa4, 0x59, + 0x93, 0x9c, 0x7c, 0x1c, 0xb9, 0x92, 0x03, 0x6d, 0x41, 0x63, 0x1a, 0x2d, 0x93, 0x79, 0xc2, 0x5b, + 0xb0, 0xe9, 0xd6, 0xa7, 0xd1, 0xd2, 0x8d, 0x43, 0xf4, 0x31, 0x5c, 0x99, 0xfa, 0xd4, 0x3b, 0x0e, + 0xf0, 0xf8, 0x15, 0x21, 0xaf, 0x29, 0xef, 0xc2, 0xa6, 0xbb, 0x2e, 0x2f, 0x0f, 0x92, 0x3b, 0x64, + 0x27, 0x95, 0x34, 0x89, 0xb0, 0xc7, 0xb0, 0x55, 0xe7, 0xf4, 0xf4, 0x9c, 0xe4, 0x90, 0xf9, 0x73, + 0x4c, 0x62, 0xc6, 0x5b, 0xc7, 0x74, 0xd5, 0x11, 0x7d, 0x04, 0xeb, 0x11, 0xa6, 0x98, 0x8d, 0xa5, + 0x97, 0x4d, 0x2e, 0xd9, 0xe6, 0x77, 0xcf, 0x85, 0x5b, 0x08, 0xaa, 0xbf, 0x7b, 0x3e, 0xb3, 0x5a, + 0x9c, 0xc4, 0xdf, 0x85, 0x58, 0x4c, 0xb1, 0x12, 0x03, 0x25, 0x16, 0x53, 0x2c, 0xc5, 0xba, 0x50, + 0x9b, 0x91, 0x68, 0x82, 0xad, 0x36, 0xa7, 0x89, 0x03, 0x7a, 0x01, 0x6d, 0x2f, 0x0c, 0x09, 0xf3, + 0x98, 0x4f, 0x42, 0x6a, 0xad, 0xf3, 0x92, 0xff, 0xae, 0x78, 0x9c, 0x14, 0xa1, 0xd1, 0xdf, 0x3d, + 0x93, 0x1e, 0x86, 0x2c, 0x5a, 0xba, 0x59, 0x7d, 0xf6, 0x03, 0xe8, 0xe4, 0x19, 0x50, 0x07, 0xcc, + 0xd7, 0x78, 0x29, 0xe1, 0x4b, 0x5e, 0x13, 0xd7, 0xb8, 0xdf, 0xb2, 0x3f, 0xc5, 0xe1, 0xdb, 0xca, + 0xd7, 0x86, 0x73, 0x00, 0xd7, 0x73, 0x56, 0x2f, 0x5b, 0x4e, 0xff, 0x1a, 0xb0, 0xe9, 0x92, 0x20, + 0x38, 0xf6, 0x26, 0xaf, 0x4b, 0x14, 0x54, 0x06, 0xfb, 0xca, 0xc5, 0xd8, 0x9b, 0x05, 0xd8, 0x67, + 0x7a, 0xa4, 0xaa, 0xf5, 0x88, 0x56, 0x15, 0xb5, 0xd5, 0x55, 0x51, 0xd7, 0xab, 0x42, 0x41, 0xde, + 0xc8, 0x40, 0x9e, 0xe2, 0xd9, 0xcc, 0xe0, 0xe9, 0x7c, 0x0f, 0x5b, 0xe7, 0xa2, 0xbc, 0x6c, 0xca, + 0xfe, 0x36, 0xe1, 0xfa, 0xe3, 0x90, 0x32, 0x2f, 0x08, 0x72, 0x19, 0x4b, 0xdb, 0xcd, 0x28, 0xdd, + 0x6e, 0x95, 0x77, 0x69, 0x37, 0x53, 0x4b, 0xb9, 0xc2, 0xa7, 0x9a, 0xc1, 0xa7, 0x54, 0x0b, 0x6a, + 0x83, 0xaf, 0x9e, 0x1b, 0x7c, 0xe8, 0x03, 0x00, 0xd1, 0x33, 0x5c, 0xb9, 0x48, 0x6d, 0x8b, 0xdf, + 0x1c, 0xc9, 0x39, 0xa7, 0xd0, 0x68, 0x16, 0xa3, 0x91, 0x6d, 0xc0, 0x97, 0x7a, 0x1f, 0x01, 0xef, + 0xa3, 0xfb, 0xc5, 0x7d, 0x54, 0x98, 0xd3, 0xff, 0xb9, 0x91, 0x1e, 0xc3, 0x66, 0xde, 0xec, 0xa5, + 0x07, 0xb3, 0x01, 0x5b, 0xcf, 0x42, 0xbf, 0xb0, 0x30, 0x8a, 0x5a, 0xe9, 0x1c, 0x54, 0x95, 0x02, + 0xa8, 0xba, 0x50, 0x5b, 0xc4, 0xd1, 0x09, 0x96, 0xd0, 0x8b, 0x43, 0x16, 0x83, 0xaa, 0x86, 0x81, + 0x33, 0x06, 0xeb, 0xbc, 0x0f, 0x97, 0x8c, 0x28, 0xf1, 0x3a, 0xfd, 0x90, 0xb6, 0xc4, 0x47, 0xd3, + 0xb9, 0x06, 0x57, 0xf7, 0x31, 0x7b, 0x2e, 0xda, 0x56, 0x86, 0xe7, 0x0c, 0x01, 0x65, 0x2f, 0xcf, + 0xec, 0xc9, 0x2b, 0xdd, 0x9e, 0xda, 0x2a, 0x15, 0xbf, 0xe2, 0x72, 0xbe, 0xe1, 0xba, 0x0f, 0x7c, + 0xca, 0x48, 0xb4, 0xbc, 0x28, 0x75, 0x1d, 0x30, 0xe7, 0xde, 0x1b, 0xf9, 0x9d, 0x4d, 0x5e, 0x9d, + 0x7d, 0xee, 0x41, 0x2a, 0x2a, 0x3d, 0xc8, 0x6e, 0x2d, 0x46, 0xb9, 0xad, 0xe5, 0x17, 0x40, 0x4f, + 0x71, 0xba, 0x40, 0xbd, 0xe5, 0x83, 0xaf, 0x40, 0xa8, 0xe8, 0x8d, 0x60, 0x41, 0x63, 0x12, 0x60, + 0x2f, 0x8c, 0x17, 0x12, 0x36, 0x75, 0x74, 0x5e, 0xc0, 0x35, 0x4d, 0xbb, 0xf4, 0x33, 0x89, 0x87, + 0x9e, 0xa8, 0x8a, 0x9d, 0xd3, 0x13, 0xf4, 0x15, 0xd4, 0xc5, 0x56, 0xc9, 0x75, 0x6f, 0x0c, 0x6e, + 0xea, 0x7e, 0x73, 0x25, 0x71, 0x28, 0xd7, 0x50, 0x57, 0xf2, 0x0e, 0xfe, 0x69, 0xc2, 0x86, 0xda, + 0x93, 0x44, 0x73, 0x21, 0x1f, 0xd6, 0xb3, 0x0b, 0x21, 0xba, 0xbd, 0x7a, 0x25, 0xce, 0xed, 0xf5, + 0xf6, 0x9d, 0x32, 0xac, 0x22, 0x02, 0x67, 0xed, 0x73, 0x03, 0x51, 0xe8, 0xe4, 0xf7, 0x34, 0x74, + 0xaf, 0x58, 0xc7, 0x8a, 0xc5, 0xd0, 0xee, 0x97, 0x65, 0x57, 0x66, 0xd1, 0x29, 0xaf, 0x19, 0x7d, + 0xb9, 0x42, 0x6f, 0x55, 0xa3, 0xef, 0x73, 0xf6, 0x4e, 0x69, 0xfe, 0xd4, 0xee, 0xaf, 0x70, 0x45, + 0xfb, 0x02, 0xa3, 0x3b, 0xe5, 0x97, 0x03, 0xfb, 0x6e, 0x29, 0xde, 0xd4, 0xd6, 0x1c, 0x36, 0xf4, + 0x21, 0x85, 0xee, 0xbe, 0xc3, 0x04, 0xb5, 0x3f, 0x2b, 0xc7, 0x9c, 0x9a, 0xa3, 0xd0, 0xc9, 0xcf, + 0x90, 0x55, 0x38, 0xae, 0x98, 0x77, 0xab, 0x70, 0x5c, 0x35, 0x9a, 0x9c, 0x35, 0xe4, 0x01, 0x9c, + 0x8d, 0x10, 0x74, 0x6b, 0x25, 0x20, 0xfa, 0xe4, 0xb1, 0x7b, 0x6f, 0x67, 0x4c, 0x4d, 0x2c, 0xe0, + 0xbd, 0xdc, 0x0e, 0x80, 0x56, 0xa4, 0xa6, 0x78, 0x21, 0xb2, 0xef, 0x95, 0xe4, 0xce, 0x05, 0x25, + 0xa7, 0xd2, 0x05, 0x41, 0xe9, 0x23, 0xef, 0x82, 0xa0, 0x72, 0x03, 0xce, 0x59, 0x43, 0x3e, 0x6c, + 0xb8, 0x71, 0x28, 0x4d, 0x27, 0x63, 0x01, 0xad, 0x90, 0x3e, 0x3f, 0xd5, 0xec, 0xdb, 0x25, 0x38, + 0xcf, 0xfa, 0xfb, 0x21, 0xfc, 0xdc, 0x54, 0xac, 0xc7, 0x75, 0xfe, 0x97, 0xc0, 0x97, 0xff, 0x05, + 0x00, 0x00, 0xff, 0xff, 0xde, 0xd5, 0x38, 0x1a, 0x00, 0x11, 0x00, 0x00, } diff --git a/pkg/tiller/release_install.go b/pkg/tiller/release_install.go index 8e7fd3acd..396bb1e78 100644 --- a/pkg/tiller/release_install.go +++ b/pkg/tiller/release_install.go @@ -119,9 +119,10 @@ func (s *ReleaseServer) prepareRelease(req *services.InstallReleaseRequest) (*re Status: &release.Status{Code: release.Status_PENDING_INSTALL}, Description: "Initial install underway", // Will be overwritten. }, - Manifest: manifestDoc.String(), - Hooks: hooks, - Version: int32(revision), + Manifest: manifestDoc.String(), + Hooks: hooks, + Version: int32(revision), + Annotations: req.Annotations, } if len(notesTxt) > 0 { rel.Info.Status.Notes = notesTxt diff --git a/pkg/tiller/release_rollback.go b/pkg/tiller/release_rollback.go index e8b6435b5..935b4af30 100644 --- a/pkg/tiller/release_rollback.go +++ b/pkg/tiller/release_rollback.go @@ -103,9 +103,10 @@ func (s *ReleaseServer) prepareRollback(req *services.RollbackReleaseRequest) (* // message here, and only override it later if we experience failure. Description: fmt.Sprintf("Rollback to %d", rbv), }, - Version: crls.Version + 1, - Manifest: prls.Manifest, - Hooks: prls.Hooks, + Version: crls.Version + 1, + Manifest: prls.Manifest, + Hooks: prls.Hooks, + Annotations: prls.Annotations, } return crls, target, nil diff --git a/pkg/tiller/release_server.go b/pkg/tiller/release_server.go index bab405e1f..0c32c9f94 100644 --- a/pkg/tiller/release_server.go +++ b/pkg/tiller/release_server.go @@ -148,6 +148,12 @@ func (s *ReleaseServer) reuseValues(req *services.UpdateReleaseRequest, current s.Log("copying values from %s (v%d) to new release.", current.Name, current.Version) req.Values = current.Config } + + if len(req.Annotations) == 0 { + s.Log("copying annotations from %s (v%d) to new release.", current.Name, current.Version) + req.Annotations = current.Annotations + } + return nil } diff --git a/pkg/tiller/release_update.go b/pkg/tiller/release_update.go index 58a8a18c0..68a6745b4 100644 --- a/pkg/tiller/release_update.go +++ b/pkg/tiller/release_update.go @@ -119,9 +119,10 @@ func (s *ReleaseServer) prepareUpdate(req *services.UpdateReleaseRequest) (*rele Status: &release.Status{Code: release.Status_PENDING_UPGRADE}, Description: "Preparing upgrade", // This should be overwritten later. }, - Version: revision, - Manifest: manifestDoc.String(), - Hooks: hooks, + Version: revision, + Manifest: manifestDoc.String(), + Hooks: hooks, + Annotations: req.Annotations, } if len(notesTxt) > 0 {