Commit 1518f961 authored by jgleonard's avatar jgleonard

fix(helm): add --render-subchart-notes flag to 'helm install' and 'helm upgrade'

When 'helm <install|upgrade> --render-subchart-notes ...' is run, this will include
the notes from the subchart when rendered via Tiller.

Closes #2751
Signed-off-by: 's avatarjgleonard <jgleonard@gmail.com>
parent ab9349c4
......@@ -209,6 +209,8 @@ message UpdateReleaseRequest {
bool reuse_values = 10;
// Force resource update through delete/recreate if needed.
bool force = 11;
// Render subchart notes if enabled
bool subNotes = 12;
}
// UpdateReleaseResponse is the response to an update request.
......@@ -273,6 +275,8 @@ message InstallReleaseRequest {
bool wait = 9;
bool disable_crd_hook = 10;
bool subNotes = 11;
}
// InstallReleaseResponse is the response from a release installation.
......
......@@ -129,6 +129,7 @@ type installCmd struct {
password string
devel bool
depUp bool
subNotes bool
certFile string
keyFile string
......@@ -209,6 +210,7 @@ func newInstallCmd(c helm.Interface, out io.Writer) *cobra.Command {
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-0'. If --version is set, this is ignored.")
f.BoolVar(&inst.depUp, "dep-up", false, "run helm dependency update before installing the chart")
f.BoolVar(&inst.subNotes, "render-subchart-notes", false, "render subchart notes along with the parent")
return cmd
}
......@@ -276,6 +278,7 @@ func (i *installCmd) run() error {
helm.InstallReuseName(i.replace),
helm.InstallDisableHooks(i.disableHooks),
helm.InstallDisableCRDHook(i.disableCRDHook),
helm.InstallSubNotes(i.subNotes),
helm.InstallTimeout(i.timeout),
helm.InstallWait(i.wait))
if err != nil {
......
......@@ -78,6 +78,7 @@ type upgradeCmd struct {
username string
password string
devel bool
subNotes bool
certFile string
keyFile string
......@@ -139,6 +140,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-0'. If --version is set, this is ignored.")
f.BoolVar(&upgrade.subNotes, "render-subchart-notes", false, "render subchart notes along with parent")
f.MarkDeprecated("disable-hooks", "use --no-hooks instead")
......@@ -224,6 +226,7 @@ func (u *upgradeCmd) run() error {
helm.UpgradeTimeout(u.timeout),
helm.ResetValues(u.resetValues),
helm.ReuseValues(u.reuseValues),
helm.UpgradeSubNotes(u.subNotes),
helm.UpgradeWait(u.wait))
if err != nil {
return fmt.Errorf("UPGRADE FAILED: %v", prettyError(err))
......
......@@ -95,6 +95,7 @@ func (h *Client) InstallReleaseFromChart(chart *chart.Chart, ns string, opts ...
req := &reqOpts.instReq
req.Chart = chart
req.Namespace = ns
req.SubNotes = reqOpts.subNotes
req.DryRun = reqOpts.dryRun
req.DisableHooks = reqOpts.disableHooks
req.DisableCrdHook = reqOpts.disableCRDHook
......@@ -171,6 +172,7 @@ func (h *Client) UpdateReleaseFromChart(rlsName string, chart *chart.Chart, opts
req.DryRun = reqOpts.dryRun
req.Name = rlsName
req.DisableHooks = reqOpts.disableHooks
req.SubNotes = reqOpts.subNotes
req.Recreate = reqOpts.recreate
req.Force = reqOpts.force
req.ResetValues = reqOpts.resetValues
......
......@@ -53,6 +53,8 @@ type options struct {
disableHooks bool
// if set, skip CRD hook only
disableCRDHook bool
// if set, render SubChart Notes
subNotes bool
// name of release
releaseName string
// tls.Config to use for rpc if tls enabled
......@@ -311,6 +313,20 @@ func InstallReuseName(reuse bool) InstallOption {
}
}
// InstallSubNotes will (if true) instruct Tiller to render SubChart Notes
func InstallSubNotes(enable bool) InstallOption {
return func(opts *options) {
opts.subNotes = enable
}
}
// UpgradeSubNotes will (if true) instruct Tiller to render SubChart Notes
func UpgradeSubNotes(enable bool) UpdateOption {
return func(opts *options) {
opts.subNotes = enable
}
}
// RollbackDisableHooks will disable hooks for a rollback operation
func RollbackDisableHooks(disable bool) RollbackOption {
return func(opts *options) {
......
......@@ -376,6 +376,8 @@ 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"`
// Render subchart notes if enabled
SubNotes bool `protobuf:"varint,12,opt,name=subNotes" json:"subNotes,omitempty"`
}
func (m *UpdateReleaseRequest) Reset() { *m = UpdateReleaseRequest{} }
......@@ -460,6 +462,13 @@ func (m *UpdateReleaseRequest) GetForce() bool {
return false
}
func (m *UpdateReleaseRequest) GetSubNotes() bool {
if m != nil {
return m.SubNotes
}
return false
}
// UpdateReleaseResponse is the response to an update request.
type UpdateReleaseResponse struct {
Release *hapi_release5.Release `protobuf:"bytes,1,opt,name=release" json:"release,omitempty"`
......@@ -601,6 +610,7 @@ type InstallReleaseRequest struct {
// 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"`
DisableCrdHook bool `protobuf:"varint,10,opt,name=disable_crd_hook,json=disableCrdHook" json:"disable_crd_hook,omitempty"`
SubNotes bool `protobuf:"varint,11,opt,name=subNotes" json:"subNotes,omitempty"`
}
func (m *InstallReleaseRequest) Reset() { *m = InstallReleaseRequest{} }
......@@ -678,6 +688,13 @@ func (m *InstallReleaseRequest) GetDisableCrdHook() bool {
return false
}
func (m *InstallReleaseRequest) GetSubNotes() bool {
if m != nil {
return m.SubNotes
}
return false
}
// InstallReleaseResponse is the response from a release installation.
type InstallReleaseResponse struct {
Release *hapi_release5.Release `protobuf:"bytes,1,opt,name=release" json:"release,omitempty"`
......@@ -1376,83 +1393,84 @@ var _ReleaseService_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("hapi/services/tiller.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 1235 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, 0x6e, 0xfe, 0xd9, 0x69, 0xda, 0xba, 0xfe, 0x2f, 0xa8, 0x18, 0xc1,
0x66, 0x17, 0x36, 0x85, 0xc0, 0x0d, 0x12, 0x42, 0xea, 0x66, 0xa3, 0xb6, 0x50, 0xba, 0x92, 0xb3,
0x5d, 0x24, 0x04, 0x44, 0x6e, 0x32, 0x69, 0xcd, 0x3a, 0x76, 0xf0, 0x8c, 0xcb, 0xf6, 0x96, 0x3b,
0xde, 0x8a, 0x77, 0xe0, 0x92, 0x4b, 0x78, 0x10, 0x34, 0x5f, 0xae, 0x27, 0xb5, 0x5b, 0xd3, 0x9b,
0x78, 0x66, 0xce, 0xf7, 0xef, 0x9c, 0x39, 0x73, 0x02, 0xd6, 0x85, 0xbb, 0xf4, 0xf6, 0x08, 0x8e,
0x2e, 0xbd, 0x29, 0x26, 0x7b, 0xd4, 0xf3, 0x7d, 0x1c, 0xf5, 0x97, 0x51, 0x48, 0x43, 0xd4, 0x65,
0xb4, 0xbe, 0xa2, 0xf5, 0x05, 0xcd, 0xda, 0xe2, 0x12, 0xd3, 0x0b, 0x37, 0xa2, 0xe2, 0x57, 0x70,
0x5b, 0xdb, 0xe9, 0xf3, 0x30, 0x98, 0x7b, 0xe7, 0x92, 0x20, 0x4c, 0x44, 0xd8, 0xc7, 0x2e, 0xc1,
0xea, 0xab, 0x09, 0x29, 0x9a, 0x17, 0xcc, 0x43, 0x49, 0xf8, 0xbf, 0x46, 0xa0, 0x98, 0xd0, 0x49,
0x14, 0x07, 0x92, 0xb8, 0xa3, 0x11, 0x09, 0x75, 0x69, 0x4c, 0x34, 0x63, 0x97, 0x38, 0x22, 0x5e,
0x18, 0xa8, 0xaf, 0xa0, 0xd9, 0x7f, 0x94, 0x60, 0xe3, 0xd8, 0x23, 0xd4, 0x11, 0x82, 0xc4, 0xc1,
0xbf, 0xc4, 0x98, 0x50, 0xd4, 0x85, 0xaa, 0xef, 0x2d, 0x3c, 0x6a, 0x1a, 0xbb, 0x46, 0xaf, 0xec,
0x88, 0x0d, 0xda, 0x82, 0x5a, 0x38, 0x9f, 0x13, 0x4c, 0xcd, 0xd2, 0xae, 0xd1, 0x6b, 0x3a, 0x72,
0x87, 0xbe, 0x82, 0x3a, 0x09, 0x23, 0x3a, 0x39, 0xbb, 0x32, 0xcb, 0xbb, 0x46, 0xaf, 0x3d, 0xf8,
0xa0, 0x9f, 0x85, 0x53, 0x9f, 0x59, 0x1a, 0x87, 0x11, 0xed, 0xb3, 0x9f, 0xe7, 0x57, 0x4e, 0x8d,
0xf0, 0x2f, 0xd3, 0x3b, 0xf7, 0x7c, 0x8a, 0x23, 0xb3, 0x22, 0xf4, 0x8a, 0x1d, 0x3a, 0x00, 0xe0,
0x7a, 0xc3, 0x68, 0x86, 0x23, 0xb3, 0xca, 0x55, 0xf7, 0x0a, 0xa8, 0x7e, 0xc9, 0xf8, 0x9d, 0x26,
0x51, 0x4b, 0xf4, 0x25, 0xac, 0x0b, 0x48, 0x26, 0xd3, 0x70, 0x86, 0x89, 0x59, 0xdb, 0x2d, 0xf7,
0xda, 0x83, 0x1d, 0xa1, 0x4a, 0xc1, 0x3f, 0x16, 0xa0, 0x0d, 0xc3, 0x19, 0x76, 0x5a, 0x82, 0x9d,
0xad, 0x09, 0x7a, 0x04, 0xcd, 0xc0, 0x5d, 0x60, 0xb2, 0x74, 0xa7, 0xd8, 0xac, 0x73, 0x0f, 0xaf,
0x0f, 0xec, 0x9f, 0xa0, 0xa1, 0x8c, 0xdb, 0x03, 0xa8, 0x89, 0xd0, 0x50, 0x0b, 0xea, 0xa7, 0x27,
0xdf, 0x9c, 0xbc, 0xfc, 0xee, 0xa4, 0xb3, 0x86, 0x1a, 0x50, 0x39, 0xd9, 0xff, 0x76, 0xd4, 0x31,
0xd0, 0x43, 0x78, 0x70, 0xbc, 0x3f, 0x7e, 0x35, 0x71, 0x46, 0xc7, 0xa3, 0xfd, 0xf1, 0xe8, 0x45,
0xa7, 0x64, 0xbf, 0x0b, 0xcd, 0xc4, 0x67, 0x54, 0x87, 0xf2, 0xfe, 0x78, 0x28, 0x44, 0x5e, 0x8c,
0xc6, 0xc3, 0x8e, 0x61, 0xff, 0x6e, 0x40, 0x57, 0x4f, 0x11, 0x59, 0x86, 0x01, 0xc1, 0x2c, 0x47,
0xd3, 0x30, 0x0e, 0x92, 0x1c, 0xf1, 0x0d, 0x42, 0x50, 0x09, 0xf0, 0x5b, 0x95, 0x21, 0xbe, 0x66,
0x9c, 0x34, 0xa4, 0xae, 0xcf, 0xb3, 0x53, 0x76, 0xc4, 0x06, 0x7d, 0x0a, 0x0d, 0x19, 0x3a, 0x31,
0x2b, 0xbb, 0xe5, 0x5e, 0x6b, 0xb0, 0xa9, 0x03, 0x22, 0x2d, 0x3a, 0x09, 0x9b, 0x7d, 0x00, 0xdb,
0x07, 0x58, 0x79, 0x22, 0xf0, 0x52, 0x15, 0xc3, 0xec, 0xba, 0x0b, 0xcc, 0x9d, 0x61, 0x76, 0xdd,
0x05, 0x46, 0x26, 0xd4, 0x65, 0xb9, 0x71, 0x77, 0xaa, 0x8e, 0xda, 0xda, 0x14, 0xcc, 0x9b, 0x8a,
0x64, 0x5c, 0x59, 0x9a, 0x3e, 0x84, 0x0a, 0xbb, 0x09, 0x5c, 0x4d, 0x6b, 0x80, 0x74, 0x3f, 0x8f,
0x82, 0x79, 0xe8, 0x70, 0xba, 0x9e, 0xaa, 0xf2, 0x6a, 0xaa, 0x0e, 0xd3, 0x56, 0x87, 0x61, 0x40,
0x71, 0x40, 0xef, 0xe7, 0xff, 0x31, 0xec, 0x64, 0x68, 0x92, 0x01, 0xec, 0x41, 0x5d, 0xba, 0xc6,
0xb5, 0xe5, 0xe2, 0xaa, 0xb8, 0xec, 0xbf, 0x4b, 0xd0, 0x3d, 0x5d, 0xce, 0x5c, 0x8a, 0x15, 0xe9,
0x16, 0xa7, 0x1e, 0x43, 0x95, 0x77, 0x14, 0x89, 0xc5, 0x43, 0xa1, 0x5b, 0xb4, 0x9d, 0x21, 0xfb,
0x75, 0x04, 0x1d, 0x3d, 0x85, 0xda, 0xa5, 0xeb, 0xc7, 0x98, 0x70, 0x20, 0x12, 0xd4, 0x24, 0x27,
0x6f, 0x47, 0x8e, 0xe4, 0x40, 0xdb, 0x50, 0x9f, 0x45, 0x57, 0xac, 0x9f, 0xf0, 0x2b, 0xd8, 0x70,
0x6a, 0xb3, 0xe8, 0xca, 0x89, 0x03, 0xf4, 0x3e, 0x3c, 0x98, 0x79, 0xc4, 0x3d, 0xf3, 0xf1, 0xe4,
0x22, 0x0c, 0xdf, 0x10, 0x7e, 0x0b, 0x1b, 0xce, 0xba, 0x3c, 0x3c, 0x64, 0x67, 0xc8, 0x62, 0x95,
0x34, 0x8d, 0xb0, 0x4b, 0xb1, 0x59, 0xe3, 0xf4, 0x64, 0xcf, 0x30, 0xa4, 0xde, 0x02, 0x87, 0x31,
0xe5, 0x57, 0xa7, 0xec, 0xa8, 0x2d, 0x7a, 0x0f, 0xd6, 0x23, 0x4c, 0x30, 0x9d, 0x48, 0x2f, 0x1b,
0x5c, 0xb2, 0xc5, 0xcf, 0x5e, 0x0b, 0xb7, 0x10, 0x54, 0x7e, 0x75, 0x3d, 0x6a, 0x36, 0x39, 0x89,
0xaf, 0x85, 0x58, 0x4c, 0xb0, 0x12, 0x03, 0x25, 0x16, 0x13, 0x2c, 0xc5, 0xba, 0x50, 0x9d, 0x87,
0xd1, 0x14, 0x9b, 0x2d, 0x4e, 0x13, 0x1b, 0xfb, 0x10, 0x36, 0x57, 0x40, 0xbe, 0x6f, 0xbe, 0xfe,
0x31, 0x60, 0xcb, 0x09, 0x7d, 0xff, 0xcc, 0x9d, 0xbe, 0x29, 0x90, 0xb1, 0x14, 0xb8, 0xa5, 0xdb,
0xc1, 0x2d, 0x67, 0x80, 0x9b, 0x2a, 0xc2, 0x8a, 0x56, 0x84, 0x1a, 0xec, 0xd5, 0x7c, 0xd8, 0x6b,
0x3a, 0xec, 0x0a, 0xd3, 0x7a, 0x0a, 0xd3, 0x04, 0xb0, 0x46, 0x1a, 0xb0, 0xaf, 0x61, 0xfb, 0x46,
0x94, 0xf7, 0x85, 0xec, 0xcf, 0x12, 0x6c, 0x1e, 0x05, 0x84, 0xba, 0xbe, 0xbf, 0x82, 0x58, 0x52,
0xcf, 0x46, 0xe1, 0x7a, 0x2e, 0xfd, 0x97, 0x7a, 0x2e, 0x6b, 0x90, 0xab, 0xfc, 0x54, 0x52, 0xf9,
0x29, 0x54, 0xe3, 0x5a, 0x67, 0xa9, 0xad, 0x74, 0x16, 0xf4, 0x0e, 0x80, 0x28, 0x4a, 0xae, 0x5c,
0x40, 0xdb, 0xe4, 0x27, 0x27, 0xb2, 0x91, 0xa8, 0x6c, 0x34, 0xb2, 0xb3, 0x91, 0xae, 0xf0, 0x1e,
0x74, 0x94, 0x3f, 0xd3, 0x68, 0xc6, 0x7d, 0x92, 0x55, 0xde, 0x96, 0xe7, 0xc3, 0x68, 0xc6, 0xbc,
0xb2, 0x8f, 0x60, 0x6b, 0x15, 0xd4, 0xfb, 0x26, 0xe8, 0x37, 0x03, 0xb6, 0x4f, 0x03, 0x2f, 0x33,
0x45, 0x59, 0x45, 0x7d, 0x03, 0xb4, 0x52, 0x06, 0x68, 0x5d, 0xa8, 0x2e, 0xe3, 0xe8, 0x1c, 0xcb,
0x24, 0x88, 0x4d, 0x1a, 0x8d, 0x8a, 0x86, 0x86, 0x3d, 0x01, 0xf3, 0xa6, 0x0f, 0xf7, 0x8c, 0x88,
0x79, 0x9d, 0xbc, 0x19, 0x4d, 0xf1, 0x3e, 0xd8, 0x1b, 0xf0, 0xf0, 0x00, 0xd3, 0xd7, 0xe2, 0x02,
0xc9, 0xf0, 0xec, 0x11, 0xa0, 0xf4, 0xe1, 0xb5, 0x3d, 0x79, 0xa4, 0xdb, 0x53, 0x03, 0x94, 0xe2,
0x57, 0x5c, 0xf6, 0x17, 0x5c, 0xf7, 0xa1, 0x47, 0x68, 0x18, 0x5d, 0xdd, 0x06, 0x5d, 0x07, 0xca,
0x0b, 0xf7, 0xad, 0x7c, 0x52, 0xd8, 0xd2, 0x3e, 0xe0, 0x1e, 0x24, 0xa2, 0xd2, 0x83, 0xf4, 0x03,
0x6d, 0x14, 0x7b, 0xa0, 0x7f, 0x00, 0xf4, 0x0a, 0x27, 0xb3, 0xc2, 0x1d, 0x6f, 0x9b, 0x4a, 0x42,
0x49, 0x2f, 0x49, 0x13, 0xea, 0x53, 0x1f, 0xbb, 0x41, 0xbc, 0x94, 0x69, 0x53, 0x5b, 0xfb, 0x47,
0xd8, 0xd0, 0xb4, 0x4b, 0x3f, 0x59, 0x3c, 0xe4, 0x5c, 0x6a, 0x67, 0x4b, 0xf4, 0x39, 0xd4, 0xc4,
0x00, 0xc5, 0x75, 0xb7, 0x07, 0x8f, 0x74, 0xbf, 0xb9, 0x92, 0x38, 0x90, 0x13, 0x97, 0x23, 0x79,
0x07, 0x7f, 0x35, 0xa0, 0xad, 0x46, 0x02, 0x31, 0xde, 0x21, 0x0f, 0xd6, 0xd3, 0xb3, 0x0f, 0x7a,
0x92, 0x3f, 0xfd, 0xad, 0x8c, 0xb0, 0xd6, 0xd3, 0x22, 0xac, 0x22, 0x02, 0x7b, 0xed, 0x13, 0x03,
0x11, 0xe8, 0xac, 0x8e, 0x24, 0xe8, 0x59, 0xb6, 0x8e, 0x9c, 0x19, 0xc8, 0xea, 0x17, 0x65, 0x57,
0x66, 0xd1, 0x25, 0xaf, 0x19, 0x7d, 0x8e, 0x40, 0x77, 0xaa, 0xd1, 0x47, 0x17, 0x6b, 0xaf, 0x30,
0x7f, 0x62, 0xf7, 0x67, 0x78, 0xa0, 0xbd, 0x85, 0x28, 0x07, 0xad, 0xac, 0xa9, 0xc4, 0xfa, 0xa8,
0x10, 0x6f, 0x62, 0x6b, 0x01, 0x6d, 0xbd, 0x49, 0xa1, 0x1c, 0x05, 0x99, 0xef, 0x83, 0xf5, 0x71,
0x31, 0xe6, 0xc4, 0x1c, 0x81, 0xce, 0x6a, 0x0f, 0xc9, 0xcb, 0x63, 0x4e, 0xbf, 0xcb, 0xcb, 0x63,
0x5e, 0x6b, 0xb2, 0xd7, 0x90, 0x0b, 0x70, 0xdd, 0x42, 0xd0, 0xe3, 0xdc, 0x84, 0xe8, 0x9d, 0xc7,
0xea, 0xdd, 0xcd, 0x98, 0x98, 0x58, 0xc2, 0xff, 0x56, 0x5e, 0x63, 0x94, 0x03, 0x4d, 0xf6, 0x68,
0x62, 0x3d, 0x2b, 0xc8, 0xbd, 0x12, 0x94, 0xec, 0x4a, 0xb7, 0x04, 0xa5, 0xb7, 0xbc, 0x5b, 0x82,
0x5a, 0x69, 0x70, 0xf6, 0x1a, 0xf2, 0xa0, 0xed, 0xc4, 0x81, 0x34, 0xcd, 0xda, 0x02, 0xca, 0x91,
0xbe, 0xd9, 0xd5, 0xac, 0x27, 0x05, 0x38, 0xaf, 0xef, 0xf7, 0x73, 0xf8, 0xbe, 0xa1, 0x58, 0xcf,
0x6a, 0xfc, 0xdf, 0xef, 0x67, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x5d, 0xc3, 0xd5, 0x55, 0xeb,
0x0f, 0x00, 0x00,
// 1257 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0xdf, 0x6f, 0xe3, 0xc4,
0x13, 0xaf, 0xf3, 0x3b, 0x93, 0x36, 0xdf, 0x74, 0x9b, 0xb6, 0xae, 0xbf, 0x07, 0x2a, 0x46, 0x70,
0xb9, 0x83, 0x4b, 0x21, 0xf0, 0x82, 0x84, 0x90, 0x7a, 0xb9, 0xa8, 0x2d, 0x94, 0x9c, 0xe4, 0x5c,
0x0f, 0x09, 0x01, 0x91, 0x9b, 0x6c, 0x5a, 0x73, 0x8e, 0x1d, 0xbc, 0xeb, 0x72, 0x7d, 0xe5, 0x8d,
0xff, 0x8a, 0xff, 0x83, 0x57, 0xde, 0xf9, 0x13, 0x40, 0xde, 0x1f, 0xae, 0xd7, 0xb5, 0x5b, 0xd3,
0x97, 0x78, 0x77, 0x67, 0x76, 0x66, 0xf6, 0xf3, 0x99, 0x9d, 0x9d, 0x80, 0x71, 0x69, 0xaf, 0x9c,
0x03, 0x82, 0x83, 0x2b, 0x67, 0x86, 0xc9, 0x01, 0x75, 0x5c, 0x17, 0x07, 0xfd, 0x55, 0xe0, 0x53,
0x1f, 0x75, 0x23, 0x59, 0x5f, 0xca, 0xfa, 0x5c, 0x66, 0xec, 0xb0, 0x1d, 0xb3, 0x4b, 0x3b, 0xa0,
0xfc, 0x97, 0x6b, 0x1b, 0xbb, 0xc9, 0x75, 0xdf, 0x5b, 0x38, 0x17, 0x42, 0xc0, 0x5d, 0x04, 0xd8,
0xc5, 0x36, 0xc1, 0xf2, 0xab, 0x6c, 0x92, 0x32, 0xc7, 0x5b, 0xf8, 0x42, 0xf0, 0x7f, 0x45, 0x40,
0x31, 0xa1, 0xd3, 0x20, 0xf4, 0x84, 0x70, 0x4f, 0x11, 0x12, 0x6a, 0xd3, 0x90, 0x28, 0xce, 0xae,
0x70, 0x40, 0x1c, 0xdf, 0x93, 0x5f, 0x2e, 0x33, 0xff, 0x28, 0xc1, 0xd6, 0xa9, 0x43, 0xa8, 0xc5,
0x37, 0x12, 0x0b, 0xff, 0x12, 0x62, 0x42, 0x51, 0x17, 0xaa, 0xae, 0xb3, 0x74, 0xa8, 0xae, 0xed,
0x6b, 0xbd, 0xb2, 0xc5, 0x27, 0x68, 0x07, 0x6a, 0xfe, 0x62, 0x41, 0x30, 0xd5, 0x4b, 0xfb, 0x5a,
0xaf, 0x69, 0x89, 0x19, 0xfa, 0x0a, 0xea, 0xc4, 0x0f, 0xe8, 0xf4, 0xfc, 0x5a, 0x2f, 0xef, 0x6b,
0xbd, 0xf6, 0xe0, 0x83, 0x7e, 0x16, 0x4e, 0xfd, 0xc8, 0xd3, 0xc4, 0x0f, 0x68, 0x3f, 0xfa, 0x79,
0x7e, 0x6d, 0xd5, 0x08, 0xfb, 0x46, 0x76, 0x17, 0x8e, 0x4b, 0x71, 0xa0, 0x57, 0xb8, 0x5d, 0x3e,
0x43, 0x47, 0x00, 0xcc, 0xae, 0x1f, 0xcc, 0x71, 0xa0, 0x57, 0x99, 0xe9, 0x5e, 0x01, 0xd3, 0x2f,
0x23, 0x7d, 0xab, 0x49, 0xe4, 0x10, 0x7d, 0x09, 0xeb, 0x1c, 0x92, 0xe9, 0xcc, 0x9f, 0x63, 0xa2,
0xd7, 0xf6, 0xcb, 0xbd, 0xf6, 0x60, 0x8f, 0x9b, 0x92, 0xf0, 0x4f, 0x38, 0x68, 0x43, 0x7f, 0x8e,
0xad, 0x16, 0x57, 0x8f, 0xc6, 0x04, 0x3d, 0x82, 0xa6, 0x67, 0x2f, 0x31, 0x59, 0xd9, 0x33, 0xac,
0xd7, 0x59, 0x84, 0x37, 0x0b, 0xe6, 0x4f, 0xd0, 0x90, 0xce, 0xcd, 0x01, 0xd4, 0xf8, 0xd1, 0x50,
0x0b, 0xea, 0x67, 0xe3, 0x6f, 0xc6, 0x2f, 0xbf, 0x1b, 0x77, 0xd6, 0x50, 0x03, 0x2a, 0xe3, 0xc3,
0x6f, 0x47, 0x1d, 0x0d, 0x6d, 0xc2, 0xc6, 0xe9, 0xe1, 0xe4, 0xd5, 0xd4, 0x1a, 0x9d, 0x8e, 0x0e,
0x27, 0xa3, 0x17, 0x9d, 0x92, 0xf9, 0x2e, 0x34, 0xe3, 0x98, 0x51, 0x1d, 0xca, 0x87, 0x93, 0x21,
0xdf, 0xf2, 0x62, 0x34, 0x19, 0x76, 0x34, 0xf3, 0x77, 0x0d, 0xba, 0x2a, 0x45, 0x64, 0xe5, 0x7b,
0x04, 0x47, 0x1c, 0xcd, 0xfc, 0xd0, 0x8b, 0x39, 0x62, 0x13, 0x84, 0xa0, 0xe2, 0xe1, 0xb7, 0x92,
0x21, 0x36, 0x8e, 0x34, 0xa9, 0x4f, 0x6d, 0x97, 0xb1, 0x53, 0xb6, 0xf8, 0x04, 0x7d, 0x0a, 0x0d,
0x71, 0x74, 0xa2, 0x57, 0xf6, 0xcb, 0xbd, 0xd6, 0x60, 0x5b, 0x05, 0x44, 0x78, 0xb4, 0x62, 0x35,
0xf3, 0x08, 0x76, 0x8f, 0xb0, 0x8c, 0x84, 0xe3, 0x25, 0x33, 0x26, 0xf2, 0x6b, 0x2f, 0x31, 0x0b,
0x26, 0xf2, 0x6b, 0x2f, 0x31, 0xd2, 0xa1, 0x2e, 0xd2, 0x8d, 0x85, 0x53, 0xb5, 0xe4, 0xd4, 0xa4,
0xa0, 0xdf, 0x36, 0x24, 0xce, 0x95, 0x65, 0xe9, 0x43, 0xa8, 0x44, 0x37, 0x81, 0x99, 0x69, 0x0d,
0x90, 0x1a, 0xe7, 0x89, 0xb7, 0xf0, 0x2d, 0x26, 0x57, 0xa9, 0x2a, 0xa7, 0xa9, 0x3a, 0x4e, 0x7a,
0x1d, 0xfa, 0x1e, 0xc5, 0x1e, 0x7d, 0x58, 0xfc, 0xa7, 0xb0, 0x97, 0x61, 0x49, 0x1c, 0xe0, 0x00,
0xea, 0x22, 0x34, 0x66, 0x2d, 0x17, 0x57, 0xa9, 0x65, 0xfe, 0x53, 0x82, 0xee, 0xd9, 0x6a, 0x6e,
0x53, 0x2c, 0x45, 0x77, 0x04, 0xf5, 0x18, 0xaa, 0xac, 0xa2, 0x08, 0x2c, 0x36, 0xb9, 0x6d, 0x5e,
0x76, 0x86, 0xd1, 0xaf, 0xc5, 0xe5, 0xe8, 0x29, 0xd4, 0xae, 0x6c, 0x37, 0xc4, 0x84, 0x01, 0x11,
0xa3, 0x26, 0x34, 0x59, 0x39, 0xb2, 0x84, 0x06, 0xda, 0x85, 0xfa, 0x3c, 0xb8, 0x8e, 0xea, 0x09,
0xbb, 0x82, 0x0d, 0xab, 0x36, 0x0f, 0xae, 0xad, 0xd0, 0x43, 0xef, 0xc3, 0xc6, 0xdc, 0x21, 0xf6,
0xb9, 0x8b, 0xa7, 0x97, 0xbe, 0xff, 0x86, 0xb0, 0x5b, 0xd8, 0xb0, 0xd6, 0xc5, 0xe2, 0x71, 0xb4,
0x86, 0x8c, 0x28, 0x93, 0x66, 0x01, 0xb6, 0x29, 0xd6, 0x6b, 0x4c, 0x1e, 0xcf, 0x23, 0x0c, 0xa9,
0xb3, 0xc4, 0x7e, 0x48, 0xd9, 0xd5, 0x29, 0x5b, 0x72, 0x8a, 0xde, 0x83, 0xf5, 0x00, 0x13, 0x4c,
0xa7, 0x22, 0xca, 0x06, 0xdb, 0xd9, 0x62, 0x6b, 0xaf, 0x79, 0x58, 0x08, 0x2a, 0xbf, 0xda, 0x0e,
0xd5, 0x9b, 0x4c, 0xc4, 0xc6, 0x7c, 0x5b, 0x48, 0xb0, 0xdc, 0x06, 0x72, 0x5b, 0x48, 0xb0, 0xd8,
0xd6, 0x85, 0xea, 0xc2, 0x0f, 0x66, 0x58, 0x6f, 0x31, 0x19, 0x9f, 0x44, 0x51, 0x92, 0xf0, 0x7c,
0xec, 0x53, 0x4c, 0xf4, 0x75, 0x1e, 0xa5, 0x9c, 0x9b, 0xc7, 0xb0, 0x9d, 0x22, 0xe0, 0xa1, 0x5c,
0xfe, 0xa5, 0xc1, 0x8e, 0xe5, 0xbb, 0xee, 0xb9, 0x3d, 0x7b, 0x53, 0x80, 0xcd, 0x04, 0xf0, 0xa5,
0xbb, 0x81, 0x2f, 0x67, 0x00, 0x9f, 0x48, 0xd0, 0x8a, 0x92, 0xa0, 0x0a, 0x25, 0xd5, 0x7c, 0x4a,
0x6a, 0x2a, 0x25, 0x12, 0xef, 0x7a, 0x02, 0xef, 0x18, 0xcc, 0x46, 0x02, 0x4c, 0xf3, 0x6b, 0xd8,
0xbd, 0x75, 0xca, 0x87, 0x42, 0xf6, 0x77, 0x09, 0xb6, 0x4f, 0x3c, 0x42, 0x6d, 0xd7, 0x4d, 0x21,
0x16, 0xe7, 0xba, 0x56, 0x38, 0xd7, 0x4b, 0xff, 0x25, 0xd7, 0xcb, 0x0a, 0xe4, 0x92, 0x9f, 0x4a,
0x82, 0x9f, 0x42, 0xf9, 0xaf, 0x54, 0x9d, 0x5a, 0xaa, 0xea, 0xa0, 0x77, 0x00, 0x78, 0xc2, 0x32,
0xe3, 0x1c, 0xda, 0x26, 0x5b, 0x19, 0x8b, 0x22, 0x23, 0xd9, 0x68, 0x64, 0xb3, 0x91, 0xcc, 0xfe,
0x1e, 0x74, 0x64, 0x3c, 0xb3, 0x60, 0xce, 0x62, 0x12, 0x37, 0xa0, 0x2d, 0xd6, 0x87, 0xc1, 0x3c,
0x8a, 0x4a, 0x49, 0xf7, 0x56, 0x2a, 0xdd, 0x4f, 0x60, 0x27, 0x0d, 0xf8, 0x43, 0xc9, 0xfb, 0x4d,
0x83, 0xdd, 0x33, 0xcf, 0xc9, 0xa4, 0x2f, 0x2b, 0xe1, 0x6f, 0x01, 0x5a, 0xca, 0x00, 0xb4, 0x0b,
0xd5, 0x55, 0x18, 0x5c, 0x60, 0x41, 0x10, 0x9f, 0x24, 0x91, 0xaa, 0x28, 0x48, 0x99, 0x53, 0xd0,
0x6f, 0xc7, 0xf0, 0xc0, 0x13, 0x45, 0x51, 0xc7, 0x6f, 0x4d, 0x93, 0xbf, 0x2b, 0xe6, 0x16, 0x6c,
0x1e, 0x61, 0xfa, 0x9a, 0x5f, 0x2e, 0x71, 0x3c, 0x73, 0x04, 0x28, 0xb9, 0x78, 0xe3, 0x4f, 0x2c,
0xa9, 0xfe, 0x64, 0xe3, 0x25, 0xf5, 0xa5, 0x96, 0xf9, 0x05, 0xb3, 0x7d, 0xec, 0x10, 0xea, 0x07,
0xd7, 0x77, 0x41, 0xd7, 0x81, 0xf2, 0xd2, 0x7e, 0x2b, 0x9e, 0xa2, 0x68, 0x68, 0x1e, 0xb1, 0x08,
0xe2, 0xad, 0x22, 0x82, 0xe4, 0xc3, 0xae, 0x15, 0x7b, 0xd8, 0x7f, 0x00, 0xf4, 0x0a, 0xc7, 0x3d,
0xc6, 0x3d, 0x6f, 0xa2, 0x24, 0xa1, 0xa4, 0xa6, 0xab, 0x0e, 0xf5, 0x99, 0x8b, 0x6d, 0x2f, 0x5c,
0x09, 0xda, 0xe4, 0xd4, 0xfc, 0x11, 0xb6, 0x14, 0xeb, 0x22, 0xce, 0xe8, 0x3c, 0xe4, 0x42, 0x58,
0x8f, 0x86, 0xe8, 0x73, 0xa8, 0xf1, 0xc6, 0x8b, 0xd9, 0x6e, 0x0f, 0x1e, 0xa9, 0x71, 0x33, 0x23,
0xa1, 0x27, 0x3a, 0x35, 0x4b, 0xe8, 0x0e, 0xfe, 0x6c, 0x40, 0x5b, 0xb6, 0x12, 0xbc, 0x2d, 0x44,
0x0e, 0xac, 0x27, 0x7b, 0x26, 0xf4, 0x24, 0xbf, 0x6b, 0x4c, 0xb5, 0xbe, 0xc6, 0xd3, 0x22, 0xaa,
0xfc, 0x04, 0xe6, 0xda, 0x27, 0x1a, 0x22, 0xd0, 0x49, 0xb7, 0x32, 0xe8, 0x59, 0xb6, 0x8d, 0x9c,
0xde, 0xc9, 0xe8, 0x17, 0x55, 0x97, 0x6e, 0xd1, 0x15, 0xcb, 0x19, 0xb5, 0xff, 0x40, 0xf7, 0x9a,
0x51, 0x5b, 0x1e, 0xe3, 0xa0, 0xb0, 0x7e, 0xec, 0xf7, 0x67, 0xd8, 0x50, 0xde, 0x49, 0x94, 0x83,
0x56, 0x56, 0x37, 0x63, 0x7c, 0x54, 0x48, 0x37, 0xf6, 0xb5, 0x84, 0xb6, 0x5a, 0xa4, 0x50, 0x8e,
0x81, 0xcc, 0xb7, 0xc3, 0xf8, 0xb8, 0x98, 0x72, 0xec, 0x8e, 0x40, 0x27, 0x5d, 0x43, 0xf2, 0x78,
0xcc, 0xa9, 0x77, 0x79, 0x3c, 0xe6, 0x95, 0x26, 0x73, 0x0d, 0xd9, 0x00, 0x37, 0x25, 0x04, 0x3d,
0xce, 0x25, 0x44, 0xad, 0x3c, 0x46, 0xef, 0x7e, 0xc5, 0xd8, 0xc5, 0x0a, 0xfe, 0x97, 0x7a, 0xa9,
0x51, 0x0e, 0x34, 0xd9, 0x6d, 0x8b, 0xf1, 0xac, 0xa0, 0x76, 0xea, 0x50, 0xa2, 0x2a, 0xdd, 0x71,
0x28, 0xb5, 0xe4, 0xdd, 0x71, 0xa8, 0x54, 0x81, 0x33, 0xd7, 0x90, 0x03, 0x6d, 0x2b, 0xf4, 0x84,
0xeb, 0xa8, 0x2c, 0xa0, 0x9c, 0xdd, 0xb7, 0xab, 0x9a, 0xf1, 0xa4, 0x80, 0xe6, 0xcd, 0xfd, 0x7e,
0x0e, 0xdf, 0x37, 0xa4, 0xea, 0x79, 0x8d, 0xfd, 0x6b, 0xfe, 0xec, 0xdf, 0x00, 0x00, 0x00, 0xff,
0xff, 0xbd, 0x2a, 0xa3, 0x1f, 0x23, 0x10, 0x00, 0x00,
}
......@@ -84,7 +84,7 @@ func (s *ReleaseServer) prepareRelease(req *services.InstallReleaseRequest) (*re
return nil, err
}
hooks, manifestDoc, notesTxt, err := s.renderResources(req.Chart, valuesToRender, caps.APIVersions)
hooks, manifestDoc, notesTxt, err := s.renderResources(req.Chart, valuesToRender, req.SubNotes, caps.APIVersions)
if err != nil {
// Return a release with partial data so that client can show debugging
// information.
......
......@@ -268,7 +268,7 @@ func TestInstallRelease_WrongTillerVersion(t *testing.T) {
}
}
func TestInstallRelease_WithChartAndDependencyNotes(t *testing.T) {
func TestInstallRelease_WithChartAndDependencyParentNotes(t *testing.T) {
c := helm.NewContext()
rs := rsFixture()
......@@ -291,6 +291,39 @@ func TestInstallRelease_WithChartAndDependencyNotes(t *testing.T) {
t.Logf("rel: %v", rel)
if rel.Info.Status.Notes != notesText {
t.Fatalf("Expected '%s', got '%s'", notesText, rel.Info.Status.Notes)
}
if rel.Info.Description != "Install complete" {
t.Errorf("unexpected description: %s", rel.Info.Description)
}
}
func TestInstallRelease_WithChartAndDependencyAllNotes(t *testing.T) {
c := helm.NewContext()
rs := rsFixture()
req := installRequest(withSubNotes(),
withChart(
withNotes(notesText),
withDependency(withNotes(notesText+" child")),
))
res, err := rs.InstallRelease(c, req)
if err != nil {
t.Fatalf("Failed install: %s", err)
}
if res.Release.Name == "" {
t.Errorf("Expected release name.")
}
rel, err := rs.env.Releases.Get(res.Release.Name, res.Release.Version)
if err != nil {
t.Errorf("Expected release for %s (%v).", res.Release.Name, rs.env.Releases)
}
t.Logf("rel: %v", rel)
if !strings.Contains(rel.Info.Status.Notes, notesText) || !strings.Contains(rel.Info.Status.Notes, notesText+" child") {
t.Fatalf("Expected '%s', got '%s'", notesText+"\n"+notesText+" child", rel.Info.Status.Notes)
}
......
......@@ -20,6 +20,7 @@ import (
"bytes"
"errors"
"fmt"
"path"
"regexp"
"strings"
......@@ -259,7 +260,7 @@ func GetVersionSet(client discovery.ServerGroupsInterface) (chartutil.VersionSet
return chartutil.NewVersionSet(versions...), nil
}
func (s *ReleaseServer) renderResources(ch *chart.Chart, values chartutil.Values, vs chartutil.VersionSet) ([]*release.Hook, *bytes.Buffer, string, error) {
func (s *ReleaseServer) renderResources(ch *chart.Chart, values chartutil.Values, subNotes bool, vs chartutil.VersionSet) ([]*release.Hook, *bytes.Buffer, string, error) {
// Guard to make sure Tiller is at the right version to handle this chart.
sver := version.GetVersion()
if ch.Metadata.TillerVersion != "" &&
......@@ -291,14 +292,18 @@ func (s *ReleaseServer) renderResources(ch *chart.Chart, values chartutil.Values
var notesBuffer bytes.Buffer
for k, v := range files {
if strings.HasSuffix(k, notesFileSuffix) {
// If buffer contains data, add newline before adding more
if notesBuffer.Len() > 0 {
notesBuffer.WriteString("\n")
if subNotes || (k == path.Join(ch.Metadata.Name, "templates", notesFileSuffix)) {
// If buffer contains data, add newline before adding more
if notesBuffer.Len() > 0 {
notesBuffer.WriteString("\n")
}
notesBuffer.WriteString(v)
}
notesBuffer.WriteString(v)
delete(files, k)
}
}
notes := notesBuffer.String()
// Sort hooks, manifests, and partials. Only hooks and manifests are returned,
......
......@@ -228,6 +228,12 @@ func withChart(chartOpts ...chartOption) installOption {
}
}
func withSubNotes() installOption {
return func(opts *installOptions) {
opts.SubNotes = true
}
}
func installRequest(opts ...installOption) *services.InstallReleaseRequest {
reqOpts := &installOptions{
&services.InstallReleaseRequest{
......
......@@ -113,7 +113,7 @@ func (s *ReleaseServer) prepareUpdate(req *services.UpdateReleaseRequest) (*rele
return nil, nil, err
}
hooks, manifestDoc, notesTxt, err := s.renderResources(req.Chart, valuesToRender, caps.APIVersions)
hooks, manifestDoc, notesTxt, err := s.renderResources(req.Chart, valuesToRender, req.SubNotes, caps.APIVersions)
if err != nil {
return nil, nil, err
}
......
......@@ -65,8 +65,8 @@ func TestEqual(t *testing.T) {
func TestExtractHostname(t *testing.T) {
tests := map[string]string{
"http://example.com": "example.com",
"https://example.com/foo": "example.com",
"http://example.com": "example.com",
"https://example.com/foo": "example.com",
"https://example.com:31337/not/with/a/bang/but/a/whimper": "example.com",
}
for start, expect := range tests {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment