Releases: GoogleCloudPlatform/marketplace-k8s-app-tools
Managed Updates alpha04
Support helm tiller upgrade and fix verify (#361) * Fix verify This doesn't use KALM, but at least it enables testing of deployers using v2 schema. * Support helm upgrade
Managed update alpha03
0.8.0-alpha03 Generate passwords and TLS certificates at provisioning time (#359)
Managed update alpha02
Add 'enum' property to doc with sample (#354) * Add 'enum' property with sample * Update schema.md
Managed update alpha01
Support managed updates (#349) A few notes: - We handle v2 deployer in this PR. In this updated schema, the images are declared explicitly under `x-google-marketplace.images`. We will use a `Secret` for the parameters, instead of `ConfigMap`. The properties that receive images will be generated by the deployer. - To __additionally__ indicate that an app supports KALM in a v2 deployer, the following entry in `schema.yaml` v2 is added: ```yaml x-google-marketplace: schemaVersion: v2 managedUpdates: kalmSupported: true ``` Note that it's possible to use v2 deployer without supporting managed updates. In fact, v2 will be the desired implementation for new partners.
Initial cut for supporting Managed Updates
Summary
The following mpdev
commands are added/updated:
# Publish a version of the deployer to a GCS bucket. The bucket stores metadata that points back to the deployer image.
mpdev publish --deployer_image=DEPLOYER_IMAGE --gcs_repo=GCS_REPO_PATH
# Install command now needs --gcs_repo for apps that support managed updates.
mpdev install --deployer=DEPLOYER_IMAGE --parameters=APP_PARAMETERS --gcs_repo=GCS_REPO_PATH
# Look at the available versions and update the app to the latest available one.
# Can also be used with --version to force update to a specific version.
mpdev update --name=APP_NAME --namespace=NAMESPACE [--version=SPECIFIC_VERSION]
Known problems
mpdev verify
does not yet work.
Add TLS_CERTIFICATE property type
type: TLS_CERTIFICATE
This property provides an SSL/TLS certificate for the Kubernetes manifest. By default, a self-signed certificate is generated.
Example:
properties:
certificate:
type: string
x-google-marketplace:
type: TLS_CERTIFICATE
tlsCertificate:
generatedProperties:
base64EncodedPrivateKey: TLS_CERTIFICATE_KEY
base64EncodedCertificate: TLS_CERTIFICATE_CRT
base64EncodedPrivateKey
: Denotes the name of a property receive a private key.base64EncodedCertificate
: Denotes the name of a property receive a certificate.
You can provide your custom certificate by overwrite the certificate
property in the JSON format as following:
{
"private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----",
"certificate": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----"
}
In your helm chart, based on the above example, you can handle the certificate:
apiVersion: v1
kind: Secret
metadata:
name: tls-secret
namespace: demo
data:
tls.key: {{ .Values.TLS_CERTIFICATE_KEY }}
tls.crt: {{ .Values.TLS_CERTIFICATE_CRT }}
type: kubernetes.io/tls
In your envsubst
manifest, based on the above example, you can handle the certificate:
apiVersion: v1
kind: Secret
metadata:
name: tls-secret
namespace: demo
data:
tls.key: $TLS_CERTIFICATE_KEY
tls.crt: $TLS_CERTIFICATE_CRT
type: kubernetes.io/tls
Bug fixes
Add INGRESS_AVAILABLE property type
INGRESS_AVAILABLE
property type
properties:
ingressAvailable:
type: boolean
x-google-marketplace:
type: INGRESS_AVAILABLE
This boolean property receives a True value if the cluster is detected to have Ingress controller. The deployer and template can take this signal to adapt the deployment accordingly.
Istio support in deployer
Deployer changes:
Adapted deployer to work with Istio.
Added istio
field in clusterConstraints
Details in the schema doc.
x-google-marketplace:
clusterConstraints:
istio:
type: OPTIONAL | REQUIRED | UNSUPPORTED
Added ISTIO_ENABLED
property
Details in the schema doc.
- Deployer property
properties:
- name: istioEnabled
type: boolean
x-google-marketplace:
type: ISTIO_ENABLED # Indicates whether the app is being deployed with Istio.
mpdev
Can now publish metadata to GCS using schema v2.
Improve application readiness in tests
0.7.5 Wait for Pod & Job to be ready (#312)