Commit f05b2d73 authored by aktas's avatar aktas
Browse files

New Package for testing Bug 1609



Native charm deployments behavior changed to scaling the application
from creating new application. This packages is created to test
the new behavior.
Signed-off-by: aktas's avataraktas <emin.aktas@ulakhaberlesme.com.tr>
parent 288f8a18
Pipeline #1951 passed with stage
in 1 minute and 59 seconds
......@@ -67,3 +67,6 @@
[submodule "charm-packages/native_k8s_scale_charm_vnf/charms/nginx-k8s/mod/operator"]
path = charm-packages/native_k8s_scale_charm_vnf/charms/nginx-k8s/mod/operator
url = https://github.com/canonical/operator
[submodule "charm-packages/native_manual_scale_charm_vnf/charms/simple/mod/operator"]
path = charm-packages/native_manual_scale_charm_vnf/charms/simple/mod/operator
url = https://github.com/canonical/operator.git
nsd:
nsd:
- description: NS with 1 VNFs with cloudinit connected by datanet and mgmtnet VLs
df:
- id: default-df
vnf-profile:
- id: '1'
virtual-link-connectivity:
- constituent-cpd-id:
- constituent-base-element-id: '1'
constituent-cpd-id: vnf-mgmt-ext
virtual-link-profile-id: mgmtnet
- constituent-cpd-id:
- constituent-base-element-id: '1'
constituent-cpd-id: vnf-data-ext
virtual-link-profile-id: datanet
vnfd-id: native_manual_scale_charm-vnf
id: native_manual_scale_charm-ns
name: native_manual_scale_charm-ns
version: '1.0'
virtual-link-desc:
- id: mgmtnet
mgmt-network: 'true'
- id: datanet
vnfd-id:
- native_manual_scale_charm-vnf
##
# Copyright 2020 Canonical Ltd.
# All rights reserved.
#
# 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.
##
touch:
description: "Touch a file on the VNF."
params:
filename:
description: "The name of the file to touch."
type: string
default: ""
required:
- filename
##
# Copyright 2020 Canonical Ltd.
# All rights reserved.
#
# 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.
##
options: {}
\ No newline at end of file
../mod/operator/ops
\ No newline at end of file
##
# Copyright 2020 Canonical Ltd.
# All rights reserved.
#
# 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.
##
name: simple-native
summary: A simple native charm
description: |
Simple native charm
series:
- bionic
- xenial
- focal
\ No newline at end of file
Subproject commit a84ce8776b368a8b2bccdb173716e342db9a6b36
#!/usr/bin/env python3
##
# Copyright 2020 Canonical Ltd.
# All rights reserved.
#
# 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.
##
import sys
import subprocess
sys.path.append("lib")
from ops.charm import CharmBase
from ops.main import main
from ops.model import ActiveStatus
class MyNativeCharm(CharmBase):
def __init__(self, framework, key):
super().__init__(framework, key)
# Listen to charm events
self.framework.observe(self.on.config_changed, self.on_config_changed)
self.framework.observe(self.on.install, self.on_install)
self.framework.observe(self.on.start, self.on_start)
# Listen to the touch action event
self.framework.observe(self.on.touch_action, self.on_touch_action)
def on_config_changed(self, event):
"""Handle changes in configuration"""
self.model.unit.status = ActiveStatus()
def on_install(self, event):
"""Called when the charm is being installed"""
self.model.unit.status = ActiveStatus()
def on_start(self, event):
"""Called when the charm is being started"""
self.model.unit.status = ActiveStatus()
def on_touch_action(self, event):
"""Touch a file."""
filename = event.params["filename"]
try:
subprocess.run(["touch", filename], check=True)
event.set_results({"created": True, "filename": filename})
except subprocess.CalledProcessError as e:
event.fail("Action failed: {}".format(e))
self.model.unit.status = ActiveStatus()
if __name__ == "__main__":
main(MyNativeCharm)
#cloud-config
password: osm4u
chpasswd: { expire: False }
ssh_pwauth: True
write_files:
- content: |
# My new helloworld file
owner: root:root
permissions: '0644'
path: /root/helloworld.txt
vnfd:
description: A VNF consisting of 1 VDU connected to two external VL, and one for
data and another one for management
df:
- id: default-df
instantiation-level:
- id: default-instantiation-level
vdu-level:
- number-of-instances: 2
vdu-id: mgmtVM
scaling-aspect:
- id: manual-scaling_mgmtVM
aspect-delta-details:
deltas:
- id: mgmtVM_manual-scaling
vdu-delta:
- id: mgmtVM
number-of-instances: 1
name: manual-scaling_mgmtVM
vdu-profile:
- id: mgmtVM
min-number-of-instances: 2
lcm-operations-configuration:
operate-vnf-op-config:
day1-2:
- config-access:
ssh-access:
default-user: ubuntu
required: true
config-primitive:
- name: touch
execution-environment-ref: simple-ee
parameter:
- data-type: STRING
default-value: /home/ubuntu/touched
name: filename
id: mgmtVM
execution-environment-list:
- id: simple-ee
juju:
charm: simple
proxy: false
initial-config-primitive:
- name: touch
execution-environment-ref: simple-ee
parameter:
- data-type: STRING
name: filename
value: /home/ubuntu/first-touch
seq: 1
ext-cpd:
- id: vnf-mgmt-ext
int-cpd:
cpd: mgmtVM-eth0-int
vdu-id: mgmtVM
- id: vnf-data-ext
int-cpd:
cpd: dataVM-xe0-int
vdu-id: mgmtVM
id: native_manual_scale_charm-vnf
mgmt-cp: vnf-mgmt-ext
product-name: native_manual_scale_charm-vnf
sw-image-desc:
- id: ubuntu18.04
image: ubuntu18.04
name: ubuntu18.04
- id: ubuntu18.04-azure
name: ubuntu18.04-azure
image: Canonical:UbuntuServer:18.04-LTS:latest
vim-type: azure
vdu:
- cloud-init-file: cloud-config.txt
id: mgmtVM
int-cpd:
- id: mgmtVM-eth0-int
virtual-network-interface-requirement:
- name: mgmtVM-eth0
position: 1
virtual-interface:
type: PARAVIRT
- id: dataVM-xe0-int
virtual-network-interface-requirement:
- name: dataVM-xe0
position: 2
virtual-interface:
type: PARAVIRT
name: mgmtVM
sw-image-desc: ubuntu18.04
alternative-sw-image-desc:
- ubuntu18.04-azure
virtual-compute-desc: mgmtVM-compute
virtual-storage-desc:
- mgmtVM-storage
version: 1.0
virtual-compute-desc:
- id: mgmtVM-compute
virtual-cpu:
num-virtual-cpu: 1
virtual-memory:
size: 1.0
virtual-storage-desc:
- id: mgmtVM-storage
size-of-storage: 10
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment