From 342ef7080179022dfeea79d8bae4329a2473b1bc Mon Sep 17 00:00:00 2001 From: Stan Lagun Date: Wed, 22 Apr 2015 03:19:59 +0300 Subject: [PATCH] Added missing execution plan Execution plan to patch existing k8s services to include node IPs when number of nodes changed and we are not using gateways or we was using gateways and now we don't These 2 files were supposed to be in https://review.openstack.org/#/c/175506/ but I forgot to commit them Also fixes typo that is already fixed in stable/kilo Change-Id: I6af644511bf25ae7ae31c88914d33b8c518a4eec --- .../package/Resources/PatchServices.template | 35 +++++++++++++++++++ .../package/Resources/scripts/patchService.sh | 6 ++++ .../package/Classes/KubernetesPod.yaml | 1 - 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 Kubernetes/KubernetesCluster/package/Resources/PatchServices.template create mode 100644 Kubernetes/KubernetesCluster/package/Resources/scripts/patchService.sh diff --git a/Kubernetes/KubernetesCluster/package/Resources/PatchServices.template b/Kubernetes/KubernetesCluster/package/Resources/PatchServices.template new file mode 100644 index 0000000..9293069 --- /dev/null +++ b/Kubernetes/KubernetesCluster/package/Resources/PatchServices.template @@ -0,0 +1,35 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +FormatVersion: 2.0.0 +Version: 1.0.0 +Name: Patch Service + +Parameters: + services: $services + publicIPs: $publicIPs + +Body: | + import json + patch = json.dumps({'apiVersion': 'v1beta3', 'spec': {'publicIPs': args.publicIPs}}) + for service in args.services: + patchService("{0} '{1}'".format(service, patch)) + +Scripts: + patchService: + Type: Application + Version: 1.0.0 + EntryPoint: patchService.sh + Files: [] + Options: + captureStdout: true + captureStderr: true diff --git a/Kubernetes/KubernetesCluster/package/Resources/scripts/patchService.sh b/Kubernetes/KubernetesCluster/package/Resources/scripts/patchService.sh new file mode 100644 index 0000000..087ed0d --- /dev/null +++ b/Kubernetes/KubernetesCluster/package/Resources/scripts/patchService.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +# $1 - service name +# $2 - publicIPs JSON + +/opt/bin/kubectl update service $1 --patch="$2" diff --git a/Kubernetes/KubernetesPod/package/Classes/KubernetesPod.yaml b/Kubernetes/KubernetesPod/package/Classes/KubernetesPod.yaml index aa21285..d6a11ef 100644 --- a/Kubernetes/KubernetesPod/package/Classes/KubernetesPod.yaml +++ b/Kubernetes/KubernetesPod/package/Classes/KubernetesPod.yaml @@ -99,7 +99,6 @@ Methods: - $newVolumes: $container.volumes.values().where(not $this._generateVolumeName($) in $this._podDefinition.spec.volumes.name). select($this._buildVolumeEntry($)) - - $diff: - $diff: spec: containers: [$containerDef]