github.com/felipejfc/helm@v2.1.2+incompatible/_proto/hapi/services/tiller.proto (about) 1 // Copyright 2016 The Kubernetes Authors All rights reserved. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 syntax = "proto3"; 16 17 package hapi.services.tiller; 18 19 import "hapi/chart/chart.proto"; 20 import "hapi/chart/config.proto"; 21 import "hapi/release/release.proto"; 22 import "hapi/release/info.proto"; 23 import "hapi/release/status.proto"; 24 import "hapi/version/version.proto"; 25 26 option go_package = "services"; 27 28 // ReleaseService is the service that a helm application uses to mutate, 29 // query, and manage releases. 30 // 31 // Release: A named installation composed of a chart and 32 // config. At any given time a release has one 33 // chart and one config. 34 // 35 // Config: A config is a YAML file that supplies values 36 // to the parametrizable templates of a chart. 37 // 38 // Chart: A chart is a helm package that contains 39 // metadata, a default config, zero or more 40 // optionally parameterizable templates, and 41 // zero or more charts (dependencies). 42 service ReleaseService { 43 // ListReleases retrieves release history. 44 // TODO: Allow filtering the set of releases by 45 // release status. By default, ListAllReleases returns the releases who 46 // current status is "Active". 47 rpc ListReleases(ListReleasesRequest) returns (stream ListReleasesResponse) { 48 } 49 50 // GetReleasesStatus retrieves status information for the specified release. 51 rpc GetReleaseStatus(GetReleaseStatusRequest) returns (GetReleaseStatusResponse) { 52 } 53 54 // GetReleaseContent retrieves the release content (chart + value) for the specified release. 55 rpc GetReleaseContent(GetReleaseContentRequest) returns (GetReleaseContentResponse) { 56 } 57 58 // UpdateRelease updates release content. 59 rpc UpdateRelease(UpdateReleaseRequest) returns (UpdateReleaseResponse) { 60 } 61 62 // InstallRelease requests installation of a chart as a new release. 63 rpc InstallRelease(InstallReleaseRequest) returns (InstallReleaseResponse) { 64 } 65 66 // UninstallRelease requests deletion of a named release. 67 rpc UninstallRelease(UninstallReleaseRequest) returns (UninstallReleaseResponse) { 68 } 69 70 // GetVersion returns the current version of the server. 71 rpc GetVersion(GetVersionRequest) returns (GetVersionResponse) { 72 } 73 74 // RollbackRelease rolls back a release to a previous version. 75 rpc RollbackRelease(RollbackReleaseRequest) returns (RollbackReleaseResponse) { 76 } 77 78 // ReleaseHistory retrieves a releasse's history. 79 rpc GetHistory(GetHistoryRequest) returns (GetHistoryResponse) { 80 } 81 } 82 83 // ListReleasesRequest requests a list of releases. 84 // 85 // Releases can be retrieved in chunks by setting limit and offset. 86 // 87 // Releases can be sorted according to a few pre-determined sort stategies. 88 message ListReleasesRequest { 89 // Limit is the maximum number of releases to be returned. 90 int64 limit = 1; 91 92 // Offset is the last release name that was seen. The next listing 93 // operation will start with the name after this one. 94 // Example: If list one returns albert, bernie, carl, and sets 'next: dennis'. 95 // dennis is the offset. Supplying 'dennis' for the next request should 96 // cause the next batch to return a set of results starting with 'dennis'. 97 string offset = 2; 98 99 // SortBy is the sort field that the ListReleases server should sort data before returning. 100 ListSort.SortBy sort_by = 3; 101 102 // Filter is a regular expression used to filter which releases should be listed. 103 // 104 // Anything that matches the regexp will be included in the results. 105 string filter = 4; 106 107 // SortOrder is the ordering directive used for sorting. 108 ListSort.SortOrder sort_order = 5; 109 110 repeated hapi.release.Status.Code status_codes = 6; 111 } 112 113 // ListSort defines sorting fields on a release list. 114 message ListSort{ 115 // SortBy defines sort operations. 116 enum SortBy { 117 UNKNOWN = 0; 118 NAME = 1; 119 LAST_RELEASED = 2; 120 } 121 122 // SortOrder defines sort orders to augment sorting operations. 123 enum SortOrder { 124 ASC = 0; 125 DESC = 1; 126 } 127 } 128 129 // ListReleasesResponse is a list of releases. 130 message ListReleasesResponse { 131 // Count is the expected total number of releases to be returned. 132 int64 count = 1; 133 134 // Next is the name of the next release. If this is other than an empty 135 // string, it means there are more results. 136 string next = 2; 137 138 // Total is the total number of queryable releases. 139 int64 total = 3; 140 141 // Releases is the list of found release objects. 142 repeated hapi.release.Release releases = 4; 143 } 144 145 // GetReleaseStatusRequest is a request to get the status of a release. 146 message GetReleaseStatusRequest { 147 // Name is the name of the release 148 string name = 1; 149 // Version is the version of the release 150 int32 version = 2; 151 } 152 153 // GetReleaseStatusResponse is the response indicating the status of the named release. 154 message GetReleaseStatusResponse { 155 // Name is the name of the release. 156 string name = 1; 157 158 // Info contains information about the release. 159 hapi.release.Info info = 2; 160 161 // Namesapce the release was released into 162 string namespace = 3; 163 } 164 165 // GetReleaseContentRequest is a request to get the contents of a release. 166 message GetReleaseContentRequest { 167 // The name of the release 168 string name = 1; 169 // Version is the version of the release 170 int32 version = 2; 171 } 172 173 // GetReleaseContentResponse is a response containing the contents of a release. 174 message GetReleaseContentResponse { 175 // The release content 176 hapi.release.Release release = 1; 177 } 178 179 // UpdateReleaseRequest updates a release. 180 message UpdateReleaseRequest { 181 // The name of the release 182 string name = 1; 183 // Chart is the protobuf representation of a chart. 184 hapi.chart.Chart chart = 2; 185 // Values is a string containing (unparsed) YAML values. 186 hapi.chart.Config values = 3; 187 // dry_run, if true, will run through the release logic, but neither create 188 bool dry_run = 4; 189 // DisableHooks causes the server to skip running any hooks for the upgrade. 190 bool disable_hooks = 5; 191 } 192 193 // UpdateReleaseResponse is the response to an update request. 194 message UpdateReleaseResponse { 195 hapi.release.Release release = 1; 196 } 197 198 message RollbackReleaseRequest { 199 // The name of the release 200 string name = 1; 201 // dry_run, if true, will run through the release logic but no create 202 bool dry_run = 2; 203 // DisableHooks causes the server to skip running any hooks for the rollback 204 bool disable_hooks = 3; 205 // Version is the version of the release to deploy. 206 int32 version = 4; 207 } 208 209 // RollbackReleaseResponse is the response to an update request. 210 message RollbackReleaseResponse { 211 hapi.release.Release release = 1; 212 } 213 214 // InstallReleaseRequest is the request for an installation of a chart. 215 message InstallReleaseRequest { 216 // Chart is the protobuf representation of a chart. 217 hapi.chart.Chart chart = 1; 218 // Values is a string containing (unparsed) YAML values. 219 hapi.chart.Config values = 2; 220 // DryRun, if true, will run through the release logic, but neither create 221 // a release object nor deploy to Kubernetes. The release object returned 222 // in the response will be fake. 223 bool dry_run = 3; 224 225 // Name is the candidate release name. This must be unique to the 226 // namespace, otherwise the server will return an error. If it is not 227 // supplied, the server will autogenerate one. 228 string name = 4; 229 230 // DisableHooks causes the server to skip running any hooks for the install. 231 bool disable_hooks = 5; 232 233 // Namepace is the kubernetes namespace of the release. 234 string namespace = 6; 235 236 // ReuseName requests that Tiller re-uses a name, instead of erroring out. 237 bool reuse_name = 7; 238 } 239 240 // InstallReleaseResponse is the response from a release installation. 241 message InstallReleaseResponse { 242 hapi.release.Release release = 1; 243 } 244 245 // UninstallReleaseRequest represents a request to uninstall a named release. 246 message UninstallReleaseRequest { 247 // Name is the name of the release to delete. 248 string name = 1; 249 // DisableHooks causes the server to skip running any hooks for the uninstall. 250 bool disable_hooks = 2; 251 // Purge removes the release from the store and make its name free for later use. 252 bool purge = 3; 253 } 254 255 // UninstallReleaseResponse represents a successful response to an uninstall request. 256 message UninstallReleaseResponse { 257 // Release is the release that was marked deleted. 258 hapi.release.Release release = 1; 259 // Info is an uninstall message 260 string info = 2; 261 } 262 263 // GetVersionRequest requests for version information. 264 message GetVersionRequest { 265 } 266 267 message GetVersionResponse { 268 hapi.version.Version Version = 1; 269 } 270 271 // GetHistoryRequest requests a release's history. 272 message GetHistoryRequest { 273 // The name of the release. 274 string name = 1; 275 // The maximum number of releases to include. 276 int32 max = 2; 277 } 278 279 // GetHistoryResponse is received in response to a GetHistory rpc. 280 message GetHistoryResponse { 281 repeated hapi.release.Release releases = 1; 282 }