in marketplace/deployer_util/provision.py [0:0]
def provision_kalm(schema, version_repo, app_name, namespace, deployer_image,
app_params, deployer_service_account_name,
image_pull_secret):
"""Provisions KALM resource for installing the application."""
if not version_repo:
raise Exception('A valid --version_repo must be specified')
labels = {
'app.kubernetes.io/component': 'kalm.marketplace.cloud.google.com',
}
secret = make_v2_config(schema, deployer_image, namespace, app_name, labels,
app_params)
repo = {
'apiVersion': 'kalm.google.com/v1alpha1',
'kind': 'Repository',
'metadata': {
'name': app_name,
'namespace': namespace,
'labels': labels,
},
'spec': {
'type': 'Deployer',
'url': version_repo,
},
}
release = {
'apiVersion': 'kalm.google.com/v1alpha1',
'kind': 'Release',
'metadata': {
'name': app_name,
'namespace': namespace,
'labels': labels,
},
'spec': {
'repositoryRef': {
'name': app_name,
'namespace': namespace,
},
'version': schema.x_google_marketplace.published_version,
'applicationRef': {
'name': app_name,
},
'serviceAccountName': deployer_service_account_name,
'valuesSecretRef': {
'name': secret['metadata']['name']
}
},
}
service_account = {
'apiVersion': 'v1',
'kind': 'ServiceAccount',
'metadata': {
'name': deployer_service_account_name,
'namespace': namespace,
'labels': labels,
},
}
if image_pull_secret:
service_account['imagePullSecrets'] = [{
'name': image_pull_secret,
}]
role_binding = {
'apiVersion':
'rbac.authorization.k8s.io/v1',
'kind':
'RoleBinding',
'metadata': {
'name': '{}-deployer-rb'.format(app_name),
'namespace': namespace,
'labels': labels,
},
'roleRef': {
'apiGroup': 'rbac.authorization.k8s.io',
'kind': 'ClusterRole',
'name': 'cluster-admin',
},
'subjects': [{
'kind': 'ServiceAccount',
'name': deployer_service_account_name,
},]
}
return [
repo,
release,
role_binding,
secret,
service_account,
]