Initial Armada Commit (#1)
* Initial commit of Armada framework * python based .gitignore * incorporate pull request feedback
This commit is contained in:
parent
eef4185a15
commit
501d3d5ca2
90
README.md
90
README.md
@ -1,2 +1,90 @@
|
||||
# armada
|
||||
# Armada
|
||||
A python orchestrator for a installing, upgrading, and managing a collection of helm charts, dependencies, and values overrides.
|
||||
|
||||
Note that this project is pre-alpha and under active development. It may undergo drastic changes to support the long-term vision but contributions are welcome.
|
||||
|
||||
# Overview
|
||||
|
||||
The armada python library and command line tool provides a way to synchronize a helm (tiller) target with an operators intended state, consisting of several charts, dependencies, and overrides using a single file or directory with a collection of files. This allows operators to define many charts, potentially with different namespaces for those releases, and their overrides in a central place. With a single command, deploy and/or upgrade them where applicable.
|
||||
|
||||
Armada also supports fetching helm chart source and then building charts from source from various local and remote locations, such as git/github endpoints. In the future, it may supprot other mechanisms as well.
|
||||
|
||||
It will also give the operator some indication of what is about to change by assisting with diffs for both values, values overrides, and actual template changes.
|
||||
|
||||
Its functionality may extend beyond helm, assisting in interacting with kubernetes directly to perform basic pre and post steps, such as removing completed or failed jobs, running backup jobs, blocking on chart readiness, or deleting resources that do not support upgrades. However, primarily, it will be an interface to support orchestrating Helm.
|
||||
|
||||
# Installation
|
||||
|
||||
The installation is fairly straight forward:
|
||||
|
||||
```
|
||||
virtualenv --no-site-packages ~/armada-env
|
||||
~/armada-env/bin/pip install -r ./requirements.txt
|
||||
~/armada-env/bin/python ./setup.py install
|
||||
```
|
||||
|
||||
To run armada, simply supply it with your YAML based intention for any number of charts:
|
||||
|
||||
```
|
||||
~/armada-env/bin/aramda -c examples/aramda.conf
|
||||
```
|
||||
|
||||
Your output will look something like this:
|
||||
|
||||
```
|
||||
$ ~/armada-env/bin/armada -c examples/armada.yaml
|
||||
2017-02-10 09:42:36,753 armada INFO Cloning git://github.com/att-comdev/openstack-helm/keystone for release keystone
|
||||
2017-02-10 09:42:39,238 armada INFO Building dependency chart common for release keystone
|
||||
2017-02-10 09:42:39,238 armada INFO Cloning git://github.com/att-comdev/openstack-helm/common for release None
|
||||
2017-02-10 09:42:41,459 armada INFO Installing release keystone
|
||||
```
|
||||
|
||||
If you were to run it a second time, modifying the shared values override example in examples/armada.conf:
|
||||
|
||||
```
|
||||
endpoints: &endpoints
|
||||
glance:
|
||||
this: is an example
|
||||
```
|
||||
|
||||
to:
|
||||
|
||||
```
|
||||
endpoints: &endpoints
|
||||
glance:
|
||||
this: is an example
|
||||
that: is another example
|
||||
```
|
||||
|
||||
And re-run armada, we will notice it will upgrade the keystone release, instead of install it on this pass, as well as report back the values changes as a unified diff. A unified diff for any template changes would also be shown had those occurred.
|
||||
|
||||
```
|
||||
alan@hpdesktop:~/Workbench/att/attcomdev/armada$ /tmp/armada/bin/armada -c examples/armada.yaml
|
||||
2017-02-10 09:44:43,396 armada INFO Cloning git://github.com/att-comdev/openstack-helm/keystone for release keystone
|
||||
2017-02-10 09:44:47,640 armada INFO Building dependency chart common for release keystone
|
||||
2017-02-10 09:44:47,640 armada INFO Cloning git://github.com/att-comdev/openstack-helm/common for release None
|
||||
2017-02-10 09:44:49,701 armada INFO Upgrading release keystone
|
||||
2017-02-10 09:44:49,704 armada INFO Values Unified Diff (keystone)
|
||||
---
|
||||
|
||||
+++
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
|
||||
endpoints:
|
||||
- glance: {this: is an example}
|
||||
+ glance: {that: is another example, this: is an example}
|
||||
|
||||
```
|
||||
|
||||
# Helm gRPC
|
||||
|
||||
The helm gRPC libraries are located in the hapi directory. They were generated with the grpc_tools.protoc utility against Helm 2.1.3. Should you wish to re-generate them you can easily do so:
|
||||
|
||||
```
|
||||
git clone https://github.com/kubernetes/helm ./helm
|
||||
python -m grpc_tools.protoc -I helm/_proto --python_out=. --grpc_python_out=. helm/_proto/hapi/chart/*
|
||||
python -m grpc_tools.protoc -I helm/_proto --python_out=. --grpc_python_out=. helm/_proto/hapi/services/*
|
||||
python -m grpc_tools.protoc -I helm/_proto --python_out=. --grpc_python_out=. helm/_proto/hapi/release/*
|
||||
python -m grpc_tools.protoc -I helm/_proto --python_out=. --grpc_python_out=. helm/_proto/hapi/version/*
|
||||
```
|
0
armada/__init__.py
Normal file
0
armada/__init__.py
Normal file
106
armada/armada.py
Normal file
106
armada/armada.py
Normal file
@ -0,0 +1,106 @@
|
||||
from supermutes.dot import dotify
|
||||
from chartbuilder import ChartBuilder
|
||||
from tiller import Tiller
|
||||
from logutil import LOG
|
||||
import yaml
|
||||
import difflib
|
||||
|
||||
class Armada(object):
|
||||
'''
|
||||
This is the main Armada class handling the Armada
|
||||
workflows
|
||||
'''
|
||||
|
||||
def __init__(self, args):
|
||||
'''
|
||||
Initialize the Armada Engine and establish
|
||||
a connection to Tiller
|
||||
'''
|
||||
|
||||
self.args = args
|
||||
|
||||
# internalize config
|
||||
self.config = yaml.load(open(args.config).read())
|
||||
|
||||
self.tiller = Tiller()
|
||||
|
||||
|
||||
def find_release_chart(self, known_releases, name):
|
||||
'''
|
||||
Find a release given a list of known_releases and a release name
|
||||
'''
|
||||
for chart_name, version, chart, values in known_releases:
|
||||
if chart_name == name:
|
||||
return chart, values
|
||||
|
||||
|
||||
def sync(self):
|
||||
'''
|
||||
Syncronize Helm with the Armada Config(s)
|
||||
'''
|
||||
|
||||
# extract known charts on tiller right now
|
||||
known_releases = self.tiller.list_charts()
|
||||
for release in known_releases:
|
||||
LOG.debug("Release {}, Version {} found on tiller".format(release[0], release[1]))
|
||||
|
||||
for entry in self.config['armada']['charts']:
|
||||
|
||||
chart = dotify(entry['chart'])
|
||||
values = entry['chart']['values']
|
||||
|
||||
if chart.release_name is None:
|
||||
continue
|
||||
|
||||
|
||||
# initialize helm chart and request a
|
||||
# protoc helm chart object which will
|
||||
# pull the sources down and walk the
|
||||
# dependencies
|
||||
chartbuilder = ChartBuilder(chart)
|
||||
protoc_chart = chartbuilder.get_helm_chart()
|
||||
|
||||
# determine install or upgrade by examining known releases
|
||||
if chart.release_name in [x[0] for x in known_releases]:
|
||||
|
||||
# indicate to the end user what path we are taking
|
||||
LOG.info("Upgrading release {}".format(chart.release_name))
|
||||
|
||||
# extract the installed chart and installed values from the latest release so we can compare to the intended state
|
||||
installed_chart, installed_values = self.find_release_chart(known_releases, chart.release_name)
|
||||
|
||||
# show delta for both the chart templates and the chart values
|
||||
# TODO(alanmeadows) account for .files differences once we support those
|
||||
self.show_diff(chart, installed_chart, installed_values, chartbuilder.dump(), values)
|
||||
|
||||
# do actual update
|
||||
self.tiller.update_release(protoc_chart, self.args.dry_run, chart.release_name, disable_hooks=chart.upgrade.no_hooks, values=yaml.safe_dump(values))
|
||||
|
||||
# process install
|
||||
else:
|
||||
LOG.info("Installing release {}".format(chart.release_name))
|
||||
self.tiller.install_release(protoc_chart, self.args.dry_run, chart.release_name, chart.namespace, values=yaml.safe_dump(values))
|
||||
|
||||
|
||||
LOG.debug("Cleaning up chart source in {}".format(chartbuilder.source_directory))
|
||||
chartbuilder.source_cleanup()
|
||||
|
||||
def show_diff(self, chart, installed_chart, installed_values, target_chart, target_values):
|
||||
'''
|
||||
Produce a unified diff of the installed chart vs our intention
|
||||
|
||||
TODO(alanmeadows): This needs to be rewritten to produce better
|
||||
unified diff output and avoid the use of print
|
||||
'''
|
||||
|
||||
chart_diff = list(difflib.unified_diff(installed_chart.SerializeToString().split('\n'), target_chart.split('\n')))
|
||||
if len(chart_diff) > 0:
|
||||
LOG.info("Chart Unified Diff ({})".format(chart.release_name))
|
||||
for line in chart_diff:
|
||||
print line
|
||||
values_diff = list(difflib.unified_diff(installed_values.split('\n'), yaml.safe_dump(target_values).split('\n')))
|
||||
if len(values_diff) > 0:
|
||||
LOG.info("Values Unified Diff ({})".format(chart.release_name))
|
||||
for line in values_diff:
|
||||
print line
|
||||
|
164
armada/chartbuilder.py
Normal file
164
armada/chartbuilder.py
Normal file
@ -0,0 +1,164 @@
|
||||
from hapi.chart.template_pb2 import Template
|
||||
from hapi.chart.chart_pb2 import Chart
|
||||
from hapi.chart.metadata_pb2 import Metadata
|
||||
from hapi.chart.config_pb2 import Config
|
||||
from logutil import LOG
|
||||
from supermutes.dot import dotify
|
||||
import shutil
|
||||
import tempfile
|
||||
import pygit2
|
||||
import os
|
||||
import yaml
|
||||
|
||||
class ChartBuilder(object):
|
||||
'''
|
||||
This class handles taking chart intentions as a paramter and
|
||||
turning those into proper protoc helm charts that can be
|
||||
pushed to tiller.
|
||||
|
||||
It also processes chart source declarations, fetching chart
|
||||
source from external resources where necessary
|
||||
'''
|
||||
|
||||
|
||||
def __init__(self, chart, parent=None):
|
||||
'''
|
||||
Initialize the ChartBuilder class
|
||||
|
||||
Note that tthis will trigger a source pull as part of
|
||||
initialization as its necessary in order to examine
|
||||
the source service many of the calls on ChartBuilder
|
||||
'''
|
||||
|
||||
# cache for generated protoc chart object
|
||||
self._helm_chart = None
|
||||
|
||||
# record whether this is a dependency based chart
|
||||
self.parent = parent
|
||||
|
||||
# store chart schema
|
||||
self.chart = chart
|
||||
|
||||
# extract, pull, whatever the chart from its source
|
||||
self.source_directory = self.source_clone()
|
||||
|
||||
def source_clone(self):
|
||||
'''
|
||||
Clone the charts source
|
||||
|
||||
We only support a git source type right now, which can also
|
||||
handle git:// local paths as well
|
||||
'''
|
||||
|
||||
if self.chart.source.type == 'git':
|
||||
|
||||
tmpdir = tempfile.mkdtemp(prefix='armada', dir='/tmp')
|
||||
self._source_tmp_dir = tmpdir
|
||||
if self.parent:
|
||||
LOG.info("Cloning {}/{} as dependency for {}".format(self.chart.source.location, self.chart.source.subpath, self.parent))
|
||||
else:
|
||||
LOG.info("Cloning {}/{} for release {}".format(self.chart.source.location, self.chart.source.subpath, self.chart.release_name))
|
||||
pygit2.clone_repository(self.chart.source.location, tmpdir)
|
||||
return os.path.join(tmpdir, self.chart.source.subpath)
|
||||
|
||||
else:
|
||||
LOG.exception("Unknown source type {} for chart {}" .format(self.chart.name, self.chart.source.type))
|
||||
|
||||
|
||||
def source_cleanup(self):
|
||||
'''
|
||||
Cleanup source
|
||||
'''
|
||||
shutil.rmtree(self._source_tmp_dir)
|
||||
|
||||
|
||||
def get_metadata(self):
|
||||
'''
|
||||
Process metadata
|
||||
'''
|
||||
# extract Chart.yaml to construct metadata
|
||||
chart_yaml = dotify(yaml.load(open(os.path.join(self.source_directory, 'Chart.yaml')).read()))
|
||||
|
||||
# construct Metadata object
|
||||
return Metadata(
|
||||
description=chart_yaml.description,
|
||||
name=chart_yaml.name,
|
||||
version=chart_yaml.version
|
||||
)
|
||||
|
||||
|
||||
def get_files(self):
|
||||
'''
|
||||
Return (non-template) files in this chart
|
||||
|
||||
TODO(alanmeadows): Not implemented
|
||||
'''
|
||||
return []
|
||||
|
||||
|
||||
def get_values(self):
|
||||
'''
|
||||
Return the chart (default) values
|
||||
'''
|
||||
|
||||
# create config object representing unmarshaled values.yaml
|
||||
if os.path.exists(os.path.join(self.source_directory, 'values.yaml')):
|
||||
raw_values = open(os.path.join(self.source_directory, 'values.yaml')).read()
|
||||
else:
|
||||
LOG.warn("No values.yaml in {}, using empty values".format(self.source_directory))
|
||||
raw_values = ''
|
||||
|
||||
return Config(raw=raw_values)
|
||||
|
||||
|
||||
def get_templates(self):
|
||||
'''
|
||||
Return all the chart templates
|
||||
'''
|
||||
|
||||
# process all files in templates/ as a template to attach to the chart
|
||||
# building a Template object
|
||||
templates = []
|
||||
if not os.path.exists(os.path.join(self.source_directory, 'templates')):
|
||||
LOG.warn("Chart {} has no templates directory, no templates will be deployed".format(self.chart.name))
|
||||
for root, dirs, files in os.walk(os.path.join(self.source_directory, 'templates'), topdown=True):
|
||||
for file in files:
|
||||
templates.append(Template(name=file, data=open(os.path.join(root, file), 'r').read()))
|
||||
|
||||
return templates
|
||||
|
||||
|
||||
def get_helm_chart(self):
|
||||
'''
|
||||
Return a helm chart object
|
||||
'''
|
||||
|
||||
if self._helm_chart:
|
||||
return self._helm_chart
|
||||
# dependencies
|
||||
# [process_chart(x, is_dependency=True) for x in chart.dependencies]
|
||||
dependencies=[]
|
||||
for chart in self.chart.dependencies:
|
||||
LOG.info("Building dependency chart {} for release {}".format(chart.name, self.chart.release_name))
|
||||
dependencies.append(ChartBuilder(chart).get_helm_chart())
|
||||
|
||||
helm_chart = Chart(
|
||||
metadata=self.get_metadata(),
|
||||
templates=self.get_templates(),
|
||||
dependencies=dependencies,
|
||||
values=self.get_values(),
|
||||
files=self.get_files(),
|
||||
)
|
||||
|
||||
self._helm_chart = helm_chart
|
||||
return helm_chart
|
||||
|
||||
|
||||
def dump(self):
|
||||
'''
|
||||
This method is used to dump a chart object as a serialized string so that we can perform a diff
|
||||
|
||||
It should recurse into dependencies
|
||||
'''
|
||||
return self.get_helm_chart().SerializeToString()
|
||||
|
12
armada/k8s.py
Normal file
12
armada/k8s.py
Normal file
@ -0,0 +1,12 @@
|
||||
from logutil import LOG
|
||||
from kubernetes import client, config
|
||||
|
||||
class K8s(object):
|
||||
|
||||
|
||||
def __init__(self):
|
||||
'''
|
||||
Initialize connection to Kubernetes
|
||||
'''
|
||||
config.load_kube_config()
|
||||
self.client = client.CoreV1Api()
|
17
armada/logutil.py
Normal file
17
armada/logutil.py
Normal file
@ -0,0 +1,17 @@
|
||||
# various utilties to support logging
|
||||
|
||||
import logging
|
||||
from logging.handlers import SysLogHandler
|
||||
LOG = logging.getLogger('armada')
|
||||
LOG_FORMAT='%(asctime)s %(name)-12s %(levelname)-8s %(message)s'
|
||||
LOG_DATE = '%m-%d %H:%M'
|
||||
|
||||
|
||||
|
||||
def setup_logging(args):
|
||||
level = logging.DEBUG if args.debug else logging.INFO
|
||||
logging.basicConfig(level=level, format=LOG_FORMAT, date_fmt=LOG_DATE)
|
||||
handler = SysLogHandler(address='/dev/log')
|
||||
syslog_formatter = logging.Formatter('%(name)s: %(levelname)s %(message)s')
|
||||
handler.setFormatter(syslog_formatter)
|
||||
LOG.addHandler(handler)
|
141
armada/tiller.py
Normal file
141
armada/tiller.py
Normal file
@ -0,0 +1,141 @@
|
||||
from hapi.services.tiller_pb2 import ReleaseServiceStub, ListReleasesRequest, InstallReleaseRequest, UpdateReleaseRequest
|
||||
from hapi.chart.config_pb2 import Config
|
||||
from logutil import LOG
|
||||
from k8s import K8s
|
||||
import grpc
|
||||
|
||||
TILLER_PORT=44134
|
||||
TILLER_VERSION=b'2.1.3'
|
||||
TILLER_TIMEOUT=300
|
||||
|
||||
class Tiller(object):
|
||||
'''
|
||||
The Tiller class supports communication and requests to the Tiller Helm
|
||||
service over gRPC
|
||||
'''
|
||||
|
||||
def __init__(self):
|
||||
|
||||
# init k8s connectivity
|
||||
self.k8s = K8s()
|
||||
|
||||
# init tiller channel
|
||||
self.channel = self.get_channel()
|
||||
|
||||
# init timeout for all requests
|
||||
# and assume eventually this will
|
||||
# be fed at runtime as an override
|
||||
self.timeout = TILLER_TIMEOUT
|
||||
|
||||
|
||||
@property
|
||||
def metadata(self):
|
||||
'''
|
||||
Return tiller metadata for requests
|
||||
'''
|
||||
return [(b'x-helm-api-client', TILLER_VERSION)]
|
||||
|
||||
|
||||
def get_channel(self):
|
||||
'''
|
||||
Return a tiller channel
|
||||
'''
|
||||
tiller_ip = self._get_tiller_ip()
|
||||
tiller_port = self._get_tiller_port()
|
||||
return grpc.insecure_channel('%s:%s' % (tiller_ip, tiller_port))
|
||||
|
||||
|
||||
def _get_tiller_pod(self):
|
||||
'''
|
||||
Search all namespaces for a pod beginning with tiller-deploy*
|
||||
'''
|
||||
ret = self.k8s.client.list_pod_for_all_namespaces()
|
||||
for i in ret.items:
|
||||
# TODO(alanmeadows): this is a bit loose
|
||||
if i.metadata.name.startswith('tiller-deploy'):
|
||||
return i
|
||||
|
||||
|
||||
def _get_tiller_ip(self):
|
||||
'''
|
||||
Returns the tiller pod's IP address by searching all namespaces
|
||||
'''
|
||||
pod = self._get_tiller_pod()
|
||||
return pod.status.pod_ip
|
||||
|
||||
|
||||
def _get_tiller_port(self):
|
||||
'''Stub method to support arbitrary ports in the future'''
|
||||
return TILLER_PORT
|
||||
|
||||
|
||||
def list_releases(self):
|
||||
'''
|
||||
List Helm Releases
|
||||
'''
|
||||
stub = ReleaseServiceStub(self.channel)
|
||||
req = ListReleasesRequest()
|
||||
return stub.ListReleases(req, self.timeout, metadata=self.metadata)
|
||||
|
||||
|
||||
def list_charts(self):
|
||||
'''
|
||||
List Helm Charts from Latest Releases
|
||||
|
||||
Returns list of (name, version, chart, values)
|
||||
'''
|
||||
charts = []
|
||||
for x in self.list_releases():
|
||||
try:
|
||||
latest_release = x.releases[-1]
|
||||
charts.append((latest_release.name, latest_release.version, latest_release.chart, latest_release.config.raw))
|
||||
except IndexError:
|
||||
continue
|
||||
return charts
|
||||
|
||||
def get_release(self):
|
||||
'''
|
||||
Fetch a specific release
|
||||
'''
|
||||
|
||||
|
||||
def update_release(self, chart, dry_run, name, disable_hooks=False, values=None):
|
||||
'''
|
||||
Update a Helm Release
|
||||
'''
|
||||
|
||||
if values is None:
|
||||
values = Config(raw='')
|
||||
else:
|
||||
values = Config(raw=values)
|
||||
|
||||
# build release install request
|
||||
stub = ReleaseServiceStub(self.channel)
|
||||
release_request = UpdateReleaseRequest(
|
||||
chart=chart,
|
||||
dry_run=dry_run,
|
||||
disable_hooks=disable_hooks,
|
||||
values=values,
|
||||
name=name)
|
||||
return stub.UpdateRelease(release_request, self.timeout, metadata=self.metadata)
|
||||
|
||||
|
||||
def install_release(self, chart, dry_run, name, namespace, values=None):
|
||||
'''
|
||||
Create a Helm Release
|
||||
'''
|
||||
|
||||
if values is None:
|
||||
values = Config(raw='')
|
||||
else:
|
||||
values = Config(raw=values)
|
||||
|
||||
# build release install request
|
||||
stub = ReleaseServiceStub(self.channel)
|
||||
release_request = InstallReleaseRequest(
|
||||
chart=chart,
|
||||
dry_run=dry_run,
|
||||
values=values,
|
||||
name=name,
|
||||
namespace=namespace)
|
||||
return stub.InstallRelease(release_request, self.timeout, metadata=self.metadata)
|
47
examples/armada.yaml
Normal file
47
examples/armada.yaml
Normal file
@ -0,0 +1,47 @@
|
||||
endpoints: &endpoints
|
||||
glance:
|
||||
this: is an example
|
||||
|
||||
armada:
|
||||
|
||||
# results in "armada-keystone" release name below
|
||||
# to avoid manipulating releases managed directtly
|
||||
# with helm or other armadas
|
||||
release_prefix: armada
|
||||
|
||||
charts:
|
||||
|
||||
# silent dependency
|
||||
- chart: &common
|
||||
name: common
|
||||
release_name: null
|
||||
namespace: null
|
||||
values: {}
|
||||
source:
|
||||
type: git
|
||||
location: git://github.com/att-comdev/openstack-helm
|
||||
subpath: common
|
||||
reference: master
|
||||
dependencies: []
|
||||
|
||||
- chart: &keystone
|
||||
name: keystone
|
||||
release_name: keystone
|
||||
namespace: openstack
|
||||
install:
|
||||
no_hooks: false
|
||||
upgrade:
|
||||
no_hooks: false
|
||||
pre:
|
||||
delete:
|
||||
- Job/keystone-db-sync
|
||||
- Job/keystone-db-init
|
||||
values:
|
||||
endpoints: *endpoints
|
||||
source:
|
||||
type: git
|
||||
location: git://github.com/att-comdev/openstack-helm
|
||||
subpath: keystone
|
||||
reference: master
|
||||
dependencies:
|
||||
- *common
|
0
hapi/__init__.py
Normal file
0
hapi/__init__.py
Normal file
0
hapi/chart/__init__.py
Normal file
0
hapi/chart/__init__.py
Normal file
119
hapi/chart/chart_pb2.py
Normal file
119
hapi/chart/chart_pb2.py
Normal file
@ -0,0 +1,119 @@
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: hapi/chart/chart.proto
|
||||
|
||||
import sys
|
||||
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import message as _message
|
||||
from google.protobuf import reflection as _reflection
|
||||
from google.protobuf import symbol_database as _symbol_database
|
||||
from google.protobuf import descriptor_pb2
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
from hapi.chart import config_pb2 as hapi_dot_chart_dot_config__pb2
|
||||
from hapi.chart import metadata_pb2 as hapi_dot_chart_dot_metadata__pb2
|
||||
from hapi.chart import template_pb2 as hapi_dot_chart_dot_template__pb2
|
||||
from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor.FileDescriptor(
|
||||
name='hapi/chart/chart.proto',
|
||||
package='hapi.chart',
|
||||
syntax='proto3',
|
||||
serialized_pb=_b('\n\x16hapi/chart/chart.proto\x12\nhapi.chart\x1a\x17hapi/chart/config.proto\x1a\x19hapi/chart/metadata.proto\x1a\x19hapi/chart/template.proto\x1a\x19google/protobuf/any.proto\"\xca\x01\n\x05\x43hart\x12&\n\x08metadata\x18\x01 \x01(\x0b\x32\x14.hapi.chart.Metadata\x12\'\n\ttemplates\x18\x02 \x03(\x0b\x32\x14.hapi.chart.Template\x12\'\n\x0c\x64\x65pendencies\x18\x03 \x03(\x0b\x32\x11.hapi.chart.Chart\x12\"\n\x06values\x18\x04 \x01(\x0b\x32\x12.hapi.chart.Config\x12#\n\x05\x66iles\x18\x05 \x03(\x0b\x32\x14.google.protobuf.AnyB\x07Z\x05\x63hartb\x06proto3')
|
||||
,
|
||||
dependencies=[hapi_dot_chart_dot_config__pb2.DESCRIPTOR,hapi_dot_chart_dot_metadata__pb2.DESCRIPTOR,hapi_dot_chart_dot_template__pb2.DESCRIPTOR,google_dot_protobuf_dot_any__pb2.DESCRIPTOR,])
|
||||
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
|
||||
|
||||
|
||||
|
||||
|
||||
_CHART = _descriptor.Descriptor(
|
||||
name='Chart',
|
||||
full_name='hapi.chart.Chart',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='metadata', full_name='hapi.chart.Chart.metadata', index=0,
|
||||
number=1, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='templates', full_name='hapi.chart.Chart.templates', index=1,
|
||||
number=2, type=11, cpp_type=10, label=3,
|
||||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='dependencies', full_name='hapi.chart.Chart.dependencies', index=2,
|
||||
number=3, type=11, cpp_type=10, label=3,
|
||||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='values', full_name='hapi.chart.Chart.values', index=3,
|
||||
number=4, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='files', full_name='hapi.chart.Chart.files', index=4,
|
||||
number=5, type=11, cpp_type=10, label=3,
|
||||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[],
|
||||
enum_types=[
|
||||
],
|
||||
options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=145,
|
||||
serialized_end=347,
|
||||
)
|
||||
|
||||
_CHART.fields_by_name['metadata'].message_type = hapi_dot_chart_dot_metadata__pb2._METADATA
|
||||
_CHART.fields_by_name['templates'].message_type = hapi_dot_chart_dot_template__pb2._TEMPLATE
|
||||
_CHART.fields_by_name['dependencies'].message_type = _CHART
|
||||
_CHART.fields_by_name['values'].message_type = hapi_dot_chart_dot_config__pb2._CONFIG
|
||||
_CHART.fields_by_name['files'].message_type = google_dot_protobuf_dot_any__pb2._ANY
|
||||
DESCRIPTOR.message_types_by_name['Chart'] = _CHART
|
||||
|
||||
Chart = _reflection.GeneratedProtocolMessageType('Chart', (_message.Message,), dict(
|
||||
DESCRIPTOR = _CHART,
|
||||
__module__ = 'hapi.chart.chart_pb2'
|
||||
# @@protoc_insertion_point(class_scope:hapi.chart.Chart)
|
||||
))
|
||||
_sym_db.RegisterMessage(Chart)
|
||||
|
||||
|
||||
DESCRIPTOR.has_options = True
|
||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\005chart'))
|
||||
try:
|
||||
# THESE ELEMENTS WILL BE DEPRECATED.
|
||||
# Please use the generated *_pb2_grpc.py files instead.
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
from grpc.beta import implementations as beta_implementations
|
||||
from grpc.beta import interfaces as beta_interfaces
|
||||
except ImportError:
|
||||
pass
|
||||
# @@protoc_insertion_point(module_scope)
|
5
hapi/chart/chart_pb2_grpc.py
Normal file
5
hapi/chart/chart_pb2_grpc.py
Normal file
@ -0,0 +1,5 @@
|
||||
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
|
177
hapi/chart/config_pb2.py
Normal file
177
hapi/chart/config_pb2.py
Normal file
@ -0,0 +1,177 @@
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: hapi/chart/config.proto
|
||||
|
||||
import sys
|
||||
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import message as _message
|
||||
from google.protobuf import reflection as _reflection
|
||||
from google.protobuf import symbol_database as _symbol_database
|
||||
from google.protobuf import descriptor_pb2
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor.FileDescriptor(
|
||||
name='hapi/chart/config.proto',
|
||||
package='hapi.chart',
|
||||
syntax='proto3',
|
||||
serialized_pb=_b('\n\x17hapi/chart/config.proto\x12\nhapi.chart\"\x87\x01\n\x06\x43onfig\x12\x0b\n\x03raw\x18\x01 \x01(\t\x12.\n\x06values\x18\x02 \x03(\x0b\x32\x1e.hapi.chart.Config.ValuesEntry\x1a@\n\x0bValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12 \n\x05value\x18\x02 \x01(\x0b\x32\x11.hapi.chart.Value:\x02\x38\x01\"\x16\n\x05Value\x12\r\n\x05value\x18\x01 \x01(\tB\x07Z\x05\x63hartb\x06proto3')
|
||||
)
|
||||
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
|
||||
|
||||
|
||||
|
||||
|
||||
_CONFIG_VALUESENTRY = _descriptor.Descriptor(
|
||||
name='ValuesEntry',
|
||||
full_name='hapi.chart.Config.ValuesEntry',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='key', full_name='hapi.chart.Config.ValuesEntry.key', index=0,
|
||||
number=1, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='value', full_name='hapi.chart.Config.ValuesEntry.value', index=1,
|
||||
number=2, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[],
|
||||
enum_types=[
|
||||
],
|
||||
options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=111,
|
||||
serialized_end=175,
|
||||
)
|
||||
|
||||
_CONFIG = _descriptor.Descriptor(
|
||||
name='Config',
|
||||
full_name='hapi.chart.Config',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='raw', full_name='hapi.chart.Config.raw', index=0,
|
||||
number=1, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='values', full_name='hapi.chart.Config.values', index=1,
|
||||
number=2, type=11, cpp_type=10, label=3,
|
||||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[_CONFIG_VALUESENTRY, ],
|
||||
enum_types=[
|
||||
],
|
||||
options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=40,
|
||||
serialized_end=175,
|
||||
)
|
||||
|
||||
|
||||
_VALUE = _descriptor.Descriptor(
|
||||
name='Value',
|
||||
full_name='hapi.chart.Value',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='value', full_name='hapi.chart.Value.value', index=0,
|
||||
number=1, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[],
|
||||
enum_types=[
|
||||
],
|
||||
options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=177,
|
||||
serialized_end=199,
|
||||
)
|
||||
|
||||
_CONFIG_VALUESENTRY.fields_by_name['value'].message_type = _VALUE
|
||||
_CONFIG_VALUESENTRY.containing_type = _CONFIG
|
||||
_CONFIG.fields_by_name['values'].message_type = _CONFIG_VALUESENTRY
|
||||
DESCRIPTOR.message_types_by_name['Config'] = _CONFIG
|
||||
DESCRIPTOR.message_types_by_name['Value'] = _VALUE
|
||||
|
||||
Config = _reflection.GeneratedProtocolMessageType('Config', (_message.Message,), dict(
|
||||
|
||||
ValuesEntry = _reflection.GeneratedProtocolMessageType('ValuesEntry', (_message.Message,), dict(
|
||||
DESCRIPTOR = _CONFIG_VALUESENTRY,
|
||||
__module__ = 'hapi.chart.config_pb2'
|
||||
# @@protoc_insertion_point(class_scope:hapi.chart.Config.ValuesEntry)
|
||||
))
|
||||
,
|
||||
DESCRIPTOR = _CONFIG,
|
||||
__module__ = 'hapi.chart.config_pb2'
|
||||
# @@protoc_insertion_point(class_scope:hapi.chart.Config)
|
||||
))
|
||||
_sym_db.RegisterMessage(Config)
|
||||
_sym_db.RegisterMessage(Config.ValuesEntry)
|
||||
|
||||
Value = _reflection.GeneratedProtocolMessageType('Value', (_message.Message,), dict(
|
||||
DESCRIPTOR = _VALUE,
|
||||
__module__ = 'hapi.chart.config_pb2'
|
||||
# @@protoc_insertion_point(class_scope:hapi.chart.Value)
|
||||
))
|
||||
_sym_db.RegisterMessage(Value)
|
||||
|
||||
|
||||
DESCRIPTOR.has_options = True
|
||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\005chart'))
|
||||
_CONFIG_VALUESENTRY.has_options = True
|
||||
_CONFIG_VALUESENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
|
||||
try:
|
||||
# THESE ELEMENTS WILL BE DEPRECATED.
|
||||
# Please use the generated *_pb2_grpc.py files instead.
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
from grpc.beta import implementations as beta_implementations
|
||||
from grpc.beta import interfaces as beta_interfaces
|
||||
except ImportError:
|
||||
pass
|
||||
# @@protoc_insertion_point(module_scope)
|
5
hapi/chart/config_pb2_grpc.py
Normal file
5
hapi/chart/config_pb2_grpc.py
Normal file
@ -0,0 +1,5 @@
|
||||
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
|
215
hapi/chart/metadata_pb2.py
Normal file
215
hapi/chart/metadata_pb2.py
Normal file
@ -0,0 +1,215 @@
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: hapi/chart/metadata.proto
|
||||
|
||||
import sys
|
||||
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import message as _message
|
||||
from google.protobuf import reflection as _reflection
|
||||
from google.protobuf import symbol_database as _symbol_database
|
||||
from google.protobuf import descriptor_pb2
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor.FileDescriptor(
|
||||
name='hapi/chart/metadata.proto',
|
||||
package='hapi.chart',
|
||||
syntax='proto3',
|
||||
serialized_pb=_b('\n\x19hapi/chart/metadata.proto\x12\nhapi.chart\")\n\nMaintainer\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x65mail\x18\x02 \x01(\t\"\xf0\x01\n\x08Metadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04home\x18\x02 \x01(\t\x12\x0f\n\x07sources\x18\x03 \x03(\t\x12\x0f\n\x07version\x18\x04 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\x10\n\x08keywords\x18\x06 \x03(\t\x12+\n\x0bmaintainers\x18\x07 \x03(\x0b\x32\x16.hapi.chart.Maintainer\x12\x0e\n\x06\x65ngine\x18\x08 \x01(\t\x12\x0c\n\x04icon\x18\t \x01(\t\x12\x12\n\napiVersion\x18\n \x01(\t\" \n\x06\x45ngine\x12\x0b\n\x07UNKNOWN\x10\x00\x12\t\n\x05GOTPL\x10\x01\x42\x07Z\x05\x63hartb\x06proto3')
|
||||
)
|
||||
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
|
||||
|
||||
|
||||
|
||||
_METADATA_ENGINE = _descriptor.EnumDescriptor(
|
||||
name='Engine',
|
||||
full_name='hapi.chart.Metadata.Engine',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
values=[
|
||||
_descriptor.EnumValueDescriptor(
|
||||
name='UNKNOWN', index=0, number=0,
|
||||
options=None,
|
||||
type=None),
|
||||
_descriptor.EnumValueDescriptor(
|
||||
name='GOTPL', index=1, number=1,
|
||||
options=None,
|
||||
type=None),
|
||||
],
|
||||
containing_type=None,
|
||||
options=None,
|
||||
serialized_start=293,
|
||||
serialized_end=325,
|
||||
)
|
||||
_sym_db.RegisterEnumDescriptor(_METADATA_ENGINE)
|
||||
|
||||
|
||||
_MAINTAINER = _descriptor.Descriptor(
|
||||
name='Maintainer',
|
||||
full_name='hapi.chart.Maintainer',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='name', full_name='hapi.chart.Maintainer.name', index=0,
|
||||
number=1, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='email', full_name='hapi.chart.Maintainer.email', index=1,
|
||||
number=2, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[],
|
||||
enum_types=[
|
||||
],
|
||||
options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=41,
|
||||
serialized_end=82,
|
||||
)
|
||||
|
||||
|
||||
_METADATA = _descriptor.Descriptor(
|
||||
name='Metadata',
|
||||
full_name='hapi.chart.Metadata',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='name', full_name='hapi.chart.Metadata.name', index=0,
|
||||
number=1, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='home', full_name='hapi.chart.Metadata.home', index=1,
|
||||
number=2, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='sources', full_name='hapi.chart.Metadata.sources', index=2,
|
||||
number=3, type=9, cpp_type=9, label=3,
|
||||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='version', full_name='hapi.chart.Metadata.version', index=3,
|
||||
number=4, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='description', full_name='hapi.chart.Metadata.description', index=4,
|
||||
number=5, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='keywords', full_name='hapi.chart.Metadata.keywords', index=5,
|
||||
number=6, type=9, cpp_type=9, label=3,
|
||||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='maintainers', full_name='hapi.chart.Metadata.maintainers', index=6,
|
||||
number=7, type=11, cpp_type=10, label=3,
|
||||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='engine', full_name='hapi.chart.Metadata.engine', index=7,
|
||||
number=8, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='icon', full_name='hapi.chart.Metadata.icon', index=8,
|
||||
number=9, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='apiVersion', full_name='hapi.chart.Metadata.apiVersion', index=9,
|
||||
number=10, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[],
|
||||
enum_types=[
|
||||
_METADATA_ENGINE,
|
||||
],
|
||||
options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=85,
|
||||
serialized_end=325,
|
||||
)
|
||||
|
||||
_METADATA.fields_by_name['maintainers'].message_type = _MAINTAINER
|
||||
_METADATA_ENGINE.containing_type = _METADATA
|
||||
DESCRIPTOR.message_types_by_name['Maintainer'] = _MAINTAINER
|
||||
DESCRIPTOR.message_types_by_name['Metadata'] = _METADATA
|
||||
|
||||
Maintainer = _reflection.GeneratedProtocolMessageType('Maintainer', (_message.Message,), dict(
|
||||
DESCRIPTOR = _MAINTAINER,
|
||||
__module__ = 'hapi.chart.metadata_pb2'
|
||||
# @@protoc_insertion_point(class_scope:hapi.chart.Maintainer)
|
||||
))
|
||||
_sym_db.RegisterMessage(Maintainer)
|
||||
|
||||
Metadata = _reflection.GeneratedProtocolMessageType('Metadata', (_message.Message,), dict(
|
||||
DESCRIPTOR = _METADATA,
|
||||
__module__ = 'hapi.chart.metadata_pb2'
|
||||
# @@protoc_insertion_point(class_scope:hapi.chart.Metadata)
|
||||
))
|
||||
_sym_db.RegisterMessage(Metadata)
|
||||
|
||||
|
||||
DESCRIPTOR.has_options = True
|
||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\005chart'))
|
||||
try:
|
||||
# THESE ELEMENTS WILL BE DEPRECATED.
|
||||
# Please use the generated *_pb2_grpc.py files instead.
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
from grpc.beta import implementations as beta_implementations
|
||||
from grpc.beta import interfaces as beta_interfaces
|
||||
except ImportError:
|
||||
pass
|
||||
# @@protoc_insertion_point(module_scope)
|
5
hapi/chart/metadata_pb2_grpc.py
Normal file
5
hapi/chart/metadata_pb2_grpc.py
Normal file
@ -0,0 +1,5 @@
|
||||
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
|
88
hapi/chart/template_pb2.py
Normal file
88
hapi/chart/template_pb2.py
Normal file
@ -0,0 +1,88 @@
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: hapi/chart/template.proto
|
||||
|
||||
import sys
|
||||
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import message as _message
|
||||
from google.protobuf import reflection as _reflection
|
||||
from google.protobuf import symbol_database as _symbol_database
|
||||
from google.protobuf import descriptor_pb2
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor.FileDescriptor(
|
||||
name='hapi/chart/template.proto',
|
||||
package='hapi.chart',
|
||||
syntax='proto3',
|
||||
serialized_pb=_b('\n\x19hapi/chart/template.proto\x12\nhapi.chart\"&\n\x08Template\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x42\x07Z\x05\x63hartb\x06proto3')
|
||||
)
|
||||
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
|
||||
|
||||
|
||||
|
||||
|
||||
_TEMPLATE = _descriptor.Descriptor(
|
||||
name='Template',
|
||||
full_name='hapi.chart.Template',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='name', full_name='hapi.chart.Template.name', index=0,
|
||||
number=1, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='data', full_name='hapi.chart.Template.data', index=1,
|
||||
number=2, type=12, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b(""),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[],
|
||||
enum_types=[
|
||||
],
|
||||
options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=41,
|
||||
serialized_end=79,
|
||||
)
|
||||
|
||||
DESCRIPTOR.message_types_by_name['Template'] = _TEMPLATE
|
||||
|
||||
Template = _reflection.GeneratedProtocolMessageType('Template', (_message.Message,), dict(
|
||||
DESCRIPTOR = _TEMPLATE,
|
||||
__module__ = 'hapi.chart.template_pb2'
|
||||
# @@protoc_insertion_point(class_scope:hapi.chart.Template)
|
||||
))
|
||||
_sym_db.RegisterMessage(Template)
|
||||
|
||||
|
||||
DESCRIPTOR.has_options = True
|
||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\005chart'))
|
||||
try:
|
||||
# THESE ELEMENTS WILL BE DEPRECATED.
|
||||
# Please use the generated *_pb2_grpc.py files instead.
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
from grpc.beta import implementations as beta_implementations
|
||||
from grpc.beta import interfaces as beta_interfaces
|
||||
except ImportError:
|
||||
pass
|
||||
# @@protoc_insertion_point(module_scope)
|
5
hapi/chart/template_pb2_grpc.py
Normal file
5
hapi/chart/template_pb2_grpc.py
Normal file
@ -0,0 +1,5 @@
|
||||
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
|
0
hapi/release/__init__.py
Normal file
0
hapi/release/__init__.py
Normal file
172
hapi/release/hook_pb2.py
Normal file
172
hapi/release/hook_pb2.py
Normal file
@ -0,0 +1,172 @@
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: hapi/release/hook.proto
|
||||
|
||||
import sys
|
||||
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import message as _message
|
||||
from google.protobuf import reflection as _reflection
|
||||
from google.protobuf import symbol_database as _symbol_database
|
||||
from google.protobuf import descriptor_pb2
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor.FileDescriptor(
|
||||
name='hapi/release/hook.proto',
|
||||
package='hapi.release',
|
||||
syntax='proto3',
|
||||
serialized_pb=_b('\n\x17hapi/release/hook.proto\x12\x0chapi.release\x1a\x1fgoogle/protobuf/timestamp.proto\"\xbd\x02\n\x04Hook\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\x10\n\x08manifest\x18\x04 \x01(\t\x12(\n\x06\x65vents\x18\x05 \x03(\x0e\x32\x18.hapi.release.Hook.Event\x12,\n\x08last_run\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xa0\x01\n\x05\x45vent\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0f\n\x0bPRE_INSTALL\x10\x01\x12\x10\n\x0cPOST_INSTALL\x10\x02\x12\x0e\n\nPRE_DELETE\x10\x03\x12\x0f\n\x0bPOST_DELETE\x10\x04\x12\x0f\n\x0bPRE_UPGRADE\x10\x05\x12\x10\n\x0cPOST_UPGRADE\x10\x06\x12\x10\n\x0cPRE_ROLLBACK\x10\x07\x12\x11\n\rPOST_ROLLBACK\x10\x08\x42\tZ\x07releaseb\x06proto3')
|
||||
,
|
||||
dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,])
|
||||
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
|
||||
|
||||
|
||||
|
||||
_HOOK_EVENT = _descriptor.EnumDescriptor(
|
||||
name='Event',
|
||||
full_name='hapi.release.Hook.Event',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
values=[
|
||||
_descriptor.EnumValueDescriptor(
|
||||
name='UNKNOWN', index=0, number=0,
|
||||
options=None,
|
||||
type=None),
|
||||
_descriptor.EnumValueDescriptor(
|
||||
name='PRE_INSTALL', index=1, number=1,
|
||||
options=None,
|
||||
type=None),
|
||||
_descriptor.EnumValueDescriptor(
|
||||
name='POST_INSTALL', index=2, number=2,
|
||||
options=None,
|
||||
type=None),
|
||||
_descriptor.EnumValueDescriptor(
|
||||
name='PRE_DELETE', index=3, number=3,
|
||||
options=None,
|
||||
type=None),
|
||||
_descriptor.EnumValueDescriptor(
|
||||
name='POST_DELETE', index=4, number=4,
|
||||
options=None,
|
||||
type=None),
|
||||
_descriptor.EnumValueDescriptor(
|
||||
name='PRE_UPGRADE', index=5, number=5,
|
||||
options=None,
|
||||
type=None),
|
||||
_descriptor.EnumValueDescriptor(
|
||||
name='POST_UPGRADE', index=6, number=6,
|
||||
options=None,
|
||||
type=None),
|
||||
_descriptor.EnumValueDescriptor(
|
||||
name='PRE_ROLLBACK', index=7, number=7,
|
||||
options=None,
|
||||
type=None),
|
||||
_descriptor.EnumValueDescriptor(
|
||||
name='POST_ROLLBACK', index=8, number=8,
|
||||
options=None,
|
||||
type=None),
|
||||
],
|
||||
containing_type=None,
|
||||
options=None,
|
||||
serialized_start=232,
|
||||
serialized_end=392,
|
||||
)
|
||||
_sym_db.RegisterEnumDescriptor(_HOOK_EVENT)
|
||||
|
||||
|
||||
_HOOK = _descriptor.Descriptor(
|
||||
name='Hook',
|
||||
full_name='hapi.release.Hook',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='name', full_name='hapi.release.Hook.name', index=0,
|
||||
number=1, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='kind', full_name='hapi.release.Hook.kind', index=1,
|
||||
number=2, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='path', full_name='hapi.release.Hook.path', index=2,
|
||||
number=3, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='manifest', full_name='hapi.release.Hook.manifest', index=3,
|
||||
number=4, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='events', full_name='hapi.release.Hook.events', index=4,
|
||||
number=5, type=14, cpp_type=8, label=3,
|
||||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='last_run', full_name='hapi.release.Hook.last_run', index=5,
|
||||
number=6, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[],
|
||||
enum_types=[
|
||||
_HOOK_EVENT,
|
||||
],
|
||||
options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=75,
|
||||
serialized_end=392,
|
||||
)
|
||||
|
||||
_HOOK.fields_by_name['events'].enum_type = _HOOK_EVENT
|
||||
_HOOK.fields_by_name['last_run'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
|
||||
_HOOK_EVENT.containing_type = _HOOK
|
||||
DESCRIPTOR.message_types_by_name['Hook'] = _HOOK
|
||||
|
||||
Hook = _reflection.GeneratedProtocolMessageType('Hook', (_message.Message,), dict(
|
||||
DESCRIPTOR = _HOOK,
|
||||
__module__ = 'hapi.release.hook_pb2'
|
||||
# @@protoc_insertion_point(class_scope:hapi.release.Hook)
|
||||
))
|
||||
_sym_db.RegisterMessage(Hook)
|
||||
|
||||
|
||||
DESCRIPTOR.has_options = True
|
||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\007release'))
|
||||
try:
|
||||
# THESE ELEMENTS WILL BE DEPRECATED.
|
||||
# Please use the generated *_pb2_grpc.py files instead.
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
from grpc.beta import implementations as beta_implementations
|
||||
from grpc.beta import interfaces as beta_interfaces
|
||||
except ImportError:
|
||||
pass
|
||||
# @@protoc_insertion_point(module_scope)
|
5
hapi/release/hook_pb2_grpc.py
Normal file
5
hapi/release/hook_pb2_grpc.py
Normal file
@ -0,0 +1,5 @@
|
||||
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
|
109
hapi/release/info_pb2.py
Normal file
109
hapi/release/info_pb2.py
Normal file
@ -0,0 +1,109 @@
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: hapi/release/info.proto
|
||||
|
||||
import sys
|
||||
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import message as _message
|
||||
from google.protobuf import reflection as _reflection
|
||||
from google.protobuf import symbol_database as _symbol_database
|
||||
from google.protobuf import descriptor_pb2
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
|
||||
from hapi.release import status_pb2 as hapi_dot_release_dot_status__pb2
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor.FileDescriptor(
|
||||
name='hapi/release/info.proto',
|
||||
package='hapi.release',
|
||||
syntax='proto3',
|
||||
serialized_pb=_b('\n\x17hapi/release/info.proto\x12\x0chapi.release\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x19hapi/release/status.proto\"\xc0\x01\n\x04Info\x12$\n\x06status\x18\x01 \x01(\x0b\x32\x14.hapi.release.Status\x12\x32\n\x0e\x66irst_deployed\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\rlast_deployed\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12+\n\x07\x64\x65leted\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\tZ\x07releaseb\x06proto3')
|
||||
,
|
||||
dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,hapi_dot_release_dot_status__pb2.DESCRIPTOR,])
|
||||
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
|
||||
|
||||
|
||||
|
||||
|
||||
_INFO = _descriptor.Descriptor(
|
||||
name='Info',
|
||||
full_name='hapi.release.Info',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='status', full_name='hapi.release.Info.status', index=0,
|
||||
number=1, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='first_deployed', full_name='hapi.release.Info.first_deployed', index=1,
|
||||
number=2, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='last_deployed', full_name='hapi.release.Info.last_deployed', index=2,
|
||||
number=3, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='deleted', full_name='hapi.release.Info.deleted', index=3,
|
||||
number=4, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[],
|
||||
enum_types=[
|
||||
],
|
||||
options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=102,
|
||||
serialized_end=294,
|
||||
)
|
||||
|
||||
_INFO.fields_by_name['status'].message_type = hapi_dot_release_dot_status__pb2._STATUS
|
||||
_INFO.fields_by_name['first_deployed'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
|
||||
_INFO.fields_by_name['last_deployed'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
|
||||
_INFO.fields_by_name['deleted'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
|
||||
DESCRIPTOR.message_types_by_name['Info'] = _INFO
|
||||
|
||||
Info = _reflection.GeneratedProtocolMessageType('Info', (_message.Message,), dict(
|
||||
DESCRIPTOR = _INFO,
|
||||
__module__ = 'hapi.release.info_pb2'
|
||||
# @@protoc_insertion_point(class_scope:hapi.release.Info)
|
||||
))
|
||||
_sym_db.RegisterMessage(Info)
|
||||
|
||||
|
||||
DESCRIPTOR.has_options = True
|
||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\007release'))
|
||||
try:
|
||||
# THESE ELEMENTS WILL BE DEPRECATED.
|
||||
# Please use the generated *_pb2_grpc.py files instead.
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
from grpc.beta import implementations as beta_implementations
|
||||
from grpc.beta import interfaces as beta_interfaces
|
||||
except ImportError:
|
||||
pass
|
||||
# @@protoc_insertion_point(module_scope)
|
5
hapi/release/info_pb2_grpc.py
Normal file
5
hapi/release/info_pb2_grpc.py
Normal file
@ -0,0 +1,5 @@
|
||||
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
|
139
hapi/release/release_pb2.py
Normal file
139
hapi/release/release_pb2.py
Normal file
@ -0,0 +1,139 @@
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: hapi/release/release.proto
|
||||
|
||||
import sys
|
||||
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import message as _message
|
||||
from google.protobuf import reflection as _reflection
|
||||
from google.protobuf import symbol_database as _symbol_database
|
||||
from google.protobuf import descriptor_pb2
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
from hapi.release import hook_pb2 as hapi_dot_release_dot_hook__pb2
|
||||
from hapi.release import info_pb2 as hapi_dot_release_dot_info__pb2
|
||||
from hapi.chart import config_pb2 as hapi_dot_chart_dot_config__pb2
|
||||
from hapi.chart import chart_pb2 as hapi_dot_chart_dot_chart__pb2
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor.FileDescriptor(
|
||||
name='hapi/release/release.proto',
|
||||
package='hapi.release',
|
||||
syntax='proto3',
|
||||
serialized_pb=_b('\n\x1ahapi/release/release.proto\x12\x0chapi.release\x1a\x17hapi/release/hook.proto\x1a\x17hapi/release/info.proto\x1a\x17hapi/chart/config.proto\x1a\x16hapi/chart/chart.proto\"\xd8\x01\n\x07Release\x12\x0c\n\x04name\x18\x01 \x01(\t\x12 \n\x04info\x18\x02 \x01(\x0b\x32\x12.hapi.release.Info\x12 \n\x05\x63hart\x18\x03 \x01(\x0b\x32\x11.hapi.chart.Chart\x12\"\n\x06\x63onfig\x18\x04 \x01(\x0b\x32\x12.hapi.chart.Config\x12\x10\n\x08manifest\x18\x05 \x01(\t\x12!\n\x05hooks\x18\x06 \x03(\x0b\x32\x12.hapi.release.Hook\x12\x0f\n\x07version\x18\x07 \x01(\x05\x12\x11\n\tnamespace\x18\x08 \x01(\tB\tZ\x07releaseb\x06proto3')
|
||||
,
|
||||
dependencies=[hapi_dot_release_dot_hook__pb2.DESCRIPTOR,hapi_dot_release_dot_info__pb2.DESCRIPTOR,hapi_dot_chart_dot_config__pb2.DESCRIPTOR,hapi_dot_chart_dot_chart__pb2.DESCRIPTOR,])
|
||||
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
|
||||
|
||||
|
||||
|
||||
|
||||
_RELEASE = _descriptor.Descriptor(
|
||||
name='Release',
|
||||
full_name='hapi.release.Release',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='name', full_name='hapi.release.Release.name', index=0,
|
||||
number=1, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='info', full_name='hapi.release.Release.info', index=1,
|
||||
number=2, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='chart', full_name='hapi.release.Release.chart', index=2,
|
||||
number=3, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='config', full_name='hapi.release.Release.config', index=3,
|
||||
number=4, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='manifest', full_name='hapi.release.Release.manifest', index=4,
|
||||
number=5, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='hooks', full_name='hapi.release.Release.hooks', index=5,
|
||||
number=6, type=11, cpp_type=10, label=3,
|
||||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='version', full_name='hapi.release.Release.version', index=6,
|
||||
number=7, type=5, cpp_type=1, label=1,
|
||||
has_default_value=False, default_value=0,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='namespace', full_name='hapi.release.Release.namespace', index=7,
|
||||
number=8, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[],
|
||||
enum_types=[
|
||||
],
|
||||
options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=144,
|
||||
serialized_end=360,
|
||||
)
|
||||
|
||||
_RELEASE.fields_by_name['info'].message_type = hapi_dot_release_dot_info__pb2._INFO
|
||||
_RELEASE.fields_by_name['chart'].message_type = hapi_dot_chart_dot_chart__pb2._CHART
|
||||
_RELEASE.fields_by_name['config'].message_type = hapi_dot_chart_dot_config__pb2._CONFIG
|
||||
_RELEASE.fields_by_name['hooks'].message_type = hapi_dot_release_dot_hook__pb2._HOOK
|
||||
DESCRIPTOR.message_types_by_name['Release'] = _RELEASE
|
||||
|
||||
Release = _reflection.GeneratedProtocolMessageType('Release', (_message.Message,), dict(
|
||||
DESCRIPTOR = _RELEASE,
|
||||
__module__ = 'hapi.release.release_pb2'
|
||||
# @@protoc_insertion_point(class_scope:hapi.release.Release)
|
||||
))
|
||||
_sym_db.RegisterMessage(Release)
|
||||
|
||||
|
||||
DESCRIPTOR.has_options = True
|
||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\007release'))
|
||||
try:
|
||||
# THESE ELEMENTS WILL BE DEPRECATED.
|
||||
# Please use the generated *_pb2_grpc.py files instead.
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
from grpc.beta import implementations as beta_implementations
|
||||
from grpc.beta import interfaces as beta_interfaces
|
||||
except ImportError:
|
||||
pass
|
||||
# @@protoc_insertion_point(module_scope)
|
5
hapi/release/release_pb2_grpc.py
Normal file
5
hapi/release/release_pb2_grpc.py
Normal file
@ -0,0 +1,5 @@
|
||||
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
|
146
hapi/release/status_pb2.py
Normal file
146
hapi/release/status_pb2.py
Normal file
@ -0,0 +1,146 @@
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: hapi/release/status.proto
|
||||
|
||||
import sys
|
||||
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import message as _message
|
||||
from google.protobuf import reflection as _reflection
|
||||
from google.protobuf import symbol_database as _symbol_database
|
||||
from google.protobuf import descriptor_pb2
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor.FileDescriptor(
|
||||
name='hapi/release/status.proto',
|
||||
package='hapi.release',
|
||||
syntax='proto3',
|
||||
serialized_pb=_b('\n\x19hapi/release/status.proto\x12\x0chapi.release\x1a\x19google/protobuf/any.proto\"\xd4\x01\n\x06Status\x12\'\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x19.hapi.release.Status.Code\x12%\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any\x12\x11\n\tresources\x18\x03 \x01(\t\x12\r\n\x05notes\x18\x04 \x01(\t\"X\n\x04\x43ode\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0c\n\x08\x44\x45PLOYED\x10\x01\x12\x0b\n\x07\x44\x45LETED\x10\x02\x12\x0e\n\nSUPERSEDED\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\x0c\n\x08\x44\x45LETING\x10\x05\x42\tZ\x07releaseb\x06proto3')
|
||||
,
|
||||
dependencies=[google_dot_protobuf_dot_any__pb2.DESCRIPTOR,])
|
||||
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
|
||||
|
||||
|
||||
|
||||
_STATUS_CODE = _descriptor.EnumDescriptor(
|
||||
name='Code',
|
||||
full_name='hapi.release.Status.Code',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
values=[
|
||||
_descriptor.EnumValueDescriptor(
|
||||
name='UNKNOWN', index=0, number=0,
|
||||
options=None,
|
||||
type=None),
|
||||
_descriptor.EnumValueDescriptor(
|
||||
name='DEPLOYED', index=1, number=1,
|
||||
options=None,
|
||||
type=None),
|
||||
_descriptor.EnumValueDescriptor(
|
||||
name='DELETED', index=2, number=2,
|
||||
options=None,
|
||||
type=None),
|
||||
_descriptor.EnumValueDescriptor(
|
||||
name='SUPERSEDED', index=3, number=3,
|
||||
options=None,
|
||||
type=None),
|
||||
_descriptor.EnumValueDescriptor(
|
||||
name='FAILED', index=4, number=4,
|
||||
options=None,
|
||||
type=None),
|
||||
_descriptor.EnumValueDescriptor(
|
||||
name='DELETING', index=5, number=5,
|
||||
options=None,
|
||||
type=None),
|
||||
],
|
||||
containing_type=None,
|
||||
options=None,
|
||||
serialized_start=195,
|
||||
serialized_end=283,
|
||||
)
|
||||
_sym_db.RegisterEnumDescriptor(_STATUS_CODE)
|
||||
|
||||
|
||||
_STATUS = _descriptor.Descriptor(
|
||||
name='Status',
|
||||
full_name='hapi.release.Status',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='code', full_name='hapi.release.Status.code', index=0,
|
||||
number=1, type=14, cpp_type=8, label=1,
|
||||
has_default_value=False, default_value=0,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='details', full_name='hapi.release.Status.details', index=1,
|
||||
number=2, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='resources', full_name='hapi.release.Status.resources', index=2,
|
||||
number=3, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='notes', full_name='hapi.release.Status.notes', index=3,
|
||||
number=4, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[],
|
||||
enum_types=[
|
||||
_STATUS_CODE,
|
||||
],
|
||||
options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=71,
|
||||
serialized_end=283,
|
||||
)
|
||||
|
||||
_STATUS.fields_by_name['code'].enum_type = _STATUS_CODE
|
||||
_STATUS.fields_by_name['details'].message_type = google_dot_protobuf_dot_any__pb2._ANY
|
||||
_STATUS_CODE.containing_type = _STATUS
|
||||
DESCRIPTOR.message_types_by_name['Status'] = _STATUS
|
||||
|
||||
Status = _reflection.GeneratedProtocolMessageType('Status', (_message.Message,), dict(
|
||||
DESCRIPTOR = _STATUS,
|
||||
__module__ = 'hapi.release.status_pb2'
|
||||
# @@protoc_insertion_point(class_scope:hapi.release.Status)
|
||||
))
|
||||
_sym_db.RegisterMessage(Status)
|
||||
|
||||
|
||||
DESCRIPTOR.has_options = True
|
||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\007release'))
|
||||
try:
|
||||
# THESE ELEMENTS WILL BE DEPRECATED.
|
||||
# Please use the generated *_pb2_grpc.py files instead.
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
from grpc.beta import implementations as beta_implementations
|
||||
from grpc.beta import interfaces as beta_interfaces
|
||||
except ImportError:
|
||||
pass
|
||||
# @@protoc_insertion_point(module_scope)
|
5
hapi/release/status_pb2_grpc.py
Normal file
5
hapi/release/status_pb2_grpc.py
Normal file
@ -0,0 +1,5 @@
|
||||
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
|
0
hapi/services/__init__.py
Normal file
0
hapi/services/__init__.py
Normal file
1472
hapi/services/tiller_pb2.py
Normal file
1472
hapi/services/tiller_pb2.py
Normal file
File diff suppressed because it is too large
Load Diff
213
hapi/services/tiller_pb2_grpc.py
Normal file
213
hapi/services/tiller_pb2_grpc.py
Normal file
@ -0,0 +1,213 @@
|
||||
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
|
||||
import hapi.services.tiller_pb2 as hapi_dot_services_dot_tiller__pb2
|
||||
|
||||
|
||||
class ReleaseServiceStub(object):
|
||||
"""ReleaseService is the service that a helm application uses to mutate,
|
||||
query, and manage releases.
|
||||
|
||||
Release: A named installation composed of a chart and
|
||||
config. At any given time a release has one
|
||||
chart and one config.
|
||||
|
||||
Config: A config is a YAML file that supplies values
|
||||
to the parametrizable templates of a chart.
|
||||
|
||||
Chart: A chart is a helm package that contains
|
||||
metadata, a default config, zero or more
|
||||
optionally parameterizable templates, and
|
||||
zero or more charts (dependencies).
|
||||
"""
|
||||
|
||||
def __init__(self, channel):
|
||||
"""Constructor.
|
||||
|
||||
Args:
|
||||
channel: A grpc.Channel.
|
||||
"""
|
||||
self.ListReleases = channel.unary_stream(
|
||||
'/hapi.services.tiller.ReleaseService/ListReleases',
|
||||
request_serializer=hapi_dot_services_dot_tiller__pb2.ListReleasesRequest.SerializeToString,
|
||||
response_deserializer=hapi_dot_services_dot_tiller__pb2.ListReleasesResponse.FromString,
|
||||
)
|
||||
self.GetReleaseStatus = channel.unary_unary(
|
||||
'/hapi.services.tiller.ReleaseService/GetReleaseStatus',
|
||||
request_serializer=hapi_dot_services_dot_tiller__pb2.GetReleaseStatusRequest.SerializeToString,
|
||||
response_deserializer=hapi_dot_services_dot_tiller__pb2.GetReleaseStatusResponse.FromString,
|
||||
)
|
||||
self.GetReleaseContent = channel.unary_unary(
|
||||
'/hapi.services.tiller.ReleaseService/GetReleaseContent',
|
||||
request_serializer=hapi_dot_services_dot_tiller__pb2.GetReleaseContentRequest.SerializeToString,
|
||||
response_deserializer=hapi_dot_services_dot_tiller__pb2.GetReleaseContentResponse.FromString,
|
||||
)
|
||||
self.UpdateRelease = channel.unary_unary(
|
||||
'/hapi.services.tiller.ReleaseService/UpdateRelease',
|
||||
request_serializer=hapi_dot_services_dot_tiller__pb2.UpdateReleaseRequest.SerializeToString,
|
||||
response_deserializer=hapi_dot_services_dot_tiller__pb2.UpdateReleaseResponse.FromString,
|
||||
)
|
||||
self.InstallRelease = channel.unary_unary(
|
||||
'/hapi.services.tiller.ReleaseService/InstallRelease',
|
||||
request_serializer=hapi_dot_services_dot_tiller__pb2.InstallReleaseRequest.SerializeToString,
|
||||
response_deserializer=hapi_dot_services_dot_tiller__pb2.InstallReleaseResponse.FromString,
|
||||
)
|
||||
self.UninstallRelease = channel.unary_unary(
|
||||
'/hapi.services.tiller.ReleaseService/UninstallRelease',
|
||||
request_serializer=hapi_dot_services_dot_tiller__pb2.UninstallReleaseRequest.SerializeToString,
|
||||
response_deserializer=hapi_dot_services_dot_tiller__pb2.UninstallReleaseResponse.FromString,
|
||||
)
|
||||
self.GetVersion = channel.unary_unary(
|
||||
'/hapi.services.tiller.ReleaseService/GetVersion',
|
||||
request_serializer=hapi_dot_services_dot_tiller__pb2.GetVersionRequest.SerializeToString,
|
||||
response_deserializer=hapi_dot_services_dot_tiller__pb2.GetVersionResponse.FromString,
|
||||
)
|
||||
self.RollbackRelease = channel.unary_unary(
|
||||
'/hapi.services.tiller.ReleaseService/RollbackRelease',
|
||||
request_serializer=hapi_dot_services_dot_tiller__pb2.RollbackReleaseRequest.SerializeToString,
|
||||
response_deserializer=hapi_dot_services_dot_tiller__pb2.RollbackReleaseResponse.FromString,
|
||||
)
|
||||
self.GetHistory = channel.unary_unary(
|
||||
'/hapi.services.tiller.ReleaseService/GetHistory',
|
||||
request_serializer=hapi_dot_services_dot_tiller__pb2.GetHistoryRequest.SerializeToString,
|
||||
response_deserializer=hapi_dot_services_dot_tiller__pb2.GetHistoryResponse.FromString,
|
||||
)
|
||||
|
||||
|
||||
class ReleaseServiceServicer(object):
|
||||
"""ReleaseService is the service that a helm application uses to mutate,
|
||||
query, and manage releases.
|
||||
|
||||
Release: A named installation composed of a chart and
|
||||
config. At any given time a release has one
|
||||
chart and one config.
|
||||
|
||||
Config: A config is a YAML file that supplies values
|
||||
to the parametrizable templates of a chart.
|
||||
|
||||
Chart: A chart is a helm package that contains
|
||||
metadata, a default config, zero or more
|
||||
optionally parameterizable templates, and
|
||||
zero or more charts (dependencies).
|
||||
"""
|
||||
|
||||
def ListReleases(self, request, context):
|
||||
"""ListReleases retrieves release history.
|
||||
TODO: Allow filtering the set of releases by
|
||||
release status. By default, ListAllReleases returns the releases who
|
||||
current status is "Active".
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def GetReleaseStatus(self, request, context):
|
||||
"""GetReleasesStatus retrieves status information for the specified release.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def GetReleaseContent(self, request, context):
|
||||
"""GetReleaseContent retrieves the release content (chart + value) for the specified release.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def UpdateRelease(self, request, context):
|
||||
"""UpdateRelease updates release content.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def InstallRelease(self, request, context):
|
||||
"""InstallRelease requests installation of a chart as a new release.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def UninstallRelease(self, request, context):
|
||||
"""UninstallRelease requests deletion of a named release.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def GetVersion(self, request, context):
|
||||
"""GetVersion returns the current version of the server.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def RollbackRelease(self, request, context):
|
||||
"""RollbackRelease rolls back a release to a previous version.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def GetHistory(self, request, context):
|
||||
"""ReleaseHistory retrieves a releasse's history.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
|
||||
def add_ReleaseServiceServicer_to_server(servicer, server):
|
||||
rpc_method_handlers = {
|
||||
'ListReleases': grpc.unary_stream_rpc_method_handler(
|
||||
servicer.ListReleases,
|
||||
request_deserializer=hapi_dot_services_dot_tiller__pb2.ListReleasesRequest.FromString,
|
||||
response_serializer=hapi_dot_services_dot_tiller__pb2.ListReleasesResponse.SerializeToString,
|
||||
),
|
||||
'GetReleaseStatus': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetReleaseStatus,
|
||||
request_deserializer=hapi_dot_services_dot_tiller__pb2.GetReleaseStatusRequest.FromString,
|
||||
response_serializer=hapi_dot_services_dot_tiller__pb2.GetReleaseStatusResponse.SerializeToString,
|
||||
),
|
||||
'GetReleaseContent': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetReleaseContent,
|
||||
request_deserializer=hapi_dot_services_dot_tiller__pb2.GetReleaseContentRequest.FromString,
|
||||
response_serializer=hapi_dot_services_dot_tiller__pb2.GetReleaseContentResponse.SerializeToString,
|
||||
),
|
||||
'UpdateRelease': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.UpdateRelease,
|
||||
request_deserializer=hapi_dot_services_dot_tiller__pb2.UpdateReleaseRequest.FromString,
|
||||
response_serializer=hapi_dot_services_dot_tiller__pb2.UpdateReleaseResponse.SerializeToString,
|
||||
),
|
||||
'InstallRelease': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.InstallRelease,
|
||||
request_deserializer=hapi_dot_services_dot_tiller__pb2.InstallReleaseRequest.FromString,
|
||||
response_serializer=hapi_dot_services_dot_tiller__pb2.InstallReleaseResponse.SerializeToString,
|
||||
),
|
||||
'UninstallRelease': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.UninstallRelease,
|
||||
request_deserializer=hapi_dot_services_dot_tiller__pb2.UninstallReleaseRequest.FromString,
|
||||
response_serializer=hapi_dot_services_dot_tiller__pb2.UninstallReleaseResponse.SerializeToString,
|
||||
),
|
||||
'GetVersion': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetVersion,
|
||||
request_deserializer=hapi_dot_services_dot_tiller__pb2.GetVersionRequest.FromString,
|
||||
response_serializer=hapi_dot_services_dot_tiller__pb2.GetVersionResponse.SerializeToString,
|
||||
),
|
||||
'RollbackRelease': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.RollbackRelease,
|
||||
request_deserializer=hapi_dot_services_dot_tiller__pb2.RollbackReleaseRequest.FromString,
|
||||
response_serializer=hapi_dot_services_dot_tiller__pb2.RollbackReleaseResponse.SerializeToString,
|
||||
),
|
||||
'GetHistory': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.GetHistory,
|
||||
request_deserializer=hapi_dot_services_dot_tiller__pb2.GetHistoryRequest.FromString,
|
||||
response_serializer=hapi_dot_services_dot_tiller__pb2.GetHistoryResponse.SerializeToString,
|
||||
),
|
||||
}
|
||||
generic_handler = grpc.method_handlers_generic_handler(
|
||||
'hapi.services.tiller.ReleaseService', rpc_method_handlers)
|
||||
server.add_generic_rpc_handlers((generic_handler,))
|
0
hapi/version/__init__.py
Normal file
0
hapi/version/__init__.py
Normal file
95
hapi/version/version_pb2.py
Normal file
95
hapi/version/version_pb2.py
Normal file
@ -0,0 +1,95 @@
|
||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
# source: hapi/version/version.proto
|
||||
|
||||
import sys
|
||||
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
|
||||
from google.protobuf import descriptor as _descriptor
|
||||
from google.protobuf import message as _message
|
||||
from google.protobuf import reflection as _reflection
|
||||
from google.protobuf import symbol_database as _symbol_database
|
||||
from google.protobuf import descriptor_pb2
|
||||
# @@protoc_insertion_point(imports)
|
||||
|
||||
_sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor.FileDescriptor(
|
||||
name='hapi/version/version.proto',
|
||||
package='hapi.version',
|
||||
syntax='proto3',
|
||||
serialized_pb=_b('\n\x1ahapi/version/version.proto\x12\x0chapi.version\"F\n\x07Version\x12\x0f\n\x07sem_ver\x18\x01 \x01(\t\x12\x12\n\ngit_commit\x18\x02 \x01(\t\x12\x16\n\x0egit_tree_state\x18\x03 \x01(\tB\tZ\x07versionb\x06proto3')
|
||||
)
|
||||
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
|
||||
|
||||
|
||||
|
||||
|
||||
_VERSION = _descriptor.Descriptor(
|
||||
name='Version',
|
||||
full_name='hapi.version.Version',
|
||||
filename=None,
|
||||
file=DESCRIPTOR,
|
||||
containing_type=None,
|
||||
fields=[
|
||||
_descriptor.FieldDescriptor(
|
||||
name='sem_ver', full_name='hapi.version.Version.sem_ver', index=0,
|
||||
number=1, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='git_commit', full_name='hapi.version.Version.git_commit', index=1,
|
||||
number=2, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='git_tree_state', full_name='hapi.version.Version.git_tree_state', index=2,
|
||||
number=3, type=9, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
nested_types=[],
|
||||
enum_types=[
|
||||
],
|
||||
options=None,
|
||||
is_extendable=False,
|
||||
syntax='proto3',
|
||||
extension_ranges=[],
|
||||
oneofs=[
|
||||
],
|
||||
serialized_start=44,
|
||||
serialized_end=114,
|
||||
)
|
||||
|
||||
DESCRIPTOR.message_types_by_name['Version'] = _VERSION
|
||||
|
||||
Version = _reflection.GeneratedProtocolMessageType('Version', (_message.Message,), dict(
|
||||
DESCRIPTOR = _VERSION,
|
||||
__module__ = 'hapi.version.version_pb2'
|
||||
# @@protoc_insertion_point(class_scope:hapi.version.Version)
|
||||
))
|
||||
_sym_db.RegisterMessage(Version)
|
||||
|
||||
|
||||
DESCRIPTOR.has_options = True
|
||||
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\007version'))
|
||||
try:
|
||||
# THESE ELEMENTS WILL BE DEPRECATED.
|
||||
# Please use the generated *_pb2_grpc.py files instead.
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
from grpc.beta import implementations as beta_implementations
|
||||
from grpc.beta import interfaces as beta_interfaces
|
||||
except ImportError:
|
||||
pass
|
||||
# @@protoc_insertion_point(module_scope)
|
5
hapi/version/version_pb2_grpc.py
Normal file
5
hapi/version/version_pb2_grpc.py
Normal file
@ -0,0 +1,5 @@
|
||||
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
|
||||
import grpc
|
||||
from grpc.framework.common import cardinality
|
||||
from grpc.framework.interfaces.face import utilities as face_utilities
|
||||
|
7
requirements.txt
Normal file
7
requirements.txt
Normal file
@ -0,0 +1,7 @@
|
||||
supermutes
|
||||
grpc
|
||||
pyyaml
|
||||
grpcio
|
||||
grpcio-tools
|
||||
kubernetes
|
||||
pygit2==0.24.0
|
45
scripts/armada
Executable file
45
scripts/armada
Executable file
@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import yaml
|
||||
import tempfile
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
from supermutes.dot import dotify
|
||||
from armada.armada import Armada
|
||||
from armada.logutil import *
|
||||
|
||||
DESCRIPTION = "Armada"
|
||||
|
||||
def parse_args():
|
||||
|
||||
ap = argparse.ArgumentParser(description=DESCRIPTION)
|
||||
ap.add_argument('--debug', action='store',
|
||||
default=False, required=False, help='Enable debug logging')
|
||||
ap.add_argument('-c', '--config', action='store',
|
||||
required=True, help='Path to YAML File or Directory')
|
||||
ap.add_argument('-d', '--dry-run', action='store',
|
||||
default=False, required=False, help='Enable dry-run flag on all Tiller Calls')
|
||||
|
||||
return ap.parse_args()
|
||||
|
||||
|
||||
def run(args):
|
||||
|
||||
armada = Armada(args)
|
||||
armada.sync()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
args = parse_args()
|
||||
setup_logging(args)
|
||||
|
||||
try:
|
||||
run(args)
|
||||
sys.exit(0)
|
||||
except Exception as err:
|
||||
LOG.exception(err)
|
||||
sys.exit(1)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user