CORD-2965 Kubernetes Synchronizer
Change-Id: Ie5c02b9ad1c65af686598bab0b36350ac1caef64
diff --git a/xos/examples/make_pod.xossh b/xos/examples/make_pod.xossh
new file mode 100644
index 0000000..6394147
--- /dev/null
+++ b/xos/examples/make_pod.xossh
@@ -0,0 +1,31 @@
+# Copyright 2017-present Open Networking Foundation
+#
+# 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.
+
+# This file is intended to be pasted into an xossh session
+
+t=TrustDomain(name="demo-trust", owner=KubernetesService.objects.first())
+t.save()
+p=Principal(name="demo-account", trust_domain=t)
+p.save()
+existing_images=Image.objects.filter(name="k8s.gcr.io/pause-amd64")
+if existing_images:
+ img = existing_images[0]
+else:
+ img=Image(name="k8s.gcr.io/pause-amd64", tag="3.0")
+ img.save()
+
+s=Slice(name="mysite_demo1", site=Site.objects.first(), trust_domain=t, principal=p)
+s.save()
+i=KubernetesServiceInstance(name="demo-pod", slice=s, image=img, owner=KubernetesService.objects.first(), xos_managed=True)
+i.save()
diff --git a/xos/examples/make_pod.yaml b/xos/examples/make_pod.yaml
new file mode 100644
index 0000000..2e05f32
--- /dev/null
+++ b/xos/examples/make_pod.yaml
@@ -0,0 +1,96 @@
+---
+# Copyright 2017-present Open Networking Foundation
+#
+# 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.
+
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: Make a pod using Kubernetes Synchronizer
+
+imports:
+ - custom_types/trustdomain.yaml
+ - custom_types/principal.yaml
+ - custom_types/image.yaml
+ - custom_types/site.yaml
+ - custom_types/slice.yaml
+ - custom_types/kubernetesservice.yaml
+ - custom_types/kubernetesserviceinstance.yaml
+
+topology_template:
+ node_templates:
+ service#kubernetes:
+ type: tosca.nodes.KubernetesService
+ properties:
+ name: kubernetes
+ must-exist: true
+
+ mysite:
+ type: tosca.nodes.Site
+ properties:
+ name: placeholder-sitename
+ must-exist: true
+
+ demo_trustdomain:
+ type: tosca.nodes.TrustDomain
+ properties:
+ name: "demo-trust"
+ requirements:
+ - owner:
+ node: service#kubernetes
+ relationship: tosca.relationships.BelongsToOne
+
+ demo_principal:
+ type: tosca.nodes.Principal
+ properties:
+ name: "demo-account"
+ requirements:
+ - trust_domain:
+ node: demo_trustdomain
+ relationship: tosca.relationships.BelongsToOne
+
+ image_pause:
+ type: tosca.nodes.Image
+ properties:
+ name: "k8s.gcr.io/pause-amd64"
+ tag: "3.0"
+
+ mysite_demo1:
+ type: tosca.nodes.Slice
+ properties:
+ name: "mysite_demo1"
+ requirements:
+ - site:
+ node: mysite
+ relationship: tosca.relationships.BelongsToOne
+ - trust_domain:
+ node: demo_trustdomain
+ relationship: tosca.relationships.BelongsToOne
+ - principal:
+ node: demo_principal
+ relationship: tosca.relationships.BelongsToOne
+
+ demo_pod:
+ type: tosca.nodes.KubernetesServiceInstance
+ properties:
+ name: "demo-pod"
+ xos_managed: True
+ requirements:
+ - slice:
+ node: mysite_demo1
+ relationship: tosca.relationships.BelongsToOne
+ - owner:
+ node: service#kubernetes
+ relationship: tosca.relationships.BelongsToOne
+ - image:
+ node: image_pause
+ relationship: tosca.relationships.BelongsToOne
diff --git a/xos/examples/make_service.xossh b/xos/examples/make_service.xossh
new file mode 100644
index 0000000..b7191ef
--- /dev/null
+++ b/xos/examples/make_service.xossh
@@ -0,0 +1,24 @@
+# Copyright 2017-present Open Networking Foundation
+#
+# 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.
+
+# This is intended to be pasted into an xossh session
+
+t=TrustDomain(name="service1-trust", owner=KubernetesService.objects.first())
+t.save()
+service=Service(name="service1")
+service.save()
+slice=Slice(name="mysite_service1_slice1", trust_domain=t, service=service, site=Site.objects.first())
+slice.save()
+port=ServicePort(name="the-web", service=service, internal_port=80, external_port=30080, protocol="TCP")
+port.save()
diff --git a/xos/examples/make_service.yaml b/xos/examples/make_service.yaml
new file mode 100644
index 0000000..69f41e2
--- /dev/null
+++ b/xos/examples/make_service.yaml
@@ -0,0 +1,81 @@
+---
+# Copyright 2017-present Open Networking Foundation
+#
+# 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.
+
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: Make a new Service and a ServicePort for it
+
+imports:
+ - custom_types/trustdomain.yaml
+ - custom_types/site.yaml
+ - custom_types/slice.yaml
+ - custom_types/service.yaml
+ - custom_types/serviceport.yaml
+ - custom_types/kubernetesservice.yaml
+
+topology_template:
+ node_templates:
+ mysite:
+ type: tosca.nodes.Site
+ properties:
+ name: placeholder-sitename
+ must-exist: true
+
+ service#kubernetes:
+ type: tosca.nodes.KubernetesService
+ properties:
+ name: kubernetes
+ must-exist: true
+
+ service#demo:
+ type: tosca.nodes.Service
+ properties:
+ name: demo-service
+
+ demo_trustdomain:
+ type: tosca.nodes.TrustDomain
+ properties:
+ name: "demo-trust"
+ requirements:
+ - owner:
+ node: service#kubernetes
+ relationship: tosca.relationships.BelongsToOne
+
+ mysite_demo1:
+ type: tosca.nodes.Slice
+ properties:
+ name: "mysite_demo1"
+ requirements:
+ - site:
+ node: mysite
+ relationship: tosca.relationships.BelongsToOne
+ - trust_domain:
+ node: demo_trustdomain
+ relationship: tosca.relationships.BelongsToOne
+ - service:
+ node: service#demo
+ relationship: tosca.relationships.BelongsToOne
+
+ demo_service_web_port:
+ type: tosca.nodes.ServicePort
+ properties:
+ name: demo-service-web-port
+ internal_port: 80
+ external_port: 30080
+ protocol: "TCP"
+ requirements:
+ - service:
+ node: service#demo
+ relationship: tosca.relationships.BelongsToOne
\ No newline at end of file